Создать файл CSV из данных с несколькими таблицами в BigQuery - PullRequest
0 голосов
/ 26 марта 2020

Нам нужно сгенерировать файл CSV из данных, которые находятся в нескольких таблицах в BigQuery.

В настоящее время мы пытаемся создать сервис java, который будет извлекать данные в TableResult с помощью пакета google-cloud-bigquery, собирать данные в объекте TableResult и проходить через него для создания CSV. Насколько быстрым и масштабируемым является этот метод.

Или у нас есть какая-либо другая опция, предоставленная GCP для выполнения sh этой задачи. Пожалуйста, предложите.

1 Ответ

0 голосов
/ 26 марта 2020

Самый эффективный способ сделать это - использовать встроенный Экспорт BigQuery в механизм GCS, потому что BigQuery использует свой параллелизм для записи вывода с использованием нескольких потоков. Вы можете экспортировать до 1 ГБ табличных данных в один файл. Если вы экспортируете более 1 ГБ данных, используйте подстановочный знак , чтобы экспортировать данные в несколько файлов:

gs://<BUCKET_NAME>/csvfilename*.csv

Затем, когда все ваши файлы .csv будут в хранилище. , вы можете использовать команду gsutil compose, которая создает новый объект, содержимое которого представляет собой конкатенацию заданной последовательности исходных объектов в том же сегменте:

gsutil compose gs://<BUCKET_NAME>/a.csv gs://<BUCKET_NAME>/b.csv gs://<BUCKET_NAME>/composite.csv

, где composite.csv - конкатенация a.csv и b.csv. Пожалуйста, обратитесь к документации .

Надеюсь, это поможет.

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