Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon s3 Redshift中的维度建模与ETL_Amazon S3_Etl_Amazon Redshift_Dimensional Modeling - Fatal编程技术网

Amazon s3 Redshift中的维度建模与ETL

Amazon s3 Redshift中的维度建模与ETL,amazon-s3,etl,amazon-redshift,dimensional-modeling,Amazon S3,Etl,Amazon Redshift,Dimensional Modeling,我一直在研究亚马逊的红移数据库,作为未来数据仓库的替代品。我的经验一直是使用维度建模和Ralph Kimball的方法,所以看到Redshift不支持诸如自动递增列的串行数据类型之类的功能有点奇怪 然而,AWS大数据博客最近发布了一篇关于如何优化星型模式红移的博文: 我的问题是关于在红移中加载星型模式的最佳实践是什么?我在Redshift的任何文档中都找不到答案 我倾向于将我的文件从S3导入到暂存表中,然后在插入到目标表之前使用SQL进行转换,例如查找和生成代理键 这是其他人目前正在做的吗?有

我一直在研究亚马逊的红移数据库,作为未来数据仓库的替代品。我的经验一直是使用维度建模和Ralph Kimball的方法,所以看到Redshift不支持诸如自动递增列的串行数据类型之类的功能有点奇怪

然而,AWS大数据博客最近发布了一篇关于如何优化星型模式红移的博文:

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

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


这是其他人目前正在做的吗?有没有值得花这么多钱的ETL工具来简化这一过程?

这是我使用的最佳实践:

  • 将事件源的原始数据加载到表中
  • 以DWH事实表的格式将业务逻辑应用到暂存表中
  • 通过在分段减号维度表中对不同的值运行减号命令来查找新维度值
  • 使用事实数据或默认值在维度表中创建新行以实现引用完整性。
  • 将staging中的行添加到DWH事实表
  • 在另一个过程中,如果维度表中有来自另一个源的附加属性,我将通过加载到表中,然后使用join执行和更新,然后仅插入新行来运行upsert过程


    性能思考——只要你能在redshift内部或之前在EMR或类似软件上实现这一点,那么如果你尝试使用ETL工具来实现这一点会更好,该工具将在redshift中生成大量插入命令。

    谢谢,这正是我所好奇的。我想最好是通过Redshift内部的ETL来完成所有ETL逻辑。