Azure Cloud Storage
Azure Cloud Storage — это управляемый сервис объектного хранилища Microsoft для неструктурированных данных, включая текст, двоичные файлы, медиафайлы, журналы и резервные копии приложений. Он поддерживает уровни доступа hot, cool и archive, предлагает геоизбыточную репликацию и интегрируется с Microsoft Entra ID (ранее Azure Active Directory) для безопасного управления доступом.
Qlik Talend Cloud подключается к Azure Cloud Storage с помощью приложения Microsoft Entra ID (субъекта-службы), которое имеет доступ на чтение к целевому контейнеру учетной записи хранения. Коннектор извлекает файлы из указанного контейнера, автоматически обнаруживает схемы путем выборки содержимого файлов и выполняет инкрементальную репликацию данных на основе меток времени изменения файлов.
Подготовка к аутентификации
Для доступа к данным необходимо аутентифицировать подключение с помощью учетных данных вашей учетной записи.
Для настройки учетной записи Azure Cloud Storage вам потребуется:
- Подписка Azure с учетной записью Azure Storage.
- Контейнер больших двоичных объектов (blob) в учетной записи хранения, содержащий файлы для репликации.
- Регистрация приложения Microsoft Entra ID с секретом клиента.
- Роль Читатель данных BLOB-объектов хранилища, назначенная субъекту-службе приложения, с областью действия на уровне учетной записи хранения или конкретного контейнера. Это рекомендуемая роль с наименьшими привилегиями для доступа только для чтения.
Чтобы зарегистрировать приложение Microsoft Entra ID и получить учетные данные:
- Войдите в свою учетную запись Azure.
- Перейдите в Microsoft Entra ID > Регистрация приложений > Новая регистрация.
- Введите следующую информацию для вашего приложения:
- Имя: Введите имя, например QlikDataIntegration.
- Поддерживаемые типы учетных записей: Выберите Учетные записи только в этом каталоге организации.
- Нажмите Зарегистрировать.
- На странице Обзор приложения скопируйте Идентификатор приложения (клиента) и Идентификатор каталога (клиента) и сохраните их в безопасном файле.
- Перейдите в Сертификаты и секреты > Секреты клиента > Новый секрет клиента.
- Введите описание и выберите срок действия для секрета клиента.
- Нажмите Добавить.
- Скопируйте значение секрета клиента и сохраните его в безопасном файле.
- На портале Azure откройте свою учетную запись хранения, затем перейдите в Управление доступом (IAM) > Добавить > Добавить назначение ролей.
- Выберите роль Читатель данных BLOB-объектов хранилища и назначьте эту роль только что зарегистрированному приложению.
- Нажмите Сохранить.
Поддерживаемые форматы файлов
- Текстовые файлы с разделителями:
.csv,.tsv,.psv,.txt(с настраиваемым разделителем) - JSON Lines:
.jsonl - Parquet:
.parquet - Avro:
.avro - Excel:
.xlsx(поддерживается несколько рабочих листов в книге; строки каждого листа реплицируются, а имя листа добавляется к столбцу_sdc_source_file) - Файлы, сжатые с помощью Gzip:
.gz(содержащие любой из вышеперечисленных форматов)
Создание подключения
Для получения дополнительной информации см. раздел Подключение к приложениям SaaS.
- Заполните необходимые свойства подключения.
-
Заполните поле Имя подключения.
-
Установите флажок Открыть метаданные подключения, чтобы определить метаданные для подключения, когда оно будет создано.
-
Щелкните Создать.
| Настройка | Описание |
|---|---|
| Шлюз данных |
Выберите шлюз Шлюз движения данных, если этого требует текущий сценарий использования. Примечание к информации
Это поле недоступно при использовании подписки Qlik Talend Cloud Starter, так как она не поддерживает Шлюз движения данных. Если используется другой уровень подписки или не требуется использовать Шлюз движения данных, выберите Нет. Для получения информации о преимуществах Шлюз движения данных и о сценариях, требующих его использования, см. раздел Шлюз данных Qlik — движение данных. |
| Дата начала |
Введите дату в формате |
| Имя учетной записи хранения | Имя учетной записи Azure Storage, например mystorageaccount без https:// или .blob.core.windows.net. |
| Имя контейнера | Имя контейнера больших двоичных объектов (blob), например my-container. |
| Идентификатор клиента | Идентификатор клиента. |
| Таблицы | Конфигурация таблиц определяет, какие файлы считываются и как интерпретируется их содержимое. Каждое определение таблицы включает шаблон поиска файлов, имя таблицы и дополнительные настройки для кастомизации обработки файлов. |
| Идентификатор клиента | Идентификатор клиента. |
| Секрет клиента | Секрет клиента. |
Конфигурация таблиц
Каждая запись в конфигурации таблиц представляет собой логическую таблицу, полученную из файлов в контейнере. Для каждой таблицы можно настроить следующие свойства:
| Свойство | Обязательное или необязательное | Описание |
|---|---|---|
| Имя таблицы | Обязательное |
Укажите имя логической таблицы (например, my_orders_csv). Это станет именем потока в Qlik Talend Cloud.
|
| Шаблон поиска | Обязательное |
Укажите регулярное выражение для сопоставления имен файлов (например, .*\.csv$ соответствует всем файлам CSV). Примените это к именам файлов в контейнере или указанном каталоге, если он предоставлен.
|
| Каталог | Необязательное |
Введите префикс пути к папке внутри контейнера, чтобы сузить поиск файлов (например, exports/orders/). Повысьте производительность за счет ограничения сканируемых файлов. Это не регулярное выражение.
|
| Первичный ключ | Необязательное |
Определите разделенный запятыми список имен столбцов для использования в качестве первичного ключа (например, id или id,date). Для файлов CSV используйте имена полей заголовка; для файлов JSONL используйте ключи объектов верхнего уровня. Оставьте пустым для использования репликации всей таблицы. Заполните, чтобы включить инкрементальную репликацию на основе времени изменения файла.
|
| Указать поля даты и времени | Необязательное |
Перечислите имена столбцов через запятую, которые следует рассматривать как поля даты и времени, даже если они не были автоматически обнаружены во время обнаружения схемы (например, created_at, updated_at).
|
| Разделитель | Необязательное |
Укажите разделитель полей для текстовых файлов с разделителями. По умолчанию используется , (запятая). Используйте \t для файлов TSV или | для файлов PSV. Если не указано, разделитель определяется автоматически на основе расширения файла.
|
-
Настройте файлы
.jsonlи.csvкак отдельные таблицы для обеспечения точной обработки схемы и согласованности данных. -
Убедитесь, что все файлы
.csv, соответствующие шаблону поиска, включают согласованную строку заголовка с идентичными именами и порядком столбцов. -
Используйте согласованные ключи атрибутов объектов во всех файлах
.jsonl, определенных для каждой таблицы. Имена ключей и структуры должны совпадать для надежного обнаружения схемы.
Реплицируемые таблицы
Таблицы определяются в предоставленной вами конфигурации таблиц. Каждая таблица соответствует набору файлов в контейнере больших двоичных объектов (blob), которые соответствуют указанному шаблону поиска и, если применимо, префиксу каталога. Коннектор обнаруживает схему таблицы путем выборки до пяти файлов на таблицу, считывая каждую пятую строку и анализируя до 1000 записей на файл.
Репликация использует инкрементальный подход на основе меток времени изменения файлов, когда настроен первичный ключ. Файлы, измененные после последней закладки синхронизации, обрабатываются во время каждого извлечения. Если первичный ключ не указан, вся таблица полностью реплицируется при каждом запуске.
Следующие системные столбцы добавляются в каждую таблицу по умолчанию:
| Столбец | Описание |
|---|---|
_sdc_source_container
|
Имя контейнера больших двоичных объектов (blob) Azure, в котором была создана запись. |
_sdc_source_file
|
Полный путь к файлу, содержащему запись. Для файлов Excel добавляется имя листа (например, exports/q1.xlsx/Sheet1).
|
_sdc_source_lineno
|
Номер строки записи в файле. |
_sdc_extra
|
Дополнительные проанализированные поля, которые не соответствуют обнаруженной схеме (только для файлов .jsonl).
|
Ограничения и рекомендации
- Имя учетной записи хранения предоставляется в виде простого имени, а не URL-адреса.
-
Поддерживаются файлы, сжатые с помощью Gzip (
.gz). Коннектор считывает исходное имя файла из заголовка gzip, чтобы определить внутренний формат файла. Файлы Gzip, созданные с параметром--no-name(без имени файла в заголовке), пропускаются. -
Файлы с расширениями
.csv,.txt,.tsv,.psvили.jsonlпроверяются на наличие магических байтов gzip и прозрачно распаковываются, даже если файл не имеет расширения.gz. -
Вложенное сжатие (например, файл
.gzвнутри другого.gz) не поддерживается и пропускается. -
Поле Шаблон поиска использует синтаксис регулярных выражений, а не шаблоны glob (например, используйте
.*\.csv$вместо*.csv). - Файлы без распознанного расширения пропускаются, и выдается предупреждение.
- Коннектор включает встроенную логику повторных попыток с экспоненциальной задержкой для ограничений скорости API Azure (HTTP 429) и временных ошибок сервера (HTTP 500, 502, 503, 504), до пяти попыток.
- Ожидается, что кодировка файла будет UTF-8.