Databricks
Databricks можно использовать как целевую платформу данных в конвейере данных или в задаче репликации. В конвейере данных можно выполнять различные операции ELT на целевой платформе, включая хранение, преобразование, регистрацию данных и создание киосков данных. С другой стороны, задача репликации подразумевает репликацию данных непосредственно из исходной системы в целевую с сохранением базовых функций преобразования, но без поддержки операций ELT.
Настройка Databricks в качестве целевой платформы включает в себя:
- Выполнение предварительных требований
- Настройку подключения к облачной области промежуточного хранения. Это не требуется, если вы регистрируете существующие данные.
- Настройку подключения к Databricks
Настройка облачной области промежуточного хранения
При использовании целевого коннектора Databricks также необходимо определить облачную область промежуточного хранения, где данные и изменения проходят промежуточное хранение перед их применением и сохранением. Поддерживаются следующие платформы хранения:
Настройка подключения к Databricks
После того как вы указали настройки промежуточного хранения, выполните следующие действия:
-
В разделе Подключения нажмите Создать подключение.
-
Выберите целевой коннектор Databricks и укажите следующие настройки:
Целевая платформа данных
Шлюз данных
Шлюз движения данных требуется, только если целевая база данных недоступна из Qlik Cloud и доступна только по ссылке PrivateLink (например, если она расположена или в виртуальном частном облаке). В таком случае выберите Шлюз движения данных, через который требуется обращаться к целевой базе данных.
В зависимости от конкретной ситуации это будет либо тот же Шлюз движения данных, развернутый для перемещения данных, либо другой шлюз.
Для получения информации о сценариях применения Шлюз движения данных см. разделы Когда требуется Шлюз движения данных? и Общие случаи использования.
Если целевая база данных напрямую доступна из Qlik Cloud, выберите Нет.
Свойства подключения
- Хост: имя хоста рабочей области Databricks.
- Порт: порт, через который осуществляется доступ к рабочей области.
- Путь HTTP: путь к используемому кластеру.
Аутентификация
-
Метод аутентификации — выберите один из следующих вариантов:
-
OAuth: Укажите следующую информацию:
Примечание к информацииПредварительные требования для аутентификации OAuth:
- Убедитесь, что ваша база данных Databricks настроена на использование OAuth. Инструкции см. в онлайн-справке поставщика.
- Если вы используете Шлюз движения данных для доступа к базе данных, требуется Шлюз движения данных версии 2024.11.30 или более поздней.
-
Идентификатор клиента: Идентификатор клиента вашего приложения.
-
Секрет клиента: Секрет клиента вашего приложения. Обратите внимание, что при редактировании подключения секрет клиента будет удален в целях безопасности, и вам потребуется ввести его повторно.
- Личный токен доступа: В поле Токен введите свой личный токен для доступа к рабочей области.
-
Свойства каталога
Нажмите Загрузить каталоги, чтобы загрузить доступные каталоги, а затем выберите Каталог. Если в вашей среде не настроены каталоги, выберите hive_metastore, который является каталогом по умолчанию.
Вам необходимо разрешить задаче данных доступ к внешним (неуправляемым) таблицам, определив внешнее Местоположение в Databricks. Рекомендации см. по ссылке:
Внутренние свойства
Внутренние свойства предназначены для особых случаев использования и поэтому не отображаются в диалоговом окне. Их следует использовать только по указанию службы поддержки Qlik.
Используйте кнопки и
справа от полей, чтобы добавлять или удалять свойства по мере необходимости.
Имя
Отображаемое имя для подключения.
Предварительные требования
Общие разрешения
- Время на сервере Qlik Talend Data Integration должно быть точным.
- Разрешения для таблиц Databricks: для Qlik Talend Data Integration требуются разрешения, чтобы выполнять следующие операции с таблицами Databricks: CREATE, DROP, TRUNCATE, DESCRIBE и ALTER.
- В параметрах контроля доступа (IAM) к файловой системе ADLS Gen2 назначьте Qlik Talend Data Integration (ИД приложения AD) роль «Storage Blob Data Contributor». Назначение роли может занять несколько минут.
- Чтобы ПО Qlik Talend Data Integration могло подключаться к кластеру Databricks через ODBC, пользователи должны получить разрешение «Может подключаться к» в своей учетной записи Databricks.
- Для доступа к Databricks требуется допустимый токен безопасности. Токен следует указать при настройке полей Databricks ODBC Access в параметрах конечной точки.
-
При настройке нового кластера с помощью Microsoft Azure Data Lake Storage (ADLS) Gen2 в разделе Spark Config необходимо добавить следующую строку.
spark.hadoop.hive.server2.enable.doAs false -
Чтобы иметь доступ к папкам хранилища из кластера Databricks, пользователям необходимо добавить конфигурацию (в разделе Spark Config) для учетной записи этого хранилища и ее ключ.
Пример:
fs.azure.account.key.<storage-account-name>.dfs.core.windows.net <storage-account-access-key>
Для получения дополнительной информации см. интерактивную справку по работе с Databricks по адресу: https://docs.databricks.com/clusters/configure.html#spark-configuration
-
Рекомендуется не использовать корневой путь (/Usr/Hive/Warehouse/) для базы данных Databricks, так как это может повлиять на производительность.
Разрешение на доступ к хранилищу
Вычислительные ресурсы Databricks SQL должны быть настроены для доступа к облачному хранилищу. Инструкции см. в онлайн-справке поставщика.
Настройка драйвера
Драйвер требуется только в том случае, если вы обращаетесь к базе данных через Шлюз движения данных. В таком случае необходимо установить драйвер на компьютере Шлюз движения данных.
driver можно установить с помощью программы для установки драйверов (рекомендуется) или вручную. Ручную установку следует выполнять только в том маловероятном случае, если возникла проблема с программой для установки драйверов.
Использование утилиты установки драйвера для установки драйвера
В этом разделе описывается процедура установки необходимого driverа. Она включает выполнение скрипта, который автоматически загружает, устанавливает и настраивает необходимый driver. Также можно выполнять скрипты для обновления и удаления driverа по необходимости.
Подготовка к установке
-
Убедитесь, что на сервере шлюза Data Movement установлена версия Python 3.6 или более поздняя.
Python предустанавливается в большинстве дистрибутивов Linux. Чтобы проверить, какая версия Python установлена в системе, выполните следующую команду:
python3 --version
Установка driver
Чтобы загрузить и установить driver, выполните следующие действия.
-
Остановите службу Data Movement Gateway:
sudo systemctl stop repagent
-
Если нужно, подтвердите, что сервис остановлен:
sudo systemctl status repagent
Статус должен быть следующим:
Active: inactive (dead) since <timestamp> ago
-
На компьютере шлюза Data Movement измените рабочую папку на:
opt/qlik/gateway/movement/drivers/bin
-
Выполните следующую команду:
Синтаксис:
./install databricks
Если не удается загрузить driver (из-за ограничений доступа или технических проблем), появится сообщение с указанием места, откуда можно загрузить driver и куда его скопировать на компьютере шлюза Data Movement. После этого выполните команду install databricks еще раз.
В противном случае откроется лицензионное соглашение с конечным пользователем driverа.
-
Выполните одно из следующих действий:
- Нажмите клавишу [Enter] несколько раз, чтобы медленно прокрутить лицензионное соглашение.
- Нажимайте клавишу «Пробел» несколько раз, чтобы быстро прокрутить лицензионное соглашение.
- Нажмите клавишу «q», чтобы закрыть текст лицензионного соглашения и перейти к шагу принятия/отклонения.
-
Выполните одно из следующих действий:
- Введите «y» и нажмите клавишу [Enter], чтобы принять лицензионное соглашение и запустить установку.
- Введите «n» и нажмите клавишу [Enter], чтобы отклонить лицензионное соглашение и отменить установку.
-
Введите «v» и нажмите клавишу [Enter], чтобы снова открыть лицензионное соглашение для просмотра.
-
Дождитесь завершения установки (появится сообщение «Завершено!»), а затем запустите службу Data Movement Gateway:
sudo systemctl start repagent
-
При необходимости подтвердите, что служба запущена.
sudo systemctl status repagent
Статус должен быть следующим:
Active: active (running) since <timestamp> ago
Будет установлен driver.
Обновление driverа
Выполните команду обновления, если требуется удалить предыдущие версии driverа перед установкой предоставленной версии driverа.
Чтобы загрузить и обновить driver, выполните следующие действия.
-
Остановите службу Data Movement Gateway:
sudo systemctl stop repagent
-
Если нужно, подтвердите, что сервис остановлен:
sudo systemctl status repagent
Статус должен быть следующим:
Active: inactive (dead) since <timestamp> ago
-
На компьютере шлюза Data Movement измените рабочую папку на:
opt/qlik/gateway/movement/drivers/bin
-
Выполните следующую команду:
Синтаксис:
./update databricks
Если не удается загрузить driver (из-за ограничений доступа или технических проблем), появится сообщение с указанием места, откуда можно загрузить driver и куда его скопировать на компьютере шлюза Data Movement. После этого выполните команду update databricks еще раз.
В противном случае откроется лицензионное соглашение с конечным пользователем driverа.
-
Выполните одно из следующих действий:
- Нажмите клавишу [Enter] несколько раз, чтобы медленно прокрутить лицензионное соглашение.
- Нажимайте клавишу «Пробел» несколько раз, чтобы быстро прокрутить лицензионное соглашение.
- Нажмите клавишу «q», чтобы закрыть текст лицензионного соглашения и перейти к шагу принятия/отклонения.
-
Выполните одно из следующих действий:
- Введите «y» и нажмите клавишу [Enter], чтобы принять лицензионное соглашение и запустить установку.
- Введите «n» и нажмите клавишу [Enter], чтобы отклонить лицензионное соглашение и отменить установку.
- Введите «v» и нажмите клавишу [Enter], чтобы снова просмотреть лицензионное соглашение от начала.
-
Дождитесь завершения установки (появится сообщение «Завершено!»), а затем запустите службу Data Movement Gateway:
sudo systemctl start repagent
-
При необходимости подтвердите, что служба запущена.
sudo systemctl status repagent
Статус должен быть следующим:
Active: active (running) since <timestamp> ago
Будет удален старый driver и установлен новый driver.
Удаление driverа
Выполните команду удаления, если требуется удалить driver.
Чтобы удалить driver, выполните следующие действия.
-
Остановите все задачи, использующие данный коннектор.
-
На компьютере шлюза Data Movement измените рабочую папку на:
opt/qlik/gateway/movement/drivers/bin
-
Выполните следующую команду:
Синтаксис:
./uninstall databricks
driver будет удален.
Установка драйвера вручную
Установку driver вручную следует пытаться выполнить только в том случае, если автоматическая установка драйвера не завершилась успешно.
Установка драйвера ODBC
После установки Шлюз движения данных загрузите файл SimbaSparkODBC-<version>-LinuxRPM-64bit.zip. Прямую ссылку на загрузку поддерживаемой версии можно найти в разделе binary-artifacts в файле /opt/qlik/gateway/movement/drivers/manifests/databricks.yaml. После завершения загрузки скопируйте файл на компьютер Шлюз движения данных.
-
Остановите службу Data Movement Gateway:
sudo systemctl stop repagent
-
При необходимости убедитесь, что служба остановлена:
sudo systemctl status repagent
-
Установите драйвер на компьютере Data Movement Gateway.
-
После установки убедитесь, что в файле /etc/odbcinst.ini появился следующий раздел:
-
Запустите службу Data Movement Gateway:
sudo systemctl start repagent
-
При необходимости убедитесь, что служба запущена:
sudo systemctl status repagent
Статус должен быть следующим:
Active: active (running) since <timestamp> ago
Статус должен быть следующим:
Active: inactive (dead) since <timestamp> ago
[Databricks ODBC Driver] Driver=/opt/databricks/databricksodbc/lib/64/libdatabricksodbc64.so
Установка драйвера JDBC
-
Загрузите файл databricks-jdbc-<version>.jar . Прямую ссылку на загрузку поддерживаемой версии можно найти в разделе binary-artifacts в файле /opt/qlik/gateway/movement/drivers/manifests/databricks.yaml. После завершения загрузки скопируйте файл JAR в следующую папку на компьютере Шлюз движения данных:
/opt/qlik/gateway/movement/qcs_agents/qdi-db-commands/lib
-
Перезапустите службу Шлюз движения данных и убедитесь, что она запущена, выполнив команды, описанные в Команды службы Шлюз движения данных
Порт
Для исходящего трафика необходимо открыть порт брандмауэра 443.
Типы данных
В следующей таблице показаны типы данных Databricks, которые поддерживаются при использовании Qlik Cloud, и сопоставление по умолчанию из типов данных Qlik Cloud.
Информация о собственном типе данных сохраняется и отображается в столбце Собственный тип данных в видах набора данных. Если этот столбец не отображается, необходимо открыть инструмент «Управление столбцами» в виде набора данных и выбрать столбец Собственный тип данных.
| Типы данных Qlik Cloud | Типы данных Databricks |
|---|---|
|
BOOLEAN |
BOOLEAN |
|
BYTES |
VARCHAR (Длина в байтах) |
|
DATE |
DATE |
|
TIME |
STRING |
|
DATETIME |
TIMESTAMP Прецизионность всегда равна 6, даже если во входном столбце используется прецизионность ниже 6. Если во входном столбце используется прецизионность выше 6, вы можете сохранить полную прецизионность, рассмотрев возможность преобразования столбца в другой поддерживаемый тип, например STRING. |
|
INT1 |
TINYINT |
|
INT2 |
SMALLINT |
|
INT4 |
INT |
|
INT8 |
BIGINT |
|
NUMERIC |
DECIMAL (прецизионность, масштаб) |
|
REAL4 |
FLOAT |
|
REAL8 |
DOUBLE |
|
UINT1 |
SMALLINT |
|
UINT2 |
INT |
|
UINT4 |
BIGINT |
|
UINT8 |
DECIMAL (20, 0) |
|
STRING |
VARCHAR (длина в байтах) Если столбец имеет подтип JSON, а версия Databricks Runtime — 15.4 LTS или более поздняя, то: VARIANT |
|
WSTRING |
VARCHAR (длина в байтах) Если столбец имеет подтип JSON, а версия Databricks Runtime — 15.4 LTS или более поздняя, то: VARIANT |
|
NCLOB |
STRING Если столбец имеет подтип JSON, а версия Databricks Runtime — 15.4 LTS или более поздняя, то: VARIANT |
|
CLOB |
STRING Если столбец имеет подтип JSON, а версия Databricks Runtime — 15.4 LTS или более поздняя, то: VARIANT |
|
BLOB |
STRING |
| JSON |
VARIANT Примечание к информацииТип данных VARIANT поддерживается в Databricks в качестве общедоступной предварительной версии (Public Preview).
|
Следующие типы данных преобразуются в STRING(255):
-
MAP
-
ARRAY
-
STRUCT
Ограничения и рекомендации
-
При использовании Databricks на AWS с таблицами без первичного ключа перезагрузка таблиц в области промежуточного хранения завершится ошибкой в приложении Storage. Чтобы решить эту проблему, вы можете:
-
Определить первичный ключ в таблицах.
-
Установить для параметра spark.databricks.delta.alterTable.rename.enabledOnAWS значение True в Databricks.
-
При создании преобразования на основе SQL все поля VARCHAR возвращаются как STRING(255).
-