将数据从 Firestore 加载到 BigQuery 的适当方法是啥?

Posted

技术标签:

【中文标题】将数据从 Firestore 加载到 BigQuery 的适当方法是啥?【英文标题】:What is the appropriate way to load data from Firestore into BigQuery?将数据从 Firestore 加载到 BigQuery 的适当方法是什么? 【发布时间】:2019-09-18 00:51:22 【问题描述】:

我正在寻找一些方法来从 Firestore 中导出数据,而无需在 BigQuery 和 Data Studio 中使用导出(从长远来看,这是一项昂贵的操作,因为它不支持增量备份)。

1) 使用 Google Pub/Sub。 这可能需要一个函数来写入 pub/sub,然后另一个函数来触发 BQ。

2) 使用 Cloud Functions 从 onCreate 事件触发以直接写入 BigQuery 数据集和表。 (这是使用 table.insert)

使用 Pub/Sub 有什么好处 - 除了从长远来看它会花费更多?

或者还有其他我不知道的方法吗?

我是新手。非常感谢上述场景的一些建议和利弊。

【问题讨论】:

【参考方案1】:

官方解决方案是here。

如果使用 Cloud Functions 从 onCreate 事件触发,您将创建什么?在 Cloud Storage 上创建文件还是创建 Firestore 文档?

我认为如果使用 Cloud Functions,您应该使用 PubSub 触发器。

我推荐像 Pub/Sub 这样的异步架构。因为重播容易,影响范围有限。

我开发的示例是here。我正在使用 Cloud Scheduler 而不是 cron.yaml。 Cloud Scheduler 的费用为here。

    (如果需要)将 Firebase 身份验证用户导出到 Cloud Firestore 集合。使用 Firestore、Cloud Functions(PubSub) 和 Cloud Scheduler。 将所有 Cloud Firestore 集合和指定集合导出到 Cloud Storage。使用 AppEngine 和 Cloud Scheduler。 将指定的 Cloud Firestore 集合导出到 BigQuery(作为分区表)。使用 AppEngine 和 Cloud Scheduler。

【讨论】:

嘿@zkohi。我会在云存储中创建一个 JSON 文档,如下所示:blog.questionable.services/article/… 感谢您的想法和样品。我一定会去看看的! 您想将数据流式传输到 BigQuery 吗?您的链接使用的是Stream data into BigQuery one record。 我的答案是像每日 cron 作业一样的计划数据导出。导出指定 Cloud Firestore 集合中的所有数据。 我不建议使用 Firestore onCreate 触发器流式传输数据。

以上是关于将数据从 Firestore 加载到 BigQuery 的适当方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

如何将加载的数据从Firestore保存到Arraylist

显示加载图标,直到Firebase firestore将数据完全加载到textview中

从 Cloud Firestore 检索时,Recycler View 未加载数据

将 Firestore 数据加载到 json 中

尝试将一组对象保存到 Firestore 并将其加载回来

将大型 json 文件从 Firebase 存储传输到 Firestore