Databricks
Можно использовать Databricks как целевая платформа данных в конвейере данных или в задаче репликации. В конвейере данных можно выполнять различные операции ELT на целевой платформе, включая хранение, преобразование, регистрацию данных и создание киосков данных. С другой стороны, задача репликации подразумевает репликацию данных непосредственно из исходной системы в целевую с сохранением базовых функций преобразования, но без поддержки операций ELT.
Настройка Databricks в качестве цели подразумевает следующее:
- Выполнение предварительных условий
- Настройка подключения к облачной промежуточной области. Это необязательно, если выполняется регистрация существующих данных.
- Настройка подключения к Databricks
Настройка облачной промежуточной области
При использовании коннектора Databricks также необходимо определить облачную промежуточную область, в которой будут храниться данные и изменения перед их применением и перемещением в хранилище. Поддерживаются следующие платформы хранилищ.
Настройка подключения к Databricks
После настройки параметров промежуточной области выполните следующие действия.
-
В виде Подключения нажмите Создать подключение.
-
Выберите коннектор цели Databricks, а затем задайте следующие настройки.
Цель данных
Шлюз данных
Data Movement Gateway требуется, только если целевая база данных недоступна из Qlik Cloud и доступна только по ссылке PrivateLink (например, если она расположена или в виртуальном частном облаке). В таком случае выберите Data Movement Gateway, через который требуется обращаться к целевой базе данных.
В зависимости от конкретной ситуации это будет либо тот же Data Movement Gateway, развернутый для перемещения данных, либо другой шлюз.
Для получения информации о сценариях применения Data Movement Gateway см. разделы Когда требуется Data Movement Gateway? и Общие случаи использования.
Если целевая база данных напрямую доступна из Qlik Cloud, выберите Нет.
Свойства подключения
- Host (Хост): имя сервера рабочего пространства Databricks.
- Port (Порт): порт для доступа к рабочему пространству.
- HTTP Path (Путь HTTP): путь к используемому кластеру.
- Token (Токен): персональный токен для доступа к рабочему пространству.
Свойства каталога
Щелкните Load catalogs (Загрузить каталоги), чтобы загрузить доступные каталоги, затем выберите нужный каталог. Если в среде нет настроенных каталогов, выберите каталог hive_metastore, используемый по умолчанию.
Необходимо разрешить Data Movement Gateway доступ к внешним (неуправляемым) таблицам, указав внешнее местоположение в 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 должен быть настроен для доступа к облачному хранилищу. Инструкции по настройке см. справочный раздел на веб-сайте производителя.
Настройка драйвера
Драйвер требуется только в случае обращения к базе данных через Data Movement Gateway. В таком случае необходимо установить драйвер на компьютер Data Movement Gateway.
driver можно установить с помощью программы для установки драйверов (рекомендуется) или вручную. Ручную установку следует выполнять только в том маловероятном случае, если возникла проблема с программой для установки драйверов.
Использование программы для установки драйверов для установки драйвера
В этом разделе описывается процедура установки необходимого driverа. Она включает выполнение скрипта, который автоматически загружает, устанавливает и настраивает необходимый driver. Также можно выполнять скрипты для обновления и удаления driverа по необходимости.
Подготовка к установке
-
Убедитесь, что на сервере шлюза Перемещение данных установлена версия 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
-
На компьютере шлюза Перемещение данных измените рабочую папку на:
opt/qlik/gateway/movement/drivers/bin
-
Выполните следующую команду:
Синтаксис:
./install databricks
Если не удается загрузить driver (из-за ограничений доступа или технических проблем), появится сообщение с указанием места, откуда можно загрузить driver и куда его скопировать на компьютере шлюза Перемещение данных. После этого выполните команду 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
-
На компьютере шлюза Перемещение данных измените рабочую папку на:
opt/qlik/gateway/movement/drivers/bin
-
Выполните следующую команду:
Синтаксис:
./update databricks
Если не удается загрузить driver (из-за ограничений доступа или технических проблем), появится сообщение с указанием места, откуда можно загрузить driver и куда его скопировать на компьютере шлюза Перемещение данных. После этого выполните команду 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, выполните следующие действия.
-
Остановите все задачи, использующие данный коннектор.
-
На компьютере шлюза Перемещение данных измените рабочую папку на:
opt/qlik/gateway/movement/drivers/bin
-
Выполните следующую команду:
Синтаксис:
./uninstall databricks
driver будет удален.
Установка драйвера вручную
Установку driver вручную следует пытаться выполнить только в том случае, если автоматическая установка драйвера не завершилась успешно.
Установка драйвера ODBC
После установки Data Movement Gateway загрузите файл SimbaSparkODBC-<версия>-LinuxRPM-64bit.zip. Прямую ссылку для загрузки поддерживаемой версии можно найти в разделе binary-artifacts в /opt/qlik/gateway/movement/drivers/manifests/databricks.yaml. После завершения загрузки скопируйте файл на компьютер Data Movement Gateway.
-
Остановите службу 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
[Simba Spark ODBC Driver] Description=Amazon Hive ODBC Driver (64-bit) Driver=/opt/simba/spark/lib/64/libsparkodbc_sb64.so
Установка драйвера JDBC
-
Загрузите файл databricks-jdbc-<версия>.jar. Прямую ссылку для загрузки поддерживаемой версии можно найти в разделе binary-artifacts в /opt/qlik/gateway/movement/drivers/manifests/databricks.yaml. После завершения загрузки скопируйте файл JAR в следующую папку на компьютере Data Movement Gateway:
/opt/qlik/gateway/movement/qcs_agents/qdi-db-commands/lib
-
Перезапустите службу Data Movement Gateway и проверьте, что она запустилась, выполнив команды, описанные в Команды службы Data Movement Gateway
Порт
Для исходящего трафика необходимо открыть порт брандмауэра 443.
Типы данных
В следующей таблице показаны типы данных Databricks, которые поддерживаются при использовании Qlik Cloud, и сопоставление типов данных из Qlik Cloud по умолчанию.
Информация о собственном типе данных сохраняется и отображается в столбце Собственный тип данных в видах набора данных. Если этот столбец не отображается, необходимо открыть инструмент «Управление столбцами» в виде набора данных и выбрать столбец Собственный тип данных.
Типы данных Qlik Cloud | Типы данных Databricks |
---|---|
BOOLEAN |
BOOLEAN |
BYTES |
STRING |
DATE |
DATE |
TIME |
STRING |
DATETIME |
TIMESTAMP |
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 (длина в байтах) |
WSTRING |
VARCHAR (длина в байтах) |
BLOB |
STRING |
NCLOB |
STRING |
CLOB |
STRING |
Следующие типы данных преобразуются в тип STRING(255):
-
MAP
-
ARRAY;
-
STRUCT
Ограничения и замечания
-
Если использовании Databricks на AWS используется с таблицами без первичного ключа, в приложении хранилища не удается выполнить перезагрузку таблиц в промежуточном хранении. Чтобы устранить эту проблему, выполните следующее
-
Определите первичный ключ в таблицах.
-
В Databricks задайте в spark.databricks.delta.alterTable.rename.enabledOnAWS значение «True».
-
При создании преобразования на основе SQL все поля VARCHAR возвращаются как STRING(255).
-