红移中的数据仓库与ETL策略



我有一堆数据存储在Amazon S3的文件,我计划用它来建立一个Redshift的数据仓库。我的第一个问题是正确的方法是在红移中构建DV和数据集市,还是我应该将S3视为我的数据湖,并且只在红移中拥有数据集市?

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

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

抱歉!没有评论的名声,这就是为什么我在回答部分写作。
我和你的处境完全一样。尝试在红移中执行ETL操作,到目前为止,我有30亿行,并期望大幅增长。
现在,使用DML将数据加载到红移的数据集市中,这些DML是定期从AWS lambda调用的。在我看来,在Redshift中创建一个数据仓库是非常困难的。

我来晚了一点,毫无疑问你已经解决了这个问题,但它仍然可能是相关的。我只是想说说我的看法。一种解决方案是使用S3和Hive作为持久暂存区(如果您愿意,也可以是数据湖)从数据源获取数据。完全用红移来构造DV。在Redshift中,您仍然需要一个暂存区,以便从S3摄取文件,确保在进入Redshift暂存表的过程中计算哈希值(这就是EMR/Hive的作用)。你可以直接在红移中添加哈希值但它可能会使红移受到胁迫,这取决于体积。通过普通的批量插入和更新语句将数据从登台推送到DV中,然后使用视图在Redshift中虚拟化您的集市。

您可以使用任何数据管道工具来实现这一点,lambda也可以是您或其他工作流/管道工具的候选。

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

对于Redshift ETL来说,这是一个非常棒的和负担得起的,并且有一个Data Vault示例项目。

如果AWS是您潜在的技术堆栈,我建议您阅读这篇文章,并考虑遵循其中详细解释的设计。我不想在这里复制粘贴文章,但它确实是一个如何实现Data Vault的配方,我相信它满足了您的需求。

S3只是文件的键值存储。你不能在这里创建DV或DW。因此,您可以使用红移或EMR将数据处理成DV的关系格式。是否选择由你自己决定;EMR有特定的用例IMO

最新更新