将数据从 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中