# Google Cloud Storage

Google Cloud Storage — это единый сервис объектного хранения Google для хранения данных и доступа к ним в инфраструктуре Google Cloud. Оно обеспечивает высокую доступность, глобальное резервирование и интегрируется с более широкой экосистемой Google Cloud.

Qlik Talend Cloud использует сервисный аккаунт Google Cloud с доступом на чтение к целевому блоку для подключения к Google Cloud Storage (GCS). Коннектор извлекает файлы из указанного блока, автоматически определяет схемы путем выборки содержимого файлов и выполняет инкрементную репликацию данных на основе временных меток изменения файлов.

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/SourcesConnections/Connecting-Google-Cloud-Storage.htm)

#### Снимок функции

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

| Функция/возможность | Сведения о поддержке |
| --- | --- |
| Поддерживаемые проекты Qlik Talend Data Integration | Только [проекты репликации](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Replicating/data-replication-task.htm). Проекты конвейера данных не поддерживаются. |
| [Методы обновления целей](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/SourcesConnections/Change-processing.htm) | Задачи репликации:<br><br><ul><li><p>Применить изменения</p></li><li><p>Сохранить изменения</p></li></ul><br><br>Промежуточное хранение данных в озере данных:<br><br><ul><li><p>Захват изменений данных (CDC)</p></li></ul> |
| [Подключение к приложениям SaaS](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Landing/connecting-web-applications.htm#Managing) | Создание метаданных вручную не требуется. |
| [Автоматическая эволюция схемы](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Replicating/replicating-settings.htm#Schema) | Поддерживается только операция Изменить тип данных столбца. |
| Репликация столбцов LOB (NCLOB, CLOB и BLOB) | Не поддерживается. |
| Запланированный CDC | Требуется. Так целевой объект обновляется в соответствии с изменениями в источнике.<br><br>Для получения информации о задачах репликации см. раздел [Планирование задач](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Replicating/replicating-settings.htm#Scheduli2)<br><br>Для получения информации о задачах промежуточного хранения в озере см. раздел [Планирование CDC для задач промежуточного хранения в озере](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Replicating/landing-datalakes-settings.htm#Scheduli2) |
| Уведомления | Частично поддерживается<br><br>[Настройка уведомлений об изменениях в работе](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Introduction/Notifications.htm) |
| Мониторинг | Только CDC, так как полная загрузка для этого коннектора не актуальна.<br><br>[Мониторинг индивидуальной задачи данных](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Introduction/Monitoring-data-tasks.htm) |
| Автоматическое извлечение вложенной полезной нагрузки столбцов JSON | Не поддерживается. Вложенная полезная нагрузка столбцов JSON в исходных наборах данных не извлекается автоматически в цели. |

## Подготовка к проверке подлинности

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

Примечание к информацииУбедитесь, что используемая учетная запись имеет доступ для чтения к таблицам, которые требуется получить.

Чтобы настроить учетную запись Google Cloud Storage, вам потребуется:

* Проект Google Cloud Platform (GCP) с включенным Cloud Storage API.

* Блок Google Cloud Storage (GCS), содержащий файлы для репликации.

* Сервисный аккаунт с доступом на чтение к блоку.

  Рекомендуемая роль — Storage Object Viewer (`roles/storage.objectViewer`), которая предоставляет необходимые разрешения `storage.objects.get` и `storage.objects.list`. Более подробную информацию см. в [документации по ролям IAM в Google Cloud Storage](https://docs.cloud.google.com/storage/docs/access-control/iam-roles).

* JSON-файл ключа, скачанный для сервисного аккаунта.

Чтобы создать сервисный аккаунт и получить учетные данные:

1. Войдите в свой аккаунт [Google Cloud](https://accounts.google.com/v3/signin/identifier?authuser=0&ec=GAlAywI&hl=en&flowName=GlifWebSignIn&flowEntry=AddSession&dsh=S-1020015778%3A1777897358935634).

2. Перейдите в раздел IAM и администрирование &gt; Сервисные аккаунты.

3. Нажмите кнопку Создать сервисный аккаунт.

4. Введите имя и описание сервисного аккаунта, затем нажмите Создать и продолжить.

5. Назначьте сервисному аккаунту роль Storage Object Viewer или пользовательскую роль с разрешениями `storage.objects.get` и `storage.objects.list`.

6. Нажмите Продолжить и Готово.

7. В только что созданном сервисном аккаунте нажмите меню Действия.

8. Перейдите в Управление ключами &gt; Добавить ключ &gt; Создать новый ключ.

9. Выберите JSON и нажмите Создать.

   Файл ключа JSON скачивается непосредственно на ваш компьютер. Этот файл содержит поля `project_id`, `client_email` и `private_key`, необходимые для установки подключения.

   Вы можете загрузить файл ключа только один раз. Обязательно сохраните его в надежном месте и создайте резервную копию, так как он предоставляет доступ к вашим ресурсам Google Cloud.

### Поддерживаемые форматы файлов

* Текст с разделителями: CSV, TSV, PSV, TXT (с настраиваемым разделителем)
* JSON Lines (`.jsonl`)
* Parquet (`.parquet`)
* Avro (`.avro`)
* Файлы, сжатые с помощью Gzip (`.gz`), содержащие любой из указанных выше форматов
* ZIP-архивы, содержащие файлы CSV, JSON Lines, TXT, TSV, PSV или Gzip

## Создание подключения

Для получения дополнительной информации см. раздел [Подключение к приложениям SaaS](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Landing/connecting-web-applications.htm).

1. Заполните необходимые свойства подключения.

2. Заполните поле Имя подключения.

3. Установите флажок Открыть метаданные подключения, чтобы определить метаданные для подключения, когда оно будет создано.

4. Щелкните Создать.

Параметры подключения

| Параметр | Описание |
| --- | --- |
| Шлюз данных | Выберите шлюз Шлюз движения данных, если этого требует текущий сценарий использования.<br><br>Примечание к информации<br><br>Это поле недоступно при использовании подписки Qlik Talend Cloud Starter, так как она не поддерживает Шлюз движения данных. Если используется другой уровень подписки или не требуется использовать Шлюз движения данных, выберите Нет.<br><br>Для получения информации о преимуществах Шлюз движения данных и о сценариях, требующих его использования, см. раздел [Шлюз данных Qlik — движение данных](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/replication-gateway.htm). |
| Дата начала | Введите дату в формате `MM/DD/YYYY`, начиная с которой данные должны реплицироваться из источника в цель. |
| Электронная почта клиента | Адрес электронной почты клиента из JSON-файла ключа сервисного аккаунта. |
| Идентификатор проекта | Идентификатор проекта из JSON-файла ключа сервисного аккаунта. |
| Корзина | Имя блока Google Cloud Storage (GCS), в котором хранятся файлы, например, `my-gcs-bucket`.<br><br>Не включайте префикс `gs://`. |
| Таблицы | Настройте таблицы, чтобы управлять тем, какие файлы считываются и как интерпретируется их содержимое. Каждое определение таблицы содержит шаблон поиска файлов, имя таблицы и необязательные параметры для расширенного поведения. |
| Закрытый ключ | Закрытый ключ из JSON-файла ключа сервисного аккаунта. |

### Конфигурация таблицы

Каждая запись в конфигурации таблицы определяет логическую таблицу, созданную из файлов в целевом блоке. Для каждой таблицы можно настроить следующие свойства:

| Свойство | Обязательный или необязательный | Описание |
| --- | --- | --- |
| Имя таблицы | Требуется | Укажите имя для логической таблицы, например `my_orders_csv`. Это имя будет отображаться как имя потока в Qlik Talend Cloud. |
| Шаблон поиска | Требуется | Введите регулярное выражение для сопоставления имен файлов, например `.*\.csv$`, чтобы выбрать все файлы CSV. Коннектор использует синтаксис шаблонов поиска regex и glob. В регулярных выражениях `*.csv` не соответствует именам файлов CSV, поскольку `*` должен следить за выражением для повторения. Используйте такие шаблоны, как `\.csv$` или `.*\.csv$`, для сопоставления с такими именами файлов, как `report.csv` и `my.data.csv`. |
| Префикс поиска | Дополнительный | Укажите префикс пути в блоке, чтобы сузить поиск файлов, например `exports/orders/`. Использование префикса повышает производительность за счет ограничения количества сканируемых файлов. |
| Свойства ключа | Дополнительный | Укажите одно или несколько имен столбцов через запятую, чтобы определить первичный ключ. Например: `id` или `id,date`. |
| Переопределения дат | Дополнительный | Перечислите через запятую имена столбцов, которые должны обрабатываться как поля даты и времени. Используйте этот параметр, если эти поля не определяются автоматически при обнаружении схемы. |
| Разделитель | Дополнительный | Укажите символ, разделяющий значения в ваших файлах. По умолчанию используется `,` (запятая). Используйте `\t` для файлов, разделенных табуляцией (TSV), или `\|` для файлов, разделенных вертикальной чертой (PSV). Если оставить поле пустым, система автоматически определяет разделитель на основе расширения файла. |

### Таблицы реплицированы

Таблицы создаются на основе конфигурации таблицы (см. выше). Каждая таблица соответствует набору файлов в блоке Google Cloud Storage (GCS), которые удовлетворяют как указанному шаблону поиска, так и любому необязательному префиксу. Коннектор автоматически определяет схемы путем выборки до 5 файлов на таблицу, считывая каждую пятую строку, но не более 1000 записей на файл.

Репликация является инкрементной и использует метки времени изменения файлов для отслеживания изменений. При каждом извлечении коннектор обрабатывает только те файлы, которые были изменены с момента последней успешной синхронизации, зафиксированной закладкой синхронизации.

По умолчанию в каждую таблицу добавляются следующие системные столбцы:

| Столбец | Описание |
| --- | --- |
| `_sdc_source_bucket` | Имя блока Google Cloud Storage (GCS), из которого была прочитана запись. |
| `_sdc_source_file` | Полный путь к файлу, содержащему запись. |
| `_sdc_source_lineno` | Номер строки записи в файле. |
| `_sdc_extra` | Любые дополнительные столбцы, обнаруженные при синтаксическом анализе, которые не соответствуют обнаруженной схеме. Применимо только к файлам JSONL. |

## Ограничения и замечания

* Учетные данные сервисного аккаунта (`project_id`, `client_email`, `private_key`) должны быть предоставлены в виде отдельных значений, извлеченных из файла ключа JSON; загрузка файла не поддерживается.
* Поддерживаются файлы, сжатые с помощью Gzip (`.gz`). Коннектор считывает исходное имя файла из заголовка gzip, чтобы определить формат внутреннего файла. Файлы Gzip, созданные с `--no-name` (имя файла не сохранено в заголовке), пропускаются.
* Вложенное сжатие (например, `.gz` внутри другого `.gz` или `.zip` внутри `.zip`) не поддерживается. Эти файлы пропущены.
* Файлы с расширениями `.csv`, `.txt`, `.tsv`, `.psv` или `.jsonl` проверяются на наличие магических байтов gzip и распаковываются, если они сжаты с помощью gzip, — даже если у файла нет расширения `.gz`.
* Поле `search_pattern` использует синтаксис шаблонов поиска regex и glob. В регулярных выражениях `*.csv` не соответствует именам файлов CSV, поскольку `*` должен следить за выражением для повторения. Используйте `.*\.csv$` для сопоставления таких имен файлов, как `report.csv` и `my.data.csv`.
* В коннекторе предусмотрена встроенная логика повторных попыток с экспоненциальной задержкой для ограничений частоты запросов к API Google Cloud Storage (GCS) (`429`) и временных ошибок сервера (`500`, `502`, `503`, `504`). Выполняется до пяти попыток, прежде чем операция завершится ошибкой.
* Файлы без распознанного расширения пропускаются, и выводится предупреждение.