在我的用例中,我计划的作业会读取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
如果您提供了代码,将会有所帮助。您似乎正在更新CSV,这意味着Snowflake将整个文件视为要加载的新文件,然后它将再次加载整个文件。如果您只运行没有下游逻辑的COPY INTO
命令,则将发生这种情况。
两个选项:
1)不更新CSV文件...仅使用新数据创建一个新文件。然后,COPY INTO
命令将正常工作。
2)如果您还收到对先前记录的更新,则应将COPY INTO
运行到临时表中,然后将MERGE
该数据运行到主键上的最终表中。