《6-4 字节跳动流式数仓和实时服务分析的思考和实践.pdf》由会员分享,可在线阅读,更多相关《6-4 字节跳动流式数仓和实时服务分析的思考和实践.pdf(16页珍藏版)》请在三个皮匠报告上搜索。
1、Copyright 2022 北京火山引擎科技有限公司 All rights reserved.WWW.VOLCENGINE.COM2022/09/17字节跳动流式数仓和实时字节跳动流式数仓和实时分析分析服务的思考和实践服务的思考和实践云原生计算产品团队汪建锋火山引擎云原生实时数仓技术专家字节内部的场景分析字节内部的场景分析字节跳动旗下拥有今日头条、抖音等多款产品,每天服务着数亿用户,由此产生了大量的数据量和计算量:EB 级别海量的存储空间 每天平均 70PB 数据的增量 每秒钟百万次数的实时推荐请求 超过 400 万核的流式计算资源、500 万核的批式计算资源巨大的挑战巨大的挑战目前目前遇到
2、的遇到的典型问题典型问题一、一、数据和系统冗余问题数据和系统冗余问题二、二、数据一致性和正确性问题数据一致性和正确性问题三三、ServingServing性能问题性能问题ETLETLETLBatch ETLStreamETL流数仓和服务数仓融合流数仓和服务数仓融合Streaming Warehouse Streaming Warehouse 和和 HSAPHSAP的融合方案的融合方案HSAPStreaming WarehouseFlink 动态表解决数据和系统冗余问题基于Flink流批一体,解决数据冗余性和正确性问题HSAP服务型引擎优化解决服务性能问题流批一体的思考流批一体的思考Rethin
3、kSnapshot 1数据仓库的流批一体存储:Database 的体验!Snapshot 2Snapshot 3Snapshot 4流数据批数据Changelog(Binlog,WAL).Snapsho tNFlinkFlink动态表:全新的动态表:全新的FlinkFlink内置存储内置存储Flink Flink 动态表动态表 Snapshot+Log 满足所有 User Case 存储易用,直接查询DFS HIVEHIVE IcebergIceberg KafkaKafka HBASEHBASE MySQLMySQL .HSAPHSAP ClickHouseClickHouse FlinkF
4、link动态表:存储结构动态表:存储结构SinkLog QueueColumnar Merge Tree Distributed File SystemStreaming Reading(Read Changes)Batch Reading(Read Snapshot)Lookup Join(Read Snapshot by Key)FlinkFlink动态表:流批一体动态表:流批一体批读流读批写流写读取读取 流读:读取 Log Changes 批读:读取 Snapshot 流批融合:Hybrid 读 Lookup:支持点查 写入写入 流写:持续插入 批写:支持分区、支持Overwrite L
5、ake Store Lake Store On DFS,无服务,计算存储分离 列存高性能分FlinkFlink动态表:全面支持动态表:全面支持SQLSQL1.1.支持任意支持任意 DDL DDL 定义定义 只有业务逻辑 主键定义可选 支持所有类型2 2.支持任意支持任意 SQL SQL 定义定义 任意消息类型 全面DML支持CREATE TABLE user_behavior(user_id BIGINT,item_id BIGINT,category_id BIGINT,behavior STRING,dt STRING,PRIMARY KEY(user_id,item_id)NOT ENF
6、ORCED)PARTITIONED BY(dt);INSERT INTO user_behavior SELECT.支持任意 SQL 的写入不用定义OptionsOptionalOptionalFlinkFlink动态表:动态表:Merge TreeMerge Tree LSM:Log LSM:Log-Structured Merge TreeStructured Merge Tree支持大量快速更新支持大量快速更新 更新写增量文件 基于 Sorted File 的按需 Merge支持高效分析支持高效分析 全局有序 Sorted File 的 Data Skipping Sort Aggreg
7、ation and Sort Merge Join支持点查支持点查Merge TreeMerge Tree是实时的核心是实时的核心FlinkStateFlinkState HSAPHSAP ClickHouseClickHouse 数据流端到端一致性数据流端到端一致性通过自动调度资源,自动调度流式链路的数据处理流程,通过中间表的事务性写入,保证中间数据链路的一致性。现象:一些ETL结果数据在对用户提供查询分析服务的同时,需要作为数据源执行下一轮ETL处理当前模式当前模式演进方向演进方向1.独立计算集群调度2.数据的不同入口,不同的处理方式,不同的集群1.数据源到ETL exact once2.
8、ETL写入单表 exact once3.多个中间表的关联一致性三个一致性问题:三个一致性问题:云原生云原生HSAPHSAP解决数据服务性能问题解决数据服务性能问题1.1.云原生架构云原生架构 全托管 Serverless 模式,释放用户技术价值在业务应用及规划,避免深度介入运维管理 存算分离实现极致弹性,满足高效的横向扩展2.2.高效的分布式引擎高效的分布式引擎 一体化多场景适配引擎,在同实例中,应对不同查询场景,提供匹配的优化策略 实时写入及更新,满足高写入率以及数据即时可见 多方式加速查询,通过 SSD、RDMA、PMEM、内存等手段,提升查询及 Shuffle 效率 物化视图满足数据预计
9、算 向量化引擎实时服务分析引擎实时服务分析引擎:新一代云原生实时服务分析产品新一代云原生实时服务分析产品HSAPHSAP是是字节团队字节团队研发的新一代面向大数据场研发的新一代面向大数据场景的实时服务分析系统。景的实时服务分析系统。它既能够满足用户高 QPS,低 Latency 的在线 Serving 需求,也能满足用户对于海量数据的实时复杂分析需求;支持海量数据实时写入、实时更新、实时分析,支持标准 SQL(兼容 MySQL 语法);云原生架构(存储计算分离),用户使用门槛低,开箱即用。功能功能优化器适配数据读写分离数据即时可见多方式加速性能性能物化视图向量化引擎Time Travel数据预
10、聚合实时服务分析引擎实时服务分析引擎典型场景典型场景主要挑战主要挑战 数据需要实时写入,实时查询,用户需要数据实时可见。数据写入吞吐大。查询并发高(QPS 百万级别),对于查询时延要求(毫秒级别)。用户特征明细数据庞大,任意时间窗口的在线聚合难以满足时延的需求。当前没有一个系统能够满足用户所有的需求,所以用户通常需要 KV+OLAP+Batch 来满足业务需求。解决方案解决方案 使用 MV 对明细数据进行聚合。使用 Dirty Read 来满足用户时效性的要求。火山引擎云原生计算火山引擎云原生计算流式计算Serverless Flink实时写入跨源访问大数据存储(CloudFS)+Iceber
11、g批式计算Serverless Spark云原生计算大数据解决方案批量写入MySQLOracleKafkaIoTBI报表实时大屏数据分析机器学习批量集成数据集成实时集成数据源管理跨源查询数据服务数据源BMQ/Kafka业务场景实时风控数据开发和管理元数据管理API服务Open Search动态引擎Ray任务调度项目和权限管理作业开发和管理核心引擎HSAP资源和调度资源调度多云管理云原生Operator大数据平台现存痛点大数据平台现存痛点大数据架构复杂,使用成本高;传统大数据部署方式资源使用效率低,运维不够便捷;实时场景多,传统的数据开发不能满足实时要求。云原生计算价值点云原生计算价值点一站式大数据管理平台,支持实时和离线计算,便捷的运维开发;基于云原生技术部署,高效的资源管理和调度,提升资源利用率;字节跳动深度优化的实时计算链路,提供消息队列消息队列 实时计算实时计算 实实时服务时服务的全链路场景。WWW.VOLCENGINE.COMCopyright 2022 北京火山引擎科技有限公司 All rights reserved.THANKSTHANKS感谢观看感谢观看