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

Настройка Apache Hive

  • Поддерживается: Cloudera
  • Авторы: Cloudera
  • Репозиторий на GitHub: cloudera/dbt-hive
  • Пакет на PyPI: dbt-hive
  • Канал в Slack: #db-hive
  • Поддерживаемая версия dbt Core: v1.1.0 и новее
  • Поддержка dbt Cloud: Not Supported
  • Минимальная версия платформы данных: n/a

Установка dbt-hive

Используйте pip для установки адаптера. До версии 1.8 установка адаптера автоматически устанавливала dbt-core и любые дополнительные зависимости. Начиная с версии 1.8, установка адаптера не устанавливает автоматически dbt-core. Это связано с тем, что адаптеры и версии dbt Core были разделены, и мы больше не хотим перезаписывать существующие установки dbt-core. Используйте следующую команду для установки:

Конфигурация dbt-hive

Для конфигурации, специфичной для Hive, пожалуйста, обратитесь к конфигурациям Hive.

Методы подключения

dbt-hive может подключаться к кластерам Apache Hive и Cloudera Data Platform. Для установления соединений с Hive используется библиотека Impyla.

dbt-hive поддерживает два механизма передачи данных:

  • бинарный
  • HTTP(S)

Механизм по умолчанию — binary. Чтобы использовать HTTP-транспорт, используйте булевую опцию. Например, use_http_transport: true.

Методы аутентификации

dbt-hive поддерживает два механизма аутентификации:

  • insecure Без аутентификации, рекомендуется только для тестирования.
  • ldap Аутентификация через LDAP

Insecure

Этот метод рекомендуется только в случае, если у вас установлена локальная версия Hive и вы хотите протестировать адаптер dbt-hive.

~/.dbt/profiles.yml
your_profile_name:
target: dev
outputs:
dev:
type: hive
host: localhost
port: PORT # значение по умолчанию: 10000
schema: SCHEMA_NAME

LDAP

LDAP позволяет аутентифицироваться с помощью имени пользователя и пароля, когда Hive настроен с LDAP Auth. LDAP поддерживается через механизмы подключения Binary и HTTP.

Это рекомендуемый механизм аутентификации для использования с Cloudera Data Platform (CDP).

~/.dbt/profiles.yml
your_profile_name:
target: dev
outputs:
dev:
type: hive
host: HOST_NAME
http_path: YOUR/HTTP/PATH # необязательно, http путь к Hive, значение по умолчанию: None
port: PORT # значение по умолчанию: 10000
auth_type: ldap
use_http_transport: BOOLEAN # значение по умолчанию: true
use_ssl: BOOLEAN # TLS всегда должен использоваться с LDAP для обеспечения безопасной передачи учетных данных, значение по умолчанию: true
username: USERNAME
password: PASSWORD
schema: SCHEMA_NAME

Примечание: При создании пользователя для выполнения рабочих нагрузок в CDP убедитесь, что у пользователя есть разрешения CREATE, SELECT, ALTER, INSERT, UPDATE, DROP, INDEX, READ и WRITE. Если вам нужно, чтобы пользователь выполнял операторы GRANT, вы также должны настроить для него соответствующие разрешения GRANT. При использовании Apache Ranger разрешения для разрешения GRANT обычно устанавливаются с помощью опции "Delegate Admin". Для получения дополнительной информации смотрите grants и on-run-start & on-run-end.

Kerberos

Механизм аутентификации Kerberos использует GSSAPI для обмена учетными данными Kerberos, когда Hive настроен с Kerberos Auth.

~/.dbt/profiles.yml
your_profile_name:
target: dev
outputs:
dev:
type: hive
host: HOSTNAME
port: PORT # значение по умолчанию: 10000
auth_type: GSSAPI
kerberos_service_name: KERBEROS_SERVICE_NAME # значение по умолчанию: None
use_http_transport: BOOLEAN # значение по умолчанию: true
use_ssl: BOOLEAN # TLS всегда должен использоваться для обеспечения безопасной передачи учетных данных, значение по умолчанию: true
schema: SCHEMA_NAME

Примечание: Типичная настройка Cloudera Private Cloud будет включать следующие шаги для настройки Kerberos перед выполнением команд dbt:

  • Получите правильный файл конфигурации realm для вашей установки (krb5.conf)
  • Установите переменную окружения, чтобы указать на файл конфигурации (export KRB5_CONFIG=/path/to/krb5.conf)
  • Установите правильные разрешения для файла конфигурации (sudo chmod 644 /path/to/krb5.conf)
  • Получите keytab с помощью kinit (kinit username@YOUR_REALM.YOUR_DOMAIN)
  • Keytab действителен в течение определенного периода, после чего вам нужно будет снова запустить kinit для обновления его действительности.
  • Пользователю потребуются разрешения CREATE, DROP, INSERT на схему, указанную в profiles.yml

Инструментирование

По умолчанию адаптер будет собирать события инструментирования, чтобы помочь улучшить функциональность и понять ошибки. Если вы хотите специально отключить это, например, в производственной среде, вы можете явно установить флаг usage_tracking: false в вашем файле profiles.yml.

Установка и распространение

Адаптер dbt для Apache Hive управляется в собственном репозитории, dbt-hive. Чтобы использовать его, необходимо установить плагин dbt-hive.

Использование pip

Следующие команды установят последнюю версию dbt-hive, а также необходимую версию dbt-core и драйвер impyla, используемый для подключений.

python -m pip install dbt-hive

Поддерживаемая функциональность

НазваниеПоддерживается
Материализация: ТаблицаДа
Материализация: ПредставлениеДа
Материализация: Инкрементальная - ДобавлениеДа
Материализация: Инкрементальная - Вставка+ПерезаписьДа
Материализация: Инкрементальная - СлияниеНет
Материализация: ЭфемернаяНет
СеменаДа
ТестыДа
СнимкиНет
ДокументацияДа
Аутентификация: LDAPДа
Аутентификация: KerberosДа
0