【问题标题】:Snowflake updating duplicate records雪花更新重复记录
【发布时间】:2020-04-08 17:49:21
【问题描述】:

我在雪花中有暂存表,我正在使用雪管从 AWS S3 复制数据。其中一些记录是一种创建事件和多次更新的类型。对于同一事件,将有一个按时间顺序的创建和多个更新事件。我想将这些记录移动到另一个表中(因此创建事件应该将记录插入表中,并且多个更新事件应该相应地更新这些记录。)我试图使用“合并”概念雪花,但它不适合我的用例好像我的目标表没有记录,它为每次创建和更新创建一个新记录。

【问题讨论】:

  • 这个问题需要大量澄清。也许创建一个表结构、数据以及预期结果的示例。这将有助于其他人更好地了解问题并提供可能的解决方案。

标签: snowflake-cloud-data-platform snowflake-schema


【解决方案1】:

如果任何更新是原始事件的完整新版本并且可以完全替换以前的更新,则以下 SQL 将起作用,因此您实际上只需要应用许多最后一次更新。

如果您必须按顺序将所有更新应用到一个事件以获得正确的结果,则要困难得多。你没有提供任何细节,所以让我们猜测。

MERGE INTO event_tab old USING (
   SELECT * FROM new_events
   QUALIFY ROW_NUMBER() OVER (PARTITION BY event_id ORDER BY event_ts DESC) = 1
) new ON old.event_id = new.event_id
WHEN MATCHED THEN UPDATE ...
WHEN NOT MATCHED THEN INSERT ...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-02
    • 1970-01-01
    • 2021-06-18
    • 1970-01-01
    • 2021-04-04
    • 1970-01-01
    • 2022-11-22
    • 2023-03-26
    相关资源
    最近更新 更多