流数据并更新嵌套记录BigQuery

时间:2020-08-04 23:07:51

标签: google-bigquery

我们正在设置BigQuery项目并讨论nested and repeated fields的使用。 我们不确定围绕重复记录的值更新的最佳做法

想象一下,我们有一个超级英雄表,看起来像

super_hero_id   | powers             | Date
----------------| -------------------|-------------
5               | Fly                | 2020-08-01
                | Change Skin Color  |
----------------|--------------------|-------------
6               | Shoot Lasers       | 2020 -08-01
                | Attract Metal      |
                | Become Transparent |
----------------|--------------------|-------------

现在假设“超级英雄5”发现了他的原始血统,并且意识到他也具有“塑造水”的能力,将这些信息添加到分析表的最佳实践是什么?

我们看到的两个选项是

  1. 更新BigQuery表example中的嵌套记录。但是,据我们了解,BigQuery每天对表的操作都有限制,并且对数百万个超级英雄执行此操作是不可行的。
  2. 使用streaming inserts将新行插入表中。我们想探索这个选项,但是按照我们的理解,这只会将数据插入表中,因此我们的表最终看起来像
super_hero_id   | powers             | Date
----------------| -------------------|-------------
5               | Fly                | 2020-08-01
                | Change Skin Color  |
----------------|--------------------|--------------
6               | Shoot Lasers       | 2020 -08-01
                | Attract Metal      |
                | Become Transparent |
----------------|--------------------|-------------
5               | Fly                | 2020-08-01
                | Change Skin Color  |
                | Shape Water        |
----------------|--------------------|--------------

由于我们的宇宙定律,我们不能使用确定性的日期列来确定最近的行,而必须使用Row Number功能来确定我们的最新行。

所以我们有两个大问题

  1. 是否可以使用流插入来执行更新? (我们不这么认为)
  2. 为了使最后一行像往常一样完成,我们要做。
    • 总是从Big Query中读取前一行,然后构建完整的新行(不可行)吗?或
    • 是否总是从其他来源填充​​最新行中的完整数据?

推荐的方法是什么。

感谢您的阅读。任何输入表示赞赏

0 个答案:

没有答案