【发布时间】:2020-06-24 16:10:05
【问题描述】:
我预计每天通过 S3 将 10,000 个(小,约 10KB)文件流式传输到 Snowflake,全天均匀分布。我计划使用 Snowpipe 文档中概述的 S3 事件通知来实现自动化。我还想独立于 Snowflake 将这些文件保存在 S3 上。关于如何从 S3 摄取,我有两种选择:
s3://data-lake/2020-06-02/objects
/2020-06-03/objects
.
.
/2020-06-24/objects
或
s3://snowpipe specific bucket/objects
从最佳实践/计费的角度来看,我是否应该直接从我的数据湖中提取 - 这意味着我的“创建或替换 STORAGE INTEGRATION”和“创建或替换 STAGE”语句引用了上面的顶级“s3://data-lake” ?或者,我应该为 Snowpipe 提取创建一个专用的 S3 存储桶,并在一两天后使该存储桶中的对象过期吗?
如果我给它一个包含成千上万个对象的顶级文件夹,Snowpipe 是否需要做更多的工作(因此向我收取更多费用)来摄取,而不是我给它一个小紧的、受控的、专用文件夹中只有几个对象?当通知发出时,S3 通知服务会告诉 Snowpipe 什么是新的,还是 Snowpipe 必须执行一个 LIST 并将其与已摄取的对象列表进行比较?
https://docs.snowflake.com/en/user-guide/data-load-snowpipe-auto-s3.html 的文档在这种情况下没有提供任何具体指导。
【问题讨论】:
-
SQS 的 Snowpipe 自动化看起来最适合您的要求:docs.snowflake.com/en/user-guide/…
-
我在 S3 存储桶上没有冲突通知,并且我不需要通知任何其他任务有关 S3 更改。这是两种方法之间的两个记录差异。两种方法之间的通知本身是否不同?如果是这样,则没有记录。
标签: snowflake-cloud-data-platform