Схема таблицы извлечения BigQuery - PullRequest
0 голосов
/ 09 января 2020

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

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

После создания таблицы AVRO auto schema detect неправильно распознает некоторые типы данных, JSON завершается ошибкой с несколькими ошибками.

Мой вопрос, как экспортировать схему таблицы, в идеале в JSON? Как только я запускаю это в CLI:

bq show --format=prettyjson Project1:BQDataset.Table1 | jq '.schema.fields'

, я получаю массив (сотни строк) JSON. Есть ли способ скопировать / вставить его, чтобы я мог использовать позже? Можно экспортировать в ведро или сохранить локально? Простое выделение текста в списке результатов CLI не работает. фрагмент JSON результата в CLI

1 Ответ

0 голосов
/ 09 января 2020

Вы можете сделать следующее, чтобы сохранить результаты в файле:

bq show --format=prettyjson Project1:BQDataset.Table1 | jq '.schema.fields > schema.json

Чем вы можете использовать следующее для копирования файла в корзину:

gsutil cp /path/to/file/schema.json gs://bucket/path/

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

bq mk --transfer_config --project_id=myproject --data_source=cross_region_copy --target_dataset=123_demo_tokyo --display_name='My Dataset Copy' --params='{"source_dataset_id":"123_demo_eu","source_project_id":"mysourceproject","overwrite_destination_table":"true"}'

Вы можете проверить полный справочник здесь

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