如何使用bigquery流将嵌套数据插入现有记录

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用bigquery流将嵌套数据插入现有记录相关的知识,希望对你有一定的参考价值。

我试图理解bigQuery,看看它是否符合我们的需求。我们的基本要求之一是存储嵌套结构,使嵌套部分需要与主记录分开存储。

例如假设我们有员工的记录,在存储了员工的主要数据后,让我们说一分钟之后,另一条记录将与员工以前的工作地点一起到达(然后另一条此类记录可能会到达)

因此,我们需要存储第一个员工记录,然后更新结构以添加有关员工的详细信息,此详细信息也作为新记录插入,并且不会覆盖现有记录。

怎么能在bigQuerY中完成?假设我们可能有不同的数据来源?

答案

在BigQuery中存储它的首选和推荐方法是append-only。这意味着您只能进行更新/删除,并且您不断地即时新行。

通过拥有来自同一用户的行流,您需要以这种方式编写查询以选择最后一行,以获取最新的配置文件。但是你有所有流的“版本控制”。

换句话说,您使用Streaming Insert功能不断添加新行。然后,通常使用Window Functions来查找最后一行的SQL查询。

您无法更新行,或将记录附加到BigQuery limits DML statements到每个表96。

以上是关于如何使用bigquery流将嵌套数据插入现有记录的主要内容,如果未能解决你的问题,请参考以下文章

使用 Golang 将嵌套数据插入 BigQuery

如何使用现有时间戳在 BigQuery 中生成未嵌套的数组

在bigquery中以编程方式更新/插入数据

如何在展平嵌套字段后将数据​​从一个 bigquery 表流式插入到另一个表?

在 bigquery 中以编程方式更新/插入数据

如何使用java将复杂的动态嵌套json插入bigquery