湖仓一体大数据平台解决方案_第1页
湖仓一体大数据平台解决方案_第2页
湖仓一体大数据平台解决方案_第3页
湖仓一体大数据平台解决方案_第4页
湖仓一体大数据平台解决方案_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

湖仓一体大数据平台解决方案湖仓一体大数据平台概述湖仓一体大数据平台,承担了企业数据治理、开发、管理等职责,往下集成数据,往上搭载应用。通过数据同步、研发、运维、服务及治理等过程,对企业大数据进行智能管理,形成企业的数据资产。湖仓一体大数据平台架构基础设施阿里云本地IDC…华为云电信云腾讯云AzureAWS京东云引擎层S-EMR阿里云-EMRAWS-EMR华为云-MRS星环-TDH数据集成数据研发数据运维数据服务数据治理数据工厂规范建模指标管理参数配置API工厂脚本/向导模式自定义函数导入在线测试数据查询标签工厂实体管理标签管理任务管理算法工厂算法开发资源管理指标运维指标任务监控指标查询常规运维数据生产运维数据质量运维API中心

API授权API调用数据订阅标签中心量级、覆盖率标签值分布控制台项目管理子账号管理角色权限管理工作空间管理AccessKey管理平台安全设置数据地图数据管理类目管理常规开发离线开发实时开发数据安全数据脱敏数据加密数据规划资产盘点资产盘点报告元数据管理生命周期治理项管理治理效果分析全链血缘元数据检索元数据分析数据探查探查报告探查任务配置探查实例管理数据源管理数据源数据文件规范建表可视化建表DDL建表数据同步离线同步实时同步API运维配置、告警安全组配置标签运维标签任务监控标签查询算法运维算法任务监控配置及告警数据标准数据标准管理标准覆盖率评估2.湖仓一体数仓建设思路传统数仓的问题技术架构实时指标烟囱式开发效率低门槛高平台管理开发效率实时离线架构不统一依赖离线T+1导出报表缺少实时元数据管理未打通实时离线数据的联系宽表建设平台治理批流统一湖仓一体数仓建设思路统一数仓标准与元数据基于SQL统一开发流程引入Hudi加速宽表产出基于FlinkSQL构建实时数仓数仓平台化建设数据统一接入开发元数据管理统一规范体系(1/3)设计规范命名规范模型规范数仓规范开发规范存储规范流程规范业务板块规范定义模型设计数据应用业务系统业务板块2业务板块1业务源数据1业务源数据2业务源数据3……数据域/主题域统计粒度(维度组合)一致性维度修饰词派生指标原子指标(业务过程+度量)维表(DIM)把逻辑维度物理化的宽表统计周期(时间维)汇总事实表(DWS)把明细事实聚合的事实表数据应用层(ADS)业务过程事务事实表(DWD)最原始粒度的明细数据维度属性统一规范,OneData建模方法论(2/3)统一规范,可视化建模工具(3/3)统一元数据价值主张:理清数据字典,了解数据来龙去脉特点:丰富的采集适配器、智能识别关系、丰富的元数据分析和检核元数据采集元数据分析元数据变更数据地图适配器管理采集源采集任务配置采集日志入库审核影响分析依赖分析血缘分析全链分析关联度分析属性差异分析表关联关系字段关系变更查询变更订阅元数据核检一致性核检组合关系数据处理关系属性填充率名称重复率基于SQL统一开发流程afhaTableSQL离线批处理实时流处理即席查询Lambda架构Lambda架构的主要思想:将大数据系统架构分为三层:批处理层(BatchLayer)、实时计算层(SpeedLayer)、服务层(ServingLayer)优点:(1)数据的不可变性(2)强调了数据的重新计算问题缺点:双重计算+双重服务,且要求查询得到的是两个系统结果的合并,增加了运维成本输入数据流批处理数据流实时计算数据流预处理结果增量处理结果批处理流处理批处理层即席查询API服务自助取数批处理视图增量处理视图服务层实时计算层Lambda架构-数仓分层结构DIMRedisHBaseESMySQLADSKafkaESHBaseHiveHiveHiveDWSKafkaDWDKafkaETLPrestoOLAPClichHouseDorisDBSourceMessae

QueueRDS/

