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

В этой статье описаны действия по созданию подключения Google BigQuery.

Поддерживаемые типы аутентификации

Соединитель Google BigQuery поддерживает следующие типы проверки подлинности для копирования и потока данных 2-го поколения соответственно.

Тип аутентификации Копия Поток данных 2-го поколения
Вход в учетную запись службы
Учетная запись организации n/a

Настройте ваше подключение для Dataflow Gen2

Вы можете подключить поток данных 2-го поколения в Microsoft Fabric к Google BigQuery с помощью соединителей Power Query. Выполните следующие действия, чтобы создать подключение:

  1. Проверьте возможности, ограничения и рекомендации , чтобы убедиться, что ваш сценарий поддерживается.
  2. Полные предварительные требования для Google BigQuery.
  3. Получение данных в системе Fabric.
  4. Подключитесь к данным Google BigQuery.

Возможности

  • Импорт
  • DirectQuery (семантические модели Power BI)

Необходимые условия

Для входа в Google BigQuery требуется учетная запись Google или учетная запись службы Google.

Получение данных

Чтобы получить данные в фабрике данных, выполните приведенные действия.

  1. В левой части Фабрики данных выберите Рабочие области.

  2. В рабочей области Data Factory выберите Новый>Dataflow Gen2, чтобы создать новый поток данных.

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

  3. В Power Query выберите Получить данные на ленте или выберите Получить данные из другого источника в текущем представлении.

    снимок экрана: рабочая область Power Query с выделенным параметром

  4. На странице Выбор источника данных используйте поиска для поиска имени соединителя или выберите просмотреть дополнительные в правой части соединителя, чтобы просмотреть список всех соединителей, доступных в службе Power BI.

    снимок экрана страницы

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

    снимок экрана страницы с источниками данных фабрики данных, отображаемой после выбора

Подключение к данным Google BigQuery

Чтобы подключиться к Google BigQuery из Power Query Online, сделайте следующее:

  1. Выберите параметр Google BigQuery в интерфейсе получения данных. Различные приложения имеют различные способы получения данных в Power Query Online. Дополнительные сведения о том, как получить доступ к возможности получения данных в Power Query Online из вашего приложения, смотрите в разделе Где получить данные.

    снимок экрана диалогового окна

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

    снимок экрана: диалоговое окно

  3. Появляется диалоговое окно входа в систему с помощью Google. Выберите свою учетную запись Google и утвердите подключение.

    Замечание

    Хотя в диалоговом окне входа говорится, что вы продолжите работу в Power BI Desktop после входа, вместо этого вас отправляют в онлайн-приложение.

    снимок экрана диалогового окна входа в Google, в котором вы входите в учетную запись.

  4. Если вы хотите использовать дополнительные параметры, выберите Дополнительные параметры. Дополнительные сведения: подключение с помощью дополнительных параметров

  5. После входа нажмите кнопку "Далее ", чтобы продолжить.

    снимок экрана диалогового окна

  6. После успешного подключения откроется окно навигатора и отображает данные, доступные на сервере. Выберите данные в навигаторе. Затем выберите Next для преобразования данных в Power Query.

    Скриншот навигатора Power Query, загружающего данные из Google BigQuery в онлайн-приложение.

Ограничения и рекомендации

В этом разделе описаны ограничения или рекомендации соединителя Google BigQuery.

Подключение к Google BigQuery в Power BI Desktop

При использовании соединителя Google BigQuery с Power BI следует учитывать несколько ограничений и рекомендаций.

Доступность соединителя

Соединитель Google BigQuery доступен в Power BI Desktop и в службе Power BI. В сервисе Power BI соединитель доступен через облачное соединение между Power BI и Google BigQuery.

Ошибка "Отказано в доступе"

При попытке подключиться к Google BigQuery из Power BI Desktop может появиться следующее сообщение об ошибке:

Datasource.Error: ODBC: ERROR [HY000][Microsoft][BigQuery] (100) Error interacting with REST API: Access Denied: Project <project name>: The user <user name> bigquery.jobs.create permissions in project <project name>.

В этом случае может потребоваться ввести идентификатор проекта выставления счетов в расширенном параметре Billing Project в настройках подключения Power Query Connection.

