數(shù)據(jù)的搬運(yùn)工——數(shù)據(jù)集成

1 評(píng)論 5087 瀏覽 17 收藏 16 分鐘

大數(shù)據(jù)平臺(tái)并不生產(chǎn)數(shù)據(jù),大多數(shù)原始數(shù)據(jù)其實(shí)都來源于業(yè)務(wù)系統(tǒng),所以,我們需要做好數(shù)據(jù)“搬運(yùn)”動(dòng)作。而這就牽扯到了“數(shù)據(jù)集成”這個(gè)概念。這篇文章里,作者就談了談他的見解和感受,一起來看看吧。

我不生產(chǎn)數(shù)據(jù),我只是數(shù)據(jù)的搬運(yùn)工。

在大數(shù)據(jù)平臺(tái)中,是不生產(chǎn)數(shù)據(jù)的,或者說原始數(shù)據(jù)都是來源于業(yè)務(wù)系統(tǒng)。所以,我們需要做的第一件事,就是將業(yè)務(wù)系統(tǒng)的數(shù)據(jù)搬運(yùn)到數(shù)據(jù)平臺(tái)。

改用那句耳熟能詳?shù)脑?,我不生產(chǎn)數(shù)據(jù),我只是數(shù)據(jù)的搬運(yùn)工。這個(gè)數(shù)據(jù)的搬運(yùn)工,就是數(shù)據(jù)平臺(tái)的第一個(gè)模塊——數(shù)據(jù)集成。

一、搬運(yùn)工都有哪些稱呼

在進(jìn)行產(chǎn)品設(shè)計(jì)的過程中,對(duì)于同一個(gè)產(chǎn)品,經(jīng)常會(huì)遇到各種各樣的名稱,這些名稱好像可以指代同一個(gè)產(chǎn)品,如果細(xì)究起來,好像也有些區(qū)別。

在數(shù)據(jù)集成產(chǎn)品設(shè)計(jì)時(shí),也會(huì)遇到類似的問題。這些相同的名稱主要是數(shù)據(jù)集成、數(shù)據(jù)同步、數(shù)據(jù)采集。有時(shí)候也可能聽到數(shù)據(jù)管道、數(shù)據(jù)傳輸?shù)鹊取?/p>

我通過大模型搜索了一下區(qū)別。

?? 數(shù)據(jù)集成:指的是將不同數(shù)據(jù)源、不同數(shù)據(jù)類型以及不同格式的數(shù)據(jù)整合到一起,形成一個(gè)統(tǒng)一的數(shù)據(jù)視圖或數(shù)據(jù)倉(cāng)庫(kù),以便后續(xù)的分析和處理。數(shù)據(jù)集成通常涉及到數(shù)據(jù)的抽取、轉(zhuǎn)換、清洗和加載等多個(gè)步驟,同時(shí)也需要解決數(shù)據(jù)格式轉(zhuǎn)換、數(shù)據(jù)質(zhì)量問題以及數(shù)據(jù)安全性等問題。

數(shù)據(jù)同步:則是將數(shù)據(jù)從一個(gè)數(shù)據(jù)源復(fù)制或傳輸?shù)搅硪粋€(gè)數(shù)據(jù)源,以保持兩個(gè)數(shù)據(jù)源中的數(shù)據(jù)一致性。數(shù)據(jù)同步通常涉及到實(shí)時(shí)或準(zhǔn)實(shí)時(shí)的數(shù)據(jù)傳輸和復(fù)制,可以用于分布式系統(tǒng)中的數(shù)據(jù)復(fù)制、備份以及容災(zāi)等場(chǎng)景。

似乎,數(shù)據(jù)集成更注重?cái)?shù)據(jù)的整合和數(shù)據(jù)處理,而數(shù)據(jù)同步更注重?cái)?shù)據(jù)的傳輸和一致性。

?? 在大數(shù)據(jù)領(lǐng)域,數(shù)據(jù)采集和數(shù)據(jù)集成是兩個(gè)密切相關(guān)的概念,但它們?cè)跀?shù)據(jù)處理過程中扮演的角色和目的有所不同。