binlogSQLSQLSQLSQLSQLCDCSQLETLKafkaHiveODS大数据平台技术栈实时计算总体技术架构:实时同步业务系统数据、IoT等数据到Flink,实时计算指标和标签大数据平台Kafka数据源Flink数据处理Data

APIPrestoimpala数据服务报表应用数据消费预警数据存储OGGPG数据源MySQL解析层分布式消息队列流计算平台结果数据层数据接口层应用层Oracle数据源MySQL数据源层clickhouseIoTMQTTkuduStarRocks原DorisDBKappa架构针对Lambda架构的缺点,LinkedIn的JayKreps提出了Kappa架构:统一的计算引擎代替多个引擎优点:(1)架构简单,生产统一(2)一套逻辑,维护简单缺点:(1)适用场景的通用性不高(2)大数据量回溯成本高,生产压力大(3)流式计算结果不准确,和实时计算结果逐渐形成差异,最终需要对账输入数据流FlinkODSDWDDWSKafkaKafkaKafka流处理服务DB应用Kappa架构-数仓分层结构DIMRedisHBaseESMySQLADSKafkaESHBaseHiveDWS

DWD

ETLPrestoOLAPClichHouseDorisDBSourceMessae

QueueRDS/

binlogSQLSQLSQLSQLSQLCDCSQLKafkaODSKafkaKafka方案对比与实际需求引入数据湖Hudi加速宽表构建KafkaOff-lineETLFull

Dataincrementdata

databasesKafkaDorisDBkuduclickhouseHudi架构图增量实时更新时间漫游Hudi数据湖典型PipelineHudi数据湖关键特性引入数据湖Hudi-湖仓一体架构

MySQLOracleSQLServerPostgreSQLRedis结构化数据MongoDBJSONXMLCSVKafkaORC半结构化数据Parquet音频视频文档电子邮件非结构化数据数据源DataX(批量同步)API接口(Restful)数据集成文件直传Flink-CDC(流式写入)Flink计算/分析引擎计算引擎SparkHive机器学习训练Presto分析引擎Impala元数据管理ApacheHudi数据湖-存储存储对象S3OSSCOSHDFSAPI服务机器学习推理数据服务消息订阅数据应用大数据平台湖仓一体平台智能推荐BI报表即席查询人脸识别数据大屏引入数据湖Hudi-湖仓一体数仓分层结构DIMRedisHBaseESMySQLADSKafkaESHBaseHiveHiveHiveDWSKafkaDWDKafkaETLPrestoOLAPClichHouseDorisDBSourceMessae

QueueRDS/

binlogSQLSQLSQLSQLSQLCDCSQLETLHudi

on

FlinkHudi

on

FlinkHudi

on

FlinkKafkaHive引入数据湖Hudi-湖仓一体产品核心功能批量集成适用于需要进行复杂数据清理和转换、数据量较大的场景实时集成适用于需要高可用性和对数据源影响小的场景。使用基于日志的CDC捕获数据变更,实时获取数据消息集成通常通过API捕获或提取数据,适用于处理不同数据结构以及需要高可靠性和复杂转换的场景数据集成:结构化数据存储结构化数据的发现与更新,在数据湖创建数据库、表及分区半结构化数据存储半结构化数据发现,在数据湖中存储非结构化数据存储非结构化数据发现,在数据湖中存储数据湖管理:数据智能加工通过机器学习、深度学习等智能算法对半结构化、非结构化数据进行学习,训练加工成结构化数据,供数据研发和分析使用离线计算大规模数据周期性批量计算数据研发:实时计算根据业务需求进行数据实时研发与分析湖仓一体-HudiOnFlink的实现KafkaKafkaSourceGeneratorBinlogRecordInstantTimeFileIndexerWriteProcessOperatorFileIndexerWriteProcessOperator

CommitSinkMetadataPartitionerFileIndexerWriteProcessOperatorcheckpoint湖仓一体平台建设Table&SQL数据开发数据接入元数据管理实时数仓3.湖仓一体大数据平台产品湖仓一体大数据平台核心功能-①实时数据接入获取Schema

