3

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

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

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

4

4 回答 4

0

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

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

于 2017-02-01T19:10:10.637 回答
0

道歉!没有评论的声誉,这就是我在答案部分写的原因。

我和你完全一样。尝试在 redshift 中执行我的 ETL 操作,截至目前我有 30 亿行,并且预计会大幅增长。
现在,使用从 AWS lambda 定期调用的 DML 将数据加载到 redshift 中的数据集市中。在我看来,在 Redshift 中创建数据仓库非常困难。

于 2016-08-22T17:08:15.437 回答
0

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

它对于 Redshift ETL 来说非常棒且经济实惠,并且有一个 Data Vault 示例项目。

于 2019-05-27T03:20:43.963 回答
-1

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

于 2016-08-26T18:49:32.820 回答