如何在展平嵌套字段后将数据从一个 bigquery 表流式插入到另一个表?
Posted
技术标签:
【中文标题】如何在展平嵌套字段后将数据从一个 bigquery 表流式插入到另一个表?【英文标题】:How to do streaming insert data from one bigquery table to another table after flattening the nested fields? 【发布时间】:2020-08-16 19:44:26 【问题描述】:我有一个中间表,它的列中包含 send_timestamp 和 JSON 数据。我正在使用数据流将数据从 pubsub 插入到这个中间表。
现在我的用例是验证数据并将中间表中的嵌套 JSON 展平到我的最终 Bigquery 表中特定时间戳之间的相关列中,然后插入它。我使用了云功能,但总消息量很大,因此无法正常工作。
有人可以推荐一个解决方案,并且需要更少的时间来使其工作吗?
谢谢!
【问题讨论】:
【参考方案1】:只需使用DML。执行这样的查询
insert into DATASET.TARGET_TABLE
select * from DATASET.tmp_table where ....
您的云函数可以运行此查询并退出。或者等待结束以确保工作结束并成功。
编辑
感谢federated table,您可以将数据读取(并且只能读取)到 Cloud SQL。
像这样,您可以将数据执行到 BigQuery 中并仅选择与 CloudSQL 匹配的那个!
【讨论】:
我做不到。在展平并插入最终表格之前,我需要对数据进行身份验证。 “验证数据”是什么意思? 如果应用程序有效负载的 id 与数据库中的 id 不匹配,那么我想过滤掉那些 一个简单的where
条件是否不足以排除这种不需要的条目?
@MohsinMumtaz,我编辑了我的答案。它解决了你的问题吗?以上是关于如何在展平嵌套字段后将数据从一个 bigquery 表流式插入到另一个表?的主要内容,如果未能解决你的问题,请参考以下文章
在 BigQuery 中展平嵌套和重复的结构(标准 SQL)