数据湖的一个核心价值观是,将所有组织内数据资产的收集点和存储库,无论数据的格式和类型。我们应该可以快速的摄取保存,以及集中治理和管理。 在本节内容中,我们将讨论一些常见的数据摄取体系结构和模式。
数据摄取层主要负责将数据摄取至集中存储层(例如数据湖)以进行分析。摄取层包含多项服务,各服务用于使用来自外部来源数据集的批量与实时流数据,具体涵盖网站点击流、数据库事件流、财务交易、社交媒体馈送、IT日志、位置跟踪事件、物联网遥测数据、本地数据源以及云原生数据存储等等。
Amazon Kinesis为专门用于实时数据摄取的服务家族,不仅提供安全的流数据加载与分析功能,同时可将流数据传输至Amazon Simple Storage Service(简称Amazon S3)以实现长期存储。我们还提供Amazon Managed Streaming for Kafka(简称MSK),这是一项全托管服务,可帮助用户通过安全的高可用性Apache Kafka集群处理流数据,且无需修改现有代码库。
接下来是AWS Database Migration Services(简称DMS),您可以借此在保证源数据库正常运行的同时复制并摄取该数据库。此项服务支持多个数据库源与目标,包括直接将数据写入至Amazon S3。为了加快DMS迁移,您还可以选择AWS Snowball——这项服务通过安全物理设备实现大规模数据对AWS云的批量传入与导出。最后,您也可以使用AWS Direct Connect,这项服务负责在本地数据中心与AWS云环境之间建立起统一的专用网络连接。
有些用户可能还需要使用其他数据摄取点,例如AWS IoT Core,这是一套托管平台,能够可靠且安全地大规模处理消息并将消息内容路由至AWS 数据存储当中。AWS DataSync是一项数据传输服务,能够自动简化并加快数据在本地存储系统(例如NFS)与AWS存储服务(例如Amazon EFS及Amazon S3)之间的移动与复制流程,并将数据内容摄取至分析类工作负载当中。
Amazon Kinesis 可轻松收集、处理和分析实时流式处理数据,从而获得及时的业务见解并快速响应新信息。Amazon Kinesis 可以经济高效的方式以任何规模处理流式数据,同时可以对接各种后端工具,您可以灵活选择最适合您应用程序要求的工具。
Kinesis Firehose 是一项完全托管的服务,可将数据传递到目标位置,包括 Amazon S3、redshift和ElasticSearch服务。Kinesis 生产者库 (KPL) 简化了生产者应用程序开发,使开发人员能够实现对 Kinesis Data Stream的高写入吞吐量。下面我们举例,KPL 用于将数据从生产者应用程序写入 Kinesis 数据流。Kinesis Firehose 然后读取此流数据,将传入记录批处理到文件中,然后根据 Firehose 配置中定义的文件缓冲区大小/时间限制将它们传递到 S3。

应用程序使用 Kinesis KPL收集记录并写入 Kinesis Data Stream
如果应用程序驻留在 VPC 中,您可以使用 Internet 网关或 Kinesis VPC 终端节点访问 Kinesis 服务
Kinesis Firehose 配置为从 Kinesis Data Stream读取数据流
Firehose 根据计数或目标文件大小对记录进行批处理,然后在传递到 S3 之前压缩和加密文件
AWS 数据库迁移服务 (DMS) 是将数据迁移到 AWS 的托管服务。它可以将数据从操作数据库和数据仓库(内部或 AWS)复制到各种目标,包括 S3 数据湖。例如下图,DMS 用于从 RDS 或 EC2 上的关系数据库中捕获更改的记录,并写入 S3。AWS Lambda 是一种无服务器计算服务,用于根据数据集在 S3 中的到达时间对数据集进行转换和对数据分区,以提供更好的查询性能。
