Amazon redshift 红移和ETL策略中的数据仓库

Amazon redshift 红移和ETL策略中的数据仓库,amazon-redshift,etl,data-warehouse,data-vault,bigdata,Amazon Redshift,Etl,Data Warehouse,Data Vault,Bigdata,我有一堆存储在AmazonS3中的文件中的数据,我计划用它在Redshift中构建一个数据仓库。我的第一个问题是,如果正确的方法是建立DV和数据集市所有的红移或如果我认为S3作为我的数据湖泊,只有数据集市在红移?< /P> 在我的架构中,我目前正在考虑前者,即S3数据湖+红移保险库和集市。但是,我不知道我是否可以直接用红移创建ETL流程,用Vault中的数据填充集市,或者我是否必须使用Amazon EMR处理S3中的原始数据,在S3中生成新文件,最后将它们加载到集市中 所以,我的第二个问题是:E

我有一堆存储在AmazonS3中的文件中的数据,我计划用它在Redshift中构建一个数据仓库。我的第一个问题是,如果正确的方法是建立DV和数据集市所有的红移或如果我认为S3作为我的数据湖泊,只有数据集市在红移?< /P> 在我的架构中,我目前正在考虑前者,即S3数据湖+红移保险库和集市。但是,我不知道我是否可以直接用红移创建ETL流程,用Vault中的数据填充集市,或者我是否必须使用Amazon EMR处理S3中的原始数据,在S3中生成新文件,最后将它们加载到集市中


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

抱歉!我没有评论的名声,这就是我在回答部分写作的原因。我和你在同一条船上。尝试在红移中执行我的ETL操作,到目前为止,我有30亿行,并期望大幅增长。现在,使用从AWS lambda定期调用的DML,以红移方式将数据加载到数据集市中。据我所知,在红移模式下创建数据保险库非常困难。

抱歉!我没有评论的名声,这就是我在回答部分写作的原因。我和你在同一条船上。尝试在红移中执行我的ETL操作,到目前为止,我有30亿行,并期望大幅增长。现在,使用从AWS lambda定期调用的DML,以红移方式将数据加载到数据集市中。在我看来,用红移创建数据仓库非常困难。

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

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

我晚了一点,毫无疑问你已经解决了这个问题,但是它仍然可能是相关的。我只是想分享一下我的看法。一种解决方案是使用S3和Hive作为持久性暂存区域数据湖(如果您希望从源获取数据)。完全用红移构建DV。为了从S3接收文件,您仍然需要一个红移暂存区,以确保在进入红移暂存表的过程中计算哈希值,这就是EMR/Hive的用武之地。您可以直接在Redshift中添加哈希,但它可能会根据音量的大小对Redshift施加压力。通过普通的大容量插入和更新语句将数据从暂存推送到DV中,然后使用视图在红移中虚拟化您的MART


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

我参加聚会有点晚,毫无疑问您已经解决了这个问题,但它仍然可能是相关的。我只是想分享一下我的看法。一种解决方案是使用S3和Hive作为持久性暂存区域数据湖(如果您希望从源获取数据)。完全用红移构建DV。为了从S3接收文件,您仍然需要一个红移暂存区,以确保在进入红移暂存表的过程中计算哈希值,这就是EMR/Hive的用武之地。您可以直接在Redshift中添加哈希,但它可能会根据音量的大小对Redshift施加压力。通过普通的大容量插入和更新语句将数据从暂存推送到DV中,然后使用视图在红移中虚拟化您的MART


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

我强烈建议您查看Matillion的红移:


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

我强烈建议您查看Matillion for Redshift:


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

S3不是关系型的,它基本上用于存储文件。datavault是在关系数据库中实现的,因此您无法在S3上创建datavault。您将如何在S3中构建中心、链接和卫星?如果您正在寻找术语,那么S3可能会被称为您的“数据湖”,呃,我觉得很脏now@Nick.McDermaid,你说得对。在我的体系结构中,我一直认为S3更像是一个数据湖。我的问题更多的是让DV和数据集市处于红移状态,或者仅仅是由湖中的数据填充的数据集市。我将编辑这个问题。我的想法是用S3中的数据加载Vault,然后用Vault中的数据加载Marts。然而,我不知道我是否能够直接在Redshift中创建ETL过程,或者我不能

