【问题标题】:How to export collections and sub collections together from firestore to excel or bigquery table?如何将集合和子集合一起从 firestore 导出到 excel 或 bigquery 表?
【发布时间】:2020-05-27 17:28:47
【问题描述】:

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

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

这使得导出但无法在 bigquery 中创建表或创建 excel 文件。

感谢您的帮助

【问题讨论】:

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


    【解决方案1】:

    根据documentation,您可以使用gcloud firestore export命令将集合和子集合导出到云存储桶。如上所述,在此命令中,您可以选择带有 --collection-ids 标志的集合和子集合。另外,导出大表时最好使用--async标志。

    将数据导出到指定存储桶后,您可以使用bq load 命令link 将数据加载到BigQuery。对于每个集合和/或子集合将有一个表,因此执行两次(在您的情况下,您将导入 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 中的每个文档都有唯一的键,其中包含有关数据的重要信息。在这些键中,您有 key.name,它存储了父文档键,它可以用来加入集合及其各自的子集合。

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

    【讨论】:

    • 谢谢您的回答,您知道是否可以将集合和子集合放在一个表格中
    • @OrenCohen,是的,是的。您选择要在 BigQuery 中的 2 个不同表中加载的集合和子集合。比您可以使用表的keys 来加入集合及其各自的子集合。我还找到了另一个可能对link 有帮助的教程。请不要忘记接受并投票。
    猜你喜欢
    • 2019-11-02
    • 2020-05-14
    • 2020-09-24
    • 2021-08-27
    • 2019-11-01
    • 2020-05-08
    • 1970-01-01
    相关资源
    最近更新 更多