日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

袋鼠云研发手记 | 数栈·开源:Github上400+Star的硬核分布式同步工具FlinkX

發布時間:2023/12/31 综合教程 35 生活家
生活随笔 收集整理的這篇文章主要介紹了 袋鼠云研发手记 | 数栈·开源:Github上400+Star的硬核分布式同步工具FlinkX 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作為一家創新驅動的科技公司,袋鼠云每年研發投入達數千萬,公司80%員工都是技術人員,袋鼠云產品家族包括企業級一站式數據中臺PaaS數棧、交互式數據可視化大屏開發平臺Easy[V]等產品也在迅速迭代。在進行產品研發的過程中,技術小哥哥們能文能武,不斷提升產品性能和體驗的同時,也把這些提升和優化過程記錄下來,現錄入“袋鼠云研發手記”專欄中,以和業內童鞋們分享交流。

下為“袋鼠云研發手記”專欄第二期,本期作者為袋鼠云數棧引擎團隊。

袋鼠云數棧引擎團隊

袋鼠云數棧引擎團隊擁有多名專家級別,經驗豐富的后端開發工程師,分別支撐公司大數棧產品線的不同子項目的開發需求,從項目中提取并開源了FlinkX(基于Flink的數據同步),Jlogstash(logstash 的java 版本實現),FlinkStreamSQL(擴展原生FlinkSQL,實現流與維表的join)多個項目。

在長期的項目實踐與產品迭代過程中,團隊成員在 Hadoop技術棧上不斷深耕探索,積累了豐富的經驗與最佳實踐。

第二期

數棧·開源

Github上400+Star的「硬核分布式同步工具FlinkX

FlinkX 已經開源在Github上目前已獲400+Star,查看地址:https://github.com/DTStack/flinkx

1、袋鼠云為什么要自研數據同步工具?

袋鼠云作為一家數據智能公司,自研開發企業級一站式數據中臺PaaS產品——數棧。

關于數棧

數棧具有8大產品模塊

離線/實時開發套件

一站式大數據開發平臺,幫助企業快速完全數據中臺搭建

分析引擎

海量數據秒級查詢,極速響應能力,幫助企業自由的數據探索

數據質量

對過程數據和結果數據進行質量校驗,幫助企業及時發現數據質量問題

數據地圖

可視化的數據資產中心,幫助企業全盤掌控數據資產情況和數據的來源去向

數據模型

使企業數據標準化,模型化,幫助企業實現數據管理規范化

數據API

快速生成數據API、統一管理API服務,幫助企業提高數據開放效率

Easy[V]

在線拖拉拽的方式快速搭建交互式數據可視化大屏,讓數據價值看得見

EasyManager

全自動化,全生命周期的運維管家,提供安全穩定的數棧部署與監控服務

其中,「數據同步」是數棧開發套件中一個非常重要的功能,我們對數據同步工具有3點要求:

一是支持多種部署模式,比如測試單機部署,生產分布式部署。

二要基于yarn,mesos或者k8s做資源調度,提高資源利用率。

三要支持斷點續傳。因為在大數據量的傳輸場景下,由于網絡出現抖動等原因,可能導致任務失敗,那這個時候不可能重跑任務,這樣太耗時了,需要從失敗的點繼續跑;

當時,市面上,并沒有滿足以上三點要求的數據同步工具。

2、為什么基于Flink?

Flink是新型的計算框架,支持多種部署方式local(單機),standalone模式,也可以基于yarn,mesos或者k8s做資源調度;并且flink提供了比較高級的API,我們能比較方便地擴展現有的API來滿足我們自己的特殊需求;而且Flink提供了完整的狀態管理體系(checkpoint),斷點續傳就是基于checkpoint機制來實現的。

數據同步工具對比

3、FlinkX 概覽

FlinkX是在袋鼠云內部廣泛使用的一個基于Flink的異構數據源離線同步工具,用于在多種數據源(MySQL、Oracle、SqlServer、Ftp、Hdfs,HBase、Hive、Elasticsearch等)之間進行高效穩定的數據同步。

FlinkX簡化了數據同步任務的開發過程,用戶只需提供一份數據同步任務的配置,FlinkX會將配置轉化為Flink任務,并自動提交到Flink集群上執行。

作為一個面向分布式數據流處理和批量數據處理的開源計算平臺,Flink具有分布式、低延遲、高吞吐和高可靠的特性。

FlinkX實現了多種異構數據源之間高效的數據遷移

4、FlinkX的設計思路

2.1插件式架構

FlinkX采用了一種插件式的架構:

不同的源數據庫被抽象成不同的Reader插件;

不同的目標數據庫被抽象成不同的Writer插件;

整個數據同步任務共有的處理邏輯被抽象在Template模塊中,該模塊根據數據同步任務配置加載對應的Reader和Writer插件,組裝Flink任務,并提交到Flink集群執行;

FlinkX支持任意數據源類型的數據同步工作

FlinkX框架可以支持任意數據源類型的數據同步工作。作為一個開放式系統,用戶可以根據需要開發新的插件,以接入新的數據庫類型。

2.2 Flink任務的自動組裝

Template模塊根據同步任務的配置信息加載源數據庫和目的數據庫對應的Reader插件和Writer插件;

Reader插件實現了InputFormat接口,從源數據庫中獲取DataStream對象;

Writer插件實現了OutputFormat接口,將目的數據庫與DataStream對象相關聯;

Template模塊通過DataStream對象將Reader和Writer串接在一起,組裝成一個Flink任務,并提交到Flink集群上執行。

Flink任務的自動組裝

5、FlinkX的優勢

一、便于使用

用戶只需要提供一份數據同步配置信息,無需編寫程序,FlinkX會配置信息自動轉換為Flink任務并提交到Flink集群執行。

二、性能優越

FlinkX會將數據同步任務提交到Flink集群中的執行,使得FlinkX天然具有Flink的性能優勢,主要表現為分布式、低延遲、高吞吐和高可靠。

三、多運行模式

同普通的Flink任務一樣,FlinkX支持local、standalone和yarn三種運行模式。

「local模式」就是在本地開啟一個mini的Flink集群執行Flink任務,這種運行模式的好處是使用方便,不需要預先啟動分布式集群,適用于測試和實驗環境;缺點是由于單點執行,可靠性差,當數據量大時吞吐量受限;

「standalone模式」是指以獨立部署的方式啟動一個Flink集群,然后將提交Flink任務到該集群上執行;

「yarn模式」是指在yarn集群中部署Flink集群,然后將Flink任務提交到部署在yarn集群中的Flink集群上執行;standalone模式和yarn模式都是分布式地執行FlinkX,而yarn模式可以利用yarn的資源管理功能,因而成為部署FlinkX應用時的首選。

四、開放式可擴展

只要你愿意,你可以給任何類型的數據源開發Reader和Writer插件。

五、錯誤控制和臟數據管理

錯誤控制可以在數據同步配置信息中設置錯誤記錄閾值、錯誤占比閾值,使得數據同步任務在出錯時及時停止,避免系統資源的浪費。

臟數據管理可以將錯誤記錄、錯誤原因、錯誤類型輸出到Hive表中,便于日后的排查工作。

6、FlinkX在數棧產品中的應用

使用數棧的數據開發套件,用戶可以通過界面向導可視化的創建一個數據同步任務,而FlinkX正是數據同步的底層執行引擎。

FlinkX在袋鼠云數棧產品中的應用

總結

以上是生活随笔為你收集整理的袋鼠云研发手记 | 数栈·开源:Github上400+Star的硬核分布式同步工具FlinkX的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。