阶段的常见做法
Common practice for stages
Snowflake 允许使用不同的路径将不同结构的文件放在一个阶段中。
另一方面,我们可以将相同结构的文件放在不同的阶段。
stage 是用于多个 table 模式的存储还是 stage 是为分区 table 存储数据的手段?
通常的做法是什么?
Snowflake 中有几种不同类型的阶段:
Internal Stages (Named, User and Table):使用这些类型的阶段,您可以将文件直接上传到 Snowflake。如果您想从单个阶段将数据加载到多个 table 中,您可以使用“命名”或“用户”阶段。创建 table 时会自动创建一个“Table”阶段,它仅用于将数据加载到单个 table 中。对于所有内部阶段,您通常使用 SnowSQL 从本地计算机或服务器将数据上传到 Snowflake,然后 运行 复制命令到 table.
外部阶段 (External Stages):根据我的经验,外部阶段是最常见的。您在 Snowflake 中创建一个指向云提供商的 blob 存储服务(s3、gcs、azure blob)的阶段。这些文件不像内部阶段那样存储在 Snowflake 中,它们存储在 s3(或其他)中,您可以 运行 复制命令以加载到任何 table.
没有正确答案,您可以使用内部(命名或用户)或外部阶段加载到多个 table。我的 偏好 是使用外部阶段,这样数据就驻留在 Snowflake 之外,必要时也可以加载到其他工具中。
Snowflake 允许使用不同的路径将不同结构的文件放在一个阶段中。 另一方面,我们可以将相同结构的文件放在不同的阶段。
stage 是用于多个 table 模式的存储还是 stage 是为分区 table 存储数据的手段? 通常的做法是什么?
Snowflake 中有几种不同类型的阶段:
Internal Stages (Named, User and Table):使用这些类型的阶段,您可以将文件直接上传到 Snowflake。如果您想从单个阶段将数据加载到多个 table 中,您可以使用“命名”或“用户”阶段。创建 table 时会自动创建一个“Table”阶段,它仅用于将数据加载到单个 table 中。对于所有内部阶段,您通常使用 SnowSQL 从本地计算机或服务器将数据上传到 Snowflake,然后 运行 复制命令到 table.
外部阶段 (External Stages):根据我的经验,外部阶段是最常见的。您在 Snowflake 中创建一个指向云提供商的 blob 存储服务(s3、gcs、azure blob)的阶段。这些文件不像内部阶段那样存储在 Snowflake 中,它们存储在 s3(或其他)中,您可以 运行 复制命令以加载到任何 table.
没有正确答案,您可以使用内部(命名或用户)或外部阶段加载到多个 table。我的 偏好 是使用外部阶段,这样数据就驻留在 Snowflake 之外,必要时也可以加载到其他工具中。