Как извлечь таблицу Bigquery для каждой заданной длины строк в файл csv в Google Storage?

Например, у меня есть таблица в bigquery с 10 миллионами строк, я хочу извлекать эту таблицу в Google Storage каждые 100 тысяч строк. Чтобы было понятно, мне нужно 100 файлов csv, и каждый из них имеет 100 тыс. Отдельных строк в таблице bigquery.

bq extract --noprint_header dataeset.abigtable gs://bucket/output/*.csv

С помощью приведенного выше кода, введенного в оболочку gcloud, таблица будет разделена на 10 или около того файлов в хранилище Google. Однако я не могу контролировать количество строк в каждом файле. Как я мог это контролировать?


person user11366694    schedule 30.04.2019    source источник
comment
Вы не можете контролировать это, потому что экспорт BigQuery не поддерживает его. Когда вы экспортируете свои данные в несколько файлов, размер файлов будет различаться. cloud.google.com/bigquery/docs/exporting-data   -  person Graham Polley    schedule 30.04.2019
comment
Хорошо, если количество шпагатов зафиксировано. Я полагаю, по крайней мере, я мог бы разделить таблицы в большом запросе, таком как limit 1000k offset 2000k, а затем извлечь данные. Было бы намного проще, если бы я мог написать сценарий и выполнить задание цикла. Однако я понятия не имею, где мне запустить этот цикл и как. Есть ли какой-нибудь код, который работает в Google Shell и выполнит мою задачу?   -  person user11366694    schedule 30.04.2019
comment
Что вы подразумеваете под количеством разделений? Вы также не можете контролировать, сколько файлов / шардов будет создано.   -  person Graham Polley    schedule 30.04.2019


Ответы (1)


Не существует флага, который можно использовать для создания ваш вариант использования возможен. Если вы считаете, что эта функция будет полезной, вы можете отправить ее как запрос функции, хотя требуется несколько звездочек, чтобы команда BigQuery получила приоритет этого запроса на функцию. Чтобы сделать его более значимым, должен быть бизнес-вариант использования относительно того, зачем вам это нужно (например, зачем вам нужно, чтобы экспортированный файл csv содержал по 100 тыс. Строк каждый?).

person Christopher    schedule 30.04.2019