diff --git a/.env.example b/.env.example index c093ed7..e054613 100644 --- a/.env.example +++ b/.env.example @@ -26,7 +26,7 @@ BOOKINGS_JOBS=1 # Greenplum Configuration GP_USER=gpadmin GP_PASSWORD=gpadmin -GP_DB=gpadmin +GP_DB=gp_dwh GP_HOST=greenplum GP_PORT=5432 GP_CONN_ID=greenplum_conn diff --git a/Makefile b/Makefile index cdd4fd5..011928b 100644 --- a/Makefile +++ b/Makefile @@ -24,10 +24,10 @@ logs: docker compose -f docker-compose.yml logs -f airflow-webserver airflow-scheduler gp-psql: - docker compose -f docker-compose.yml exec greenplum bash -c "su - gpadmin -c '/usr/local/greenplum-db/bin/psql -p 5432 -d gpadmin'" + docker compose -f docker-compose.yml exec greenplum bash -c "su - gpadmin -c '/usr/local/greenplum-db/bin/psql -p 5432 -d gp_dwh'" ddl-gp: - docker compose -f docker-compose.yml exec greenplum bash -c "su - gpadmin -c '/usr/local/greenplum-db/bin/psql -d gpadmin -f /sql/ddl_gp.sql'" + docker compose -f docker-compose.yml exec greenplum bash -c "su - gpadmin -c '/usr/local/greenplum-db/bin/psql -d gp_dwh -f /sql/ddl_gp.sql'" bookings-clone-demodb: mkdir -p bookings diff --git a/README.md b/README.md index 894182d..ed19919 100644 --- a/README.md +++ b/README.md @@ -63,7 +63,7 @@ docker compose up -d **Проверка вручную:** ```bash # Подключитесь к Greenplum и проверьте данные -docker compose exec greenplum bash -c "su - gpadmin -c 'psql -p 5432 -d gpadmin'" +docker compose exec greenplum bash -c "su - gpadmin -c 'psql -p 5432 -d gp_dwh'" # Внутри psql выполните: \dt # Показать таблицы @@ -117,7 +117,7 @@ make gp-psql # Подключение к Greenplum - **Conn Id:** `greenplum_conn` - **Conn Type:** `Postgres` - **Host:** `greenplum` - - **Schema:** `gpadmin` + - **Schema:** `gp_dwh` - **Login:** `gpadmin` - **Password:** `gpadmin` - **Port:** `5432` @@ -198,7 +198,7 @@ docker compose -f docker-compose.yml exec bookings-db bash -lc 'PGPASSWORD="$POS ### Greenplum - `GP_USER` — пользователь (по умолчанию: gpadmin) - `GP_PASSWORD` — пароль (по умолчанию: gpadmin) -- `GP_DB` — база данных (по умолчанию: gpadmin) +- `GP_DB` — база данных (по умолчанию: gp_dwh) - `GP_PORT` — порт Greenplum внутри Docker-сети (по умолчанию: 5432, менять обычно не нужно; внешний порт на хосте для подключения клиентов — 5435). ### Демо-БД bookings (Postgres) @@ -263,14 +263,14 @@ docker compose -f docker-compose.yml exec bookings-db bash -lc 'PGPASSWORD="$POS 3. На вкладке **Main** заполните поля (по умолчанию): - `Host`: `localhost` - `Port`: `5435` (внешний порт Greenplum на хосте) - - `Database`: значение `GP_DB` (по умолчанию `gpadmin`) + - `Database`: значение `GP_DB` (по умолчанию `gp_dwh`) - `Username`: значение `GP_USER` (по умолчанию `gpadmin`) - `Password`: значение `GP_PASSWORD` (по умолчанию `gpadmin`) 4. Нажмите **Test Connection** → **OK**, затем **Finish**. После подключения: -- Основные таблицы лаба — в схеме `public` базы `gpadmin` (например, `public.orders`). +- Основные таблицы лаба — в схеме `public` базы `gp_dwh` (например, `public.orders`). - После настройки PXF и выполнения `make ddl-gp` станет доступна внешняя таблица `public.ext_bookings_bookings` — чтение из демо-БД bookings через PXF. ### bookings-db (демо-БД источника) diff --git a/airflow/dags/helpers/greenplum.py b/airflow/dags/helpers/greenplum.py index 841e4fa..65f86d0 100644 --- a/airflow/dags/helpers/greenplum.py +++ b/airflow/dags/helpers/greenplum.py @@ -50,14 +50,17 @@ def get_gp_conn(): # Прямое подключение по переменным окружения conn_params = { - "dbname": os.getenv("GP_DB", "gpadmin"), + "dbname": os.getenv("GP_DB", "gp_dwh"), "user": os.getenv("GP_USER", "gpadmin"), "password": os.getenv("GP_PASSWORD", ""), "host": os.getenv("GP_HOST", "greenplum"), "port": int(os.getenv("GP_PORT", "5432")), } logging.info( - "🔗 Подключение к Greenplum: %s:%s", conn_params["host"], conn_params["port"] + "🔗 Подключение к Greenplum: %s:%s/%s", + conn_params["host"], + conn_params["port"], + conn_params["dbname"], ) return psycopg2.connect(**conn_params) diff --git a/docker-compose.yml b/docker-compose.yml index d69da27..e2b198d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -48,7 +48,7 @@ services: TZ: ${TZ:-Europe/Moscow} GREENPLUM_USER: ${GP_USER:-gpadmin} GREENPLUM_PASSWORD: ${GP_PASSWORD:-gpadmin} - GREENPLUM_DATABASE_NAME: ${GP_DB:-gpadmin} + GREENPLUM_DATABASE_NAME: ${GP_DB:-gp_dwh} GREENPLUM_PXF_ENABLE: "true" # Порты: внешний 5435 (на хосте) ports: @@ -62,7 +62,7 @@ services: - airflow_data:/opt/airflow/data # Простая проверка доступности: psql откликается healthcheck: - test: ["CMD-SHELL", "pg_isready -h 127.0.0.1 -p 5432 -U ${GP_USER:-gpadmin} -d ${GP_DB:-gpadmin} || echo 1"] + test: ["CMD-SHELL", "pg_isready -h 127.0.0.1 -p 5432 -U ${GP_USER:-gpadmin} -d ${GP_DB:-gp_dwh} || echo 1"] interval: 10s timeout: 5s retries: 30 diff --git a/docs/internal/pxf_bookings.md b/docs/internal/pxf_bookings.md index 2c67262..badc250 100644 --- a/docs/internal/pxf_bookings.md +++ b/docs/internal/pxf_bookings.md @@ -25,7 +25,7 @@ _Этот файл внутренний, удалить перед итогов - `GREENPLUM_PXF_ENABLE: "true"`. - При первом старте с этим флагом скрипт `/start_gpdb.sh` сделает за нас: - инициализацию PXF (`pxf cluster prepare`, `pxf cluster register`, `pxf cluster sync`); - - создание расширения `pxf` в базе `${GREENPLUM_DATABASE_NAME}` (у нас это `${GP_DB}`, по умолчанию `gpadmin`); + - создание расширения `pxf` в базе `${GREENPLUM_DATABASE_NAME}` (у нас это `${GP_DB}`, по умолчанию `gp_dwh`); - запуск `pxf cluster start` и привязку остановки/старта PXF к жизненному циклу Greenplum. - База конфигов PXF (`PXF_BASE`) будет располагаться в `${GREENPLUM_DATA_DIRECTORY}/pxf`, в нашем compose — это `/data/pxf` на томе `greenplum_data`. - Важно: `make down` сейчас делает `docker compose down -v`, поэтому при полном сбросе томов будут теряться и данные GP, и конфиги PXF (включая JDBC‑драйвер и `servers/*`).