我在Amazon S3中存储的文件中有大量数据,并计划使用它在Redshift中构建数据保险库。我的第一个问题是,如果正确的方法是在Redshift中构建DV和数据集市,或者我是否应该将S3视为我的Data Lake并且只在Redshift中使用数据集市?
在我的架构中,我目前正在考虑前者(即S3 Data Lake + Redshift Vault和Marts)。但是,我不知道我是否可以直接在Redshift中创建ETL进程,以使用Vault中的数据填充Marts,或者我是否必须使用Amazon EMR来处理S3中的原始数据,生成那里有新文件,最后将它们加载到Marts中。
所以,我的第二个问题是:ETL策略应该是什么?感谢。
答案 0 :(得分:0)
道歉!没有评论的声誉,这就是我在答案部分写作的原因。
我和你在同一条船上。试图在redshift中执行我的ETL操作,到目前为止我有30亿行并且期望大幅增长。
现在,使用DML定期从调用时加载数据到红移中的数据集市。 AWS lambda。据我所知,在Redshift中创建数据库非常困难。
答案 1 :(得分:0)
S3只是文件的键值存储。您无法在那里创建DV或DW。因此,您可以使用Redshift或EMR将数据处理为DV的关系格式。由你决定是否选择,取决于你; EMR具有特定用例IMO
答案 2 :(得分:0)
我有点迟到了,毫无疑问你已经解决了这个问题,但它仍然可能是相关的。只是想我就此分享我的看法。一种解决方案是使用S3和Hive作为持久暂存区(如果您愿意,可以使用Data Lake)从源中获取数据。完全用Redshift构建你的DV。您仍然需要Redshift中的暂存区域才能从S3中提取文件,以确保在进入Redshift登台表(EMR / Hive进入的位置)的路上计算哈希值。您可以直接在Redshift中添加哈希值,但它可能会根据音量将Redshift置于胁迫状态。通过普通的批量插入和更新语句将数据从登台推送到DV,然后使用视图在Redshift中虚拟化您的市场。
您可以使用任何数据管道工具来实现此目标,lambda也可以作为您或其他工作流/管道工具的候选者。
答案 3 :(得分:0)
我强烈建议您查看Matillion for Redshift:https://redshiftsupport.matillion.com/customer/en/portal/articles/2775397-building-a-data-vault
对于Redshift ETL来说,它是梦幻般且价格合理的,并且具有Data Vault示例项目。