Как подключить базу данных BigQuery на основе Google Sheet к Looker?

Я пытаюсь подключить BigQuery к Looker. Я перетаскиваю образцы данных из документа Google Sheets в набор данных BigQuery; эта часть работает нормально, так как мои внутренние запросы BigQuery отлично работают для этого набора данных. Используя эту документацию на форумах Looker, я попытался создать ключ учетной записи службы для подключения набора данных BigQuery к Looker. К сожалению, документация немного устарела: теперь Google спрашивает, к какой учетной записи службы (вычислить учетную запись службы по умолчанию для службы, учетной записи службы по умолчанию для службы приложений или новую учетную запись службы, которая может иметь любую из нескольких ролей) вы хотите прикрепить ключ.

До сих пор я пытался использовать ключи P12, созданные для учетной записи службы по умолчанию для механизма вычислений, для учетной записи службы по умолчанию для службы приложений, а также для новой учетной записи службы владельца проекта. Когда я создаю соединение в Looker, страница администратора подтверждает, что соединение "может соединиться, может отменить запросы, может выполнить простой запрос на выборку" (мне нужно сделать более сложные вещи, но сейчас я просто пытаюсь подключиться вообще), Используя SQL Runner для тестирования простого запроса select из 10, я смог запросить общедоступные наборы данных, например, hacker_news или usa_names. Однако всякий раз, когда я пытался выполнить тот же запрос в моем личном образце набора данных, я получал эту ошибку:

Не удалось получить данные. Задание обнаружило внутреннюю ошибку во время выполнения и не удалось успешно завершить.

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

ОБНОВЛЕНИЕ: я создал новую таблицу в том же наборе данных BigQuery. Новая таблица была создана с использованием файла CSV, который был просто загрузкой моей предыдущей таблицы в Google Sheets. Я обновил соединение с Looker. Когда я написал запрос на выборку 10 из новой таблицы, он работал нормально и работал очень быстро. Похоже, это означает, что проблема заключается в разрешениях между Google Sheets и Google BigQuery.

1 ответ

Я давно хотел сделать что-то подобное, увидел этот вопрос и решил покопаться.

Первым, что я нашел, была эта "документация" в дискурсе зрителя:

https://discourse.looker.com/t/live-spreadsheets-in-databases/2698/7

Там он описывает шаги, необходимые для того, чтобы это заработало.

Две важные вещи, которые вы, вероятно, упускаете, основанные на вашем описании событий до сих пор (поскольку кажется, что вы уже прикрепили лист к своему набору данных и можете запрашивать его из пользовательского интерфейса BigQuery):

  1. Убедитесь, что вы предоставляете Google Sheet учетную запись службы, которую используете для подключения Looker к BigQuery. Это Username от Connections вкладка Admin страница в Looker.

  2. Убедитесь, что вы включили API Drive и Sheets для своего проекта Google. Вы можете сделать это через библиотеку API. Просто найдите "Диск" (или "Листы"), нажмите на имя, а затем нажмите кнопку "Включить" на странице сведений об API.

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

Надеюсь, это поможет.

Другие вопросы по тегам