雪花云数据平台Snowpipe,用于连续接收不定期到达的日常文件



我是雪花的新手,我们正在开发POC。场景是我们在一夜之间从ERP系统中获得大约100个(.txt(文件上传到S3存储桶中。我们需要将这些文件加载到暂存表中,然后加载到DW表中,并在雪花中应用数据转换。我们正在考虑使用snowpipe将数据从S3加载到暂存表,因为来自ERP的文件到达没有计划,并且可能在四个小时内的任何时间到达。每天的文件都有时间戳,每天都有完整的数据。因此,在摄取当天的文件之前,我们需要每天截断暂存表。

但是雪管定义不允许截断/创建语句。

请分享你对此的看法。我们应该继续考虑雪管吗?或者尝试使用计划为"TASK"的COPY命令以固定的间隔运行,比如每15分钟运行一次?

您是否考虑过将数据不断添加到阶段表中,在该表上放置一个仅追加的STREAM,然后使用任务从STREAM加载下游表。该任务可以每分钟运行一次WHEN语句,该语句检查数据是否在STREAM中。这将加载数据,并在数据碰巧从您的ERP降落时将其推送到下游。

然后,您可以有一个在一天中任何时候运行的日常任务,该任务检查STREAM以确保其中没有数据,如果这是真的,则DELETE底层表中的所有内容。此步骤只需要用于保存存储,并且由于STREAM仅为追加,因此DELETE语句不会在STREAM中创建记录。

最新更新