首页 > 解决方案 > 外部表的雪花外部阶段文件推荐

问题描述

专家们,

需要针对以下场景的建议:

我们通过使用存储过程(使用横向扁平查询的逻辑集)读取外部表,从存储在 S3 中的 JSON 文件中动态解析 JSON 记录。我需要以下建议。

  1. 在 S3 中单独存储来自 Source 的多个 JSON 文件,无需通过外部表进行合并和访问。

  2. 将 Source 中的多个 JSON 文件合并为单个 JSON(每个 500 个 JSON 到单个 JSON)并通过外部表访问。

  3. 与第 2 步相同 - 但是压缩并存储在 S3 中并通过外部表访问。

同样的老问题 External Stage Vs Internal Stage - 推荐用于上述场景。

谢谢

标签: jsonsnowflake-cloud-data-platform

解决方案


外部表不是物化表,因此在查询时从阶段获取数据。

在内部和外部阶段之间进行选择: 这完全取决于您的要求。如果您已经有一个保存文件的 S3 阶段,那么最好在其之上创建一个外部阶段。如果您不需要保留历史文件以供审计,那么内部阶段是一个不错的选择,可以通过使用 PUT 命令将文件放置在阶段中来获得更好的性能。

由于仅在查询外部表时才会从文件中获取数据,因此拥有多个文件或合并所有文件不会产生影响。但是,压缩会减少您的存储成本。


推荐阅读