【发布时间】:2016-12-28 10:46:04
【问题描述】:
我有一堆数据存储在 Amazon S3 中的文件中,我计划用它在 Redshift 中构建一个 Data Vault。我的第一个问题是正确的方法是在 Redshift 中构建 DV 和数据集市,还是我应该将 S3 视为我的数据湖并且只有在 Redshift 中的数据集市?
在我的架构中,我目前正在考虑前者(即 S3 Data Lake + Redshift Vault 和 Marts)。但是,我不知道我是否可以直接在 Redshift 中创建 ETL 流程以使用 Vault 中的数据填充集市,或者我是否必须使用 Amazon EMR 来处理 S3 中的原始数据,在那里生成新文件并最后将它们加载到集市中。
所以,我的第二个问题是:ETL 策略应该是什么?谢谢。
【问题讨论】:
-
S3 不是关系型的,它基本上是用于存储文件的。 Data Vault 是在关系数据库中实现的,因此您无法在 S3 上创建 datavault。您将如何在 S3 中构建集线器、链接、卫星?如果您正在寻找术语,那么 S3 可能被称为您的“数据湖”(呃,我现在感觉很脏)
-
@Nick.McDermaid,你是对的。我一直认为 S3 在我的架构中更像是一个数据湖。我的问题更多是关于在 Redshift 中拥有 DV 和数据集市,或者只是从湖中的数据填充的数据集市(我将编辑问题)。我在想的是用 S3 中的数据加载 Vault,然后用 Vault 中的数据加载 Marts。但是,我不知道我是否能够直接在 Redshift 中创建 ETL 流程,或者我必须通过在 S3 中处理文件、生成包含 Mart 数据的新文件并加载来使用 Amazon EMR它在 Redshift 中?
-
好吧,如果您需要数据保险库,则需要在 redshift 中构建它。您可以将文件加载到 DV 或 DM 中。如果您决定想要 DV,则可以通过视图和删除/插入/更新语句将 DV 加载到 DM 中 - 您不必再次绕道导出和导入文件。将文件加载到 Redshift 需要某种调度/作业运行工具来运行(在 AWS 上或不在 AWS 上)以连接到 redshift 并在 redshift 中运行
COPY命令来加载数据。我调查了一个这样做的项目,但从未开始,所以这对我来说都是理论。 -
但是您绝对应该能够为您的数据仓库拥有一个架构,为您的数据集市提供另一个架构,并直接从 DV > DM 加载数据,而无需重新导出和导入文件。
-
我现在处于同样的情况。但我正在考虑使用 Glue 在 s3 文件上构建模式。然后,我可以在 Athena 上使用 DV。只是这个解决方案仍在研究和评估中
标签: amazon-redshift etl data-warehouse data-vault bigdata