选择数据源自动接入接入配置湖仓一体大数据平台产品核心功能·实时同步+实时开发+实时运维配置来源表信息实时同步配置目标表Kafka信息通道控制设置实时开发源表中配置Kafka信息结果表中配置Kafka写入的目标库信息维表信息实时运维发布至运维设置启停与告警设置告警规则设置监控范围湖仓一体大数据平台产品核心功能-⑤元数据实时更新CDCSourceDatabaseSchemaTransformDDLDML

BinlogKafka

SinkAVROKafka

BinlogKafka

SourceHudiSinkCheckpointMetadataReportFetch湖仓一体大数据平台产品核心功能-⑥数据资产管理体系湖仓一体大数据平台产品核心功能-⑦性能压测压测场景:Oracle数据源数据实时计算写到MySQL目标数据库,内含Oracle数据源到Kafka、Kafka消费、写入MySQL目标数据库数据准备:单条数据20个字段,228个字节,Oracle源数据库200w条压测结果:压测场景单条数据量压测数据量压测链路压测结果Kafka生产与消费20个字段,228个字节40WMySQL数据源到Kafka耗时46s(qps:8700)Kafka消费耗时4.6s(qps:8.7W)实时计算Oracle-MySQL20个字段,228个字节40WOracle数据源数据新增到新增数据写到目标数据库MySQL(3进程,分配内存3G)qps:377840W*5qps:3715实时计算MySQL-Kudu20个字段,228个字节40WMySQL数据新增,经过Flink实时计算写到Kudu表中qps:5250结论:实时计算支持主流数据库1500万/小时的数据处理能力,且资源占用较低湖仓一体大数据平台产品未来支持功能-①增强SQL能力更多语法与特性支持更多数据源支持任务自动调优湖仓一体大数据平台产品未来支持功能-②精细化资源管理自动扩容缩容细粒度资源调度FlinkonK8s4、Hudi数据湖典型应用场景问题不支持事务由于传统大数据方案不支持事务,有可能会读到未写完成的数据,造成数据统计错误。数据更新效率低业务系统库的数据,除流水表类的数据都是新增数据外,还有很多状态类数据表需要更新操作(例如:账户余额表,客户状态表,设备状态表等),而传统大数据方案无法满足增量更新,常采用拉链方式,先进行join操作再进行insertoverwrite操作,通过覆盖写的方式完成更新操作,该操作往往需要T+1的批处理模式,从而导致端到端数据时延T+1,存在效率低、成本高等问题。无法及时应对业务表变化上游业务系统对数据schema发生变更后,会导致数据无法入仓,需要数据仓库的表schema进行同步调整。从技术实现上采用数据表重建的方式来满足该场景,导致数据仓库的数据表的管理与维护方案复杂,实现成本高。历史快照表数据冗余传统数据仓库方案需要对历史的快照表进行存储,采用全量历史存储的方式实现,例如:天级历史快照表,每天都会全量存储全表数据。这样就造成了大量的数据存储冗余,占用大量的存储资源。小批量增量数据处理成本高传统数据仓库为了实现增量ETL,通常将增量数据按照分区的方式进行存储,若为了实现T+0的数据处理,增量数据需要按照小时级或者分钟级的分区粒度。该种实现形式会导致小文件问题,大量分区也会导致元数据服务压力增大。传统数据仓库解决方案中,常用Hive来构建T+1级别的数据仓库,通过HDFS存储实现海量数据的存储与水平扩容,通过Hive实现元数据的管理以及数据操作的SQL化。虽然能够在海量批处理场景中取得不错的效果,但依然存在如下现状问题:传统数仓面临的问题与挑战

MySQLOracleSQLServerPostgreSQLRedisMongoDBKafka01场景说明无需直接对接数据库,数据由已有采集工具发送到Kafka或者由业务系统直接发送到Kafka。不需要实时同步DDL操作事件。02方案介绍支持了对Hudi中COW表以及MOR表的读写操作。作业开发与作业维护可视化操作。03方案收益入湖代码开发简单,通过FlinkSQL实现入湖的语句如下:Insertintotable_hudiselect*fromtable_kafkaCDHHudi数据湖flinksqlHudi数据湖典型应用场景①:传统CDC基于Flink-SQL入湖(1/2)Hudi数据湖典型应用场景①:传统CDC基于Flink-SQL入湖(2/2)

