1、多维分析平台在37手游的技术演进闫 铁|0137手游业务背景手游业务背景0237手游多维分析手游多维分析实践实践0304多维分析平台服务保障多维分析平台服务保障目录目录CONTENT|多维分析技术产品化与多维分析技术产品化与业务化业务化37手游业务背景01|37手游简介|37手游数据分析场景特点|37手游多维分析实践02|OLAP在37手游的演进|2019202020212022ImpalaADBClickhouseStarRock+HbaseHologress2018MySQLDruidKylin 从计算能力,查询性能,架构简洁性,可扩展性,稳定性,可维护性等维度考虑选型OLAP平台与数仓|
2、StreamsHudiHive外部表HudiHive外部表HudiHive外部表CDCODSDWDDWS混合混合OlapOlap查询平台查询平台HiveMetaStore统计逻辑视图HiveSTETL(可选)统计逻辑视图层日志流 经过ods-dwd-dws-ads的数据建模,数据在数据仓库经过一些列ETL操作,最终ads层数据推送到olap查询层,供应用层查询。Impala读写流程|Impala主要是3个组件,Catalog,StateStore,ImpalaDaemon。Impalad服务由三个模块组成:Query Planner、Query Coordinator和Query Execut
3、or。Impala在自助取数平台的应用|以Impala为计算引擎的自助取数平台,能实现大数据量高性能、业务复杂度高的计算,满足业务团队对取数“快”的需求,同时也大大释放技术人员人力。Impala的优点|Impala的不足|Clickhouse为什么快|多样化的表引擎向量化引擎多核心并行处理索引列存与数据压缩多服务器分布式处理列式存储更适合于OLAP场景,处理速度可以有100倍级别的提升为上层应用程序的性能带来了极大的提升单条Query就能利用整机所有CPU主键索引、稀疏索引,提升查询性能数据保存在不同的shard上,查询可以并行地在所有shard上进行处理天下武功唯快不破包括MergeTree
4、等20多种表引擎,特定的场景使用特定的表引擎支撑以达到极致的性能Clickhouse在广告自动化投放平台的应用|广告投放平台:对媒体广告投放效果进行实时监控,根据投放效果(如新增注册用户等)自动创建和调整广告投放计划。使用ReplicatedMergeTree表引擎。对于多表join,根据相同的join key ,hash到同一个节点,以实现local join;对于数据频繁更新的问题,将上游业务库Mysql 的update/delete+insert的方式变成clickhouse insert(append),构建一个视图,取T-2历史数数据 union T-1的最新数据对应用层提供服务。C
5、lickhouse使用心得|Clickhouse使用痛点1查询角度查询角度 高并发能力不足;多表关联查询性能欠佳2运维角度运维角度 强依赖ZooKeeper增加运维复杂度;缺乏Resharding机制,集群扩容成本高3数据更新角度数据更新角度 Replacing使用merge-on-read模式,多个数据版本取最新数据性能问题;不支持删除数据,通过删除标识位或者TTL拖慢性能StarRocks重要特征|数据模型 明细模型 聚合模型 更新模型 主键模型多表关联性能更优Bucket Shuffle Join、Colocate Join等分布式Join提升Join性能数据导入方式多样RoutimeL
6、oad,BrokerLoad,FlinkCDC等数据导入方式,简化了数据处理链路排序键和前缀索引 底层的数据是按照指定的列排序存储的(排序健);排序键的基础上实现了一种前缀列索引,以排序列作为条件进行数据查找,或者命中前缀索引,查询性能比较高效。持多并发查询能支撑相对大一点的QPS架构简单、运维方便不依赖ZooKeeper等外部组件只有自身的FE,BEStarRocks在37手游画像场景的应用|业务诉求人群圈选+画像分析可根据任意规则圈选用户分群,圈定人群后做进一步画像分析(如指标聚合操作)大数据量查询数据量百亿级