本文對 FineDataLink 的特有概念進行解譯說明,以便使用者進行使用。
包含資料開發、資料管道、資料服務、任務維運等功能,滿足使用者對資料進行同步、處理、清洗等一系列的需求。
資料定時同步或實時同步,能對資料進行計算處理
透過 SQL 或者視覺化的方式,完成任務的開發和編排
實時任務說明請參見:實時任務概述
1)庫表管理:
對於支援 SQL 語句的資料庫,支援使用者寫 SQL 查詢表資料、修改表資料
可查看表資料、表結構、修改表名稱/描述、清空表、刪除表、複列表等
2)血緣分析:
可查看資料開發任務、管道任務、資料服務中,所使用表的血緣關係
定時任務支援開發模式和生產模式,實現程式碼的隔離。如下圖所示:
詳情請參見:開發模式與生產模式
開發模式:
開發模式相當於任務的測試環境,使用者可進行任務的設計編輯;所有的修改都不會影響生產模式的任務;開發模式的任務,可發佈到生產模式。
生產模式:
生產模式相當於任務的穩定版本,僅支援任務查看,可基於該版本編輯調度實現任務的排程管理;生產模式的任務,可由開發模式的任務發佈得到;可前往維運中心的 任務管理 篩選已發佈和待發布任務。
一個資料夾可包含多個定時任務OR實時任務。如下圖所示:
資料開發模組中支援開發兩種類型的任務:
1)定時任務
定時任務來源端和目標端支援三十多種資料源類型,詳情請參見:資料開發支援的資料源類型
定時任務中,支援在視覺化介面使用各個節點和算子進行資料的抽取、轉換和裝載,並可以透過排程管理功能自動運作定時任務,幫助您輕鬆構建離線數倉,保證資料生產的高效穩定。
2)實時任務
實時任務能夠實時地把資料從 A 點投遞到 B 點。在投遞的程式中可能新增資料清理的工作,例如實時數倉中的資料解析等。最終結果可供後續業務使用,以提高資料利用率和時效性,滿足業務需求。
詳情請參見:實時任務概述
FDL 文檔的描述中,預設「資料轉換」節點內包含的節點為算子(不包含「資料轉換」節點本身);「資料轉換」節點以及「資料轉換」節點外的節點稱為節點。
組成定時任務的基本單位,多個節點透過線條連結後可確定執行流程,進而組成一個完整的定時任務。根據節點間的依賴關係依次運作各個節點。
在「資料轉換」節點中進行 ETL 處理,提供封裝好的視覺化功能,實現高效的資料清理處理和裝載。
資料流(資料轉換節點)裏只提供以下三類算子,不應該包含組合型、流程類的算子:
流出型算子舉例:DB表輸入
程式算子舉例:資料聯動
流入型算子舉例:DB表匯出
資料轉換節點中涉及到的名稱解譯如下表所示:
透過欄位值對比,對目標表中存在,但是輸入源中不存在的資料行進行刪除。包含:
物理刪除:會實際刪除資料
邏輯刪除:不刪除資料,只做刪除標記
3.2
注:4.0.18 版本刪除該算子
支援跨庫、跨源的連結
左連結(LEFT JOIN)
右連結(RIGHT JOIN)
內連結(INNER JOIN)
全連結(FULL OUTER JOIN)
這些連結方式與資料庫裏表連結的方式一致,透過確定聯動欄位和聯動條件,最後得到匹配連結後的結果集。連結的輸入是兩個以上,匯出只有一個
選擇需要比對的原始表和比對表
配置邏輯主鍵
配置比對欄位
設標度識關係
設定列:選擇、刪除欄位
修改列:修改欄位名稱、修改欄位類型
欄轉列(又成逆透視列):將一行多欄資料轉成多行一欄顯示。通常將轉化後的列名為某一行中某一欄的值,來識別原先對應的資料。
對輸入資料表進行列轉欄操作。
列轉欄(又稱列透視):將多行一欄資料轉為一行多欄顯示。通常轉化後將某一欄分類後的值作為新的列名,將此值對應的多行資料顯示成一行。
獲取上游匯出的資料,使用Spark SQL對其進行查詢和處理,並匯出給下游
3.6
4.0.17 支援作為輸入型算子
步驟是由一個個節點組成。
步驟都要是閉環的,每一個步驟都是閉環:
步驟中涉及到的名稱解譯如下表所示:
支援多種類型的取數方式:API 取數、SQL 取數、檔案取數等。由於無程式中的資料處理,所以不需要記憶體計算,適用於:
資料表的快速同步
取數時即可完成計算,程式中不需要計算、轉換的場景
目標庫計算能力較強的場景\資料量非常大的場景,同步到目標資料庫,再使用SQL做進一步的開發
滿足表輸入和表匯出之間需要做資料轉換、處理的場景
注:資料轉換本身也是一個步驟流節點。
本質上是資料流,由於程式中涉及到資料處理,需要依賴記憶體計算引擎,適用於小資料量(千萬及以下)的資料開發,並且計算效能與記憶體配置有相關性
可以讓容器內的節點進行循環執行
通知內容:可自訂
V3.6
V4.0.1
V4.0.3
在 步驟流 中,右鍵點選節點,新增「執行判斷」按鈕,支援自訂多執行條件的生效方式(全部邏輯與、全部邏輯或),靈活控制任務中節點的依賴關係
定時任務每運作一次,會生成一個實體,生成的實體可在 定時任務維運-運作記錄 中查看。
任務運作時,日誌中會匯出「實體開始構建時間」。如下圖所示:
定時任務若設定了 執行頻率 ,調度的時間可能會略早於「實體開始構建時間」。例如設定每天 11:00:00 執行任務,「實體開始構建時間」可能是 11:00:02 。
定時任務日誌說明請參見:定時任務運作日誌介紹
具體方案請參見:資料同步方案概述
1)增量更新:
來源表資料只存在新增,將新增資料寫入到目標表中。
2)全量更新
對目標表資料進行全面的更新,將已有目標表資料全部換成最新來源表資料。
3)比對更新
來源表資料存在新增、修改、刪除。
維護歷史狀態,以及最新狀態資料的一種表;透過拉鍊表可以很方便的還原出拉鍊時點的客戶記錄。適用於需要記錄資料變更歷史的場景,如審核、溯源等。
FDL 中製作拉鍊表詳情請參見:數倉拉鍊表(來源表資料小於10000)、數倉拉鍊表(來源表資料大於10000)
標識欄位標記了資料的新增、修改、刪除。
標識值為標識欄位的值,不同值代表資料的不同變化。
資料匯出時,根據標識欄位和標識值,實現資料的增刪改。
1)場景一:標識欄位和標識值由「資料比對」算子生成
「資料比對+DB表匯出/簡道雲匯出」實現資料的增刪改時,一般使用 fdl_comparison_type(資料比對算子自動新增的欄位)作為標識欄位,該欄位預設值為Identical(相同)、Changed(更新)、Added(新增)、Removed(刪除),這些預設值為標識值。
如下圖所示:
2)場景二:來源表已有標識值、標識欄位,需要對資料進行追加/更新/刪除操作
詳情請參見:資料同步-基於標識欄位,新增/修改/刪除資料
來源表「產品」中,「狀態」列為標識列,值為「熱銷」時做新增操作,值為「一般」時做刪除操作,值為「火爆」時做更新操作。
源表中將產品ID為 15 的新增資料標記為「熱銷」,產品ID為 16 的刪除資料標記為「一般」,產品ID為 14 的更新資料標記為「火爆」,希望能將資料變化同步到目標表中。
在資料量很大時,開啟「並行取數」,可提高讀取資料的速度。
詳情請參見:資料同步-資料來源
1)運作日誌
定時任務運作後,可在「日誌」Tab 下看到運作日誌,使用者可根據日誌查看是否運作成功、具體出錯原因。如下圖所示:
日誌的詳細程度可在 日誌等級設定功能 中設定。
2)運作記錄
可在 定時任務維運-運作記錄 中查看任務的運作情況,例如:運作狀態、任務耗時、觸發方式等。
管道任務運作後,支援查看運作日誌。詳情請參見:單個管道任務維運概述
管道任務運作記錄請參見:管道任務維運
在資料同步時,當歷史資料量很大,為保證資料的時效性,需要對資料定時進行增量更新。
在增量更新程式中,若遇到欄位異常值、髒資料等問題,將導致資料同步一段時間後任務失敗。此時目標表中已同步了部分資料,需要將目標表進行資料回滾到此次增量更新前的資料。
FDL 提供功能支援該場景:詳情請參見:DB匯出(交易)(4.1.5.2 及之後版本)
文檔方案支援該場景:資料抽取失敗後進行資料回滾
可為定時任務設定執行優先,任務運作的優先,分五個等級:最高(HIGHEST),高(HIGH),中(MEDIUM),低(LOW),最低(LOWEST)。
當執行緒數不足時,優先執行佇列中級別高的流,相同優先的任務按照先進先出的順序執行。
詳情請參見:任務控制-任務屬性
定時任務支援設定執行頻率,定期自動運作定時任務,以保證資料能夠即時更新。
詳情請參見:調度計劃概述
重試任務功能詳細介紹請參見:重試任務
以下場景中,需要使用到重試任務功能:
1)使用者設計的定時任務取數邏輯為:每天抽取當天調度時間往前推 24h 內的資料,彙集到目標資料庫。節假日期間 3 天,系統當機,定時任務沒有運作,導致目標資料庫缺少 3 天的資料。
具體範例請參見:補資料範例
2)定時任務在運作程式中某個匯出組件出現髒資料,在 配置髒資料臨界值 後,定時任務不會停止;定時任務運作結束後維運人員收到推播,發現有髒資料產生。
維運人員開啟髒資料處理介面,查看髒資料產生的原因,發現髒資料原因是欄位超長,修改目標端欄位長度後,希望重新運作任務。
FineDataLink 資料管道提供的實時資料同步功能,方便使用單表或整庫同步方式,將源端資料庫中部分或全部表的資料變化實時同步至目標資料庫中,實現目標庫實時保持和源庫的資料對應。
在進行實時同步程式中,需要透過「資料管道」暫存來源資料庫中的資料,便於目標資料庫寫入資料,實現實時資料同步。
因此在設定資料管道任務前需要首先配置好暫存資料的中間軟體。FineDataLink 使用 Kafka 作為資料同步的中間軟體,暫存傳輸資料。
若管道任務失敗,支援斷點續傳:若全量同步未完成,會從頭全量同步;若全量同步已完成,會從斷點開始。
斷點續傳範例:
管道任務在 03-21 日讀取了資料,03-23 日停掉,03-27 日啟動,03-23 到 03-27 日的資料會同步過去。
MySQL 的二進制日誌(binary log,簡稱 binlog)是 MySQL 資料庫中的一個重要特性,它記錄了所有對資料庫執行更改的 SQL 語句(如 INSERT、UPDATE、DELETE 等),以及每個語句執行的確切時間。二進制日誌是 MySQL 資料複製、資料恢復和審核分析的基礎。
FDL 中,使用資料管道功能,且來源端為 MySQL 時,需要開啟 Binlog 模式 CDC 功能。詳情請參見:MySQL環境準備
CDC 是指從源資料庫擷取到資料和資料結構(也稱為模式)的增量變更,近乎實時地將這些變更,傳播到其他資料庫或應用程式中。透過這種方式,CDC 能夠向資料倉儲提供高效、低延遲的資料傳輸,以便資訊被即時轉換並交付給專供分析的應用程式。
物理刪除:來源表刪除資料,目標表也刪除資料。
邏輯刪除:目標表中該資料未被實際刪除,而是使用標記列標記被刪除的資料。
具體效果請參見:物理刪除和邏輯刪除的差別
資料服務支援將處理好的資料一鍵發佈 API API,實現資料跨域傳輸,解決資料傳輸最後一公里問題,為使用者提供資料共享能力。
FineDataLink 特有的 API 鑑權認證方式。APPCode可視為長期有效的一種Token。若設定後對指定應用 API 生效。
在存取API時,需要在請求頭中指定Authorization請求頭的值:APPCode + 空格 + APPCode值。
詳情參見:進行認證配置
併發數是指:最多能啟動的定時任務數、最多能啟動的管道任務數。
定時任務併發數說明請參見:定時任務併發數與髒資料說明
管道任務併發數說明請參見:資料管道併發數說明
欄位映射就是建立「來源端-目標端」的欄位對應關係。詳情請參見:設定欄位映射
來源表若有多個欄位,可以只將來源表的部分欄位更新到目標表中,不需要更新到目標表的欄位取消映射即可。
映射方式分為兩種:
同名映射:若來源表欄位與目標表欄位同名,建議選擇同名映射,具體邏輯參考:設定欄位映射
同行映射:若來源表欄位與目標表欄位順序一致,建議選擇同行映射,具體邏輯參考:設定欄位映射
1)與目標欄位配置不匹配而無法寫入的資料(目標欄位長度/類型不匹配、目標欄位缺失、違反目標欄位非空約束等)。
2)當寫入方式-主鍵衝突策略為「主鍵相同,記錄為髒資料」時,主鍵衝突的資料將被視為髒資料。
即時管道、即時任務輸出到目標端過程中只要產生錯誤的資料都被定義為「髒資料」:
與目標欄位配置不匹配而無法寫入的資料(目標欄位長度/類型不匹配、目標欄位缺失、違反目標欄位非空約束等)。
注:對於即時管道/即時任務,主鍵衝突不會產生髒資料,主鍵相同的資料,新資料將覆蓋舊資料。
由於資料庫整體錯誤導致的寫入失敗,比如網絡異常、目標庫宕機、帳號權限問題、資料庫磁盤等。
FDL 支援查看資料開發任務、管道任務、資料服務中,所使用表的血緣關係。如下圖所示:
詳情請參見:血緣分析
在資料庫管理系統中,DDL(Data Definition Language)是一組用於定義和修改資料庫架構的語言。
DDL 的常見語句包括:
CREATE:用於建立新的資料庫物件。
ALTER:用於修改現有資料庫物件的結構。
DROP:用於刪除資料庫物件。
TRUNCATE:用於快速刪除表中的所有行,但保留表結構。
DDL 是資料庫管理者和開發者用來設計和維護資料庫架構的關鍵工具。
FDL 中 DDL 同步是指在資料管道任務中,當源庫發生 DDL 操作(如刪除表、新增欄位、刪除欄位、修改欄位名稱、修改欄位類型等)時,可以自動同步這些來源端的變化至目標端,無需人為介入修改目標表結構的功能。這種同步機制確定了資料結構的一致,減少了手動維護的工作量。
詳情請參見:資料管道-同步源表結構變化
實際應用中,根據邏輯主鍵或者物理主鍵確定資料的唯一性,實現資料的更新、刪除、新增。
由業務邏輯決定的主鍵,可以根據業務需求定義多個欄位的組合作為主鍵。邏輯主鍵的優勢是能夠滿足業務規則的要求,確定資料的唯一性。例如一個員工表,其邏輯主鍵可以是員工號、身分證號或者其他唯一識別符號。
資料庫透過自增長或唯一索引等方式為每條記錄生成一個唯一識別符號作為主鍵。物理主鍵的優勢是簡單高效,不需要依賴業務邏輯。
邏輯主鍵、物理主鍵差別可自行百度瞭解。
由於當時的網路波動或者其他原因,導致任務運作中斷,過段時間重新運作任務即可成功執行。針對此場景,可在「失敗重試」中設定重跑次數和兩次重跑之間的間隔,任務在失敗之後會進行自動重試。
詳情請參見:定時任務失敗重試、管道任務失敗重試
FDL 提供任務編輯鎖,定時任務、管道任務、API任務、資料服務應用禁止被多人同時編輯。
使用者編輯某個任務時,其他使用者也開啟該任務,則會提示:當前任務/API/應用正在被XX編輯,其他人無法編輯該任務,只能查看。
詳情請參見:任務禁止被多人同時編輯
FDL 中日誌級別可選擇 ERROR、WARN、INFO。
日誌級別大小排序(嚴重程度):ERROR>WARN>INFO
日誌詳細程度排序:ERROR<WARN<INFO
定時任務中日誌級別說明請參見:任務控制-任務屬性
管道任務中日誌級別說明請參見:配置管道任務-管道控制
使用者可設定「髒資料臨界值」,使任務具備一定故障容許度性。當任務運作時遇到髒資料,達到「髒資料臨界值」前將繼續執行定時任務,達到「髒資料臨界值」後再報錯。
定時任務中該功能說明請參見:髒資料容忍
資料同步允許一定的故障容許度,比如欄位類型、長度不匹配、主鍵衝突等等問題,可以設定產生的 髒資料上限,達到上限則自動終止管道任務。
使用者設定髒資料臨界值1000條,當某次任務運作期間髒資料達到1000條後,任務會異常中止;髒資料臨界值的定義是,某個任務自建立至今的整體臨界值。
詳情請參見:配置管道任務-管道控制
資料源使用、資料管道、資料服務、資料開發、庫表管理、血緣分析、管理系統、信創平台等功能,正式工程使用前需要註冊相關功能點。詳情請參見:註冊簡介
FineDataLink 工程中的平台配置資訊,如管道任務、定時任務、權限控制、系統管理資訊等,均儲存於 FineDB 資料庫。FineDataLink 工程內建了一個 HSQL 資料庫,作為 FineDB 資料庫。
HSQL 資料庫不能多執行緒存取,叢集環境、資料量較大可能會導致 HSQL 資料庫不穩定的情況,適用於本地試用產品功能。
FineDataLink 支援啟動外接 FineDB 資料庫。詳情請參見:配置外接資料庫
正式工程必須配置外接資料庫。
子表單為簡道雲表單中的概念,詳情請參見:子表單
實時任務涉及到的名稱解譯詳情參見:實時任務節點介紹
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
反馈已提交
网络繁忙