MySQLOracleSQLServerPostgreSQLRedisMongoDBFlink-CDC(流式写入)01场景说明可以从业务数据库中直接抽取数据数据入湖支持高实时性,秒级延迟数据表变更需要与数据湖表结构实时同步02方案介绍该方案基于Flink-CDC组件构建,由Flink-CDC组件实现业务库的操作事件捕获并写入的基于Hudi数据湖存储03方案收益入湖操作简单,全程零代码开发。入湖时效快,从业务系统数据调整到入湖,可在分钟内完成。Hudi数据湖典型应用场景②:基于Flink-CDC入湖(1/2)CDHHudi数据湖Hudi数据湖典型应用场景②:基于Flink-CDC入湖(2/2)开源CDC对比

MySQLOracleSQLServerPostgreSQLRedisMongoDB贴源层ODS01场景说明湖内数据通常会采用数仓分层存储,例如:贴源层(ODS)、汇总层(DWS)、集市层(ADS)。02方案介绍增量ETL作业与传统ETL作业业务逻辑完全一样,涉及到的增量表读取采用commit_time来获取增量数据。Hudi支持ACID特性、Upsert特性和增量数据查询特性,可以实现增量的ETL,在不同层之间快速的流转。03方案收益单个ETL作业处理时延降低,端到端时间缩短。消耗资源下降,单位ETL作业所处理数据量大幅下降,所需计算资源也会相应下降。原有湖内存储的模型无需调整。汇总层DWSflinksqlHudi数据湖典型应用场景③:湖内数据快速ETL集市层ADS增量ETLflinksql增量ETL

MySQLOracleSQLServerPostgreSQLRedisMongoDB贴源层ODS01场景说明数据湖存储的数据具有数据种类全、维度多、历史周期长的特点,直接交互式分析引擎直接对接数据湖可以满足业务各类需求数据需求。在数据探索、BI分析、报表展示等业务场景需要具备针对海量数据查询秒级返回的能力,同时要求分析接口简单SQL化。02方案介绍Presto/Trino是分布式高性能的交互式分析引擎,主要用于数据的快速实时查询场景。03方案收益结合flink-cdc数据入湖,业务系统库数据变更可在分钟内实现在数据湖内可见。对TB级到PB的数据量的交互式查询可达到秒级结果返回。可对湖内各层数据进行分析。Hudi数据湖典型应用场景④:交互式分析场景Presto/Trino引擎汇总层DWS集市层ADS快照查询增量查询读优化查询交互式分析

MySQLOracleSQLServerPostgreSQLRedisMongoDB贴源层ODS01场景说明传统处理架构中采用Lambda或者Kappa架构。Lambda使用比较灵活,也可以解决业务场景,但是在该架构中需要两套系统来存储数据(hive存储离线数据/kafka存储实时数据),维护比较复杂。数据分流以后也很难再关联应用。02方案介绍在实时场景中,对时延要求可以是分钟级的,这样可以通过CDH-Hudi数据湖和实时计算引擎Flink进行增量计算实现数据的快速处理,端到端实现分钟级延迟。CDH-Hudi数据湖本身就是湖存储,可以存储海量数据,支持批量计算,常用的批处理引擎可以采用Hive和Spark。03方案收益数据统一存储,实时数据与批量数据共用相同的存储。同时支持实时计算与批量计算。相同业务逻辑的处理结果复用。满足分钟级延时的实时处理能力和海量的批量处理。Hudi数据湖典型应用场景⑤:Hudi构建批流一体第三方数据集市结果库汇总层DWS集市层ADS快照查询增量查询读优化查询流任务批任务API服务自助取数Hudi数据湖典型应用场景⑥:数据库实时化(实时捕获/更新schema)SQLServerCDCSourceBinlogKafka

Sink元数据表信息元数据信息FilterTableUpdateMetadataDDLDMLFlinkStream库粒度表粒度Hudi数据湖典型应用场景⑦:数仓实时化DBConnectHudi

Sinkwrite初始化:Flink

BatchHudiSQLServer

增量更新:FlinkStreamKafkaSourceHudi

Sinkupdate初始化:增量更新:ODS(hive)DWD(hive)DWS(hive)SQLSer

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论