- Зачем:
- бенчмарк на i7-11800H / WSL2 показал, что jobs=1 генерирует +1 день за ~3 мин,
а jobs=2 — за ~9 мин из-за lock contention на gen.events FOR UPDATE SKIP LOCKED.
Тюнинг PG (shared_buffers, work_mem) и synchronous_commit=off не влияют.
- Что:
- дефолт BOOKINGS_JOBS изменён с 2 на 1 в Makefile и .env.example.
- добавлен docs/internal/bookings_generation_benchmark.md с полной матрицей экспериментов.
- обновлены комментарии и bookings/README.md.
- Проверка:
- make bookings-init && time make bookings-generate-day (~3 мин).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
48 lines
1.9 KiB
Bash
48 lines
1.9 KiB
Bash
# Общие настройки
|
|
TZ=Europe/Moscow
|
|
|
|
# Airflow Configuration
|
|
AIRFLOW_USER=admin
|
|
AIRFLOW_PASSWORD=admin
|
|
AIRFLOW__WEBSERVER__SECRET_KEY=your-super-secret-key-here-replace-with-actual-random-key
|
|
# Порт Airflow UI на хосте
|
|
AIRFLOW_WEB_PORT=8080
|
|
|
|
# PostgreSQL (Airflow metadata)
|
|
PG_USER=airflow
|
|
PG_PASSWORD=airflow
|
|
PG_DB=airflow
|
|
# Порт мета-БД Airflow на хосте (нужен в основном для диагностики)
|
|
PGMETA_PORT=5433
|
|
|
|
# Bookings demo database (Postgres)
|
|
BOOKINGS_DB_USER=bookings
|
|
BOOKINGS_DB_PASSWORD=bookings
|
|
BOOKINGS_DB_NAME=bookings
|
|
BOOKINGS_DB_PORT=5434
|
|
# Начальная дата модельного времени для генерации демобазы
|
|
BOOKINGS_START_DATE=2017-01-01
|
|
# Количество дней для генерации с нуля (make bookings-generate); для make bookings-init не используется
|
|
BOOKINGS_INIT_DAYS=60
|
|
# Количество параллельных джобов генератора (1 = синхронно без dblink, 2+ = через dblink).
|
|
# jobs=1 оптимален для инкрементальной генерации (+1 день ≈ 3 мин).
|
|
# jobs>1 на WSL2 в 3× медленнее из-за lock contention на gen.events.
|
|
BOOKINGS_JOBS=1
|
|
|
|
# Greenplum Configuration
|
|
GP_USER=gpadmin
|
|
GP_PASSWORD=gpadmin
|
|
GP_DB=gp_dwh
|
|
GP_HOST=greenplum
|
|
GP_PORT=5432
|
|
# Порт Greenplum на хосте (подключение из DBeaver/psql с ноутбука)
|
|
GP_HOST_PORT=5435
|
|
GP_CONN_ID=greenplum_conn
|
|
GP_USE_AIRFLOW_CONN=true
|
|
|
|
# PXF (optional)
|
|
# PXF_SEED_OVERWRITE=1 — принудительно перезаписать seed-файлы из образа в PXF_BASE (полезно после правок в pxf/)
|
|
PXF_SEED_OVERWRITE=0
|
|
# PXF_SYNC_ON_START=1 — выполнять `pxf cluster sync` при старте контейнера (дольше, но гарантирует актуальные конфиги)
|
|
PXF_SYNC_ON_START=0
|