Как добавить файлы в GCS с той же схемой? - PullRequest
0 голосов
/ 26 ноября 2018

Можно ли как-нибудь добавить два файла в GCS, предположим, что файл один загружен полностью, а второй файл - добавочная загрузка.Тогда как мы можем добавить два?
Во-вторых, использование gsutil compose добавит два файла, включая имена атрибутов.Итак, в финальном файле мне нужны данные двух файлов.

1 Ответ

0 голосов
/ 17 декабря 2018

Вы можете добавить два отдельных файла с помощью compose в Google Cloud Shell и переименовать выходной файл в первый файл, например так:

gsutil compose gs://bucket/obj1 [gs://bucket/obj2 ...] gs://bucket/obj1

Эта команда предназначенадля параллельных загрузок, в которых вы делите большой объектный файл на более мелкие объекты.Они загружаются в Google Cloud Storage, а затем вы можете добавить их, чтобы получить исходный файл.Вы можете найти дополнительную информацию о составных объектах и ​​параллельных загрузках.

Я предложил два возможных решения:

Решение облачной функции Google

Я бы выбрал вариант использования функции облака.Выполните что-то вроде следующего:

  1. Создайте пустую корзину, например append_bucket.
  2. Загрузите первый файл.
  3. Создайте облачную функцию, которая будет запущенановые загруженные файлы в корзине.
  4. Загрузите второй файл.
  5. Прочитайте первый и второй файл (вам нужно будет загрузить их как строку сначала).
  6. Выполните операцию добавления.
  7. Загрузите результат в корзину.

Решение Google Dataflow

Вы также можете сделать это с помощью Поток данных для BigQuery (имейте в виду, что он все еще находится в бета-версии).

  1. Создание набора данных и таблицы BigQuery.
  2. Создание экземпляра потока данных из шаблона CloudХранение текста в BigQuery.
  3. Создание файла Javascript с логикой для преобразования текста.
  4. Загрузка файлов в формате Json в корзину.
  5. Поток данных будет считывать Jsonфайл, выполнить код Javascript и добавить новые данные в BНабор данных igQuery.
  6. Наконец, экспортируйте результат запроса BigQuery в облачное хранилище.
...