增量扫描:只扫描未处理的数据?
Posted
技术标签:
【中文标题】增量扫描:只扫描未处理的数据?【英文标题】:incremental scan: Scan only the data which is not processed? 【发布时间】:2020-04-03 00:54:49 【问题描述】:我有一个表 AB,它在 20191206 上更新,同一个表在 20191209 上更新。我正在处理另一个表 CD,我需要扫描 AB 并加载到 CD 中。所以,我在 20191206 上扫描了 AB,它检索到 2 条记录并加载到 CD 中。如果我扫描 20191209,那么我应该只扫描之前未扫描的数据,这意味着我需要从 AB 中的时间戳:20191207 开始扫描,并将剩余的 3 条记录(20191207、20191208、20191209)加载到 CD 表中。我想知道如何对表进行增量扫描?这里的平台是雪花
\begintable[]
\begintabularlll
ID & NAME & TIMESTAMP \\
24 & mike & 20191205 \\
36 & john & 20191206
\endtabular
\endtable
\begintable[]
\begintabularlll
ID & NAME & TIMESTAMP \\
24 & mike & 20191205 \\
36 & john & 20191206 \\
40 & nick & 20191207 \\
42 & bob & 20191208 \\
43 & tia & 20191209
\endtabular
\endtable
【问题讨论】:
那你为什么还要标记 SQL Server 和 SQLLite? 当你在编辑时,我的英文总是大写 时间戳 > '20191206' 【参考方案1】:您可以为此使用not in
。
类似的东西,虽然我还没有确认语法。
INSERT INTO CD A (SELECT * FROM AB B WHERE A.ID NOT IN B.ID);
【讨论】:
以上是关于增量扫描:只扫描未处理的数据?的主要内容,如果未能解决你的问题,请参考以下文章