數(shù)據(jù)采集主要是通過工具或技術(shù),從系統(tǒng)外部獲取數(shù)據(jù)并輸入到系統(tǒng)內(nèi)部的過程。它可以是手工的,也可以是自動(dòng)化的。在這個(gè)過程中,獲取的數(shù)據(jù)可能需要進(jìn)行清洗、格式轉(zhuǎn)換等預(yù)處理,以便后續(xù)的數(shù)據(jù)集成和使用。

數(shù)據(jù)集成則是將不同來源、不同格式、不同性質(zhì)的數(shù)據(jù)在邏輯上或物理上有機(jī)地集中起來,形成一個(gè)全面、統(tǒng)一的數(shù)據(jù)視圖或數(shù)據(jù)倉(cāng)庫(kù)的過程。數(shù)據(jù)集成通常涉及到數(shù)據(jù)的抽取、轉(zhuǎn)換、清洗和加載等多個(gè)步驟,它的主要目的是為企業(yè)提供全面的數(shù)據(jù)共享和數(shù)據(jù)分析能力。

因此,可以說數(shù)據(jù)采集是數(shù)據(jù)集成的基礎(chǔ)和前提,數(shù)據(jù)集成則是數(shù)據(jù)采集的后續(xù)處理和結(jié)果。沒有數(shù)據(jù)采集,數(shù)據(jù)集成就缺乏數(shù)據(jù)來源;沒有數(shù)據(jù)集成,則無法有效利用和管理大數(shù)據(jù)資產(chǎn)

在這個(gè)定義里面數(shù)據(jù)采集是數(shù)據(jù)集成之前的一個(gè)步驟。個(gè)人感覺在實(shí)時(shí)領(lǐng)域是這樣的,實(shí)時(shí)獲取到數(shù)據(jù)的變更相當(dāng)于數(shù)據(jù)的采集。

以上都是通過大語言模型給出的結(jié)論。對(duì)這些名稱有一個(gè)基本概念之后,結(jié)合實(shí)際的公司習(xí)慣、部門歷史使用習(xí)慣、以及上下文語境來做具體的區(qū)分。

個(gè)人習(xí)慣數(shù)據(jù)集成和數(shù)據(jù)同步這兩個(gè)詞大部分情況下會(huì)混用。如果要做區(qū)分的話,當(dāng)有向?qū)胶屯献絻煞N形式的時(shí)候。拖拽式的可以稱之為數(shù)據(jù)集成,因?yàn)橥献降闹財(cái)?shù)據(jù)的轉(zhuǎn)換和整合。向?qū)降目梢苑Q之為數(shù)據(jù)同步,因?yàn)橄驅(qū)降闹財(cái)?shù)據(jù)的傳輸和一致性。而數(shù)據(jù)采集,個(gè)人相對(duì)混用少些,個(gè)人主要理解為將數(shù)據(jù)庫(kù)的變化采集上來。

再次說明,完全是個(gè)人角度的劃分。

二、搬運(yùn)過程中的處理

在進(jìn)行數(shù)據(jù)同步的過程中,需不需要進(jìn)行處理,雖然數(shù)據(jù)同步常常和**ETL(提?。╡xtract)、轉(zhuǎn)換(transform)、加載(load))**放在一起做比較,但是實(shí)際上是不是需要在同步過程中進(jìn)行轉(zhuǎn)換是可以進(jìn)行商榷的。

1. 一比一同步

同步數(shù)據(jù)的目的是保留業(yè)務(wù)的數(shù)據(jù)歷史,如果要保留歷史那么錯(cuò)誤的歷史也是歷史。所以這種同步就是完全和業(yè)務(wù)系統(tǒng)數(shù)據(jù)一比一的同步,即使同步過來的數(shù)據(jù)是有異常的或者說不標(biāo)準(zhǔn)的。只有這樣才能真正的如實(shí)的保留了業(yè)務(wù)的歷史,當(dāng)發(fā)生數(shù)據(jù)異常進(jìn)行數(shù)據(jù)追溯的時(shí)候,才能夠找到最原始的業(yè)務(wù)數(shù)據(jù)。

