Implementation:Apache Druid Ingestion Type Routing
| Knowledge Sources | |
|---|---|
| Domains | Data_Ingestion, UX_Design |
| Last Updated | 2026-02-10 00:00 GMT |
Overview
Concrete UI routing component for selecting ingestion source types in the Apache Druid web console.
Description
The renderWelcomeStep() method in LoadDataView renders a card-based selection interface where users choose their data source type. Each card maps to an IngestionComboTypeWithExtra value that determines the ingestion pathway. The method filters available source types based on the current mode (all, batch, or streaming) and handles the transition to the connect step via updateIngestionType().
Usage
Import this component when building the data loading wizard. The welcome step is the first step rendered and must be completed before any data sampling or configuration can begin.
Code Reference
Source Location
- Repository: Apache Druid
- File: web-console/src/views/load-data-view/load-data-view.tsx
- Lines: L894-L940
Signature
// LoadDataView class method
private renderWelcomeStep(): JSX.Element | undefined {
// Renders ingestion type cards filtered by mode
// Cards: s3, azure, google, delta, hdfs, druid, http, local, inline, example
// For streaming mode: kafka, kinesis, azure-event-hubs
}
// State transition on card selection
private updateIngestionType(
spec: Partial<IngestionSpec>,
comboType: IngestionComboTypeWithExtra,
): void
Import
// Internal component - accessed via LoadDataView route
import { LoadDataView } from './views/load-data-view/load-data-view';
I/O Contract
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| mode | LoadDataViewMode | Yes | Filters cards to 'all', 'batch', or 'streaming' |
| selectedComboType | IngestionComboTypeWithExtra | No | Currently selected source type (for highlighting) |
Outputs
| Name | Type | Description |
|---|---|---|
| selectedComboType | IngestionComboTypeWithExtra | The user-selected source type stored in component state |
| spec | Partial<IngestionSpec> | Updated ingestion spec with initialized ioConfig via updateIngestionType() |
Usage Examples
Rendering the Welcome Step
// The welcome step is rendered automatically as Step 0 of LoadDataView
// User clicks a card → state updates → wizard transitions to connect step
// Available batch source types:
const BATCH_TYPES = ['s3', 'azure', 'google', 'delta', 'hdfs', 'druid', 'http', 'local', 'inline', 'example'];
// Available streaming source types:
const STREAMING_TYPES = ['kafka', 'kinesis', 'azure-event-hubs'];
// On card click:
this.updateIngestionType(spec, 'index_parallel:s3'); // S3 batch ingestion
this.updateIngestionType(spec, 'kafka'); // Kafka streaming