Перейти к основному содержимому

Подключение Hologres к dbt v1

  • Поддерживается: Alibaba Cloud Hologres Team
  • Авторы: Alibaba Cloud Hologres Team
  • Репозиторий GitHub: aliyun/dbt-hologres
  • Пакет PyPI: dbt-alibaba-cloud-hologres
  • Канал Slack:
  • Поддерживаемая версия dbt: v1.8.0 и новее
  • Поддержка dbt: Not Supported
  • Минимальная версия платформы данных:

Установка dbt-alibaba-cloud-hologres

Установите адаптер с помощью `pip`: python -m pip install dbt-alibaba-cloud-hologres

Настройка dbt-alibaba-cloud-hologres

Конфигурацию, специфичную для Hologres, см. на странице настроек Hologres.

Подключение к Hologres с помощью dbt-alibaba-cloud-hologres​

dbt-alibaba-cloud-hologres позволяет dbt работать с Alibaba Cloud Hologres — хранилищем данных реального времени, совместимым с PostgreSQL.

Подробности приведены ниже в конфигурации профиля dbt.

~/.dbt/profiles.yml
dbt-alibaba-cloud-hologres: # это имя должно совпадать с именем профиля в файле dbt_project.yml
target: dev
outputs:
dev:
type: hologres
host: HOST_NAME
port: 80
user: USER_NAME
password: PASSWORD
database: DATABASE_NAME
schema: SCHEMA_NAME
threads: 4

Параметры подключения​

В настоящее время поддерживаются следующие параметры:

ПолеОписаниеОбязательный?По умолчаниюПример
typeТип подключения к базе данных; для подключения к Hologres необходимо задать "hologres".Да-hologres
hostИмя хоста конечной точки для подключения к экземпляру Hologres.Да-hgxxx-xxx.hologres.aliyuncs.com
portНомер порта для подключения к Hologres.Нет8080
userИмя пользователя для аутентификации в Hologres (с учётом регистра).Да-AccessKey ID
passwordПароль для аутентификации в Hologres (с учётом регистра).Да-AccessKey Secret
databaseИмя вашей базы данных Hologres.Да-my_database
schemaСхема по умолчанию, которую модели будут использовать в Hologres (укажите пустую строку "", если схема не нужна).Да-public
threadsКоличество потоков для параллельного выполнения.Нет14
connect_timeoutВремя ожидания подключения в секундах.Нет1010
sslmodeРежим SSL для подключения.Нетdisabledisable
application_nameИдентификатор приложения для отслеживания подключений.Нетdbt_hologres_{version}my_dbt_app
retriesКоличество повторных попыток подключения.Нет13

Настройка аутентификации​

dbt-alibaba-cloud-hologres использует стандартный механизм аутентификации, совместимый с PostgreSQL, с именем пользователя и паролем (Access Key). Hologres поддерживает аутентификацию с помощью Alibaba Cloud AccessKey или учётных данных пользователя RAM.

Ключ доступа​

Вы можете пройти аутентификацию с помощью учётных данных вашей учётной записи Alibaba Cloud. В целях безопасности рекомендуется создать дочернюю учётную запись RAM с соответствующими разрешениями, а не использовать AccessKey основной учётной записи.

jaffle_shop: # это имя должно совпадать с именем профиля в файле dbt_project.yml
target: dev
outputs:
dev:
type: hologres
host: hgxxx-cn-shanghai.hologres.aliyuncs.com # Замените на конечную точку вашего экземпляра Hologres
port: 80
user: your_access_key_id # Замените на ваш AccessKeyId
password: your_access_key_secret # Замените на ваш AccessKeySecret
database: my_database # Замените на имя вашей базы данных
schema: public # Замените на имя вашей схемы
threads: 4
connect_timeout: 10
sslmode: disable

Важные замечания​

  1. Чувствительность к регистру: имена пользователей и пароли Hologres чувствительны к регистру. Убедитесь, что вы вводите их в точности так, как они заданы.

  2. Порт по умолчанию: порт по умолчанию для Hologres — 80, что отличается от стандартного порта PostgreSQL 5432.

  3. Режим SSL: по умолчанию SSL для подключений к Hologres отключён. При необходимости его можно включить, задав подходящее значение параметра sslmode.

Проверка подключения​

После настройки profiles.yml вы можете проверить подключение, выполнив:

dbt debug

Эта команда проверит подключение к вашему экземпляру Hologres и сообщит о проблемах с конфигурацией.

Особенности Hologres​

Динамические таблицы в Hologres​

Динамические таблицы — это реализация материализованных представлений с автоматическим обновлением в Hologres. При обновлении данных поддерживается несколько режимов, включая "full" (полный режим) и "incremental" (инкрементальный режим). Дополнительные сведения см. в справочном руководстве. Вы можете настроить их в своих моделях dbt:

models:
my_model:
materialized: dynamic_table
freshness: "30 minutes"
auto_refresh_mode: auto
computing_resource: serverless

Поддерживаемые параметры настройки динамических таблиц:

ПараметрОписаниеПримеры значений
freshnessТребование к актуальности данных."30 minutes", "1 hours"
auto_refresh_modeРежим обновления динамической таблицы.auto, incremental, full
computing_resourceВычислительный ресурс для обновления.serverless, local, имя вычислительного хранилища

Инкрементальные модели в dbt​

dbt-alibaba-cloud-hologres поддерживает несколько инкрементальных стратегий:

  • append: добавление новых записей
  • delete+insert: удаление совпадающих записей и вставка новых
  • merge: использование оператора MERGE для операций вставки или обновления (upsert)
  • microbatch: обработка данных небольшими пакетами

Ограничения​

Полная поддержка ограничений базы данных, включая:

  • Первичные ключи
  • Ограничения NOT NULL

Свойства таблиц​

Hologres поддерживает следующие свойства таблиц. Подробные сведения см. в справочной документации для разработчиков.

СвойствоРекомендации
orientationИспользуйте column для нагрузок OLAP и row для запросов типа «ключ — значение»
distribution_keyВыбирайте столбцы, часто используемые при соединении или группировке; предпочтительно использовать один столбец
clustering_keyИспользуйте для столбцов с фильтрацией по диапазону; не более 3 столбцов; соблюдайте принцип совпадения по левому префиксу
event_time_columnЗадавайте для данных временных рядов (столбцов с временными метками)
bitmap_columnsИспользуйте для фильтров на равенство
dictionary_encoding_columnsИспользуйте для строковых столбцов с небольшим числом уникальных значений

Справочные материалы​

Нашли ошибку?

0
Loading