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

Я пытаюсь экспортировать таблицу из 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> или `:.


`


person Imad    schedule 14.07.2020    source источник


Ответы (2)


Я выяснил причину этого, документация дает следующий синтаксис для 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> и работает по принципу. За исключением того, что мне пришлось добавить подстановочный знак, и в итоге я получил несколько сжатых файлов.

person Imad    schedule 14.07.2020

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

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

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

person pessolato    schedule 15.07.2020