雪花重复

问题描述 投票:0回答:1

在我的用例中,我计划的作业会读取CSV并写入雪花。

当我安排从CSV读取并每小时写入雪花时,我会看到雪花中有多个重复项。尽管我的ID是PRIMARY KEY(ALTER TABLE表名,ADD PRIMARY KEY,第1列)。

我知道Snowflake支持定义和维护约束,但不强制执行约束,但始终强制执行NOT NULL约束除外。 我需要帮助来解决此问题。

详细说明,让我们考虑场景:

[步骤1:在9AM时,将数据从CSV插入到SnowflakeID Customer name Price 1111 John Mathew 10 1112 David Becham 20

[第2步:晚上10点,我又得到一行,因此我的CSV是ID Customer name Price 1111 John Mathew 10 1112 David Becham 20 1113 Hello World 40

雪花中的期望

ID Customer name Price 1111 John Mathew 10 1112 David Becham 20 1113 Hello World 40

我得到的是重复的如下ID Customer name Price 1111 John Mathew 10 1112 David Becham 20 1113 Hello World 40 1111 John Mathew 10 1112 David Becham 20

primary-key snowflake-cloud-data-platform
1个回答
0
投票

如果您提供了代码,将会有所帮助。您似乎正在更新CSV,这意味着Snowflake将整个文件视为要加载的新文件,然后它将再次加载整个文件。如果您只运行没有下游逻辑的COPY INTO命令,则将发生这种情况。

两个选项:

1)不更新CSV文件...仅使用新数据创建一个新文件。然后,COPY INTO命令将正常工作。

2)如果您还收到对先前记录的更新,则应将COPY INTO运行到临时表中,然后将MERGE该数据运行到主键上的最终表中。

© www.soinside.com 2019 - 2024. All rights reserved.