Google BigQuery | Qlik Cloud Справка
Перейти к основному содержимому Перейти к дополнительному содержимому

Google BigQuery

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

Настройка Google BigQuery в качестве целевой платформы включает в себя:

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

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

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

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

Целевая база данных

Шлюз данных

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

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

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

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

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

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

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

Ключ сервисного аккаунта: Загрузите файл JSON, который был загружен при создании ключа сервисного аккаунта BigQuery.

Местоположение: Куда загрузить набор данных, созданный Qlik. Если выбрано Другое, введите имя региона в поле Имя региона. Список поддерживаемых имен регионов см. в разделе Местоположения BigQuery.

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

Имя

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

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

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

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

BigQuery > BigQuery Job User

BigQuery > BigQuery Data Editor

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

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

    BigQuery > BigQuery Job User

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

    1. Добавьте только что созданный сервисный аккаунт в качестве участника.

    2. Назначьте роль BigQuery Data Editor.

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

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

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

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

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

  • Убедитесь, что на сервере шлюза Data Movement установлена версия 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. На компьютере шлюза Data Movement измените рабочую папку на:

    opt/qlik/gateway/movement/drivers/bin

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

    Синтаксис:

    ./install gbq

    Если не удается загрузить driver (из-за ограничений доступа или технических проблем), появится сообщение с указанием места, откуда можно загрузить driver и куда его скопировать на компьютере шлюза Data Movement. После этого выполните команду 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. На компьютере шлюза Data Movement измените рабочую папку на:

    opt/qlik/gateway/movement/drivers/bin

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

    Синтаксис:

    ./update gbq

    Если не удается загрузить driver (из-за ограничений доступа или технических проблем), появится сообщение с указанием места, откуда можно загрузить driver и куда его скопировать на компьютере шлюза Data Movement. После этого выполните команду 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. На компьютере шлюза Data Movement измените рабочую папку на:

    opt/qlik/gateway/movement/drivers/bin

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

    Синтаксис:

    ./uninstall gbq

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

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

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

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

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

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

    sudo systemctl stop repagent

  2. При необходимости убедитесь, что служба остановлена:

    sudo systemctl status repagent

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

    Active: inactive (dead) since <timestamp> ago

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

    SimbaODBCDriverforGoogleBigQuery_<version>.tar.gz

    в:

    /opt/SimbaODBCDriverforGoogleBigQuery_<version>-Linux

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

    Пример:

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

    /opt/SimbaODBCDriverforGoogleBigQuery_<version>-Linux/setup

    в:

    /opt/SimbaODBCDriverforGoogleBigQuery_<version>-Linux/SimbaODBCDriverforGoogleBigQuery64_<version>/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_<version>-Linux/SimbaODBCDriverforGoogleBigQuery64_<version>/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-<version>-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/<version>/google-cloud-bigquery-<version>.jar
    • https://repo1.maven.org/maven2/com/google/cloud/google-cloud-storage/<version>/google-cloud-storage-<version>.jar
    • https://storage.googleapis.com/simba-bq-release/jdbc/SimbaJDBCDriverforGoogleBigQuery<version>.zip

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

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

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

Порт

Для исходящего трафика необходимо открыть порт брандмауэра 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

Если масштаб > 7: STRING(37)

В противном случае прецизионность всегда равна 6, даже если во входном столбце используется прецизионность ниже 6.

INT1

TINYINT

INT2 SMALLINT

INT4

INTEGER

INT8 BIGINT

NUMERIC

NUMERIC (прецизионность, масштаб)

REAL4

FLOAT64

REAL8

FLOAT64

UINT1

TINYINT

UINT2

SMALLINT

UINT4

INTEGER

UINT8

BIGINT

STRING

STRING

Если подтип — JSON, то:

JSON

WSTRING

STRING

Если подтип — JSON, то:

JSON

BLOB

BYTES

NCLOB

STRING

Если подтип — JSON, то:

JSON

CLOB

STRING

Если подтип — JSON, то:

JSON

ARRAY STRING
STRUCT STRING
GEOGRAPHY STRING
JSON JSON

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

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

  • Поля JSON не поддерживаются в качестве первичных ключей.

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

  • Режим применения изменений Транзакционный не поддерживается.
  • При следующей конфигурации настроек задачи задача репликации будет выполнять операцию DELETE, за которой следует INSERT, вместо UPDATE:

    • Для режима применения изменений установлено значение Оптимизированный для пакетов.

    • Параметр Применять изменения с помощью SQL MERGE не выбран.

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

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

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

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