tft每日頭條

 > 科技

 > 數據集成平台簡介

數據集成平台簡介

科技 更新时间:2024-12-04 23:21:05

編輯導語:數據集成産品是數據中台建設的第一環節,在構建數據中台或大數據系統時,首先要将企業内部各個業務系統的數據實現互聯互通,從物理上打破數據孤島。本文作者對數據集成産品進行了分析,一起來看一下吧。

數據集成平台簡介(數據集成産品分析)1

數據集成産品緻力于異構數據源之間的數據交換與彙聚,該類産品是數據中台建設的第一環節,筆者将通過兩篇文章對數據集成産品進行分析。

數據同步,又稱為數據集成、數據遷移,主要用于實現不同系統間的數據流轉。

為什麼會有數據同步這類産品?

在企業中,業務的快速發展産生了大量數據,也催生出多種應用系統,各系統承載不同類型的數據,對應着不同的數據存儲方式。

而對于構建數據中台或大數據系統,首先需要将企業内部各個業務系統的數據實現互聯互通從物理上打破數據孤島,而這主要通過數據彙聚和同步的能力來實現。

數據同步方式有多種:API接口同步、數據文件同步和數據庫日志解析同步,适用于不同的業務場景。

本次分享的數據同步是基于數據庫日志解析的方式實現,其主要應用場景是:數據從業務系統同步到數倉,和數據從數倉同步到數據應用兩個方面。

一、數據集成産品簡介

1. 産品介紹

數據同步緻力于保證數據在不同數據源之間被高效準确地遷移。根據數據時效性要求和應用場景,數據同步可分為離線同步和實時同步:

1)離線同步

主要用于大批量數據的周期性遷移,對時效性要求不高,一般采用分布式批量數據同步方式,通過連接讀取數據,讀取數據過程中可以有全量、增量方式,經過統一處理後寫入目标存儲。

成熟的産品有:Sqoop、DataX、kettle等。

2)實時同步

針對數據時效性要求高的場景,其将源端數據的變化實時同步到目标端數據源中,保證源端數據與目标端數據實時保持一緻,就可滿足業務實時查詢分析使用數據或實時計算等需求。

成熟的産品有:Canal、otter等。

在實際業務場景中,離線同步和實時同步搭配使用,為保證已有的數據表在目标端數據源中可用,會使用離線同步将該表的曆史數據全量遷移到目标端數據源中,對于增量數據則通過實時集成來增量遷移。

2. 核心流程

數據集成的實現有三個關鍵步驟:數據讀取、數據轉換(映射)、數據寫入,核心流程如下圖所示:

數據集成平台簡介(數據集成産品分析)2

具體流程為:數據集成從源端數據源中讀取數據,按照建好的映射關系及轉換規則,将數據寫入到目标數據源中。其中:

  • 配置源端數據源和目标端數據源,用于連接數據源,獲取數據源的讀、寫權限等
  • 建立映射關系:源端數據源中數據表及字段對應到目标端數據源中的哪張表和字段。建立映射關系後,數據集成根據映射關系,将源端數據寫入到對應的目标端數據
  • 數據轉換規則:數據寫入時,可能有不同數據格式轉換,敏感數據脫敏展示、無用字段過濾、null值處理等需求,可以制定相應的數據轉換規則來實現
  • 數據傳輸通道:可配置任務并發數、數據連接數等任務參數,達到數據集成的任務被高效穩定執行等目的

基于上述流程,數據集成産品的核心功能一般會包含以下4個:

數據集成平台在進行異構數據源之間的數據遷移時,需要保證遷移任務被高效完成,被遷入目标端數據源的數據是準确可靠的、實時的,數據傳輸過程是安全的等,這是用戶核心關注點,也是期望平台達到的目标。

數據集成平台簡介(數據集成産品分析)3

3. 其他大數據産品的聯系和區别

在構建數據倉庫的場景中,數據加載到數倉後,随後進行數據加工和數據應用,其中涉及的3類大數據産品如下:

1)數據集成:面向數據彙聚與交換

産品流程:配置數據源—創建同步任務—配置調度任務。

核心任務:ETL、校驗、補數、合并。

2)數據加工:面向數據分析

