資料治理:資料整合的關鍵技術

成就數智企業發表於2023-12-14

資料整合是把不同來源、格式、特點性質的資料在邏輯上或物理上有機地集中,從而為企業提供全面的資料共享。


資料整合的核心任務是要將互相關聯的異構資料來源整合到一起,使使用者能夠以透明的方式訪問這些資料資源。


資料整合的目的是指維護資料來源整體上的資料一致性,解決企業“資訊孤島”的問題,提高資訊共享和利用的效率。


01

點對點資料整合

點多點整合是最早出現的應用整合模式,採用點對點的方式開發介面程式,把需要進行資訊交換的系統一對一地整合起來,從而實現整合應用的目標。


點對點的連線方式在連線物件比較少的時候,確實是一種簡單和高效的連線方式,具有開發週期短、技術難度低的優勢。但其最大的問題是,當連線物件多的時候,連線路徑會以指數方式劇增,效率和維護成本是最大的問題。


當需要連線的應用系統越來越多時,點對點整合方式將把整個企業資訊系統介面變成無法管理的“混亂的線團”。

點對點的整合架構不能集中管理和監控介面服務,僅支援一對一的資料交換,如果交換協議不一致,開發則非常困難。即,如果溝通的語言、文字、格式、方法等有差異,則每一個連線方都要同時支援和維護多種連線方式。


點對點的整合是緊耦合的,當一個連線變化時,所有與其相關的介面程式都需要重新開發或除錯。

基於以上幾點,在多點互連的情況下,點對點連線方式成本高,可用性和可維護性低。顯然,這不是一個好的連線方式。


02

匯流排式資料整合

匯流排式資料整合是透過在中介軟體上定義和執行整合規則,其拓撲結構不再是點對點整合形成的無規則網狀,而主要是中心輻射型的(Hub型)星型結構或匯流排結構。


匯流排結構透過與點對點整合架構相比,採用匯流排架構可以顯著減少編寫的專用整合程式碼量,提升了整合介面的可管理性。不同連線物件如果連線方式有差異,可以透過匯流排完全遮蔽掉,做到對連線物件透明,無需各個連線物件關心。透過匯流排結構,把原來複雜的網狀結構變成簡單的星形結構,極大提高了硬體的可靠性和可用性。

匯流排式資料整合的一代

 電子資料交換系統(EDI)

EDI不是使用者之間簡單的資料交換,EDI使用者需要按照國際通用的訊息格式傳送資訊,接收方也需要按國際統一規定的語法規則,對訊息進行處理,並引起其他相關係統的EDI綜合處理。標準化得EDI格式轉換保證了不同國家、不同地區、不同企業的各種商業檔案(如單證、回執、載貨清單、驗收通知、出口許可證、原產地證等)得以無障礙電子化交換,促進了國際貿易的發展。

匯流排式資料整合二代

 企業服務匯流排(ESB)

ESB的使用標誌著企業的應用整合進入了SOA時代(SOA是一種面向服務的整合架構)。SOA架構的其主要特徵是基於一系列Web標準或規範來開發介面程式,包括UDDI、SOAP、WSDL、XML,並採用支援這些規範的中介軟體產品作為整合平臺,從而實現了一種開放而富有彈性的應用整合方式。


ESB是對web服務(WebService)的註冊、編排和管理。

WebService是一種跨程式語言、跨作業系統平臺的遠端呼叫技術,是web的一種標準。可以理解為:WebService是一個應用程式向外界暴露了一個能透過Web呼叫的API介面,我們把呼叫這個WebService的應用程式稱作客戶端,把提供這個WebService的應用程式稱作服務端。客戶端進行服務的遠端呼叫前,需要知道服務的地址與服務有什麼方法可以呼叫。

因此,WebService服務端透過一個檔案(WSDL)來說明自己家裡有啥服務可以對外呼叫,服務是什麼,服務中有哪些方法,方法輸入的引數是什麼,返回值是什麼,服務的網路地址是什麼,透過什麼方式來呼叫等。


WSDL是一個基於XML的語言,用於描述WebService及其函式、引數和返回值,它是WebService客戶端和伺服器端都能理解的標準格式。


03

離線批次資料整合

在傳統資料整合的語境下,離線批次資料整合,通常是指基於ETL工具的離線資料整合, ETL即資料的提取(Extract)、轉換(Transform)和載入(Load)。