個(gè)人認(rèn)為這個(gè)想法很好,能夠完全的保留業(yè)務(wù)歷史數(shù)據(jù)。但是有一個(gè)問題就是錯(cuò)誤的數(shù)據(jù)業(yè)務(wù)系統(tǒng)可以隨時(shí)改的。但是在離線場(chǎng)景下的同步不會(huì)隨時(shí)進(jìn)行的。而且感覺這種太極端,對(duì)人員,程序要求都比較高。

2. 在同步過程中進(jìn)行轉(zhuǎn)換清洗

第二種就顯的要求沒有那么的嚴(yán)格,相對(duì)寬松些。可以在這個(gè)過程中進(jìn)行行級(jí)別的增減、規(guī)范化。也可以進(jìn)行字段的聚合、關(guān)聯(lián)、轉(zhuǎn)換等等操作。

其實(shí)對(duì)產(chǎn)品設(shè)計(jì)來說,支持了這種形式,就支持了一比一的同步。在同步過程中有這個(gè)轉(zhuǎn)換、聚合的能力,不使用的話就是一比一同步了。這樣說來一比一同步更多的似乎是一個(gè)規(guī)范、一個(gè)要求。

三、搬運(yùn)的目標(biāo)表類型

將業(yè)務(wù)數(shù)據(jù)搬運(yùn)到數(shù)據(jù)平臺(tái)的目標(biāo)就是保留歷史、做到數(shù)據(jù)可追溯。但是業(yè)務(wù)系統(tǒng)的數(shù)據(jù)是時(shí)時(shí)都在變化的,那么怎么保留變化的數(shù)據(jù)的歷史就是一個(gè)目標(biāo)表建表結(jié)構(gòu)的問題。

這其實(shí)算是數(shù)據(jù)倉(cāng)庫(kù)建模領(lǐng)域的內(nèi)容,為什么在這里說?先說一下目標(biāo)表常見的幾種形式。全量表、切片表、拉鏈表。

1. 全量表

全量表和名字一樣,就是數(shù)據(jù)全量同步到目標(biāo)端。試用于同步碼表等數(shù)據(jù)變動(dòng)不大的表。

2. 切片表

切片表又分為增量切片,和全量切片。全量切片就是將每天的全量業(yè)務(wù)數(shù)據(jù)放在當(dāng)天分區(qū)中。增量切片就是僅僅把當(dāng)天的增量放在當(dāng)天的分區(qū)中。

3. 拉鏈表

拉鏈表式最復(fù)雜的。需要有一個(gè)唯一鍵,需要知道業(yè)務(wù)數(shù)據(jù)是否變化,變化之后,就在目標(biāo)表中新增一條,記錄變化數(shù)據(jù)的開始時(shí)間、結(jié)束時(shí)間,有的還會(huì)有版本、是否當(dāng)前狀態(tài)等字段(拉鏈表也依賴于同步的時(shí)間粒度,細(xì)于時(shí)間粒度,可能會(huì)存在無法將數(shù)據(jù)同步到目標(biāo)端情況)。

為什么要在這里說,因?yàn)閿?shù)據(jù)集成產(chǎn)品需要在功能上支持這些目標(biāo)表的建表類型。全量表的全量同步。切片表的增量切片,需要能夠過濾出來每日的增量數(shù)據(jù)。拉鏈表的復(fù)雜邏輯,是否需要進(jìn)行邏輯固化(我只在Powercenter中看到過拉鏈表的邏輯固化。自己也設(shè)計(jì)過向?qū)降睦湵磉壿嫻袒?。這些都需要在數(shù)據(jù)同步過程中考慮到。不僅僅能夠?qū)?shù)據(jù)搬運(yùn)到目標(biāo)端,而且還需要以一種合理的目標(biāo)端表結(jié)構(gòu)需要將數(shù)據(jù)搬運(yùn)到目標(biāo)端。

四、搬運(yùn)的交互形式

在搬運(yùn)過程中,交互形式一般有三種形式,腳本式、拖拽式、向?qū)健?/p>

1. 腳本式