産品流程:創建表—編寫加工邏輯(insert)—配置調度任務。

數據加工方式:離線計算、實時計算、機器學習等。

3)任務調度:工作流編排

産品流程:創建任務節點—配置節點依賴關系—提交并執行。

任務調度:任務執行、任務調度與運維。

  • 數據集成和數據加工都是數據生命周期中的一環
  • 數據集成任務和數據加工任務其實就是任務調度中的任務節點job,任務調度保證數據被順序采集和加工出來

以用戶畫像分析為例,oss_數據同步和rds_數據同步兩個節點是數據集成任務節點,ods_log_info_d、dws_user_info_all_d、rpy_user_info_d三個節點是數據加工任務節點,繪制各節點間的連線即工作流編排。

提交并執行畫布中的流程節點,數據就會按照箭頭方向執行各節點,産出最終結果。

數據集成平台簡介(數據集成産品分析)4

區别:數據集成和數據加工都基于任務執行和調度實現,兩者雖然都是ETL,但是各自關注的重點并不相同。

①核心動作

數據集成核心動作是抽數(讀、寫、轉換),也就是數據交換,轉換動作也隻是簡單的數據清洗。

數據加工的核心動作是計算邏輯/清洗等加工規則的編寫,加工規則複雜。

②核心目标

數據集成的核心目标,是保證數據被高效準确地遷移到目标端數據源。

數據加工的核心目标,是加工規則編寫準确“翻譯”業務需求。

二、數據集成産品流程

離線集成與實時集成在實際運行中,關注的側重點是不同的,對于離線集成,面對的是批數據,更多考慮大規模數據量的遷移效率問題;對于實時集成,面對的是流數據,更多考慮數據準确性問題。

數據同步中一般采用先全量在增量的方式來進行數據的遷移,即先将曆史數據全量遷移到目标數據源,完成初始化動作,在進行增量數據的實時同步,這樣保證目标端數據的可用性。當然也有不care曆史數據的場景,此時就無需進行全量遷移的動作。

1. 實時集成

我們主要采用基于日志的CDC方式來實現增量數據的實時同步,CDC即change data capture,捕獲數據的變化。

實時集成通過讀取源端數據庫日志bin_log來捕獲數據的變化情況(insert、update、delete),将其傳輸到kafka topic中,然後通過spark streaming對數據進行轉換/清洗,寫入到stg增量表中,最後将增量數據與全量數據合并到數倉ods表中。

由于數據庫日志抽取一般是獲取所有的數據記錄的變更(增、删、改),落到目标表時,需要根據主鍵去重,并按照日志時間倒序排列獲取最後狀态的變化情況。

具體的實時集成任務執行邏輯及流程如下所示:

實時集成有以下特點:

  • 源端數據庫産生一條記錄,數據集成實時同步一條記錄
  • 流數據在數據傳輸過程中可能會被丢失或延遲

故相較于離線集成,在數據同步鍊路上,實時集成會增加數據校驗和數據合并兩個動作。

  • 數據校驗主要校驗源端和目标端的數據量,保證數據沒有被丢失
  • 數據合并則是由ods庫base表和cdc目标庫increment表組成,具體邏輯為:将stg數據按主鍵去重,取最新一條,根據主鍵與ods數據表中的T 1數據合并

2. 離線集成

離線集成分為全量和增量兩種方式對大規模數據進行批量遷移。

  • 全量遷移是将某些表的全部曆史數據同步到目标數據源中
  • 增量遷移,通常需要使用where子句(RDB)或者query子句(MongoDB)等增量配置參數,同時在結合調度參數(定時任務的重複周期:分鐘、小時、天、周、月等)可實現增量遷移任意指定日期内的數據。

比如,想要實現每日數據的增量同步,各參數可配置為:

  • Where子句:配置為DS=’${dateformat(yyyy-MM-dd,-1,DAY)}’
  • 配置定時任務:重複周期為1天,每天的淩晨0點自動執行作業

增量遷移的數據可以對目标端數據源表中數據進行追加、覆蓋和更新操作。

作者:細嗅薔薇,零号産品er

本文由 @細嗅薔薇 原創發布于人人都是産品經理,未經許可,禁止轉載

題圖來自 Unsplash,基于 CC0 協議

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved