Составьте объекты Google Storage без заголовков через CLI - PullRequest
0 голосов
/ 23 октября 2019

Мне было интересно, можно ли составить объекты Google Storage Objects (в частности, файлы csv) без заголовков (то есть без строки с именами столбцов) при использовании gsutil.

В настоящее время я могу сделать следующее:

gsutil compose gs://bucket/test_file_1.csv gs://bucket/test_file_2.csv gs://bucket/test-composition-files.csv

Однако я не смогу вставить test-composition-files.csv в Google BigQuery, поскольку compose слепо добавлял файлы (включая имена столбцов)).

Одним из возможных решений было бы загрузить файл локально и обработать его с помощью pandas, но это не идеально для больших файлов.

Есть ли способ сделать это через CLI? Я не мог найти ничего в документах.

1 Ответ

0 голосов
/ 24 октября 2019

Читая комментарий, я думаю, что вы тратите усилия неправильно. Я понял, что вы хотите загрузить свои файлы в большой запрос, но большое количество файлов не позволяет вам сделать это (слишком много вызовов API). И поток данных слишком медленный.

Может быть, вы можете думать по-другому. У меня есть 2 решения, чтобы предложить

  • Если вам нужно проглатывание «почти в реальном времени», и если размер файла ниже 1,5 ГБ, лучший способ - это создать функцию, которая читает файл и выполняет потокнаписать в BigQuery. Эта функция вызывается событием облачного хранилища. Если одновременно существует несколько файлов, будет запущено несколько функций. Будьте внимательны, потоковая запись в BigQuery не бесплатна
  • Если вы можете подождать до 2 минут с момента прибытия файла, я рекомендую вам создавать функции Cloud, запускаемые каждые 2 минуты. Эта функция читает имя файла в корзине, перемещает их в подкаталог и выполняет задание загрузки всех файлов в подкаталоге. Вы ограничены 1000 загружаемых заданий в день (и на таблицу) , день содержит 1440 минут. Выпекайте каждые 2 минуты, все в порядке. Задание загрузки бесплатное.

Это приемлемые альтернативы?

...