Кроме того, если вы также создаете отчет в службе Power BI с помощью шлюза, вы по-прежнему можете получить эту ошибку. В этом случае необходимо вручную включить идентификатор проекта выставления счетов в код M для подключения с помощью редактора Power Query или строки формул Power Query. Рассмотрим пример.

Source = GoogleBigQuery.Database([BillingProject="Include-Billing-Project-Id-Here"])

Поддержка единого облачного подключения

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

вложенные поля

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

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

снимок экрана: навигатор с поддержкой вложенных полей Google BigQuery.

Пользователи должны выбрать Transform Data а затем использовать возможности анализа JSON в редакторе Power Query для извлечения данных.

  1. На вкладке "Преобразования" в категории "Текстовый столбец" выберите "Разбор" и затем "JSON".
  2. Извлеките поля записи JSON с помощью параметра "Развернуть столбец ".

Настройка учетной записи службы Google

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

В окне навигатора отображаются только проекты и наборы данных, для которых прошедший проверку подлинности пользователь имеет достаточные разрешения Google Cloud Platform (GCP). Если вы можете получить доступ к данным через собственные запросы, но некоторые проекты или наборы данных не отображаются в Навигаторе, проверьте следующее:

  • Подключитесь к проекту выставления счетов, а не к проекту данных при установке подключения.
  • Пользователю требуется роль браузера (или эквивалентная) на уровне проекта, чтобы просмотреть проекты, перечисленные в навигаторе. Без этой роли драйвер не может перечислить проект, даже если у пользователя есть доступ на уровне набора данных.
  • После выбора проекта данных отображаются только наборы данных, к которым пользователь получил доступ.
  • Предоставление роли просмотра метаданных BigQuery только на уровне набора данных недостаточно для отображения проектов в Навигаторе. Роль должна быть предоставлена на уровне проекта, или вместо этого должна быть назначена роль браузера на уровне проекта.

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

При проверке подлинности с помощью учетной записи службы Google в Power BI Desktop существует определенный формат учетных данных, необходимый соединителю.

  • Адрес электронной почты учетной записи службы: должен быть в формате электронной почты.
  • Содержимое файла ключа JSON учетной записи службы: после скачивания этого ключа JSON все новые строки должны быть удалены из файла, чтобы содержимое было в одной строке. После того как JSON-файл будет в этом формате, содержимое может быть вставлено в это поле.

При проверке подлинности с помощью учетной записи службы Google в службе Power BI или Power Query Online пользователям необходимо использовать обычную проверку подлинности. Поле имени пользователя сопоставляется с полем электронной почты учетной записи службы, а поле пароля сопоставляется с полем содержимого файла JSON ключа учетной записи службы . Требования к формату для каждых учетных данных остаются одинаковыми и в Power BI Desktop, и в службе Power BI, и в Power Query Online.

Не удается выполнить проверку подлинности с помощью API хранилища Google BigQuery

Соединитель Google BigQuery использует API хранилища Google BigQuery по умолчанию. Эта функция управляется расширенным параметром UseStorageApi. Если вы используете детализированные разрешения, могут возникнуть проблемы с этой функцией. В этом сценарии может появиться следующее сообщение об ошибке или сбой получения данных из запроса:

ERROR [HY000] [Microsoft][BigQuery] (131) Unable to authenticate with Google BigQuery Storage API. Check your account permissions

Эту проблему можно устранить, правильно изменив разрешения пользователя для API хранилища BigQuery. Эти разрешения API хранилища необходимы для правильного доступа к данным с ПОМОЩЬЮ API BigQueryStorage:

  • bigquery.readsessions.create: создает новый сеанс чтения с помощью API хранилища BigQuery.
  • bigquery.readsessions.getData: считывает данные из сеанса чтения данных через API хранилища данных BigQuery.
  • bigquery.readsessions.update: обновляет сеанс чтения с помощью API хранилища BigQuery.

Эти разрешения обычно предоставляются в роли BigQuery.User. Дополнительные сведения см. в разделе Предопределенные роли и разрешения Google BigQuery.

Если описанные выше действия не устраняют проблему, можно отключить API хранилища BigQuery.

Не удается использовать данные типа DateTime в режиме прямого запроса

Существует известная проблема, из-за которой тип DateTime не поддерживается через прямой запрос. Выбор столбца с типом DateTime вызывает ошибку Invalid query или визуальную ошибку.

