Перейти к основному содержимому Перейти к дополнительному содержимому

Google BigQuery

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

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

Настройка подключения к Google BigQuery

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

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

  2. Выберите коннектор цели Google BigQuery , а затем задайте следующие настройки.

Цель данных

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

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

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

Для получения информации о сценариях применения Data Movement Gateway см. разделы Когда требуется Data Movement Gateway? и Общие случаи использования.

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

Примечание к информацииПри обращении к целевой базе данных через Data Movement Gateway, также необходимо установить соответствующий драйвер на компьютер с Data Movement Gateway. Для получения подробных сведений см. Google BigQuery ниже.

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

Service account key (Ключ учетной записи службы): добавьте файл JSON, загруженный при создании ключа учетной записи службы.

Location (Местоположение): место, куда будет загружен набор данных, созданный в Qlik. В случае выбора Other (Другое) введите название региона в поле Region name (Название региона). Для получения списка поддерживаемых названий регионов см. документ BigQuery locations (Местоположения BigQuery).

Примечание к информацииДля выбора варианта Другое требуется Data Movement Gateway 2023.11.4 или более поздней версии.

Имя

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

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

Разрешения, необходимые для промежуточного хранения данных

Если наборы данных должны создаваться автоматически, требуются следующие разрешения:

BigQuery > BigQuery Job User

BigQuery > BigQuery Data Editor

Если наборы данных существуют, выполните следующие действия:

  1. Создайте учетную запись сервиса со следующим разрешением:

    BigQuery > BigQuery Job User

  2. Перейдите к набору данных, который планируется использовать, и затем:

    1. Добавьте только что созданную учетную запись сервиса в качестве главного пользователя.

    2. Присвойте роль BigQuery Data Editor.

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

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

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

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

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

  • Убедитесь, что на сервере шлюза Перемещение данных установлена версия Python 3.6 или более поздняя.

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

    python3 --version

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

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

    sudo systemctl stop repagent

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

    sudo systemctl status repagent

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

    Active: inactive (dead) since <timestamp> ago

  3. На компьютере шлюза Перемещение данных измените рабочую папку на:

    opt/qlik/gateway/movement/drivers/bin

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

    Синтаксис:

    ./install gbq

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

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

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

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

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

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

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

    sudo systemctl start repagent

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

    sudo systemctl status repagent

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

    Active: active (running) since <timestamp> ago

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

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

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

    sudo systemctl stop repagent

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

    sudo systemctl status repagent

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

    Active: inactive (dead) since <timestamp> ago

  3. На компьютере шлюза Перемещение данных измените рабочую папку на:

    opt/qlik/gateway/movement/drivers/bin

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

    Синтаксис:

    ./update gbq

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

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

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

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

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

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

    sudo systemctl start repagent

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

    sudo systemctl status repagent

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

    Active: active (running) since <timestamp> ago

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

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

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

  2. На компьютере шлюза Перемещение данных измените рабочую папку на:

    opt/qlik/gateway/movement/drivers/bin

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

    Синтаксис:

    ./uninstall gbq

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

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

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

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

После установки Data Movement Gateway загрузите файлы SimbaODBCDriverforGoogleBigQuery_<версия>-Linux.tar.gz и google-cloud-sdk-<версия>-linux-x86_64.tar.gz. Прямые ссылки для загрузки этих файлов можно найти в разделе binary-artifacts в /opt/qlik/gateway/movement/drivers/manifests/gbq.yaml. После завершения загрузки скопируйте файлы на компьютер Data Movement Gateway.

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

    sudo systemctl stop repagent

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

    sudo systemctl status repagent

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

    Active: inactive (dead) since <timestamp> ago

  4. Извлеките:

    SimbaODBCDriverforGoogleBigQuery_<версия>.tar.gz

    на:

    /opt/SimbaODBCDriverforGoogleBigQuery_<версия>-Linux

  5. Переместите файлы GoogleBigQueryODBC.did и simba.googlebigqueryodbc.ini в каталог lib, находящийся в каталоге драйвера Simba ODBC.

    Пример:

    Переместите файлы из:

    /opt/SimbaODBCDriverforGoogleBigQuery_<версия>-Linux/setup

    на:

    /opt/SimbaODBCDriverforGoogleBigQuery_<версия>-Linux/SimbaODBCDriverforGoogleBigQuery64_<версия>/lib

  6. Отредактируйте файл simba.googlebigqueryodbc.ini следующим образом:

    1. Измените ErrorMessagesPath так, чтобы указать путь файла XML, содержащего сообщения ODBC. По умолчанию это папка:

      ErrorMessagesPath=/opt/SimbaODBCDriverforGoogleBigQuery_<version>-Linux/SimbaODBCDriverforGoogleBigQuery64_<version>/ErrorMessages

    2. Измените DriverManagerEncoding на UTF-16.
  7. Добавьте следующий путь в файл site_arep_login.sh, который находится в каталоге bin в Data Movement Gateway:

    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/SimbaODBCDriverforGoogleBigQuery_<версия>-Linux/SimbaODBCDriverforGoogleBigQuery64_<версия>/lib

  8. Измените файл /etc/odbcinst.ini и добавьте путь к драйверу (например, путь, где установлен драйвер):

    [ODBC Drivers]

    Simba= Installed

    Simba ODBC Driver for Google BigQuery = Installed

    [Simba ODBC Driver for Google BigQuery]

    Description=Simba ODBC Driver for Google BigQuery(64-bit)

    Driver=/opt/SimbaODBCDriverforGoogleBigQuery_<version>-Linux/SimbaODBCDriverforGoogleBigQuery64_<version>/lib/libgooglebigqueryodbc_sb64.so

  9. Установите google-cloud-sdk-<версия>-linux-x86_64.tar.gz.

  10. Запустите службу Data Movement Gateway.

    sudo systemctl start repagent

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

    sudo systemctl status repagent

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

    Active: active (running) since <timestamp> ago

  1. Загрузите следующий файл ZIP и файлы JAR, перечисленные в разделе binary-artifacts в /opt/qlik/gateway/movement/drivers/manifests/gbq.yaml:

    • https://repo1.maven.org/maven2/com/google/cloud/google-cloud-bigquery/<версия>/google-cloud-bigquery-<версия>.jar
    • https://repo1.maven.org/maven2/com/google/cloud/google-cloud-storage/<версия>/google-cloud-storage-<версия>.jar
    • https://storage.googleapis.com/simba-bq-release/jdbc/SimbaJDBCDriverforGoogleBigQuery<версия>.zip

    Скопируйте файлы JAR в следующую папку на компьютере Data Movement Gateway и извлеките файлы JAR из SimbaJDBCDriverforGoogleBigQuery<версия>.zip в ту же папку:

    /opt/qlik/gateway/movement/qcs_agents/qdi-db-commands/lib

  2. Перезапустите службу Data Movement Gateway, выполнив команду, описанную в Перезапуск службы

