《1-3 基于阿里云實時計算 Flink 構建現代化數據流.pdf》由會員分享,可在線閱讀,更多相關《1-3 基于阿里云實時計算 Flink 構建現代化數據流.pdf(30頁珍藏版)》請在三個皮匠報告上搜索。
1、基于阿里云實時計算Flink構建現代化數據流晟柏 阿里云計算 產品經理|01什么是數據流02現代數據流趨勢03現代數據流特性總結04現代數據流最佳實踐目錄CONTENT|01什么是數據流數據流概述|數據流表面的含義指數據從輸入到輸出端的流動,在實踐中也稱為數據集成。是指一系列用來幫助企業使用、整合和利用各種數據的實踐、工具和架構程序。除了整合不同系統的數據外,數據集成還可以確保數據干凈、準確,優化其對業務的價值。|02現代數據流趨勢數據引領發展|傳統企業數據企業定位變革:數據成為一種產品|組織與數據關系變革數據民主化數據流正式化模型變革:復雜到簡單|強耦合聲明式低代碼用戶服務界面運行環境集成工
2、具數據控制流業務變革:ETL到ELT|對比項對比項ETLELT趨勢分散化,指標與模型交給數據團隊統一化,業務團隊處理彈性需求中高存儲成本中高實時要求低高轉向數據轉向業務轉向模型關注數據本身價值分離復雜耦合架構重視數據服務企業工具正規化工具簡單化工具穩定化改變數據分配方式明確數據責任分配實現數據共享重用總結:期待更好的數據流|03現代數據流特性總結|業務數據實時化Flink:從流開啟的大數據計算框架Apache Flink 是一個框架和分布式處理引擎,用于在無邊界和有邊界數據流上進行有狀態的計算。流式場景事件驅動應用流批分析數據管道&ETL正確性保證事件驅動應用流批分析數據管道&ETL分層API
3、SQL on Stream&Batch DataDataStream API&DataSet APIProcessFunction(Time&State)運維增強靈活部署高可用保存點大規模計算水平擴展架構支持超大狀態增量檢查點機制性能卓越水平擴展架構支持超大狀態增量檢查點機制|大數據技術整體發展實時化趨勢Apache Flink已成為實時計算標準阿里巴巴Apache Flink社區驅動者阿里巴巴Flink云上企業版一站式實時計算解決方案實時ETL實時推薦實時數倉實時風控實時監控實時IoT分析短視頻本地生活新金融在線教育300萬+代碼Meetup/FFACommitter/PMC開源社區Apac
4、he FlinkVervericaApache KafkaConfluentApache SparkDatabricks社交媒體新制造Apache Flink 實時計算事實標準|阿里云的解決方案StreamSQL更加面向數據分析領域,分析師無需學習即可完成業務代碼StreamSQL屏蔽底層復雜的一致性細節,提供Exactly-once的處理語義StreamSQL編譯器內置優化算法,入門用戶即可寫出高效的流式處理邏輯StreamSQL集成大量函數、算子,用戶無需底層編碼即可實現日常業務StreamSQL開放UDF接口,特殊領域邏輯使用插件即可完成業務定制化該業務使用該業務使用StreamSQL來
5、表示來表示:SELECT count(*)FROM wordsGROUP BY word WITH WINDOW(2,3)SQL化|內置SQL函數,鼠標懸停提示 SQL語法校驗,完善的錯誤提示 SQL作業版本管理、不同版本的對比 SQL Web-IDE 可視化編輯器 SQL DDL 聲明Schema UDF 上傳、管理 支持內置/外部Catalog管理表信息 支持文件夾和編輯鎖一分鐘上手IDE簡單易用的SQL開發體驗|企業級Connector,ETL的關鍵能力Connector,產品的關鍵價值之一 涵蓋阿里云產品/開源社區40+主流引擎,遠多于開源 在存儲,調度、網絡傳輸等方面,都調試到最佳效
6、果,正確性和性能有保障 Metric指標豐富,并提供監控、告警能力,開源基本不具備 支持模擬數據生成Connector(行數、速率、格式,范圍等),更便捷地生成貼近業務含義的測試數據,滿足您開發測試中驗證業務邏輯的需要 具備完善文檔說明,with參數詳細說明和代碼實例 業界領先的能力,快速推出新場景的connector,connector版本可以獨立更新 支持創建自定義connector|SQL代碼模板,場景化代碼示例 提供了21種代碼模板,每種代碼模板都為您提供了具體的使用場景、代碼示例和使用指導。通過代碼模板快速地了解Flink產品功能和相關語法,實現自己的業務邏輯解決最常見的問題:Fli
7、nk SQL不會寫|Serveless化集群Serverless化服務Serverless化|3萬+作業90+峰值40億記錄/秒150萬+CPU計算能力服務BU任務規模計算資源數據中臺流批一體數倉AI 中臺在線機器學習安全實時風控運維實時監控搜索推薦實時索引集群Serverless實時計算Flink幫助阿里巴巴實現業務全鏈路實時化|Autopilot,產品的關鍵價值之一作業彈性調優自建集群的資源配置自建集群的資源配置實時計算實時計算FlinkFlink的資源配置的資源配置 作業提交時,資源為固定配置 業務高峰,手工調整資源和并發 業務低谷:再次調低資源配置 自動為作業生成資源配置,并根據作業的
8、運行情況進行資源配置的調優 在確保作業處于健康的狀態下,優化作業資源的使用復雜度:工作量:效果:范圍:TM級別復雜度:無工作量:一個開關效果:實現按需使用資源范圍:TM和算子級別VS需求&痛點:當作業遇到業務高峰期或者新上線一個作業時,需要考慮如何配置該作業的資源、并發個數、Task Manager個數等 作業運行過程中,還需要考慮如何調整作業資源,使作業處于最高資源利用率;作業出現反壓或延時增大的情況時,需要考慮如何調整作業配置等 如果作業數量多,工作量成倍增長|治理能力Metadata數據觀察元數據管理數據血緣 如何在平臺獲取上下游數據內容 如何確認數據流任務的狀態 如何快速找到上下游的數
9、據結構 如何在數據結構變動時實時感知 如何快速定位數據來源 如何快速判斷異常數據影響業務范圍|方便查看數據源的數據 結果表的preview查詢展示 系統函數和自定義UDF的驗證 支持手動上傳CSV文件做為測試數據 支持選擇部分語句單步調試 使用Session 集群支持SQL Preview像使用數據庫一樣進行SQL Debug簡單快速調試|可觀測 支持查看作業DAG圖 支持查看vertex信息 支持查看歷史實例運行信息 支持查看作業運行的事件/JM日志/TM日志 支持啟動/暫停/停止作業豐富的功能,統一入口|元數據管理 Hive Metastore可以在Flink全托管開發控制臺上直接使用DM
10、L創建業務邏輯,獲取Hive中表的元數據信息,無需再使用DDL語句聲明相應的表信息。Hive Metastore可以作為Stream作業和Batch作業的源表或結果表。Hologres Catalog在Flink全托管控制臺直接讀取Hologres元數據,包括數據庫、表、分區、視圖。不用再手動注冊Hologres表,可以提高作業開發的效率且保證數據的正確性 MySQL Catalog在Flink全托管控制臺直接訪問MySQL實例中的表,無需通過DDL語句手動注冊MySQL表,直接作為Flink SQL作業中的MySQL CDC源表、MySQL結果表和MySQL維表,支持RDS MySQL、Po
11、larDB MySQL或自建MySQL,支持直接訪問分庫分表邏輯表,支持配合CDAS和CTAS語法完成基于MySQL數據源的整庫同步、分庫分表合并同步、表結構變更同步 DLF Catalog阿里云官方提供的一款統一元數據管理的產品,表格的格式可以是流行的開源格式,例如Iceberg、Hudi湖、倉、數據庫的元數據使用和管理|04現代數據流最佳實踐|入湖入倉痛點和Flink CDC解決方案方案常見痛點:1.全量和增量兩套架構2.Schema 變更導致入湖鏈路難以維護3.整庫開發工作量大,數據連接對源庫壓力大4.ETL清洗、分析難度大5.資源、費用過高Flink CDC解決方案:1.全量和增量自動
12、切換2.表結構變更自動同步(Flink作業和sink端)3.整庫同步只需要一條SQL4.雙流 JOIN、維表 JOIN等可以非常容易地完成數據打寬,以及各種業務邏輯加工5.性能規格無限制,CDC不單獨收費|實時計算Flink 實時入倉解決方案(Flink+Hologres)主要特性方案描述CTAS和CDASHologres支持實時同步單表或整庫級別的數據在同步過程之中如果上游的表結構發生了變更也會實時同步到Hologres表中在Flink讀取JSON數據時,可以自動解析類型,自動創建對應表的列,支持數據模型的動態演化寬表Merge和局部更新功能支持,場景舉例為:一個數據流中包含A、B和C字段,
13、另一個數據流中包含A、D和E字段,Hologres寬表WIDE_TABLE包含A、B、C、D和E字段可以根據主鍵更新數據,以及回撤消息產生Delete請求。流式語義當同主鍵數據出現多次時,您需要設置mutatetype參數確定更新結果表的方式insertorignore(默認值):保留首次出現的數據,忽略后續所有數據。insertorreplace:整行替換已有數據。insertorupdate:替換部分已有數據。例如一張表有a、b、c和d四個字段,a是PK(Primary Key),寫入Hologres時只寫入a和b兩個字段,在PK重復的情況下,系統只會更新b字段,c和d保持不變分區表支持,
14、當寫入分區表時,根據分區值自動創建不存在的分區表攢批寫入支持,默認值為256,單位為數據行數連接池數量自定義支持,默認值為3Hologres Binlog消費支持Flink Catalog支持,Flink支持導入Hologres元數據為Catalog,在Flink全托管控制臺直接讀取Hologres元數據,不用再手動注冊Hologres表,可以提高開發效率且能保證表結構的正確性|實時計算Flink 實時入湖解決方案主要特性Hudiiceberg源表支持,全量和增量拉取支持,全量源表結果表支持insert模式:數據追加寫upsert模式(默認值):數據更新bulk_insert模式:批量寫入支持
15、:insert模式:數據追加寫CDC結果表支持否結果表存儲OSS,HDFSOSS,HDFSDLF Catalog支持,將數據寫入至DLF Catalog下的Hudi表支持,將數據寫入至DLF Catalog下的Iceberg表Hive Catalog支持,將數據寫入至Hive Metastore下的Hudi表支持,將數據寫入至Hive Metastore下的Iceberg表Changelog模式支持,保留消息的所有變更否批量導入支持,存量數據來源于其他數據源,則可以使用批量導入功能,快速將存量數據轉換為Hudi表格式否備注:并不是要對比hudi和iceberg兩種湖表格式,兩個格式用途不盡相同iceberg主要目標是替換hive,進行日志場景分析CDC場景可以使用hudi,構建準實時數倉|非常感謝您的觀看|