顧名思義,腳本式就是寫一個(gè)腳本來進(jìn)行數(shù)據(jù)同步。這種形式更多的是偏技術(shù),在產(chǎn)品設(shè)計(jì)中一般不會(huì)過多涉及。

常見的腳本式同步:

古老的是Sqoop了,他實(shí)現(xiàn)了結(jié)構(gòu)化數(shù)據(jù)和Hadoop之間的批量數(shù)據(jù)遷移,最初由Apache軟件基金會(huì)開發(fā),但是在2016年,該項(xiàng)目已經(jīng)被終止了。

在阿里云Dataworks中的數(shù)據(jù)集成DataX,也會(huì)有的腳本界面的數(shù)據(jù)同步。是因?yàn)橛行┓墙Y(jié)構(gòu)化的數(shù)據(jù)源,沒有表結(jié)構(gòu)類型,在腳本界面中能夠更加靈活。

2. 拖拽式

拖拽類的數(shù)據(jù)集成類產(chǎn)品,就是在一個(gè)畫布中拖拽各個(gè)算子,組成一個(gè)ETL的DAG圖,從而實(shí)現(xiàn)數(shù)據(jù)的同步。

常見的拖拽式的同步:

最有名的算是Informatica Powercenter,這款產(chǎn)品在國(guó)外似乎知名度很高,常年在Genter象限的領(lǐng)導(dǎo)這位置。但在國(guó)內(nèi)似乎只有一些銀行、等金融行業(yè)使用多些,在互聯(lián)網(wǎng)公司更是近乎沒什么聲量。

IBM Datastage 一款和powercenter類似的軟件。

Kettle一款開源的免費(fèi)的數(shù)據(jù)ETL工具。

如果有拖拽式的數(shù)據(jù)同步需求,這三個(gè)產(chǎn)品也常常會(huì)被拉在一起做比較。各有各的特點(diǎn)吧。

單獨(dú)提一句,當(dāng)使用拖拽式的數(shù)據(jù)集成時(shí),其實(shí)多少有了一些數(shù)據(jù)開發(fā)的性質(zhì)。但是如果細(xì)劃分的話,和拖拽式的數(shù)據(jù)開發(fā)還是有些區(qū)別的。這個(gè)在《常見的數(shù)據(jù)開發(fā)形式》中的拖拽式數(shù)據(jù)開發(fā)中說下區(qū)別。

3. 向?qū)?/h3>

向?qū)降臄?shù)據(jù)集成,主要是指通過輸入框或者選擇配置框,就可以完成任務(wù)的創(chuàng)建。不需要寫代碼,也不需要拖拽算子,這種開發(fā)形式我定義為向?qū)健?/p>

大部分的云廠商的數(shù)據(jù)集成/數(shù)據(jù)同步類產(chǎn)品均是向?qū)降哪J?。這里就不過多說了。

五、時(shí)效性

個(gè)人理解數(shù)據(jù)集成只分為兩大類,離線數(shù)據(jù)集成和實(shí)時(shí)的數(shù)據(jù)集成。至于全量同步、增量同步等等,只是這兩種大形式下的一種選項(xiàng)。而這兩種形式,又均可以使用腳本式、拖拽式或者向?qū)絹韺?shí)現(xiàn)。形式不重要,本質(zhì)是實(shí)時(shí)還是離線才重要,當(dāng)然設(shè)計(jì)頁面的時(shí)候也會(huì)多少有些配置區(qū)別。

在失效性上,實(shí)時(shí)數(shù)據(jù)越來越受重視,還有一些批流一體的概念,所以實(shí)時(shí)的數(shù)據(jù)集成需求也越來越多。

但是個(gè)人不認(rèn)為離線的數(shù)據(jù)集成會(huì)被完全干掉。一方面——成本,顯然實(shí)時(shí)的成本要比離線的成本要高。一方面——技術(shù),實(shí)時(shí)集成之后一系列的技術(shù)和離線集成是完全不同的,現(xiàn)有的技術(shù)架構(gòu)不一定都做好了準(zhǔn)備。

