亚马逊云科技智能湖仓架构实践:批量与实时分析共存的云上数据分析实践

通过掌握有关客户、产品和应用程序的实时信息,组织可以在业务应用程序中发生事件时采取行动。例如,您可以防止财务欺诈、提供个性化内容,以及近实时地识别和预防故障。尽管批量分析提供了大规模分析趋势和处理数据的功能,允许在时间间隔内处理数据(例如各商店的每日销售汇总),但实时分析针对低延迟分析进行了优化,可确保数据在几秒钟内可供查询。这两种数据处理范式都在孤岛中运行,这会导致数据冗余和维护它们的运营开销。大数据 Lambda 架构是一种参考架构模式,它允许用于分析的大规模数据的批处理和近实时范式无缝共存。

借助 Amazon Redshift,您可以使用标准 SQL 轻松分析数据仓库、运营数据库和数据湖中的所有数据类型。在这篇博文中,我们将实时收集、处理和分析数据流。通过数据共享,您可以在 Amazon Redshift 集群之间共享实时数据以进行读取,同时具有相对的安全性和开箱即用性。在这篇博文中,我们将讨论如何利用 Amazon Redshift 的数据共享功能来设置大数据 Lambda 架构,以支持批量分析和近实时分析。

解决方案概览

Example Corp. 是一家领先的电动汽车公司,彻底改变了汽车行业。Example Corp. 对联网车辆数据进行操作,并提高各种联网车辆和车队用例的有效性,包括预测性维护、车载服务变现、基于使用情况的保险,以及提供卓越的驾驶员体验。在这篇博文中,我们使用联网汽车数据探讨了实时和趋势分析,以说明以下用例:

基于使用情况的保险 — 基于使用情况的保险 (UBI) 依赖于对驾驶员车辆近实时数据的分析,以了解驾驶员的风险状况。此外,它还依赖于指标的历史分析(批量)(例如一年内行驶的里程数)。司机越好,保费越低。

车队绩效趋势 — 车队(例如出租车车队)的绩效依赖于对整个车队(批量)数据历史趋势的分析,以及向下钻取到车队中的一辆车以近实时分析油耗或驾驶员分心等指标的能力。

架构概览

在本部分,我们将讨论 Lambda 架构解决方案的整体架构设置。

下图显示了实现架构和不同的计算层:

从 AWS IoT Core 摄取数据

批处理层

速度层

服务层

亚马逊云科技智能湖仓架构实践:批量与实时分析共存的云上数据分析实践_第1张图片

数据摄取

车辆遥测数据通过 AWS IoT Core 摄取到云中,然后路由到 Amazon Kinesis Data Streams。Kinesis Data Streams 层充当速度层和批处理层的分离层,其中传入的遥测数据分别由速度层的 Amazon Redshift 集群和 Amazon Kinesis Data Firehose 使用。

批处理层

Amazon Kinesis Data Firehose 是一项完全托管式服务,可以在将数据流加载到 Amazon Simple Storage Service (Amazon S3) 数据湖之前对其进行批处理、压缩、转换和加密。Kinesis Data Firehose 还允许您为交付数据记录的 Amazon S3 前缀指定自定义表达式。这样就可以筛选分区数据并控制每个查询扫描的数据量,从而提高性能并降低成本。

批处理层将数据保存在 Amazon S3 中,并由 Amazon Redshift Serverless 端点(服务层)直接访问。使用 Amazon Redshift Serverless,您可以对来自 S3 内文件的结构化和半结构化数据进行高效查询与检索,而不用将数据加载到 Amazon Redshift 表中。

批处理层还可以选择将结果预计算为来自不可变 Amazon S3 数据湖的批处理视图,并将它们保存为原生表或实例化视图,以用于高性能用例。您可以使用 AWS Glue、Amazon Redshift 存储过程、Amazon Redshift 实例化视图或其他选项创建这些预先计算的批处理视图。

批处理视图的计算公式为:批处理视图 = 函数(所有数据)

在此解决方案中,我们为 Example Corp. 构建了用于两种查询的批处理层:

rapid_acceleration_by_year — 每位驾驶员每年累计的快速加速次数

total_miles_driven_by_year — 车队每年累计行驶的里程总数

出于演示目的,我们使用 Amaz

你可能感兴趣的:(科技)