如何解决阶段的常见做法
SNowflake 允许使用不同路径将不同结构的文件放在一个阶段。 另一方面,我们可以将相同结构的文件放在不同的阶段。
stage 是存储一个模式的几个表还是 stage 是存储分区表的数据? 通常的做法是什么?
解决方法
Snowflake 有几种不同类型的阶段:
内部阶段(Named、User 和 Table):通过这些类型的阶段,您可以将文件直接上传到 Snowflake。如果您想从单个阶段将数据加载到多个表中,您可以使用“命名”或“用户”阶段。创建表时会自动创建“表”阶段,它仅用于将数据加载到单个表中。对于所有内部阶段,您通常使用 SnowSQL 从本地计算机或服务器将数据上传到 Snowflake,然后将复制命令运行到表中。
外部阶段 (External Stages):根据我的经验,外部阶段是最常见的。您在 Snowflake 中创建一个阶段,指向云提供商的 blob 存储服务(s3、gcs、azure blob)。这些文件不像内部阶段那样存储在 Snowflake 中,它们存储在 s3(或其他)中,您可以运行复制命令以加载到任何表中。
没有正确答案,您可以使用内部(命名或用户)或外部阶段加载到多个表中。我的偏好是使用外部阶段,这样数据就驻留在 Snowflake 之外,必要时也可以加载到其他工具中。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。