還有一方面就是歷史習(xí)慣,以上面介紹為例,切片表、拉鏈表等等均是離線場(chǎng)景下的,在后續(xù)介紹中會(huì)發(fā)現(xiàn)有大量的概念在離線場(chǎng)景下很順暢,但是往往會(huì)自動(dòng)的忽略實(shí)時(shí)場(chǎng)景。這可能也是因?yàn)閷?shí)時(shí)的歷史相對(duì)較短。在其他概念出現(xiàn)的時(shí)候,并沒有考慮實(shí)時(shí)的場(chǎng)景。

六、支持的數(shù)據(jù)源類型

數(shù)據(jù)集成支持的數(shù)據(jù)源多少是一個(gè)平臺(tái)能力的體現(xiàn),支持的越多,可以理解為能力越強(qiáng)。不同數(shù)據(jù)源可能支持實(shí)時(shí)的形式、可能支持離線形式,也可能兩種均支持。數(shù)據(jù)源大類上也有不同的劃分:關(guān)系型數(shù)據(jù)庫(kù)、大數(shù)據(jù)存儲(chǔ)、消息隊(duì)列、文本文件等等。

這是從類型上劃分,如果從接入數(shù)據(jù)源之后的操作上來分,就兩類:有表結(jié)構(gòu)的和沒有表結(jié)構(gòu)的。

1. 有表結(jié)構(gòu)

有表結(jié)構(gòu)的可以是關(guān)系型數(shù)據(jù)庫(kù)、HIVE、Doris等等這類本身有表結(jié)構(gòu)的。也可以是固定格式的文本、JSON這類可以賦予一個(gè)固定scheam的,這類需要進(jìn)行數(shù)據(jù)平臺(tái)有元數(shù)據(jù)管理能力,在《當(dāng)我們談元數(shù)據(jù)的時(shí)候,我們?cè)谡勈裁础分袝?huì)介紹這一部分。這類有表結(jié)構(gòu)的在交互時(shí),以二維表格的形式在向?qū)А⒒蛘咄献е羞M(jìn)行交互了。

2. 沒有表結(jié)構(gòu)

沒有表結(jié)構(gòu)的相對(duì)會(huì)復(fù)雜些,有時(shí)候可以強(qiáng)制給這種沒有表結(jié)構(gòu)的授予一個(gè)表結(jié)構(gòu)。有的時(shí)候也只能轉(zhuǎn)換成腳本的形式來實(shí)現(xiàn)映射。這個(gè)具體數(shù)據(jù)源具體分析了。

數(shù)據(jù)源支持多少體現(xiàn)能力強(qiáng)弱。同樣,作為產(chǎn)品每種數(shù)據(jù)源可能都有其自身的特性,也需要進(jìn)行個(gè)性化的設(shè)計(jì),而產(chǎn)品經(jīng)理又會(huì)將各種類型的數(shù)據(jù)源都熟悉到,個(gè)人感覺也是數(shù)據(jù)集成類產(chǎn)品設(shè)計(jì)的一個(gè)麻煩的點(diǎn)。

至于各種非結(jié)構(gòu)化的文檔、圖片、音視頻等等。都不在大數(shù)據(jù)平臺(tái)這個(gè)范疇內(nèi)。之前也會(huì)提非結(jié)構(gòu)化的大數(shù)據(jù)平臺(tái),非結(jié)構(gòu)化的大數(shù)據(jù)治理。但是目前個(gè)人沒有接觸到特別好的產(chǎn)品。

本文由 @數(shù)據(jù)小吏 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載

題圖來自 Unsplash,基于 CC0 協(xié)議

該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺(tái)僅提供信息存儲(chǔ)空間服務(wù)。

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 整體讀下來感覺還比容易讓人理解的,有些概念的內(nèi)容介紹的較為清晰,有一點(diǎn)可能對(duì)于小白來說在閱讀順序上有難受。因?yàn)椴涣私馔献胶拖驅(qū)?,所以在前面讀到這兩個(gè)名詞時(shí)就有點(diǎn)疑惑,到后面介紹清楚后在回頭看便理解了

    來自山東 回復(fù)