2015-06-03 28 views
2

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

有,但是,从AWS大数据博客有关如何优化红移为星型架构这个最近的一篇博客: https://blogs.aws.amazon.com/bigdata/post/Tx1WZP38ERPGK5K/Optimizing-for-Star-Schemas-and-Interleaved-Sorting-on-Amazon-Redshift

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

我倾向于将我的文件从S3导入到登台表中,然后使用SQL在插入目标表之前执行查找和生成替代键等转换。

这是别人目前在做什么?有没有一种ETL工具可以让这个工作变得更容易?

回答

0

这是我使用的最佳实践:

  1. 装入事件源到一个表的原始数据。
  2. 以DWH事实表的格式将业务逻辑应用到临时表中。
  3. 通过在暂存减号表中运行不同值的减命令来查找新的维值。
  4. 在维度表中为参考完整性创建新行,其中包含来自事实或缺省值的数据。
    1. 将分段中的行添加到DWH事实表中。

在不同的过程中,如果有从其他来源维度表的附加属性,我被加载到一个表,然后做与加入更新,然后只插入运行的程序UPSERT新的行。

性能思维 - 只要你能做到在EMR或类似这里面红移或以前,如果你试图用一个ETL工具,将产生大量插入命令到红移做到这一点可能会更好呢。

+0

谢谢,这就是我很好奇的。我想最好的是通过Redshift中的ETL完成所有的ETL逻辑。 – njkroes