如何将集合和子集合从Firestore一起导出到excel或bigquery表?

时间:2020-05-27 17:28:47

标签: json excel google-cloud-firestore google-bigquery

在Cloud Firestore中,我有一个“用户”集合,其中包含我的用户的所有ID。每个用户ID都有一个“收藏夹路由”子集合,在其中可以找到每个收藏夹路由的标识符,每个收藏夹路由ID都包含收藏夹路由的所有详细信息。 经过几次尝试,我无法导出所有内容,因此我们可以清楚地看到哪个用户拥有最喜欢的路线。 更清楚地讲,我无法导出带有它的子集合的集合。 我想进行此导出并在bigquery中创建一个表,以便在google data studio中或以excel表的形式查看。

我试图这样做: gcloud firestore export gs:// exportation-users / export-27-05-2020 --collection-ids = utilisateurs,trajetsFavoris

这将导致导出,但无法将表创建为bigquery或创建excel文件。

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

根据documentation,您可以使用App\Tag命令将集合和子集合导出到Cloud Bucket。如上所述,在此命令中,可以使用gcloud firestore export标志选择集合和子集合。另外,在导出大型表时,最好使用--collection-ids标志。

将数据导出到指定的存储桶后,可以使用--async命令link将数据加载到BigQuery。对于每个集合和/或子集合将有一个表,因此执行两次(在您的情况下,您将导入1个集合和1个子集合)。语法如下:

bq load

我想指出bq --location=US load \ --source_format=DATASTORE_BACKUP \ mydataset.book_data \ gs://mybucket/20180228T1256/default_namespace/kind_Book/default_namespace_kind_Book.export_metadata 是强制性的,它是Firestore导出的格式。其他所有字段都应根据您的环境进行更改。

最后,我必须指出,Firestore中的每个文档都有唯一的键,这些键包含有关数据的重要信息。在这些键中,您有 .name ,该键存储父文档密钥,并且可以用来将集合与其各自的子集合连接起来。

最后,您还可以使用Cloud Functions来创建存储桶,将数据导出到存储桶以及将数据导入到BigQuery,例如here