资源描述
Hologres Serverless姜伟华阿里云计算平台事业部资深技术专家 阿里云实时数仓Hologres研发负责人?11 GMV?Hologres:一站式实时数仓数据应用OLAP多维分析(Analytics)实时数仓 Hologres离线数据:批量导入(Batch)实时数据:实时更新(Streaming)数据湖数据:加速查询(Lakehouse)在线服务(Serving)湖仓一体向量计算&大模型亚秒级交互式分析高吞吐实时写入Proxima向量引擎弹性高可用,负载隔离HSAP,Hybrid Serving/Analytics ProcessingHologres?Multi Workload?MaxCompute?PG?BI?Presto?!?!?!?!?!?Clickhouse?Doris?OLAP?Serving)?QPS KV SQL?QPS?Hbase?Redis?PostgreSQL?Hybrid Serving/Analytics Processing,HSAP?实时数仓成大数据趋势,Serverless定义数仓新形态一站式实时数仓成为业务标配,一站式实时数仓必然要求Serverless化高可用满足业务连续可用性不同负载隔离弹性伸缩,适应各种流量洪峰开箱即用更简单的资源管理按需付费,省钱省力不为没用到的资源付费Serverless会极大简化实时数仓的使用体验,降低成本,更好满足业务的快速发展Serverless实时数仓核心需求:稳定性业务/任务之间如何隔离扩缩容、启停怎么样不影响业务可以随意启停、迁移 快速拉起能力 Gateway接入能力,流量自动转发任务隔离 读写隔离、写写隔离、读隔离 不同部门资源隔离动态扩缩容 水平扩展,实现QPS简单增加 对业务影响最小资源使用如何有效利用Serverless实时数仓核心需求:成本优化运维成本(集群资源)开发成本(上线新业务)对同一份数据,使用新的计算资源来计算弹性伸缩,应对洪峰与日夜变化 每天ETL任务,弹出资源来执行,用完即销毁 Endpoint保持不变开发接口标准简单,降低学习成本兼容主流BI人力成本(学习&招聘成本)Serverless?CRUD?5?shard,?shard mem table+LSM tree CRUD?CRUD?delta?CRUD?In-mem PK Index?+?CRUD?Shard+mem table+LSM Tree?Shard Replica?Serverless?Serverless?MEMCPUMEMCPUMEMCPUNode1Node2NodeKInterconnection Network?Serverless实时数仓关键技术挑战(二):Shard ReplicaShard Replica 每个Shard可以配置0-N个只读的Replica。Replica会自动同步并回放主Shard的WAL(write ahead log),从而构建mem table,Replica不flush数据,也不做compaction,而是直接复用主Shard的存算分离数据。这样,Replica通过自己的mem table与主Shard的存算分离落盘数据,就可以完整的访问所有数据了;Replica与主Shard之间毫秒级的数据延迟,资源消耗4:18:1Shard Replica是实时数仓存算分离、高可用、容灾等的基础 存算分离:新拉起的计算资源配置其为主计算资源Shard的Replica,这样新计算资源就能访问到最新的所有数据 高可用:通过查询在多个Replica之间路由,实现一个Replica下线时,查询依然正常 容灾:Shard Replica+数据文件复制就可以在多AZ之间的容灾Serverless实时数仓关键技术挑战(三):隔离和弹性有了存算分离,计算资源的隔离和弹性就容易了资源强隔离能力 资源需要强隔离,以满足不同负载的隔离需求 同时隔离能力需要非常灵活和简单易用,以应对不同场景的需求 读写隔离、读读隔离 资源弹性伸缩,自适应负载能力 根据业务负载情况资源弹性伸缩,无需考虑资源,真正做到按需使用,按量付费 按时间弹性、按负载弹性 在延迟不变的情况下,简单增加QPS 要能缩的回去,也能弹的回来Serverless实时数仓关键技术挑战(四):高可用自动路由、负载均衡能力 不同任务会有不同的流量,需要根据业务流量自动路由至对应的资源池,同时负载也要保持均衡,资源得到最大化利用 无损变更能力 需要具备热扩缩容,热升级能力,减少对业务的影响,使得业务可以持续提供服务 连接不断连能力(实时数仓特点)在计算资源弹性时,连接与现有查询应不受影响 在后台计算资源改变时,原有连接资源可自动路由到新的计算资源上 Hologres?201820192020202120222023?Hologres?PG?Serverless?Serverless?Hologres?0.x?PG?OLAP?Region?HSAP?1.x?8192?2.x?TPCH?Serverless?Serverless?Hologres的Serverless演进之路独享实例适用通用场景,业务持续运行从独享实例演进到统一计算组实例,定时弹性,按需使用,完整的Serverless 如何实现更快的性能?资源更加灵活的扩展?节点宕机后如何快速恢复,尽量减少业务影响?FrontendcMetaServiceFrontendFrontendFrontendGatewayGatewayGatewayCompute计算层Compute存储层cMetaServiceHoloMastercWorkerQuery EngineStorage EngineWorkerQuery EngineStorage EngineWorkerQuery EngineStorage EngineApsara PanguStorShardShardShardMaxComputeOSS(CSV/ORC/Parqute/Hudi/Delta)MaxCompute三副本 分布式MPP架构,自研向量化引擎,释放计算能力 存储计算分离架构:动态扩缩容 适配Pangu三副本:计算节点failover后快速切换、快速恢复;存储节点宕机不影响计算;需要考虑使用计算,不能做到资源按需使用,按需付费Hologres的Serverless之路(一)独享实例:存储分离Apsara PanguStorApsara PanguStor阶段挑战解决方案遗留问题Hologres的Serverless演进之路独享实例适用通用场景,业务持续运行共享集群(湖仓版)多租户共享资源,湖仓外表加速,按需使用,按量付费从独享实例演进到统一计算组实例,定时弹性,按需使用,完整的ServerlessHologres的Serverless之路(二)共享集群:共享计算、按量付费MaxComputeDLF 元数据构建与管理Hologres共享集群 Serverless模式OSSHDFSPaimonDelta LakeHudiParquetORCTXTJSONCSV其他应用湖仓联邦分析OSS交互式分析离线数仓BI加速湖仓交互式分析离线数仓联邦分析与直读加速数据湖加速数据仓库数据湖湖仓一体加速查询应用层Serverless Task 1Serverless Task 2 Serverless Task NServerless Task 3 如何做到不考虑资源总量,也能实现更好的性能?如何实现更低的成本?多租户共享资源:共享资源池,为使用资源按量付费,实现资源有效利用 外表直查模式:存储层直读,数据不移动,通过外表直接查询,减少存储成本 多租户、多任务模式下无法实现资源隔离,相互影响阶段挑战解决方案遗留问题Hologres的Serverless演进之路独享实例适用通用场景,业务持续运行共享集群(湖仓版)多租户共享资源,湖仓外表加速,按需使用,按量付费主从实例一份数据,共享存储 读写隔离,负载隔离从独享实例演进到统一计算组实例,定时弹性,按需使用,完整的ServerlessHologres的Serverless之路(三)主从实例:共享存储、读写隔离 多类型负载如何实现更细粒度的资源分配?资源如何实现彻底的隔离?数据/元数据如何实现一致性?如何更加易用,近可能的减少业务影响?主从实例共享存储:一主多从,主实例负责写,从实例负责读,实例间物理隔离,可以通过多个从实例隔离不同任务;实例间数据/元数据异步实时同步,Replication机制实现热升级,停写不停读,提升业务易用性 更灵活的隔离和更易用的弹性?Shard1Shard2Shard3Shard4Pangu File System弹性计算层共享存储层Shard1Shard2Worker NodeShard1Shard2Worker Node读写主实例写入负载加工负载Shard1Shard2Worker NodeShard1Shard2Worker Node只读从实例1报表服务灵活分析Shard1Shard2Worker NodeShard3Shard4只读从实例2在线服务FrontendFrontendFrontendFrontendFrontendFrontendFrontendFrontendFrontend阶段挑战解决方案遗留问题Hologres的Serverless演进之路独享实例适用通用场景,业务持续运行共享集群(湖仓版)多租户共享资源,湖仓外表加速,按需使用,按量付费主从实例一份数据,共享存储 读写隔离,负载隔离从独享实例演进到统一计算组实例,定时弹性,按需使用,完整的Serverless计算组实例一个实例,多个计算组 计算组之间强隔离、弹性资源、自动路由Hologres的Serverless之路(四)计算组实例:负载隔离,弹性资源 资源如何更加灵活全面的隔离,不仅是读写?如何实现更加动态的资源弹性?如何更加平滑的业务自动路由,故障自动切换?运维更简单高效?一个实例内拆分多个计算组,计算组之间完全隔离,可按需多负载隔离 计算组可按需动态创建/销毁,动态扩缩容,满足弹性需求 通过标准SQL接口,实现负载的自动路由,自动切换 对外使用统一endpoint,可对计算组热扩缩容,单独升级版本等Shard1Shard2Shard3Shard4Pangu File System弹性计算层共享存储层Shard1Shard2Worker NodeShard3Shard4Worker Node离线写入计算组写入负载加工负载Shard3Shard4Worker Node实时写入计算组实时写入Shard1Shard2Worker NodeShard3Shard4OLAP查询计算组报表服务Shard3Shard4Worker Node在线服务计算组在线服务Link DataGateway网关FrontendFrontendFrontendFrontendFrontendFrontendFrontendFrontendFrontendFrontend阶段挑战解决方案最佳实践1:计算组的动态增加ShardShardWorker NodeShardShardWorker Node写入负载GateWay网关FrontendFrontendFrontendPangu存储计算层默认计算组ShardShardWorker Node查询负载Frontend查询计算组ShardShardWorker NodeShardShardWorker Node写入负载GateWay网关FrontendFrontendFrontendPangu存储计算层离线写入计算组ShardShardWorker Node写入负载Frontend实时写入计算组ShardShardWorker NodeShardShardWorker NodeOLAP查询负载FrontendFrontendFrontendOLAP查询计算组ShardShardWorker Node在线服务负载Frontend在线服务计算组拆分成多个计算组,满足业务的不同隔离需求场景1:增加计算组场景描述:通常实践,将实例分默认计算组和查询计算组,其中默认计算组只承担写入&ETL等流程,查询计算组负责对外查询,实现读写隔离,满足业务隔离需求。当业务变得更加复杂,需要提供多种服务时,读写隔离不能完全满足需求,写入与写入之间会有资源争抢,查询之间也有资源争抢。解决方案:将计算组拆分成多个计算组,实现不同业务,不同负载之间的完全隔离。最佳实践2:计算组的弹性伸缩场景2:弹性扩缩容场景描述:当出现大促等情况时,现有的资源不足以支撑业务规模,需要更多的负载以满足业务的洪峰;业务低峰期时,需要减少资源防止资源浪费,减少成本 解决方案:流量洪峰时,根据业务需求对单个计算组扩容,低峰期对计算组进行缩容;系统支持热扩缩容方式,将业务影响降到最低。ShardShardWorker NodeShardShardWorker Node写入负载GateWay网关FrontendFrontendFrontendPangu存储计算层默认计算组ShardShardWorker Node查询负载Frontend查询计算组ShardShardWorker NodeShardShardWorker Node写入负载GateWay网关FrontendFrontendFrontendPangu存储计算层写入计算组ShardShardWorker Node查询负载Frontend查询计算组ShardShardWorker NodeFrontendShardShardWorker NodeShardShardWorker NodeFrontendFrontend对计算组进行弹性扩缩容,满足业务不同负载需求最佳实践3:计算组的自动路由场景3:故障自动路由场景描述:当某个计算组发生Failover后,影响业务,需要快速止血 解决方案:通过SQL命令实现自动路由机制,无需改动应用接口,快速将Failover计算组的负载路由至默认/指定计算组,实现业务快速恢复ShardShardWorker NodeShardShardWorker Node写入负载GateWay网关FrontendFrontendFrontendPangu存储计算层默认计算组ShardShardWorker Node查询负载Frontend查询计算组ShardShardWorker NodeShardShardWorker Node写入负载GateWay网关FrontendFrontendFrontendPangu存储计算层默认计算组查询负载对计算组进行弹性扩缩容,满足业务不同负载需求客户案例:某客户的实时数仓Serverless升级之路采购入仓配送下单支付供应商共享仓库中心仓库消费者平台指标中心&自助分析(多维OLAP、灵活)实时播报(快速交付、高保障)场景复杂仓库实时作业(高性能、持续服务)350左右任务实时规模大上万CUP2及以上任务70%日均超2000万/s 输入(峰值6千万以上)实时吞吐高日均超50万/s 输出几百TB指标中心&自助分析(多维OLAP、灵活)业务背景客户案例:某客户的实时数仓Serverless升级之路实时数仓1.0 Hologres替换传统数仓DWDDWSADSFlink数据引擎LindormHologres圈选/物流作业对内看数实时点查OLAP引入Hologres替换传统数仓支持OLAP能力,开发灵活、高效支撑业务缩短实时链路实时数仓2.0 Hologres升级为主从实例,高可用部署升级为Hologres主从实例,实现读写分离和同城容灾存储一致、服务出口一致、资源隔离高可用和成本都有效平衡,故障从6次降为0次,存储下降几百THologres从实例1MaxComputeFlink二次Binlog消费高性能写入回流统一数据服务Hologres从实例2Hologres从实例NHologres主实例实时数仓3.0(ing)Hologres计算组实例,弹性和隔离升级为计算组实例,计算组可以随意纵向扩缩容,横向增加/减少,满足业务弹性资源需求业务隔离、任务隔离、弹性,更serverlessMaxComputeFlink二次Binlog消费高性能写入回流统一数据服务离线写入计算组实时写入计算组分析计算组1分析计算组2分析计算组NHologres计算组实例2020-2021年 2022-2023年2023Future成本70120%开发效率100%性能100200%Hologres的Serverless演进之路从独享实例演进到统一计算组实例,定时弹性,按需使用,完整的Serverless独享实例适用通用场景,业务持续运行共享集群(湖仓版)多租户共享资源,湖仓外表加速,按需使用,按量付费主从实例一份数据,共享存储 读写隔离,负载隔离计算组实例一个实例,多个计算组 计算组之间强隔离、弹性资源、自动路由统一独享实例和共享实例,实现自助资源切换满足业务多种资源需求Down to zero Global gateway?Serverless Task?ETL?Down To Zero?Serverless?Down To Zero?THANKS
展开阅读全文