Согласно документации , вы можете использовать команду 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, пример можно найти здесь .