《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 數據流端到端一致性數據流端到端一致性通過自動調度資源,自動調度流式鏈路的數據處理流程,通過中間表的事務性寫入,保證中間數據鏈路的一致性?,F象:一些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 來滿足用戶時效性的要求?;鹕揭嬖圃嬎慊鹕揭嬖圃嬎懔魇接嬎鉙erverless Flink實時寫入跨源訪問大數據存儲(CloudFS)+Iceber
11、g批式計算Serverless Spark云原生計算大數據解決方案批量寫入MySQLOracleKafkaIoTBI報表實時大屏數據分析機器學習批量集成數據集成實時集成數據源管理跨源查詢數據服務數據源BMQ/Kafka業務場景實時風控數據開發和管理元數據管理API服務Open Search動態引擎Ray任務調度項目和權限管理作業開發和管理核心引擎HSAP資源和調度資源調度多云管理云原生Operator大數據平臺現存痛點大數據平臺現存痛點大數據架構復雜,使用成本高;傳統大數據部署方式資源使用效率低,運維不夠便捷;實時場景多,傳統的數據開發不能滿足實時要求。云原生計算價值點云原生計算價值點一站式大數據管理平臺,支持實時和離線計算,便捷的運維開發;基于云原生技術部署,高效的資源管理和調度,提升資源利用率;字節跳動深度優化的實時計算鏈路,提供消息隊列消息隊列 實時計算實時計算 實實時服務時服務的全鏈路場景。WWW.VOLCENGINE.COMCopyright 2022 北京火山引擎科技有限公司 All rights reserved.THANKSTHANKS感謝觀看感謝觀看