Создание внешних таблиц из Google Sheet в командной строке BigQuery с использованием листа, отличного от листа по умолчанию

#google-sheets #google-bigquery

#google-sheets #google-bigquery

Вопрос:

Я создаю таблицу BQ на второй вкладке электронной таблицы GoogleSheets. Сначала я создаю файл определения таблицы следующим образом:

 bq mkdef 
--noautodetect 
--source_format=source_format 
"drive_uri" 
path_to_schema_file > /tmp/mytable_def.json
  

а затем я вручную изменяю mytable_def.json, чтобы указать, что таблица должна быть создана со второй вкладки:

 "googleSheetsOptions":{"range": "sheetB"}
  

Тем не менее, я ищу способ сделать это непосредственно из первой команды mkdef. Возможно ли это?

Комментарии:

1. Глядя на документацию, похоже, что у вас есть правильный / единственный подход. К сожалению, я не вижу никаких других вариантов. cloud.google.com/bigquery /…

Ответ №1:

Я думаю, что стоит попробовать JQ tool как надежный способ обработки объектов JSON в качестве шага обработки данных в вышеупомянутом подходе:

 bq mkdef 
--noautodetect 
--source_format=source_format 
"drive_uri" 
path_to_schema_file | jq '.googleSheetsOptions  = {"range": "sheetB"}' > /tmp/mytable_def.json
  

Как упоминал @Daniel Zagales, ссылаясь на страницу документации, файл определения таблицы должен быть скорректирован вручную или заменен любым инструментом, который может себе это позволить, как часть обработки командной строки.