【问题标题】:How to insert nested data to an existing record using bigquery streaming如何使用 bigquery 流向现有记录插入嵌套数据
【发布时间】:2017-04-18 15:59:38
【问题描述】:

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

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

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

如何在 bigQuerY 中做到这一点? 假设我们可能有不同的数据来源?

【问题讨论】:

    标签: google-bigquery bigdata


    【解决方案1】:

    将其存储在 BigQuery 中的首选和推荐方式是仅追加。这意味着您只能进行更新/删除,并且您会不断地更新新行。

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

    换句话说,您使用Streaming Insert 功能不断添加新行。然后你的 SQL 查询通常使用窗口函数来选择最后一行。

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

    【讨论】:

    • 另一个选项可能是维护包含各种信息的单独表,并根据员工 ID 将它们关联起来。分析函数可能很复杂,因为 OP 希望跨行组合信息。
    猜你喜欢
    • 2021-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-14
    • 1970-01-01
    • 2021-12-04
    相关资源
    最近更新 更多