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

时间:2017-04-18 15:59:39

标签: google-bigquery bigdata

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

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

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

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

1 个答案:

答案 0 :(得分:2)

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

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

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

您无法更新行,也不能将记录追加为每个表格的BigQuery limits DML statements到96。