1、邹云鹤/BIGO Staff EngineerBIGOBIGO使用使用FlinkFlink做做OlapOlap分析及实时数仓的分析及实时数仓的实践及优化实践及优化背景背景落地实践落地实践特色特色&改进改进业务场景业务场景未来规划未来规划#1#2#3#4#5#1#1BIGO OLAPBIGO OLAP分析平台分析平台&实时数仓的业务背景实时数仓的业务背景主要业务为全球用户提供直播服务B BigoLiveigoLive短视频创作及分享APPL Likeeikee全球免费通信工具IMOIMOBIGO 大数据平台数据流转WebAppDB BinLog百纳接入BDP接入数据接入数据接入FlinkSpar
2、kPresto数据计算数据计算PrometheusKV存储MySQLKafkaPulsarSpark任务入口Presto查询实时任务入口资源管理元数据管理HiveClickHouse消息队列离线存储监控告警Hive数据输出数据输出ClickHouse实时监控即席查询实时报表数据应用数据应用实时推荐ClickHouse存在的问题OLAP分析平台入口不统一用户体验不好资源利用率低问题问题一一离线任务计算时延高部分计算任务产出结果太慢问题问题二二计算任务烟囱式的开发,缺少数据分层,缺少数据血缘问题问题三三OneSQL-Olap 系统&建设实时数仓OneSQL 集多种OLAP查询引擎(presto/s
3、park/flink)于一体,充分利用各集群计算资源 统一查询入口实时数仓 基于Flink 构建实时数仓任务,使用kafka/pulsar 实施实时数据分层管理 平台化管理实时任务,建立任务血缘关系加速产出 将部分离线计算慢的任务迁移到实时计算上 构造实时数仓宽表#2 2BIGO OLAPBIGO OLAP分析平台分析平台&实时数仓实时数仓 落地实践落地实践集Presto/Spark/Flink于一体的OneSQL Olap系统1.统一查询入口,智能选择执行引擎,减少用户盲目选择;2.查询执行失败重试,当SQL在一个引擎上执行失败,会选择其他引擎来重试执行;3.充分利用各引擎的资源,减少资源闲
4、置;Flink Sql Gateway1.使用开源的Flink SQL Gateway 来作为SQL提交的入口;2.基于Flink 的zookeeper HA机制保障Flink 集群的可靠性;3.SQL Gateway 实时监听zookeeper 的HA路径,一旦Flink Cluster挂掉之后,YARN重新拉起新集群,SQL Gateway 可自动感知;Flink SQL查询提交执行功能点:1.TaskManager 资源预先分配2.JobManager 异步解析Split,Split 边解析任务边执行3.Sink 算子接受到指定大小的结果数据后,即通知任务结束4.数据持久化,写入到Hiv
5、e表稳定性性能监控Hive兼容1.支持Hive 语法&函数;2.语法兼容性80%1.异步解析Split,边解析Split边执行任务,减少split解析消耗的时间;2.Flink 集群预分配资源,减少资源申请的时间;3.控制提交时扫描文件或者Split的最大个数,减少并行设置所需时间;1.监控Olap 集群JM&TM内存,CPU使用2.监控Sql-Gateway内存使用,任务提交情况Flink Olap 功能增强1.使用zookeeper HA保证集群高可用2.Sql Gateway 自动感知存活的集群;3.控制返回数据量,控制扫描分区个数和数据量Onesql OLAP分析平台成果入口收敛,减低
6、用户使用门槛,执行出错率下降85.7%收益收益一一OLAP任务执行成功率提高3.3%收益收益二二执行平均耗时缩短10%收益收益三三实时集群资源利用率提升15%收益收益四四实时数仓建设思路使用 Flink 计算指标和维度,写入ClickHouse 宽表ClickHouse 事务机制,结合Flink 实现从Kafka 到ClickHouse 的端到端Exactly once建设一套实时任务管理的平台,管理和监控实时任务的运行Click House宽表Exactly-Once 保证平台化建设建设方案方案实施基于以上方案,将ABTest,日活监控等离线 计算任务迁移到 Flink 实时计算上,完成小时