o以Amazon EMR为例,在S3中处理文件,为集市生成包含数据的新文件,并以红移方式加载?如果需要数据保险库,则需要以红移方式构建。您可以将文件加载到DV或DM中。如果您决定要使用DV,则可以通过视图和delete/insert/update语句将DV加载到DM中,而无需再次迂回地导出和导入文件。将文件加载到Redshift需要某种调度/作业运行工具在AWS上运行,或者不连接到Redshift并在Redshift中运行COPY命令来加载数据。我调查了一个这样做的项目,但从来没有开始过,所以现在对我来说,这都是理论。但是,你肯定能够为你的数据仓库和数据集市创建一个模式,并直接从DV>DM加载数据,而无需重新导出和导入文件。我现在也处于同样的情况。但我正在考虑使用Glue在s3文件上构建模式。然后,我可以在Athena上使用DV。只是这个解决方案还在研究中,评估3不是关系型的,它基本上是用来存储文件的。datavault是在关系数据库中实现的,因此您无法在S3上创建datavault。您将如何在S3中构建中心、链接和卫星?如果您正在寻找术语,那么S3可能会被称为您的“数据湖”,呃,我觉得很脏now@Nick.McDermaid,你说得对。在我的体系结构中,我一直认为S3更像是一个数据湖。我的问题更多的是让DV和数据集市处于红移状态,或者仅仅是由湖中的数据填充的数据集市。我将编辑这个问题。我的想法是用S3中的数据加载Vault,然后用Vault中的数据加载Marts。但是,我不知道我是否能够直接在Redshift中创建ETL流程,或者我必须使用Amazon EMR,通过在S3中处理文件、为集市生成包含数据的新文件并在Redshift中加载来创建ETL流程?如果您需要数据保险库,则需要在Redshift中构建。您可以将文件加载到DV或DM中。如果您决定要使用DV,则可以通过视图和delete/insert/update语句将DV加载到DM中,而无需再次迂回地导出和导入文件。将文件加载到Redshift需要某种调度/作业运行工具在AWS上运行,或者不连接到Redshift并在Redshift中运行COPY命令来加载数据。我调查了一个这样做的项目,但从来没有开始过,所以现在对我来说,这都是理论。但是,你肯定能够为你的数据仓库和数据集市创建一个模式,并直接从DV>DM加载数据,而无需重新导出和导入文件。我现在也处于同样的情况。但我正在考虑使用Glue在s3文件上构建模式。然后,我可以在Athena上使用DV。这个解决方案还在研究和评估中。听起来你已经比我取得了更多的进展。我目前正在做一些研究,并定义我称之为流和数据架构的v0.1。Data Vault策略对我来说很有意义,因此现在我正试图理解使用Redshift的实现含义。您是否考虑过在Vault和Marts之间使用Amazon数据管道进行ETL?从我所读到的内容来看,这似乎是一种可行的方法,只需少量的额外成本是的,您可以使用数据管道,但请注意,数据管道的最小调度间隔是15分钟,我的业务需求更频繁。另外,我找不到任何文档来在我的暂存表上执行红移源和红移目标之间的SQL转换。听起来你已经比我做了更多的工作。我目前正在做一些研究,并定义我称之为流和数据架构的v0.1。Data Vault策略对我来说很有意义,因此现在我正试图理解使用Redshift的实现含义。您是否考虑过在Vault和Marts之间使用Amazon数据管道进行ETL?从我所读到的内容来看,这似乎是一种可行的方法,只需少量的额外成本是的,您可以使用数据管道,但请注意,数据管道的最小调度间隔是15分钟,我的业务需求更频繁。另外,我也找不到任何文档来在我的暂存表上执行红移源和红移目标之间的SQL转换。问题是关于红移中的DV+DM和只有DM的问题。我还询问了用S3中的数据在红移中填充关系模型的ETL策略。如果您的DM只在红移中,您将在哪里存储DV?电子病历?这是一个昂贵的解决方案。或者你似乎想完全避免使用DV?我真的不理解你在这里的做法。为什么你想使用DV仅仅是因为你可以在ETL方面做些什么?我应该更清楚地回答我的问题。我想从何处获取数据的DV的输入
若要填充DM,则必须通过EMR预处理S3中的数据,而不是只有红移的DM。我读过关于DV的书,看到了很多优点,但还是想听听其他的经验。假设建议使用DV,我想知道其他人是如何实现数据从DV红移到DM红移的转换和加载的。使用Lambda、数据管道、Redshift中的SQL、EMR从DV中获取数据并将其放入DM中?我还没有看到DV实现得太多,但在我看到的情况下,它们基于数据仓库中预先存在的数据。因此,基本上是将数据放在数据库中,创建DV,然后在其上构建DM。这不是DV的目的吗?我认为DV应该一直存在于您的关系数据库中。不管怎样,听起来你在做决定之前有很多研究要做。在这里,Lambda可能不是正确的答案。数据管道适合批量作业,将S3文件移动到RS,RS中的SQL是最有可能的答案,而EMR听起来不像答案,我很清楚S3不适合DV。问题是关于红移中的DV+DM和只有DM的问题。我还询问了用S3中的数据在红移中填充关系模型的ETL策略。如果您的DM只在红移中,您将在哪里存储DV?电子病历?这是一个昂贵的解决方案。或者你似乎想完全避免使用DV?我真的不理解你在这里的做法。为什么你想使用DV仅仅是因为你可以在ETL方面做些什么?我应该更清楚地回答我的问题。我想获得关于DV的输入,从何处获取数据以填充DM,而不是只有红移的DM,这些DM是从S3中的数据填充的,这些数据很可能必须通过EMR进行预处理。我读过关于DV的书,看到了很多优点,但还是想听听其他的经验。假设建议使用DV,我想知道其他人是如何实现数据从DV红移到DM红移的转换和加载的。使用Lambda、数据管道、Redshift中的SQL、EMR从DV中获取数据并将其放入DM中?我还没有看到DV实现得太多,但在我看到的情况下,它们基于数据仓库中预先存在的数据。因此,基本上是将数据放在数据库中,创建DV,然后在其上构建DM。这不是DV的目的吗?我认为DV应该一直存在于您的关系数据库中。不管怎样,听起来你在做决定之前有很多研究要做。在这里,Lambda可能不是正确的答案。数据管道适合批量作业,将S3文件移动到RS,RS中的SQL是最有可能的答案,而EMR听起来不像答案