ETL是資料倉儲的核心和靈魂,能夠按照統一的規則整合並提高資料的價值,是負責完成資料從資料來源向目標資料倉儲轉化的過程,是實施資料倉儲的重要步驟。

在資料倉儲、資料湖、資料資產管理等專案中,ETL都是最核心的內容。ETL透過ETL作業流(任務)從一個或多個資料來源中抽取資料,然後將其複製到資料倉儲。抽取型別有全量抽取、增量抽取、準實時抽取、檔案提取等方式。針對不同的資料提取場景設計不同的資料抽取型別。在資料抽取過程中,需要將不符合規則的資料過濾掉,並按照一定的業務規則或資料顆粒度轉換成資料倉儲可用的資料,這個過程就是資料的清洗和轉換。最後,就是呼叫資料庫的服務將資料裝載至資料庫中。


ETL的實現有多種方法,常用的有三種:

第一種是藉助ETL工具:

例如:Informatic、IBM CDC、talend、kettle、Nifi等,藉助工具可以快速的建立起ETL工程,遮蔽了複雜的編碼任務,提高了速度,降低了難度,但是缺少靈活性。

第二種是SQL編碼實現:

SQL的方法優點是靈活,提高ETL執行效率,但是編碼複雜,對技術要求比較高。

第三種是ETL工具和SQL組合實現:

綜合了前面二種的優點,會極大地提高ETL的開發速度和效率。


04

流式資料整合

流式資料整合也叫流式資料實時資料處理,通常是採用Flume、Kafka等流式資料處理工具對NoSQL資料庫進行實時監控和複製,然後根據業務場景做對應的處理(例如去重、去噪、中間計算等),之後再寫入到對應的資料儲存中。


這個過程類似傳統的ETL,但它是流式的處理方式,而非定時的批處理Job,NoSQL資料庫採集工具均採用分散式架構,能滿足每秒數百MB的日誌資料採集和傳輸需求。


Kafka 就是一個能夠處理實時的流式資料的一個新型ETL解決方案。


Kafka 能夠透過 Kafka Connect API 實現流資料管道的構建,也就是 ETL 中的 E和L。Connect API 利用了 Kafka 的可擴充套件性,kafka connect是圍繞kafka構建的一個可伸縮,可靠的資料流通道,透過kafka connect可以快速實現大量資料進出kafka從而和其他源資料來源或者目標資料來源進行互動構造一個低延遲的資料通道。


流處理和轉換可以透過 Kafka Streams API 來實現,也就是構建了ETL中的T,Kafka Streams用於在Kafka上構建高可分散式、擴充性,容錯的應用程式。它建立在流處理的一系列重要功能基礎之上,比如正確區分事件事件和處理時間,處理遲到資料以及高效的應用程式狀態管理。


Kafka Streams包含了ConsumerAPI 和ProducerAPI的功能,增強了對資料流的處理能力。使用 Kafka 作為流處理平臺能夠消除為每個目標 sink、資料儲存或系統建立定製化(很可能是重複的)抽取、轉換和載入元件的需求。來自資料來源的資料經過抽取後可以作為結構化的事件放到平臺中,然後可以透過流處理進行資料的轉換。


05

網路資料整合

網路資料整合也叫網路資料採集,指透過網路爬蟲或網站公開 API 等方式從網站上獲取資料資訊的過程。


網頁爬蟲,即一種按照一定的規則,自動地抓取網際網路資訊的程式或者指令碼,一般分為通用網路爬蟲和聚焦網路爬蟲兩種。網頁爬蟲從一個或若干初始網頁的URL開始,獲得初始網頁上的URL,在抓取網頁的過程中,不斷從當前頁面上抽取新的URL放入佇列,直到滿足系統的一定停止條件。

聚焦爬蟲的工作流程較為複雜,需要根據一定的網頁分析演演算法過濾與主題無關的連結,保留有用的連結並將其放入等待抓取的URL佇列。


網頁爬蟲支援文字檔案、圖片、音訊、影片等非結構化資料、半結構化資料從網頁中提取出來,儲存在本地的儲存系統中。

目前網路上有許多網頁爬蟲,Octoparse、WebCopy、HTTrack、Getleft、Scraper等,並且這些工具都是免費的!


來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/70035284/viewspace-3000062/,如需轉載,請註明出處,否則將追究法律責任。

相關文章