Как экспортировать коллекции и вложенные коллекции вместе из firestore в таблицу excel или bigquery? - PullRequest
0 голосов
/ 27 мая 2020

В облачном хранилище у меня есть коллекция «пользователей», которая содержит все идентификаторы моих пользователей. У каждого идентификатора пользователя есть вложенная коллекция «Избранные маршруты», в которой находится идентификатор каждого избранного маршрута, и каждый идентификатор избранного маршрута содержит все детали избранных маршрутов. После нескольких попыток я не могу экспортировать все, чтобы мы могли четко видеть, у кого из пользователей есть какие-то любимые маршруты. Более ясно, я не могу экспортировать коллекцию с вложенными коллекциями, которые содержат go. Я хочу выполнить этот экспорт и создать таблицу в bigquery, чтобы увидеть это либо в студии данных Google, либо в виде таблицы Excel.

Я пытался сделать это: gcloud firestore export gs: // exportation- users / export-27-05-2020 --collection-ids = utilisateurs, trajetsFavoris

Это делает экспорт, но невозможным для создания таблицы в bigquery или для создания файла Excel.

Спасибо за помощь

1 Ответ

1 голос
/ 28 мая 2020

Согласно документации , вы можете использовать команду gcloud firestore export для экспорта коллекции и вложенных коллекций в облачную корзину. В этой команде, как вы описали выше, вы можете выбирать коллекции и вложенные коллекции с помощью флага --collection-ids. Кроме того, рекомендуется использовать флаг --async при экспорте больших таблиц.

После экспорта данных в указанный сегмент вы можете загрузить данные в BigQuery, используя команду bq load, ссылка . Для каждой коллекции и / или под-коллекции будет таблица, поэтому выполните ее дважды (в вашем случае вы будете импортировать 1 коллекцию и 1 под-коллекцию). Синтаксис будет следующим:

bq --location=US load \
--source_format=DATASTORE_BACKUP \
mydataset.book_data \
gs://mybucket/20180228T1256/default_namespace/kind_Book/default_namespace_kind_Book.export_metadata

Я хотел бы указать, что --source_format=DATASTORE_BACKUP является обязательным, и это формат для экспорта Firestore. Все остальные поля должны быть изменены в соответствии с вашей средой.

Наконец, я должен указать, что каждый документ в Firestore имеет уникальные ключи, которые содержат важную информацию о данных. Среди этих ключей у вас есть ключ .name , в котором хранится ключ родительского документа, и его можно использовать для присоединения коллекции к соответствующей подгруппе.

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

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