我们正在尝试从亚马逊网络服务S3 (外部阶段)获取数据,并将其加载到雪花内部阶段。Snowflake应该作为我们的数据湖,可以减少我们从AWS使用的存储量。有没有内置的功能可以从外部stage -->内部stage传输数据?
目标是将数据加载到内部Snowflake阶段,然后从AWS中删除数据。我们希望Snowflake成为数据湖。
发布于 2020-07-28 05:05:03
你说internal stage是什么意思?
如果您计划加载到Snowflake表中,则您的场景是Snowpipe的完美用例,有关更多信息,请访问Automating Snowpipe for Amazon S3
发布于 2020-07-28 06:00:30
内部阶段只是Snowflake使用的一个不同的S3存储桶。所以它并不是真的“减少”了存储量,只是改变了它的位置。如果你还想这样做,你可以从外部阶段转到内部阶段。或者,您可以通过任何可用的方法从外部后台加载到Snowflake中的表。
发布于 2020-07-30 22:20:58
你必须停止认为“数据湖”意味着存储在云存储桶中的一堆原始数据文件。这是2010版的数据湖。在Snowflake中,您可以将原始数据加载到镜像这些文件的表中(可以是逐列结构化的,也可以是半结构化的JSON、XML、Parquet...)。将这些表视为您的“原始”区域。使用流和任务,您可以自动将原始区域中的数据管理到第二组表中-“管理的”区域。另一组流/任务可能会走另一步,并将经过策划的数据预先聚合到一个“聚合”区域中。工作流的设计取决于您。云存储只是成为原始提取数据的“着陆区”,可以在摄取到Snowflake后删除。现在,您拥有了用于原始数据、精选数据和聚合数据的单一平台。连接一个数据治理工具,如Alation或Collibra,以在整个过程中维护数据的谱系。
-保罗-
https://stackoverflow.com/questions/63122377
复制相似问题