bq extract - Ошибка BigQuery в операции извлечения: произошла внутренняя ошибка, и запрос не может быть выполнен - PullRequest
0 голосов
/ 14 июля 2020

Я пытаюсь экспортировать таблицу из BigQuery в хранилище Google с помощью следующей команды в консоли:

bq --location=<hidden> extract --destination_format CSV --compression GZIP --field_delimiter "|" --print_header=true <project>:<dataset>.<table> gs://<airflow_bucket>/data/zip/20200706_<hidden_name>.gzip

Я получаю следующую ошибку:

Ошибка BigQuery в операция извлечения: произошла внутренняя ошибка, и запрос не может быть выполнен.

Вот некоторая информация об указанной таблице

Table ID    <HIDDEN> 
Table size 6,18 GB
Number of rows   25 854 282 
Created 18.06.2020, 15:26:10 
Table expiration     Never 
Last modified 14.07.2020, 17:35:25 
Data location    EU

Что я пытаюсь сделать здесь, извлекает эту таблицу в хранилище Google. Поскольку размер таблицы> 1 ГБ, она фрагментируется ... Я хочу собрать все эти фрагменты в один архив, в корзину облачного хранилища Google.

Что здесь происходит? Как это исправить?

Примечание: я скрыл фактические имена и расположение таблицы и другую информацию с упоминанием <hidden> или <airflow_bucket> или `:.

`

Ответы [ 2 ]

1 голос
/ 15 июля 2020

Согласно publi c документации , вы получаете сообщение об ошибке из-за ограничения размера файла в 1 Гб.

В настоящее время невозможно выполнить sh то, что вы хотите без добавления дополнительного шага, либо с объединением в облачном хранилище , либо с использованием пакетного задания на Dataflow в качестве примера.

Есть некоторые Предоставленные Google пакетные шаблоны , которые экспортируют данные из BigQuery в GCS, но не в формате CSV, поэтому вам нужно будет коснуться кода, чтобы сделать это в Dataflow.

1 голос
/ 14 июля 2020

Я выяснил причину этого, документация дает следующий синтаксис для bq extract

> bq --location=location extract \
> --destination_format format \
> --compression compression_type \
> --field_delimiter delimiter \
> --print_header=boolean \ project_id:dataset.table \ gs://bucket/filename.ext

Я удалил location=<bq_table_location>, и он работает в принципе. За исключением того, что мне пришлось добавить подстановочный знак, и я получил несколько сжатых файлов.

...