当前位置: 首页 > 科技观察

基于亚马逊云技术Serverless架构的实时数仓架构

时间:2023-03-13 23:19:35 科技观察

近年来,各级政府和企业响应数字化转型的号召,已经开始或即将开始数字化转型。各类企业前期通过线上业务和信息化积累了大量数据,而数字化转型就是将这些数据聚合起来,进行深度挖掘和分析,用数据驱动业务,用数据支持决策——制作、利用数据推动业务和商业模式创新,推动业务流程优化,进而实现降本增效。要实现数据的价值,构建数据仓库是数字化转型过程中不得不面对的课题。数据仓库聚合了各个业务部门的数据,避免了数据孤岛,让数据真正成为整个企业的数据,而不是某个部门的数据。数据仓库的技术架构包括离线数仓和实时数仓或准实时数仓。离线数仓已经发展多年,但目前还不能完全满足企业在竞争中脱颖而出的发展需求。实时数据仓库越来越成为企业构建数据仓库的首选。但由于实时数仓对实时性要求严格,实现实时数仓的技术难度远大于离线数仓。扩展等本文为您提供了一种高效的实时数仓架构:基于亚马逊云技术的Serverless架构的实时数仓架构。实时数仓常见场景赏析和亚马逊云技术的做法先来欣赏一下实时数仓常见场景和亚马逊云技术的Serverless架构实时数仓的成功实现:1.实时采集分析APP埋点数据(例如:实时智能推荐、实时欺诈检测)这里我们以智能推荐场景为例:根据用户的历史购买或浏览行为,通过推荐算法预测用户的兴趣和需求,从大量资源(可能是短视频、广告、GIF)中推荐最合适的资源进行推送。推荐系统发展迅速,对时延和实时性的要求越来越严格。往往业务方希望客户在使用App(或浏览网页)时,能够根据当前行为和历史数据进行动态推荐。数据来源一般为App埋点采集和历史浏览数据、消费数据、广告资产。常见做法:可以使用Flume、Kafka等工具进行流式ETL和数据同步传输,可以使用ClickHouse、Flink、Spark等大数据计算工具进行计算。数据来源和数据消费者多种多样,这里不再展开。(同样的技术架构也出现在实时欺诈检测等场景中。)我们来看一下亚马逊云技术的案例:使用AmazonKinesisDataStreams(流式数据接入产品,AmazonKDS)接入APP埋点数据来用于指标分析和BI呈现的AmazonRedshift(云原生数据仓库)。支持高达30万/秒的数据摄取速率,延迟小于10秒;数据实时摄入数据仓库的同时,支持高并发实时查询,支持大宽表多表关联、复杂聚合等SQL查询,查询结果秒级响应。图1实时数仓架构--APP埋点数据实时采集分析2.RDBMSCDC+KDS+AmazonRedshiftServerless(实时BI报表,复杂事件处理)本例中源日志数据而RDS结构化数据主要是收集变更数据动态捕获(ChangeDataCapture,CDC)。这是对数据仓库非常普遍的要求。当外部数据库系统(账户、存款、制造、人力资源等)BI报表、复杂事件处理(紧急响应)。CDC日志数据通过AmazonKinesis实时发送至AmazonKDS,经过流式处理后写入RDS,并提供API供第三方查询。同时AmazonRedshift可以直接消费Kinesis数据进行查询分析,整体延迟小于30秒。CDC日志采集方式支持多种方式,包括AmazonDMS、Debezium、FlinkCDC、Canal等。采集到的数据写入Kinesis后,利用AmazonRedshiftStreamingIngestion功能将CDC数据实时写入AmazonRedshift。图2实时数仓--RDBMSCDC+KDS+AmazonRedshiftServerless经典方案-使用AmazonRedshift构建云原生数仓一个可扩展、安全、完全托管的云数仓,可以帮助用户分析各类数据通过标准的SQL语言简单而经济地。无论是构建传统数据仓库架构还是实时数据仓库架构,借助AmazonRedshift用户都可以一站式部署。与其他云数据仓库相比,AmazonRedshift的性价比最高可达三倍。数以万计的客户每天都在使用AmazonRedshift处理EB级数据,从而为高性能商业智能(BI)报告、仪表板应用程序、数据探??索、实时分析和其他分析工作负载提供强大的动力,作为以及机器学习和数据挖掘。AmazonRedshift支持ACID事务特性、ANSISQL标准、JDBC/ODBC连接协议MPP架构列式存储数据仓库。AmazonRedshift不仅可以根据自己的内部表进行数据分析,还可以查询AmazonS3中的数据。S3是一种具有极高弹性的对象存储。它已成为云上数据湖的事实标准。它可以存储结构化数据,也可以是半结构化数据或非结构化数据。Redshift与S3可以无缝结合,实现智能湖仓架构。图3AmazonRedshiftServerlessArchitecture实时数仓架构需要解决的问题一个好的实时数仓架构可以解决以下四个问题:实时数据访问、实时数据分析、实时数据输出.实时数据访问:数据仓库主要用于存储来自各个业务系统的数据。实时数仓的第一步是解决数据如何实时进入数仓的问题。实时数据分析:实时访问的数据必须即时可用,满足即席查询、报表分析、挖掘预测等需求,数据准确,延迟低。实时数据输出:实时数据分析的结果必须及时展示在BI报表中,并及时以数据服务的形式提供给第三方。实时数仓智能:数据分析解决过去发生的事情,数仓智能解决未来发生的事情。让实时数仓具备机器学习和智能预测能力,是实现智能湖仓的必备功能。Serverless架构不仅弥补了传统离线数仓的不足,也完美解决了以上四个问题。首先来看实时数仓整体架构图:图4亚马逊云技术Serverless实时数仓架构Serverless实时数仓架构采用AmazonKDS(AmazonKinesisDataStreams)+AmazonRedshiftServerless+RedshiftML+S3技术产品组合,KDS负责实时获取数据,RedshiftServerless+RedshiftML+S3负责实现“智慧湖仓”,实现实时数据分析和实时输出,Real-时间预测。同时,RedshiftServerless架构,运维简单,按需计费,降本增效,将客户从复杂的架构搭建、监控、运维中解放出来,专注于数据查询分析、数据价值挖掘,实现数据驱动决策。实时数据接入:接入的数据分为三类:结构化数据(数据库数据)、半结构化数据(Json、CSV数据)和非结构化数据(图片、视频数据)。对于来自数据库的结构化数据,常见的实时访问方式是使用CDC技术进行增量访问。在亚马逊云技术的实时数仓架构中,使用AmazonDMS产品将CDC数据接入AmazonKDS。AmazonDMS支持同构迁移、不同数据库平台之间的异构迁移以及CDC数据访问,并且可以低延迟地将数据从任何受支持的源持续复制到任何受支持的目标。此外,来自Kinesis的数据可以使用AmazonRedshift流式摄取以非常低的延迟摄取到AmazonRedshift中。图5.Amazon数据库迁移服务(AmazonDMS)将数据迁移到智能湖仓库。对于非结构化数据,传统的实时访问方式是扫描指定目录,将新文件写入文件系统(HDFS、AmazonS3等),然后开发程序解析文件写入数据库表.而使用亚马逊云技术提供的DMS+S3+Redshift方式,无需开发数据分析程序,通过简单配置即可将数据写入S3。Redshift可以和S3完美结合,即数据可以在Redshift中录入S3Query分析。数据实时分析:数据实时分析,AmazonRedshiftServerless提供,在Redshift数据库中创建每一层智慧湖仓库,使用SQL语句计算数据仓库指标,使用ETL工具调度指标计算任务,兼容开源的ETL工具,也可以使用亚马逊的ETL工具。实时数据输出:AmazonRedshift支持JDBC协议,可以作为各种BI报表产品的数据源,实现数据的实时输出;AmazonRedshiftDataAPI可以以API的形式向第三方提供数据,AmazonRedshiftDataAPI不需要与集群长连接通信。提供安全的HTTP端点并与亚马逊云技术SDK集成。使用端点运行SQL语句而无需管理连接。对数据API的调用是异步的。图6AmazonRedshiftDataAPIAmazonRedshift实时数仓+ML:在实时数仓中加入机器学习和人工智能能力,是大多数企业在实时数仓建设过程中面临的难题。主要问题是:1.机器学习2.机器学习开发人员招到难。AmazonRedshift实时数仓架构采用AmazonRedshiftML产品解决了上述难点,大大降低了构建智慧湖仓的难度。AmazonRedshiftML让SQL用户可以使用熟悉的SQL命令轻松创建、训练和部署机器学习模型。使用AmazonRedshiftML,您可以使用Redshift集群中的数据通过AmazonSageMaker训练模型。然后对该模型进行本地化,并可用于AmazonRedshift数据库中的预测。借助AmazonRedshiftML,您无需移动数据或学习新技能即可利用完全托管的机器学习服务AmazonSageMaker。借助由AmazonSageMaker提供支持的AmazonRedshiftML,使用SQL语句从AmazonRedshift中的数据创建和训练机器学习模型,然后将这些模型用于各种用例场景,例如客户流失预测和欺诈风险评分。通过编写SQL语句开发机器学习功能,各种底层机器学习算法的复杂性交由AmazonRedshiftML处理,让客户更专注于自己的业务。图7AmazonRedshift实时数仓+MLServerless实时数仓架构的优势成熟的技术架构可以大大降低企业的人力和财力成本。传统的实时数仓架构(使用托管服务器)无法实现削峰填谷。以电商行业为例,实时数仓架构的服务器资源必须能够应对数据高峰(各种大型活动、促销等不可预知的工作负载)带来的压力,因此硬件采购往往是按资源高峰采购,结果大部分时间大部分资源都处于闲置状态,无形中增加了企业的成本;传统的实时数仓架构无法实现无感扩容,即服务器集群节点的增减会增加运维人员的工作量。可能会暂停营业。总的来说,Serverless实时数仓架构的优势包括以下几点:1.Serverless实时数仓架构让数据仓库优雅的拥有实时数据分析能力(实时OLAP看板,实时-时间业务监控);2.Serverless实时数仓架构让实时智能分析成为可能(实时风控/实时推荐/基于实时数据和历史数据的实时机器学习);3、亚马逊云技术提供最全面的云端实时数仓构建功能组件,让用户快速、高效、低成本地构建属于自己的实时数仓;4、采用serverless实时数仓云平台,自动具有削峰平谷、无感扩容、运维简单、易上手等优点。在10月亚马逊云技术中国峰会的《智能湖仓 统一分析》分论坛上,智能湖存储2.0将首次亮相,以及如何打破数据孤岛,跨数据库、数据湖释放数据价值,数据分析和机器学习,帮助企业做出更好的决策。决策。感兴趣的朋友可点击下方链接或扫描海报二维码报名参会!https://summit.awsevents.cn/2022/signin?source=gh/ZsR4xii4TX2Vs20QVMkW6A9pXuQSKzIgROLJHkTQ=&tab=1&type=2