# Azure Synapse Analytics

Azure Synapse Analytics можно использовать как целевую платформу данных в конвейере данных. В конвейере данных можно выполнять различные операции ELT на целевой платформе, включая хранение, преобразование, регистрацию данных и создание киосков данных.

Настройка Azure Synapse Analytics в качестве цели подразумевает следующее:

* [Выполнение предварительных условий](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/TargetConnections/azure-target.htm#Prerequi2)
* Настройка подключения к облачной промежуточной области (Azure Data Lake Storage). Это необязательно, если выполняется [регистрация существующих данных](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Onboarding/Registering-data.htm).
* Настройка подключения к Azure Synapse Analytics

## Настройка облачной промежуточной области

Примечание к информацииЕсли выполняется [регистрация существующих данных](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Onboarding/Registering-data.htm), нет необходимости настраивать облачную промежуточную область.

Также требуется облачная промежуточная область Azure Data Lake Storage, где планируется хранить данные перед тем, как они будут применены и перемещены в хранилище. Для получения информации о настройке подключения к Azure Data Lake Storage, см. [Azure Data Lake Storage](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/TargetConnections/adls-target.htm).

## Настройка свойств подключения Azure Synapse Analytics

После настройки параметров целиAzure Data Lake Storage выполните следующие действия.

1. В подключениях, нажмите Создать подключение.

2. Выберите Azure Synapse Analyticsцелевой коннектор, а затем укажите следующие параметры:

### Цель данных

#### Шлюз данных

Примечание к информацииЭто поле недоступно при использовании подписки Qlik Talend Cloud Starter, так как Шлюз движения данных не поддерживается для этого уровня подписки.

Шлюз движения данных требуется, только если целевая база данных недоступна из Qlik Cloud и доступна только по ссылке PrivateLink (например, если она расположена или в виртуальном частном облаке). В таком случае выберите Шлюз движения данных, через который требуется обращаться к целевой базе данных.

В зависимости от конкретной ситуации это будет либо тот же Шлюз движения данных, развернутый для перемещения данных, либо другой шлюз.

Для получения информации о сценариях применения Шлюз движения данных см. разделы [Когда требуется Шлюз движения данных?](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/replication-gateway.htm#top) и [Распространенные варианты использования](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/replication-gateway.htm#Common).

Если целевая база данных напрямую доступна из Qlik Cloud, выберите Нет.

Примечание к информацииПри обращении к целевой базе данных через Шлюз движения данных, также необходимо установить соответствующий драйвер на компьютер с Шлюз движения данных. Для получения подробных сведений см. [Azure Synapse Analytics](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/TargetConnections/azure-target.htm#Driver) ниже.

### Свойства подключения

* Сервер: имя сервера для идентификации местоположения базы данных Azure Synapse Analytics.

* Порт: порт, через который будет осуществляться доступ к базе данных Azure Synapse Analytics. Значение по умолчанию — 1433.

### Свойства учетной записи (Account properties)

Имя пользователя и Пароль: имя и пароль пользователя для авторизованного доступа к базе данных Azure Synapse Analytics.

### Свойства базы данных

* Имя базы данных: задать базу данных можно двумя способами:

  * Метод 1 - Выбор из списка: Этот метод требует, чтобы пользователь был [создан в главной базе данных](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/TargetConnections/azure-target.htm#Database). Щелкните Загрузить базы данных, а затем выберите базу данных.
  * Метод 2 - Вручную: Выберите Введите имя базы данных вручную, а затем введите имя базы данных.

### Свойства загрузки данных

Примечание к информацииЕсли выполняется только [регистрация данных](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Onboarding/Registering-data.htm) (не промежуточное хранение данных), эти поля не являются обязательными.

Учетные данные SQL Server могут быть созданы автоматически во время выполнения (по умолчанию), либо можно использовать существующую учетную запись. Выполните нужное из следующих действий:

* Когда установлен флажок Create SQL Server credential (Создать учетные данные SQL Server) (по умолчанию), во время выполнения автоматически создается учетная запись SQL. Укажите ключ доступа в поле Ключ доступа.
* Чтобы использовать существующую учетную запись, снимите флажок Create SQL Server credential (Создать учетные данные SQL Server) и укажите имя своей учетной записи SQL Server в поле Credential name (Имя учетной записи).

### Имя

Отображаемое имя для подключения.

## Предварительные требования

### Разрешения

Необходимо предоставить разрешения как для хранилища, таки и для базы данных, как описано ниже.

#### Разрешения для хранилища

Пользователь, указанный в коннекторе Azure Synapse Analytics должен иметь следующие разрешения для хранилища.

* Для контейнера в хранилище ADLS Gen2: LIST
* Для папки в хранилище ADLS Gen2: READ, WRITE и DELETE
* В настройках доступа (IAM) к файловой системе ADLS Gen2 в Data Movement Gateway (AD App ID) должна быть указана роль «Storage Blob Data Contributor». Назначение роли может занять несколько минут.

#### Разрешения для базы данных

Пользователь, указанный в коннекторе Azure Synapse Analytics, должен иметь следующие разрешения в базе данных:

* **Общие разрешения:**

  * db\_owner role

* **Разрешения для таблиц:**

  * SELECT, INSERT, UPDATE и DELETE
  * Массовая загрузка
  * CREATE, ALTER, DROP (если требуется в соответствии с определением задачи)

### Выбор базы данных

Чтобы обеспечить возможность выбора базы данных (щелчком параметра Загрузить базы данных в диалоговом окне коннектора), пользователь, указанный в параметрах коннектора, должен быть создан в основной базе данных.

### Настройка драйвера

Драйвер требуется только в случае обращения к базе данных через Шлюз движения данных. В таком случае необходимо установить драйвер на компьютер Шлюз движения данных.

driver можно установить с помощью программы для установки драйверов (рекомендуется) или вручную. Ручную установку следует выполнять только в том маловероятном случае, если возникла проблема с программой для установки драйверов.

#### Использование программы для установки драйверов для установки драйвера

В этом разделе описывается процедура установки необходимого driverа. Она включает выполнение скрипта, который автоматически загружает, устанавливает и настраивает необходимый driver. Также можно выполнять скрипты для обновления и удаления driverа по необходимости.

Подготовка к установке

* Убедитесь, что на сервере шлюза Data Movement установлена версия Python 3.6 или более поздняя.

  Python предустанавливается в большинстве дистрибутивов Linux. Чтобы проверить, какая версия Python установлена в системе, выполните следующую команду:

  python3 --version

Установка driver

Чтобы загрузить и установить driver, выполните следующие действия.

1. Остановите службу Data Movement Gateway:

   sudo systemctl stop repagent

2. Если нужно, подтвердите, что сервис остановлен:

   sudo systemctl status repagent

   Статус должен быть следующим:

   Active: inactive (dead) since &lt;timestamp&gt; ago

3. На компьютере шлюза Data Movement измените рабочую папку на:

   opt/qlik/gateway/movement/drivers/bin

4. Выполните следующую команду:

   Синтаксис:

   ./install sqlserver

   Если не удается загрузить driver (из-за ограничений доступа или технических проблем), появится сообщение с указанием места, откуда можно загрузить driver и куда его скопировать на компьютере шлюза Data Movement. После этого выполните команду install sqlserver еще раз.

   В противном случае откроется лицензионное соглашение с конечным пользователем driverа.

5. Выполните одно из следующих действий:

   * Нажмите клавишу [Enter] несколько раз, чтобы медленно прокрутить лицензионное соглашение.
   * Нажимайте клавишу «Пробел» несколько раз, чтобы быстро прокрутить лицензионное соглашение.
   * Нажмите клавишу «q», чтобы закрыть текст лицензионного соглашения и перейти к шагу принятия/отклонения.

6. Выполните одно из следующих действий:

   * Введите «y» и нажмите клавишу [Enter], чтобы принять лицензионное соглашение и запустить установку.

   * Введите «n» и нажмите клавишу [Enter], чтобы отклонить лицензионное соглашение и отменить установку.

   * Введите «v» и нажмите клавишу [Enter], чтобы снова открыть лицензионное соглашение для просмотра.

   Будет установлен driver.

7. Дождитесь завершения установки (появится сообщение «Завершено!»), а затем запустите службу Data Movement Gateway:

   sudo systemctl start repagent

8. При необходимости подтвердите, что служба запущена.

   sudo systemctl status repagent

   Статус должен быть следующим:

   Active: active (running) since &lt;timestamp&gt; ago

Обновление driverа

Выполните команду обновления, если требуется удалить предыдущие версии driverа перед установкой предоставленной версии driverа.

Чтобы загрузить и обновить driver, выполните следующие действия.

1. Остановите службу Data Movement Gateway:

   sudo systemctl stop repagent

2. Если нужно, подтвердите, что сервис остановлен:

   sudo systemctl status repagent

   Статус должен быть следующим:

   Active: inactive (dead) since &lt;timestamp&gt; ago

3. На компьютере шлюза Data Movement измените рабочую папку на:

   opt/qlik/gateway/movement/drivers/bin

4. Выполните следующую команду:

   Синтаксис:

   ./update sqlserver

   Если не удается загрузить driver (из-за ограничений доступа или технических проблем), появится сообщение с указанием места, откуда можно загрузить driver и куда его скопировать на компьютере шлюза Data Movement. После этого выполните команду update sqlserver еще раз.

   В противном случае откроется лицензионное соглашение с конечным пользователем driverа.

5. Выполните одно из следующих действий:

   * Нажмите клавишу [Enter] несколько раз, чтобы медленно прокрутить лицензионное соглашение.
   * Нажимайте клавишу «Пробел» несколько раз, чтобы быстро прокрутить лицензионное соглашение.
   * Нажмите клавишу «q», чтобы закрыть текст лицензионного соглашения и перейти к шагу принятия/отклонения.

6. Выполните одно из следующих действий:

   * Введите «y» и нажмите клавишу [Enter], чтобы принять лицензионное соглашение и запустить установку.
   * Введите «n» и нажмите клавишу [Enter], чтобы отклонить лицензионное соглашение и отменить установку.
   * Введите «v» и нажмите клавишу [Enter], чтобы снова просмотреть лицензионное соглашение от начала.

   Будет удален старый driver и установлен новый driver.

7. Дождитесь завершения установки (появится сообщение «Завершено!»), а затем запустите службу Data Movement Gateway:

   sudo systemctl start repagent

8. При необходимости подтвердите, что служба запущена.

   sudo systemctl status repagent

   Статус должен быть следующим:

   Active: active (running) since &lt;timestamp&gt; ago

Удаление driverа

Выполните команду удаления, если требуется удалить driver.

Чтобы удалить driver, выполните следующие действия.

1. Остановите все задачи, использующие данный коннектор.

2. На компьютере шлюза Data Movement измените рабочую папку на:

   opt/qlik/gateway/movement/drivers/bin

3. Выполните следующую команду:

   Синтаксис:

   ./uninstall sqlserver

   driver будет удален.

#### Установка драйвера вручную

Установку driver вручную следует пытаться выполнить только в том случае, если автоматическая установка драйвера не завершилась успешно.

Необходимо установить и драйвер ODBC, и драйвер JDBC.

Установка драйвера ODBC

После установки Шлюз движения данных загрузите драйвер msodbcsql&lt;версия&gt;.x86\_64.rpm. Прямую ссылку для загрузки поддерживаемой версии можно найти в разделе binary-artifacts в /opt/qlik/gateway/movement/drivers/manifests/sqlserver.yaml. После завершения загрузки скопируйте RPM на компьютер Шлюз движения данных.

На сервере Data Movement gateway откройте приглашение оболочки и выполните действия, указанные ниже.

1. Остановите службу Data Movement gateway:

   sudo systemctl stop repagent

2. Если нужно, подтвердите, что служба остановлена:

   sudo systemctl status repagent

   Статус должен быть следующим:

   Active: inactive (dead) since &lt;timestamp&gt; ago

3. Установите драйвер (RPM).

4. Замените рабочую папку на &lt;product\_dir&gt;/bin.

5. Скопируйте местоположение драйвера в файл `site_arep_login.sh` следующим образом:

   ```
   echo "export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:/opt/microsoft/msodbcsql<version>/lib64/" >> site_arep_login.sh
                           
   ```

   После этого драйвер будет добавлен в "LD\_LIBRARY\_PATH", а в файле **site\_arep\_login.sh** обновится расположение драйвера.

6. При необходимости подтвердите, что расположение драйвера скопировано.

   ```
   cat site_arep_login.sh
                           
   ```

7. Запустите службу Data Movement gateway.

   sudo systemctl start repagent

8. При необходимости подтвердите, что служба запущена.

   sudo systemctl status repagent

   Статус должен быть следующим:

   Active: active (running) since &lt;timestamp&gt; ago

9. Для Data Movement gateway требуется следующая библиотека ODBC: msodbcsql-18.1.so.1.1

   Чтобы проверить, какая версия библиотеки установлена в данный момент, выполните следующую команду:

   ```
   ls /opt/microsoft/msodbcsql<version>/lib64/
                           
   ```

   Если у имеющейся библиотеки другой номер версии (например, libmsodbcsql-18.0.so.1.1), необходимо создать символическую ссылку между имеющейся и нужной библиотеками.

   Для этого выполните следующие команды:

   ```
   cd /opt/microsoft/msodbcsql<version>/lib64/
                           
   ```

   ```
   ln -s existing_library_name msodbcsql-18.1.so.1.1
   ```

   где `existing_library_name` — это имя установленной в данный момент библиотеки (например, libmsodbcsql-18.0.so.1.1).

Установка драйвера JDBC

1. Загрузите файл mssql-jdbc-&lt;версия&gt;.jar. Прямую ссылку для загрузки поддерживаемой версии можно найти в разделе binary-artifacts в /opt/qlik/gateway/movement/drivers/manifests/sqlserver.yaml. После завершения загрузки скопируйте файл JAR в следующую папку на компьютере Шлюз движения данных:

   /opt/qlik/gateway/movement/qcs\_agents/qdi-db-commands/lib

2. Перезапустите службу Шлюз движения данных, выполнив команду, описанную в [Перезапуск службы](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/dm-gateway-managing.htm#Restarti2)

### Порты

* Если Data Movement Gateway работает на сервере за пределами Azure, откройте порт 1433 для исходящего трафика.
* Если Data Movement Gateway работает на виртуальной машине Azure, откройте следующие порты для исходящего трафика:
  * 1433
  * 11000-11999
  * 14000-14999

## Ограничения и замечания, связанные с

При использовании Azure Synapse Analytics в качестве цели необходимо учитывать следующие ограничения и замечания:

Примечание к информацииВ проектах конвейеров данных коннекторы SaaS не поддерживаются в качестве источников для Azure Synapse Analytics.

* Исходные столбцы с типами данных CHAR/VARCHAR и нелатинской сортировкой (например, Chinese\_PRC\_CI\_AS) необходимо сопоставить с NVARCHAR.

* Обработка пустого исходного столбца:

  * Когда исходный двоичный столбец (например, VARBINARY или BLOB) с пустым значением помещается на промежуточное хранение (перемещение), Qlik Talend Data Integration вставляет NULL в соответствующий целевой столбец.

  Примечание к информацииПустые значения являются не значениями NULL, а данными с нулевой длиной.

* Промежуточное хранение (Перемещение) записей, размер которых превышает 1 МБ, не поддерживается.

* Для промежуточного хранения (Перемещение) данных с 4-байтовыми символами «эмодзи» необходимо выбрать для целевого столбца тип данных «широкая строка» (например, NCHAR/NVARCHAR/NCLOB).

## Типы данных

В следующей таблице показаны типы данных Azure Synapse Analytics, которые поддерживаются при использовании Qlik Cloud, и сопоставление типов данных из Qlik Cloud по умолчанию.

Информация о собственном типе данных сохраняется и отображается в столбце Собственный тип данных в видах набора данных. Если этот столбец не отображается, необходимо открыть инструмент «Управление столбцами» в виде набора данных и выбрать столбец Собственный тип данных.

Поддерживаемые типы данных

| Qlik Cloud типы данных | Azure Synapse Analytics типы данных |
| --- | --- |
| BOOLEAN | BIT |
| BYTES | VARBINARY (длина в байтах) |
| DATE | DATE |
| TIME | TIME |
| DATETIME | TIMESTAMP<br><br>Если масштаб &gt; 7: STRING(37) |
| INT1 | BYTEINT |
| INT2 | SMALLINT |
| INT4 | INTEGER |
| INT8 | BIGINT |
| NUMERIC | NUMERIC (точность, масштаб) |
| REAL4 | REAL |
| REAL8 | FLOAT; |
| UINT1 | BYTEINT |
| UINT2 | INTEGER |
| UINT4 | INTEGER |
| UINT8 | BIGINT |
| STRING | VARCHAR (длина в байтах) |
| WSTRING | NVARCHAR (длина в байтах) |
| BLOB | VARBINARY (длина в байтах) |
| NCLOB | NVARCHAR (длина в байтах) |
| CLOB | VARCHAR (длина в байтах) |
| JSON | VARCHAR (max) |