将亚马逊Redshift连接到DynamoDB:2个简单步骤
现在的现代应用程序使用NoSQL数据库来管理灵活的数据。许多微服务需要实时的数据流来为应用程序提供动力。市场上有很多NoSQL数据库。亚马逊DynamoDB是一个强大的数据库,可以自动扩展并为应用程序提供高性能。
亚马逊Redshift是一个数据仓库服务,存储业务数据用于分析。将Redshift连接到DynamoDB允许用户将数据从Redshift数据仓库转移到DynamoDB数据库。它可以帮助开发者使用Redshift到DynamoDB的历史数据,为应用程序提供动力。
将亚马逊Redshift连接到DynamoDB数据库可以实现轻松的数据流。在这篇文章中,你将了解到Amazon Redshift、DynamoDB及其功能。你将学习连接Amazon Redshift和DynamoDB数据库的步骤。
目录
前提条件
- 一个活跃的亚马逊Redshift集群。
- 一个活跃的Amazon DynamoDB数据库。
- 访问AWS S3 Bucket。
什么是亚马逊Redshift?
亚马逊Redshift是一个由亚马逊网络服务(AWS)完全管理的数据仓库,可以处理PB级的数据。它为查询数据和实时分析提供高性能。由于它是AWS的一部分,所以它可以很容易地与其他AWS产品集成,以扩大其功能。亚马逊Redshift支持标准的SQL来查询数据,并分析数据仓库、运营数据库和数据湖的结构和半结构数据。
亚马逊Redshift的主要功能
亚马逊Redshift的一些主要功能列举如下。
- 查询编辑器。Amazon Redshift配备了一个强大的查询编辑器,支持SQL,允许用户从数据仓库和数据湖中访问数据。它可以帮助你在一次点击中实现查询结果的可视化。
- 容错性。亚马逊Redshift持续监控集群的健康状况,并在必要时自动复制节点的数据,以实现容错,从而提高可靠性。
- Redshift ML:Amazon Redshift自带的ML环境,使用户更容易使用SQL创建、训练和部署Amazon SageMaker模型。
要了解更多关于Amazon Redshift的信息,请点击这里。
什么是亚马逊DynamoDB?
亚马逊DynamoDB是一个完全管理的NoSQL数据库,支持键值和文档数据结构。它是亚马逊网络服务组合的一部分。DynamoDB被设计为在任何规模下运行高性能的应用程序。它非常适用于实时数据捕获,类似于CDC(变更数据捕获),它带有DynamoDB流,将事件存储在日志中,持续24小时,没有灵活性扩展。
亚马逊DynamoDB的主要特点
亚马逊DynamoDB的一些主要特点如下。
- 无服务器。亚马逊DynamoDB不需要任何服务器的配置、补丁或管理,也不需要安装或维护任何软件。它自动扩展表以保持性能和存储。
- DynamoDB加速器(DAX)。亚马逊DynamoDB带有一个高度可用的内存缓存,通过为表增加内存加速,将性能提高10倍。
- 自动扩展。Amazon DynamoDB会根据以前的容量自动扩展数据库的吞吐量和存储量。
要了解更多关于Amazon DynamoDB的信息,请点击这里。
使用Hevo的无代码数据管道在几分钟内复制数据
Hevo数据,一个完全管理的数据管道平台,可以帮助你在几次点击中自动化,简化和丰富你的数据复制过程。通过Hevo的各种连接器和快速的数据管道,你可以从100多个数据源直接提取和加载数据到你的数据仓库或任何数据库。为了进一步简化和准备你的数据分析,你可以使用Hevo强大的内置转换层来处理和丰富原始颗粒数据,而不需要写一行代码。
连接Redshift和DynamoDB的步骤
在本节中,你将通过手动过程来连接亚马逊Redshift和DynamoDB。由于DynamoDB并不直接从Amazon Redshift加载数据。因此,为此,你需要首先从Amazon Redshift提取数据到S3桶,然后从AWS S3加载这些数据到DynamoDB。下面列出了通过S3连接Redshift和DynamoDB的步骤。
第1步:从Redshift卸载数据到S3
- 转到你的Amazon Redshift控制台。
- 在这里,你将使用带有SELECT语句的UNLOAD命令来查询你的表并定位数据,然后你需要提供你想加载数据的S3桶的位置。
- 此外,你还需要提供你的IAM角色。下面给出的命令是这样的。
unload ('select * from venue')
to 's3://mybucket/tickit/unload/venue_'
iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole';
- 这里,表的名字是 "会场",在S3的位置,"会场_"是文件的前缀,将保存在你的桶里。这些文件将以类似的方式保存,如下图所示。
venue_0000_part_00
venue_0001_part_00
venue_0002_part_00
venue_0003_part_00
是什么让Hevo的ETL流程成为同类中最好的?
如果你有大量的数据,提供一个高质量的ETL解决方案可能是一个困难的任务。Hevo的自动化,无代码平台使你拥有顺利的数据复制经验所需的一切。
看看是什么让Hevo如此神奇。
- 完全管理。Hevo不需要管理和维护,因为它是一个完全自动化的平台。
- 数据转换。Hevo提供了一个简单的界面来完善、修改和充实你要传输的数据。
- 更快的洞察力生成。Hevo提供近乎实时的数据复制,所以你可以获得实时的洞察力生成和更快的决策。
- 模式管理。Hevo可以自动检测传入数据的模式,并将其映射到目标模式。
- 可扩展的基础设施。Hevo有内置的100多个来源的集成(有40多个免费来源),可以帮助你根据需要扩展你的数据基础设施。
- 实时支持。Hevo团队24小时不间断地通过聊天、电子邮件和支持电话向客户提供特殊支持。
第2步:从Amazon S3导入数据到DynamoDB
为了连接亚马逊Redshift和DynamoDB,你需要将保存在S3桶中的Redshift数据导出到DynamoDB。为此,你的DynamoDB应该已经按照Redshift的数据格式创建了表。
要从Redshift加载数据到DynamoDB,你的表不应该是空的。虽然,当从Redshift导入数据到DynamoDB时,它将用一个具有相同键的新数据替换现有数据。要从S3导入数据到DynamoDB,请按照下面的步骤进行。
- 登录到您的AWS管理控制台,从这里打开AWS数据管道。
- 在这里,点击创建新管道按钮。
- 在这里,它将打开一个创建管道的页面,你需要提供所有必要的细节。
- 在名称文本字段中,你需要提供你的管道的名称,以连接Redshift和DynamoDB。例如,你可以将管道命名为 "RedshiftToDynamoDBPipeline"。
- 在源参数中,你需要选择使用模板构建选项。现在从模板的下拉列表中,选择从S3导入DynamoDB备份数据 选项。
- 在Input S3 Folder文本字段中,你需要提供存在你的Redshift数据的S3桶的位置的URI。在这个例子中,S3桶的位置是 "s3://mybucket/tickit/"。
- 在目标DynamoDB表名文本字段中,你需要提供你想加载Redshift数据的DynamoDB表的名称。
- 在日志的S3位置文本字段中,你需要提供你想写日志文件的S3桶的URI,以便将数据从Redshift导入到DynamoDB。例如,URI可以是 "s3://mybucket/logs"
- 现在,添加一个标签,关键词为dynamodbdatapipeline,值为true。
- 查看所有的配置后,点击激活按钮。
- 这将创建你的数据管道,通过AWS S3从Redshift导入数据到DynamoDB。这个过程可能需要几分钟的时间来完成,这取决于数据量的大小。
总结
在这篇文章中,你了解了亚马逊Redshift、亚马逊DynamoDB数据库和它们的主要功能。你还经历了如何将数据从亚马逊Redshift转移到DynamoDB数据库的步骤。DynamoDB是一个NoSQL数据库,而Amazon Redshift是一个广泛使用的数据仓库,具有快速的性能和实时分析。将Redshift连接到DynamoDB为后端服务、应用程序和网络服务提供动力。