Ограничения на запрос столбца с тем же именем, что и имя таблицы.

При запросе столбца, имеющего то же имя таблицы, BigQuery интерпретирует столбец как struct, который содержит все столбцы в таблице вместо указанного столбца. Например, SELECT debug FROM dataset.debug возвращает struct со всеми столбцами в таблице отладки вместо указанного столбца отладки. Это поведение не интуитивно понятно, и рассматривается исправление. Доступны три обходных решения:

  • Обходное решение 1: Обернуть таблицу представлением, не конфликтующим с именем столбца —CREATE VIEW dataset.new_view AS SELECT * FROM dataset.debug
  • Решение 2. Переименуйте столбец, чтобы избежать конфликтов с именем таблицы—ALTER TABLE dataset.debug RENAME COLUMN debug to new_debug
  • Обходное решение 3. Изменение запроса SELECT на использование table.column для ссылки на столбец конфликта —SELECT debug.debug FROM dataset.debug

Материализованные представления не поддерживаются в навигаторе Power BI Desktop

Известная проблема заключается в том, что соединитель Google BigQuery в настоящее время не поддерживает материализованные представления в навигаторе Power BI Desktop.

  • Обходное решение: используйте нативные SQL-запросы для получения материализованных представлений из Google BigQuery.

Ошибка HTTP 403: превышена квота (Квота пользователя превышена для одновременных запросов project.lists)

  • Квота исчерпана в связи с использованием клиентом вызовов API project.lists в Google. При одновременном обновлении нескольких отчетов может вызвать ошибку в разных запросах или отчетах. Чтобы предотвратить ошибку, запланируйте обновление отчета с интервалами в разброс.
  • Обновите запрос, чтобы включить идентификатор проекта выставления счетов — GoogleBigQuery.Database([BillingProject="Include-Billing-Project-Id-Here"]).
  • Вызовы GoogleBigQuery.Database должны находиться в том же запросе, что и выбор схемы и таблицы, чтобы избежать ошибки.

Сбой ExecuteQueryInternalAsync при использовании ADBC

Некоторые пользователи могут столкнуться с проблемами при подключении к BigQuery с помощью Implementation="2.0" пути и получения ошибки Cannot execute <ExecuteQueryInternalAsync>b__2 after 5 tries. Эта проблема может быть вызвана несколькими факторами:

  • Проблема с разрешением, описанная в следующем разделе.
  • Если LargeResultDataset передается, драйвер пытается создать выходной набор данных с указанным именем. Для создания требуются соответствующие разрешения.
  • Если во время создания набора данных явно не указан ни одного региона, API BigQuery по умолчанию используется для нескольких регионов США. Это поведение определяется самим API, а не конфигурацией соединителя или клиента.

Варианты обходного решения

Создание набора данных вручную

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

Конфигурация соединителя рабочего стола

Если вы используете Power BI Desktop и столкнулись с ошибками при навигации по таблицам:

  1. Перейдите к Файл>Параметры и настройки>Параметры
  2. В разделе "Предварительные версии" снимите флажок "Использовать новую реализацию соединителя Google BigQuery".

Если вы получите это сообщение вместе с дополнительными сведениями, содержащими Last exception: ..., где ... представляют собой сведения о сбое, создайте инцидент для дальнейшего исследования.

Проблемы с разрешениями, связанные с подключением к ADBC

В некоторых средах могут потребоваться дополнительные разрешения для подключения с помощью Implementation="2.0"/ADBC. Это связано с тем, что путь ADBC использует различные API BigQuery для запроса и загрузки данных, отличных от ODBC. Необходимые разрешения описаны в репозитории драйвера GitHub.

Не удалось обновить секционированные модели с помощью ADBC

Известная проблема в соединителе Google BigQuery заключается в том, что секционированные семантические модели могут не обновляться правильно. Это часто отображается с ошибкой Cannot execute <ReadChunkWithRetries>b__0 after 5 tries . Недавнее исправление было опубликовано для этой проблемы и должно быть развернуто в октябре 2025 года. Если вы получите это сообщение вместе с дополнительными сведениями, содержащими Last exception: ..., где ... представляют собой сведения о сбое, создайте инцидент для дальнейшего исследования.