Настройка Cloudera Hive
- Поддерживается: Cloudera
- Авторы: Cloudera
- Репозиторий GitHub: cloudera/dbt-hive
- Пакет PyPI:
dbt-hive - Канал в Slack: #db-hive
- Поддерживаемая версия dbt Core: v1.1.0 и новее
- Поддержка dbt: Не поддерживается
- Минимальная версия платформы данных: n/a
Установка dbt-hive
Установите адаптер с помощью pip. До версии 1.8 установка адаптера автоматически устанавливала dbt-core и любые дополнительные зависимости. Начиная с 1.8 установка адаптера не устанавливает dbt-core автоматически. Это потому, что версии адаптеров и dbt Core были развязаны, и мы больше не хотим перезаписывать существующие установки dbt-core.
Используйте следующую команду для установки:
python -m pip install dbt-core dbt-hive
Настройка 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 поддерживает два механизма аутентификации:
Небезопасно
Этот метод рекомендуется только в случае, если у вас установлена локальная версия Hive и вы хотите протестировать адаптер dbt-hive.
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).
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
```yaml
use_http_transport: BOOLEAN # значение по умолчанию: true
use_ssl: BOOLEAN # TLS всегда следует использовать с LDAP, чтобы обеспечить безопасную передачу учетных данных; значение по умолчанию: true
user: USERNAME
password: PASSWORD schema: SCHEMA_NAME
</File>
Примечание: При создании workload-пользователя в 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}
Механизм аутентификации Kerberos использует GSSAPI для обмена учетными данными Kerberos, когда Hive настроен с Kerberos Auth.
<File name='~/.dbt/profiles.yml'>
```yaml
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 для Cloudera Hive поддерживается в отдельном репозитории — dbt-hive.
Чтобы использовать его, необходимо установить плагин dbt-hive.
Использование pip
Следующие команды установят последнюю версию dbt-hive, а также необходимую версию dbt-core и драйвер impyla, используемый для подключений.
python -m pip install dbt-hive
Поддерживаемая функциональность
| Loading table... |