AI智能总结
康琪 京东物流高级技术专家/StarRocks&ApacheFlinkContributor 1-1.UData:京东物流一站式自助分析平台 Ø以StarRocks高性能实时摄入、联邦查询、湖仓一体能力为基础,覆盖10w+一线业务人员,面向物流全链路数据分析场景的一站式DAAS解决方案 1-2.UData产品架构 2-1.为什么需要存算分离 Ø海量数据近实时写入,长周期留存与查询→降低存储成本,保证用户体验Ø成本、运维压力大,资源用量难以预估→云原生部署,弹性扩缩容 Ø依托京东云JDOSK8s部署,双可用区容灾,Proxy灵活切量Ø配备万兆网卡及SSD的物理机,保证网络和缓存I/O性能Ø预调优的FE/CNSpecs,开箱即可用 2-3.表、存储卷与OSSBucket映射 Ø存算分离StarRocks可完美兼容京东云OSS •大表独享Bucket、小表共享Bucket,规避带宽和IOPS限制•新增元数据表维护Table、存储卷和Bucket映射关系 Ø通过自研低代码平台,1~5分钟配置FlinkJob实现MQ→SRStreamLoad •FlinkSRCatalog自动获取Schema,反推MQ消息解析•自动生成流式INSERT任务逻辑,支持配置Transform&Filter•为存算分离表Sink自动配置更加宽松的攒批和容错参数,保证数据新鲜度5min以内 CREATETABLEsink_sr_tblLIKEsr_catalog.sr_db.sr_tblWITH('connector' = 'starrocks','load-url' = '...','sink.buffer-flush.max-bytes' = '936870912','sink.buffer-flush.max-rows' = '3000000','sink.buffer-flush.interval-ms' = '200000','sink.buffer-flush.enqueue-timeout-ms' = '600000') 3-1.写入吞吐量 Ø单张大表日均新增行数十亿量级,日均更新次数百亿量级Ø开启BatchPublishVersion,写入吞吐与同等规模的存算一体集群持平 3-2.查询性能 Ø单张大表存储180天、百亿级历史数据,用户多执行离线数仓风格的OLAP查询Ø5个CN节点,CacheTTL20天,Cachehit情况下P95/P99与同规模存算一体集群相似ØCachemiss情况下查询响应极少超过1min,仍远快于查询Hive,满足用户分析需求 3-3.OSS性能与降本效果 Ø当前已接入的存算分离大表10+张,总数据量100TB+,单表最大10TB+,持续增长中 •每TB存储成本相对于存算一体集群降低90%•承载同等用户查询量的计算资源成本降低30% 4-1.Compaction调优 Ø根据CN节点规格,适当调大Compaction线程数和线程池队列Ø适当降低每次CumulativeCompaction的Rowset数,使得Compaction更快完成Ø实时观察CompactionScore是否位于合理水平 4-2.Vacuum调优 ØVacuum不及时会导致OSS上残留过多垃圾文件 Ø注意观察queued_delete_file_tasks和metadata_travel_latency指标,以及FE相关日志 ØCN执行Vacuum时复用release_snapshot线程池(默认容量5),且分区并行度默认为8,需根据CN节点规格和OSS吞吐量适当调整Ø查询流量大时,适当放宽历史版本区间,避免meta文件提前删除造成404错误 4-3.分区查询硬限制 Ø海量历史数据留存场景下的查询,分区裁剪是必备操作Ø为LakeTable添加参数,硬性限制单个用户查询能够Scan该表的分区数 Ø但是需要放行统计信息收集使用TabletHint的查询,否则会造成CBO不准确 4-4.优化统计信息收集 Ø默认的全量统计信息收集很可能会在业务高峰期调度,一定程度上影响大表查询性能Ø对于单分区较小但总数据量较大的表,将全量收集固定到业务低峰期进行,平时则进行抽样采集 Thank you!




