1

我正在使用以下查询来填充我的事实表:

Select sh.isbn_l,sh.id_c,sh.id_s, sh.data,sh.quantity, b.price
 from Book as b
inner join Sales as sh
on l.isbn=sh.isbn_l

主要是我想将表格从特定时间加载到特定时间。所以如果我今天加载,我会得到从今天到最后一次加载的所有记录。

如果我在后天加载它,我将在加载时间之后获取今天的数据,直到后天。

我的意思是没有重复的行或数据。我应该怎么办 ?有什么想法吗?

先感谢您

4

1 回答 1

0

Streams(也许还有 Tasks)是你的朋友。

雪花流记录表(例如临时表)的更改数据捕获 (CDC) 信息的增量,包括插入和其他 DML 更改。流允许在两个事务时间点之间在行级别查询和使用对表的一组更改。

在连续数据管道中,表流记录暂存表和任何下游表何时使用来自使用连续数据加载的业务应用程序的数据填充,并准备好使用 SQL 语句进行进一步处理。

Snowflake Tasks 可以选择使用表流来提供一种方便的方式来持续处理新的或更改的数据。任务可以转换流呈现的新行或更改的行。每次调度任务运行时,它都可以验证流是否包含表的更改数据(使用SYSTEM$STREAM_HAS_DATA),并使用更改数据或如果不存在更改数据则跳过当前运行。

用户可以定义一个简单的树状任务结构,执行连续的 SQL 语句来处理数据并将其移动到各种目标表。

https://docs.snowflake.com/en/user-guide/data-pipelines-intro.html

于 2021-10-17T11:40:01.560 回答