數棧技術分享:如何使用數棧進行數據採集?

數棧是雲原生—站式數據中臺PaaS,咱們在github和gitee上有一個有趣的開源項目:FlinkXFlinkX是一個基於Flink的批流統一的數據同步工具,既能夠採集靜態的數據,也能夠採集實時變化的數據,是全域、異構、批流一體的數據同步引擎。你們喜歡的話請給咱們點個star!star!star!git

github開源項目:https://github.com/DTStack/fl...github

gitee開源項目:https://gitee.com/dtstack_dev...數據庫

1、從哪裏採集數據

咱們談大數據、用大數據、讓數據產生價值的前提是,咱們首先要有數據。架構

咱們講數據中臺「存」、「通」、「用」,首先就是「存」,咱們要將數據放到中臺裏,之前是放在數據倉庫裏,在「存」的基礎上,咱們會將不一樣來源不一樣格式的數據進行梳理、把一個個數據孤島打通,數據資源造成數據資產,而後根據用戶的具體場景,進行數據應用。併發

數據的產生不是憑空而來的,袋鼠雲數棧提供離線數據同步採集和實時數據同步採集兩種方式,幫助用戶高效地將散落在各處的數據資源採集,存放在一塊兒,用工具化的方式,進行「全域」數據採集,爲構建數據中臺奠基基礎。分佈式

2、怎麼採集數據

一、離線數據同步採集高併發

可視化配置的數據同步任務以下圖所示:工具

數棧的數據同步工具FlinkX,在不一樣存儲系統中起到「橋樑」的做用,是數據中臺的基礎核心功能,支持多種不一樣的異構存儲系統數據(MySQL,Server,Oracle等),插件化架構可隨時支持更多的新數據源需求,底層基於Flink分佈式架構,支持大容量、高併發同步,相比單點同步性能更好,穩定性更高。oop

該方案知足分鐘(5分鐘)、小時、天等多種級別的同步需求。性能

袋鼠雲數棧數據同步界面以下圖所示:

數據同步模塊FlinkX是在各個存儲單元之間執行數據交換的管道。爲了在數據中臺進行大規模數據集的挖掘與計算,一般的作法是在任務執行前將數據傳輸至數據中臺,並在任務執行結束後將計算結果傳輸至外部存儲單元(例如MySQL等應用數據庫)。

數據集成的做用以下圖所示:

數據同步模塊的特性包括如下幾方面:

1)豐富的數據源支持

數據同步模塊可對MySQL、Oracle、SQLServer、PostgreSQL、DB二、HDFS(Textfile/Parquet/ORC)、Hive、HBase、FTP、ElasticSearch、MaxCompute、ElasticSearch、Redis、MongoDB、CarbonData等數據源,支持對這些數據源進行讀取或寫入數據。使用時僅需配置數據源的鏈接信息(例如填寫Oracle數據庫的JDBC URL、用戶名、密碼等信息),再配置對應的數據同步任務便可。

2)分佈式系統架構

數據同步模塊在系統架構上採用先進的分佈式系統架構,可實現多個節點併發讀取、寫入數據,可極大的提高數據同步的吞吐量,相比Sqoop、Kettle等開源數據同步方案,數據吞吐能力更高、配套功能更完善。

3)嚮導/自定義配置模式

嚮導模式:

特色是便捷、簡單,可視化字段映射,快速完成同步任務配置。可經過嚮導模式完成同步任務的建立與配置,主要包括同步任務選擇源庫源表、目標庫目標表、配置字段映射、配置同步速度等。

腳本模式:

特色是全能、高效,可深度調優,支持所有數據源。需經過編寫JSON腳本的方式完成配置過程。

4)調度與依賴的配置

在實際的數據生產過程當中,數據同步任務一般是數據處理鏈路的第一個任務和最後一個任務,分別承擔「從業務系統抽取數據」和「將結果數據寫出」的職責。【離線計算-開發套件】支持對同步任務配置依賴關係,約束同步任務與其餘任務的執行前後順序。

數據同步任務一般是週期執行的,天天、每週、每小時或分鐘級(5分鐘)執行一次,【離線計算-開發套件】支持對同步任務配置循環週期,實現同步任務的按期執行,詳細的調度與依賴配置功能請參考數據開發:構建數據分析邏輯一節。

5)全量/增量同步

從業務系統讀取數據的過程當中,爲了最小化對業務系統的影響,一般須要進行數據的增量同步。在源數據庫表中具有數據變動時間字段的狀況下,【離線計算-開發套件】支持對關係型數據庫進行增量數據同步,用戶僅需輸入相應的數據過濾語句便可實現。

6)整庫同步

整庫同步是幫助提高用戶效率、下降用戶使用成本的一種快捷工具,它能夠快速把一個MySQL數據庫內全部表一併上傳到數據平臺中,節省大量初始化精力。假設數據庫有100張表,您本來可能須要配置100次數據同步任務,但有了整庫上傳即可以一次性完成(要求數據庫的表設計具有較高的規範性)。

在整庫同步配置中,用戶可批量選擇待同步的表,並配置全量/增量,同步批次等信息。同時支持自定義表名、字段類型等配置,在方便快捷的基礎上實現高度靈活性。

7)分庫分表(MySQL)、FTP多路徑同步

數據同步模塊能夠支持關係型數據庫分庫分表模式下的數據同步,用戶僅需在頁面上選擇多張表、多個數據庫便可(要求每張表的結構相同)。

除了關係型數據庫分庫分表模式以外,還支持一個任務從多個FTP路徑,讀取多個文件,減小同步任務配置的重複性工做。

8)同步速度的控制

據進行初始化的同步時,每每有大量歷史數據須要同步至中臺,須要提升數據讀取的速度,當業務數據庫的運行壓力較大時,爲了減輕數據庫的壓力,須要下降數據讀寫的速度。

數據同步模塊支持同步速度控制,經過設置同步速率上限來調整,此參數需根據硬件配置和數據量來調整,用戶根據業務需求選擇設定的值。

二、實時數據同步採集

上圖是實時數據流同步架構,說明以下:

1)Oracle和SQLServer數據源:須要用戶方自購併部署OGG實時採集工具,實時採集Oracle redo log數據,再經過數棧DTinsightStream產品可視化配置將數據打到Kafka,數據就被實時歸檔或實時消費。

2)MySQL數據源:數棧DTinsightStream產品已經集成Canal數據採集工具,實時採集MySQL binlog數據,直接經過可視化配置將數據打到Kafka,數據就被實時歸檔或實時消費。

3)日誌類數據源:數棧DTinsightStream產品針對日誌類實時採集模塊底層基於jLogstash組件實現(相比開源的jLogstash進行了分佈式改造),可基於YARN進行分佈式資源調度,直接經過可視化配置將數據打到Kafka,數據就被實時歸檔或實時消費。

實時採集模塊在WEB端的配置很是便捷且靈活,相似離線數據同步任務,可支持嚮導和腳本2種配置模式。以MySQL實時採集爲例,用戶僅需在頁面配置數據源、表和部分過濾條件便可。

除了配置功能外,實時採集任務在運行時,系統也可對輸入、輸出的數據量進行實時監控並告警。

相關文章
相關標籤/搜索