我正在尝试理解bigQuery,看看它是否符合我们的需求。 我们的基本要求之一是存储嵌套结构,使嵌套部分需要与主记录分开存储。
e.g。 假设我们有员工的记录,在存储了员工的主要数据之后,让我们说一分钟之后,另一条记录将与员工以前的工作地点一起到达(然后另一条记录可能会到达)
因此,我们需要存储第一个员工记录,然后更新结构以添加有关员工的详细信息,此详细信息也会作为新记录插入,并且不会覆盖现有记录。
如何在bigQuerY中完成? 假设我们可能有不同的数据来源?
答案 0 :(得分:2)
在BigQuery中存储它的首选和推荐方法是append-only。这意味着您只能进行更新/删除,并且您不断地即时新行。
通过拥有来自同一用户的行流,您需要以这种方式编写查询以选择最后一行,以获取最新的配置文件。但是你拥有所有流中的所有“版本控制”。
换句话说,您使用Streaming Insert功能不断添加新行。然后,通常使用Window Functions来查找最后一行的SQL查询。
您无法更新行,也不能将记录追加为每个表格的BigQuery limits DML statements到96。