gpt4 book ai didi

amazon-s3 - Redshift 中的维度建模和 ETL

转载 作者:行者123 更新时间:2023-12-02 03:25:24 24 4
gpt4 key购买 nike

我一直在研究 Amazon 的 Redshift 数据库,作为我们数据仓库 future 可能的替代品。我的经验一直是使用维度建模和 Ralph Kimball 的方法,所以看到 Redshift 不支持自动递增列的串行数据类型等功能时有点奇怪。

但是,AWS 大数据博客最近发布了一篇关于如何针对星型模式优化 Redshift 的博文: https://blogs.aws.amazon.com/bigdata/post/Tx1WZP38ERPGK5K/Optimizing-for-Star-Schemas-and-Interleaved-Sorting-on-Amazon-Redshift

我的问题是关于在 Redshift 中加载星型模式的最佳实践是什么?我在 Redshift 的任何文档中都找不到这个答案。

我倾向于将我的文件从 S3 导入暂存表,然后使用 SQL 进行转换,例如在插入目标表之前进行查找和生成代理键。

这是其他人目前正在做的吗?是否有物有所值的 ETL 工具来简化此操作?

最佳答案

这是我使用的最佳实践:

  1. 将事件源的原始数据加载到表中。
  2. 将业务逻辑应用到 DWH 事实表格式的暂存表中。
  3. 通过在 staging minus 维度表中运行 distinct 值的 minus 命令找到新的维度值。
  4. 使用事实数据或默认值在维度表中创建新行以实现参照完整性。
    1. 将暂存中的行添加到 DWH 事实表。

在不同的过程中,如果从另一个源到维度表有额外的属性,我会通过加载到表中运行更新插入过程,然后使用连接执行和更新,然后仅插入新行。

性能思维 - 只要您可以在 redshift 中或之前在 EMR 或类似工具上执行此操作,那么如果您尝试使用 ETL 工具执行此操作会更好,该工具会在 Redshift 中生成大量插入命令。

关于amazon-s3 - Redshift 中的维度建模和 ETL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30627998/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com