Redshift中的数据库和ETL策略

问题描述 投票:2回答:3

我在Amazon S3中存储的文件中有大量数据,并计划使用它在Redshift中构建数据库。我的第一个问题是,如果正确的方法是在Redshift中构建DV和数据集市,或者我是否应该将S3视为我的Data Lake并且只在Redshift中使用数据集市?

在我的架构中,我正在考虑前者(即S3 Data Lake + Redshift Vault和Marts)。但是,我不知道是否可以直接在Redshift中创建ETL进程以使用Vault中的数据填充Marts,或者我是否必须使用Amazon EMR来处理S3中的原始数据,在那里生成新文件和最后将它们加载到Marts中。

所以,我的第二个问题是:ETL策略应该是什么?谢谢。

amazon-redshift etl data-warehouse data-vault bigdata
3个回答
0
投票

道歉!没有评论的声誉,这就是我在答案部分写作的原因。 我和你在同一条船上。试图在redshift中执行我的ETL操作,到目前为止我有30亿行,并期望大幅增长。 现在,使用从AWS lambda定期调用的DML将数据加载到redshift中的数据集市中。据我所知,在Redshift中创建数据库非常困难。


0
投票

S3只是文件的键值存储。您无法在那里创建DV或DW。因此,您可以使用Redshift或EMR将数据处理为DV的关系格式。由你决定是否选择,取决于你; EMR具有特定用例IMO


0
投票

我有点迟到了,毫无疑问你已经解决了这个问题,但它仍然可能是相关的。我以为我会就此发表意见。一种解决方案是使用S3和Hive作为持久暂存区(如果您愿意,可以使用Data Lake)从源中获取数据。完全用Redshift构建你的DV。您仍然需要Redshift中的暂存区域才能从S3中提取文件,以确保在进入Redshift登台表(这是EMR / Hive进入的位置)的路上计算哈希值。您可以直接在Redshift中添加哈希值,但它可能会根据音量将Redshift置于胁迫状态。通过普通的批量插入和更新语句将数据从登台推送到DV,然后使用视图在Redshift中虚拟化您的市场。

您可以使用任何数据管道工具来实现此目标,lambda也可以成为您或其他工作流/管道工具的候选者。


0
投票

我强烈建议您查看Matillion for Redshift:https://redshiftsupport.matillion.com/customer/en/portal/articles/2775397-building-a-data-vault

它对于Redshift ETL来说非常棒且价格合理,并且有一个Data Vault示例项目。

© www.soinside.com 2019 - 2024. All rights reserved.