Порт

Для исходящего трафика необходимо открыть порт брандмауэра 443.

Типы данных

Длина параметрических данных имеет значение по умолчанию:

  • STRING: 8192 (длина)

  • BYTES: 8192 (длина)

  • NUMERIC: точность: 38, масштаб: 9

  • BIGDECIMAL: точность: 76, масштаб: 38

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

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

Поддерживаемые типы данных
Типы данных Qlik Cloud Типы данных Google BigQuery

BOOLEAN

BOOL

BYTES

BYTES (длина в байтах)

DATE

DATE

TIME

TIME

DATETIME

TIMESTAMP

INT1

TINYINT

INT2 SMALLINT

INT4

INTEGER

INT8 BIGINT

NUMERIC

NUMERIC (точность, масштаб)

REAL4

FLOAT64

REAL8

FLOAT64

UINT1

TINYINT

UINT2

SMALLINT

UINT4

INTEGER

UINT8

BIGINT

STRING

STRING (длина в байтах)

WSTRING

STRING (длина в байтах)

BLOB

BYTES

NCLOB

STRING

CLOB

STRING

Следующие типы данных преобразуются в тип STRING:

  • ARRAY;

  • STRUCT

  • JSON

  • GEOGRAPHY

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

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

При перемещении данных в целевой объект Google BigQuery применяются следующие ограничения и замечания:

Ограничения и замечания, связанные со всеми задачами данных

  • Следующие DDL не поддерживаются:
    • Отбросить столбец
    • Переименовать столбец
    • Изменить тип данных столбца
    • Переименовать таблицу
  • Захват изменений из исходных таблиц без столбцов «Первичный ключ» или «Уникальный индекс» не поддерживается. Если требуется захватить изменения в таких таблицах, можно добавить столбец «Первичный ключ» с помощью преобразования. Кроме того, столбцы «Первичный ключ» или «Уникальный индекс» не могут содержать значения NULL. Если известно, что такие столбцы будут заполнены значениями NULL, определите преобразование, чтобы заменить их на ненулевые значения.

Ограничения и замечания, связанные только с задачами репликации

  • Не поддерживается режим применения изменений Транзакционное.
  • Не поддерживается вариант обработки ошибок Вносить запись в таблицу исключений для конфликтов применения и ошибок данных.

  • При следующей конфигурации параметров задачи репликации будет выполняться операция DELETE (УДАЛИТЬ) с последующей операцией INSERT (ВСТАВИТЬ) вместо UPDATE (ОБНОВИТЬ):

    • Задан режим применения изменений Пакетная оптимизация.

    • Флажок Применять изменения с помощью операции SQL MERGE не установлен.

    • Для параметра Обработка ошибок операции UPDATE для конфликтов применения задано значение Не найдено записей для применения операции UPDATE: INSERT (ВСТАВИТЬ) недостающую целевую запись.

    Поскольку Google Cloud BigQuery не поддерживает откат, то если задача репликации не сможет вставить обновленную строку, данные будут удалены из цели.

Помогла ли вам эта страница?

Если вы обнаружили какую-либо проблему на этой странице и с ее содержанием — будь то опечатка, пропущенный шаг или техническая ошибка, сообщите нам об этом, чтобы мы смогли ее исправить!