json - 外部表的雪花外部阶段文件推荐
问题描述
专家们,
需要针对以下场景的建议:
我们通过使用存储过程(使用横向扁平查询的逻辑集)读取外部表,从存储在 S3 中的 JSON 文件中动态解析 JSON 记录。我需要以下建议。
在 S3 中单独存储来自 Source 的多个 JSON 文件,无需通过外部表进行合并和访问。
将 Source 中的多个 JSON 文件合并为单个 JSON(每个 500 个 JSON 到单个 JSON)并通过外部表访问。
与第 2 步相同 - 但是压缩并存储在 S3 中并通过外部表访问。
同样的老问题 External Stage Vs Internal Stage - 推荐用于上述场景。
谢谢
解决方案
外部表不是物化表,因此在查询时从阶段获取数据。
在内部和外部阶段之间进行选择: 这完全取决于您的要求。如果您已经有一个保存文件的 S3 阶段,那么最好在其之上创建一个外部阶段。如果您不需要保留历史文件以供审计,那么内部阶段是一个不错的选择,可以通过使用 PUT 命令将文件放置在阶段中来获得更好的性能。
由于仅在查询外部表时才会从文件中获取数据,因此拥有多个文件或合并所有文件不会产生影响。但是,压缩会减少您的存储成本。
推荐阅读
- apache-kafka - 卡夫卡期待地关闭。无法创建许可证主题
- visual-studio - 无法在 Visual Studio 2019 中下载 Android 模拟器
- swift - 如何减少 SwiftUI 中大量图像的内存占用
- node.js - Node.Js HTTP 响应中断
- mysql - 每周统计看到的用户
- ios - 如何在 Xcode 12 中使用 iOS 12 模拟器
- sql-server - 从更改跟踪表中读取 - 什么事务隔离级别?
- javascript - 打字稿:检查特定函数是否返回值?
- oracle - 使用动态变量插入表 PLSQL
- r - R xml2; 将嵌套的 xml 文件转换为数据框