1、|Apache Seatunnel(incubator)數據集成平臺高俊 白鯨開源 架構師|2關于我開源愛好者開源愛好者10年大數據相關工作,主要從事大數據平臺建設、OLAP引擎設計研發工作。開源愛好者,參與多個開源項目的貢獻。Apache DolphinScheduler PMCApache SeaTunnel(incubator)ContributorTrino ContributorApache Arrow-Datafusion Contributor|01SeaTunnel的設計目標02SeaTunnel現狀03SeaTunnel整體設計05Connector接入激勵計劃目錄CONTE
2、NT|04近期規劃|01SeaTunnel設計目標|數據源多,版本間不兼容,且不斷有新的出現簡單易用的,分布式可擴展的支持超數據級的簡單易用的,分布式可擴展的支持超數據級的吞吐低延時的數據集成平臺。吞吐低延時的數據集成平臺。企業技術棧差異,導致選擇同步組件時需要更多的學習成本。離線同步和實時同步常被分開管理,維護困難數據同步需要吞吐低時延,數據致性要求。SeaTunnel的設計目標|02SeaTunnel現狀|SeaTunnel現狀連接器數量支持的連接器有50+支持數據源Source20+支持目標端Sink 20+支持Transform 10+|同個連接器,只需要在env配置中指定job.mo
3、de為BATCH或STREAMING即可輕松切換離線和實時同步兩種模式。支持離線同步和實時同步兩種式支持離線同步和實時同步兩種式流批體流批體只需要實現只需要實現個連接器個連接器適配純流和適配純流和微批微批SeaTunnel現狀流批一體|多引擎支持多引擎支持SeaTunnel多引擎支持為了更好的兼容企業已有的技術態,降低使用SeaTunnel的技術成本.已經支持的引擎支持多個版本的Flink引擎,完美支持Flink的Checkpoint流程Flink支持Spark微批處理模式,支持聚合提交特性Spark專為數據同步場景設計的引擎,還在開發中。SeaTunnel內部引擎,為那些沒有數據態的企業或追
4、求數據同步最佳體驗的用戶提供可選案SeaTunnel EngineSeaTunnel現狀多引擎支持|高吞吐高吞吐低延遲低延遲精確性精確性SeaTunnel支持Source/Transform/Sink的并行化處理,提高吞吐性能基于引擎提供的實時處理或微批處理實現低延遲分布式快照算法支持兩階段提交冪等寫入Exactly-OnceSeaTunnel現狀性能、一致性|SeaTunnel 社區現狀|SeaTunnel 用戶|03SeaTunnel整體設計|Engine independent Connector APIConnector TranslationSource ConnectorTrans
5、form Connector多引擎支持,多引擎支持,Spark/Flink/?Sink Connector010203040506SeaTunnel整體架構|SeaTunnel 使用方式|SeaTunnel Execution Flow|SeaTunnel Connector Flow|流批體流批體統了流和批的處理API,新的Connector只需要按API實現次,即可同時支持流處理和批處理下的數據集成。03JDBC多復用多復用/數據庫日志多表解析數據庫日志多表解析支持多表或整庫同步,解決JDBC連接過多的問題;支持多表或整庫數據庫日志讀取解析,解決CDC多表同步場景下需要重復解析日志的問題。
6、04與引擎解藕,專為數據集成與引擎解藕,專為數據集成場景設計場景設計.多引擎支持多引擎支持定義套SeaTunnel自的API,解決以往針對不同的處理引擎需要寫兩套不同的Connector的問題,實現套代碼可在不同的引擎上執。01多版本支持多版本支持通過Translation層將Connector與引擎解藕,解決以往為了支持底層引擎個新的版本,部分Connector都需要修改代碼的問題。02Engine independent Connector API|SeaTunnelConnectorSparkTranslationFlinkTranslation基于基于SeaTunnelConnecto
7、r API實現實現基于基于Spark Connector API,將,將SeaTunnel API實現的實現的Connector包包裝成裝成Spark Connector基于基于Flink Connector API,將,將SeaTunnel API實現的實現的Connector包裝包裝成成Flink ConnectorSparkConnector可以運在可以運在Spark上的上的Connector,內部已經實現了從內部已經實現了從SeaTunnel Row轉換成轉換成Spark數據結構的法數據結構的法FlinkConnector可以運在可以運在Flink上的上的Connector,內部已經實
8、現了從內部已經實現了從SeaTunnel Row轉換成轉換成Flink數據結構的法數據結構的法Connector Translation|Source APIKeywordSource特性特性KeywordSource API統一離線與實時統一離線與實時API支持并行讀取支持并行讀取支持動態發現分片支持動態發現分片支持協調讀取支持協調讀取支持狀態存儲、恢復支持狀態存儲、恢復BoundednessSourceReader&Source SplitSource Split&EnumeratorSupportCoordinate&SourceEventsnapshotState|Coordinate
9、dSource Connector1.支持協調器2.只支持一個并行|ParallelSource Connector1.支持多并發2.需要定義分區算法|配合配合Source支持支持Exactly-Once次語義次語義Sink Write接收上游數據并寫目標端State儲存儲存支持狀態存儲,由connector將狀態存儲在HDFS,支持基于狀態重啟connector分布式事務分布式事務支持兩階段提交的分布式事務,配合引擎的checkpoint機制,保證Sink數據只寫次commiter支持每個Task獨立進事務提交聚合提交聚合提交支持所有Sink Task起聚合提交Sink API|Global
10、Commit Run In DriverSpark version=2.3+Or Flink version=1.12|GlobalCommit Run In WorkerFlink version=1.11|Commit In Worker支持所有版本的Flink不支持Spark|面向應用的面向應用的API,簡化同步作業配置,簡化同步作業配置,提供可視化作業配置的基礎提供可視化作業配置的基礎數據源管數據源管理理SeaTunnel定義了套API來支持創建數據源插件,基于SPI實現后即可集成該數據源的配置、連接測試作。元數據獲元數據獲取取支持獲取數據源的表結構(庫名、表名、字段名、字段類型等),
11、便可視化的配置同步作業的源和目標端的表名映射,字段映射等。數據類型定數據類型定義義由于需要支持多引擎,所有連接器中都使用SeaTunnel的格式,在ConnectorTranslation會轉換為對應引擎的格式。連接器創連接器創建建SeaTunnel提供了套API用于創建自動獲取信息創建Source,Sink等實例。SeaTunnel Table&Catalog API|04SeaTunnel近期規劃|更多、更快、更好用更多、更快、更好用V2版本連接器數量翻倍到版本連接器數量翻倍到所有Spark/Flink連接器升級到V2版本。連接器總數今年翻倍,達到80+發布發布SeaTunnel Web可視化作業管理編程式和引導式作業配置。內部調度+三調度發布發布SeaTunnel Engine更省資源更細粒度的容錯更快SeaTunnel 近期規劃過程監控|05SeaTunnel Connector接入激勵計劃|SeaTunnel Connector 接入激勵計劃基于SeaTunnel Connector API難易分明、門檻低完善態|SeaTunnel Connector 接入激勵計劃l積積分、領禮包、做貢獻、樂限l現在上車也不晚參與活動、做貢獻、領禮包參與活動、做貢獻、領禮包|非常感謝您的觀看|