Автонастройка kafka-ui
This commit is contained in:
@@ -22,3 +22,4 @@ KAFKA_TOPIC=orders
|
||||
KAFKA_BATCH_SIZE=500
|
||||
KAFKA_POLL_TIMEOUT=10
|
||||
KAFKA_MAX_EMPTY_POLLS=3
|
||||
KAFKA_UI_CLUSTER_NAME=KafkaCluster
|
||||
|
||||
@@ -16,6 +16,7 @@ Airflow по‑прежнему использует **Postgres** только
|
||||
- **Airflow (2.9)** — оркестрация пайплайна, metadata в Postgres.
|
||||
- **DAG** `kafka_to_greenplum.py` — генерирует данные → пишет в Kafka → читает и грузит в Greenplum.
|
||||
- **DAG** `greenplum_data_quality.py` — выполняет проверки качества данных (наличие таблицы, схема, заполненность, дубли).
|
||||
- **Kafka UI** — автоматически подключается к стендовому брокеру (bootstrap берётся из `KAFKA_BOOTSTRAP` или значения по умолчанию).
|
||||
- **DDL** `sql/ddl_gp.sql` — создаёт колонночную таблицу `orders` без PRIMARY KEY (AO-таблицы GP6 не поддерживают его), распределённую по `order_id`; контроль дублей реализован в DAG.
|
||||
|
||||
> Примечание по версиям и надёжности: используется образ `woblerr/greenplum:6.27.1` с поддержкой переменных окружения и fallback значениями. Для продакшен‑подобных тестов зафиксируй digest (SHA256) конкретного тега на Docker Hub.
|
||||
@@ -73,7 +74,7 @@ airflow connections add 'greenplum_conn' \
|
||||
|
||||
### Интерфейсы и порты
|
||||
- Airflow UI: http://localhost:8080 (admin/admin по умолчанию)
|
||||
- Kafka UI: http://localhost:8082 (просмотр топиков/сообщений)
|
||||
- Kafka UI: http://localhost:8082 (просмотр топиков/сообщений; подключение к кластеру создаётся автоматически)
|
||||
- Greenplum: `localhost:${GP_PORT:-5432}` (внешний порт проброшен из контейнера)
|
||||
- Postgres (Airflow metadata): `localhost:5433`
|
||||
- Kafka (для клиентов на хосте): `localhost:9092`
|
||||
@@ -122,6 +123,13 @@ SELECT count(*) FROM public.orders;
|
||||
- `GP_CONN_ID` — ID Airflow Connection (по умолчанию: `greenplum_conn`)
|
||||
- `GP_USE_AIRFLOW_CONN` — использовать ли Airflow Connection (`true`/`false`). Если `false`, DAG подключается к БД напрямую по ENV.
|
||||
|
||||
Настройки Kafka берутся из тех же переменных окружения:
|
||||
|
||||
- `KAFKA_BOOTSTRAP` — bootstrap-адрес брокера для Airflow и Kafka UI (по умолчанию `kafka:29092`).
|
||||
- `KAFKA_TOPIC` — имя демо-топика (по умолчанию `orders`).
|
||||
- `KAFKA_BATCH_SIZE`, `KAFKA_POLL_TIMEOUT`, `KAFKA_MAX_EMPTY_POLLS` — параметры чтения/загрузки (см. раздел выше).
|
||||
- `KAFKA_UI_CLUSTER_NAME` — отображаемое имя кластера в Kafka UI (по умолчанию `KafkaCluster`).
|
||||
|
||||
Образ `woblerr/greenplum:6.27.1` использует переменные:
|
||||
- `GREENPLUM_USER` (маппится на `GP_USER`)
|
||||
- `GREENPLUM_PASSWORD` (маппится на `GP_PASSWORD`)
|
||||
|
||||
@@ -64,12 +64,13 @@ services:
|
||||
|
||||
kafka-ui:
|
||||
image: provectuslabs/kafka-ui:v0.7.2
|
||||
env_file: .env
|
||||
ports:
|
||||
- 8082:8080
|
||||
environment:
|
||||
- DYNAMIC_CONFIG_ENABLED=true
|
||||
- KAFKA_CLUSTERS_0_NAME=KafkaCluster
|
||||
- KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS=kafka:29092
|
||||
DYNAMIC_CONFIG_ENABLED: "true"
|
||||
KAFKA_CLUSTERS_0_NAME: ${KAFKA_UI_CLUSTER_NAME:-KafkaCluster}
|
||||
KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS: ${KAFKA_BOOTSTRAP:-kafka:29092}
|
||||
volumes:
|
||||
- kafka-ui-data:/app/data
|
||||
depends_on:
|
||||
|
||||
Reference in New Issue
Block a user