Команда для импорта нескольких файлов из облачного хранилища в BigQuery - PullRequest
0 голосов
/ 14 апреля 2020

Я понял, что эта команда перечисляет пути ко всем файлам:

gsutil ls "gs://bucket/foldername/*.csv"

Эта команда импортирует файл в BQ и автоматически определяет схему:

bq load --autodetect --source_format=CSV dataset.tableName gs://bucket/foldername/something.csv

Теперь мне нужно сделать это работает вместе, чтобы импортировать все файлы в соответствующие таблицы в BQ. Если таблица существует, замените ее. Не могли бы вы дать мне руку?

1 Ответ

0 голосов
/ 21 апреля 2020

Сначала создайте файл со всем списком со всеми папками, которые вы хотите загрузить в BigQuery:

gsutil ls "gs://bucket/foldername/*.csv" > allmynicetables.txt

Затем создайте простой l oop, чтобы повторить операцию загрузки для каждого файла CSV. перечислены на allmynicetables.txt:

while read p ; do bq load --autodetect --replace=true --source_format=CSV dataset.tableName $p ; done < allmynicetables.txt

Просто пара разъяснений:

--replace=true помогает перезаписать существующую таблицу.

Кроме того, я не уверен почему вы ставите dataset.tableName, вы всегда копируете в один и тот же набор данных? Можете ли вы извлечь нужный набор данных / имя таблицы из имени вашего исходного файла .csv? Это не ясно мне из вашего вопроса, пожалуйста, уточните.

...