1. 概述
1.1 版本
FineDataLink 版本 | 功能變更 |
---|---|
3.1 | 「資料轉換」節點新增算子「資料聯動」 |
1.2 應用場景
使用者兩張資料表在不同的資料庫中,希望能夠將兩張不同來源庫的表進行聯動生成新表。
1.3 功能簡介
「資料聯動」算子可實現多表跨庫聯動的場景。
聯動方式支援四種。分別如下:
1)左連結(LEFT JOIN):也稱為左合併。
以左邊的表為基礎,將右邊的表中與之匹配的資料行加入結果集,如果右邊的表中沒有匹配的資料,則用 null 填充相應的列。
2)右連結(RIGHT JOIN):也稱為右合併。
以右邊的表為基礎,將左邊的表中與之匹配的資料行加入結果集,如果左邊的表中沒有匹配的資料,則用 null 填充相應的列。
3)內連結(INNER JOIN):取交集。
4)全外連結(FULL OUTER JOIN):取並集。
2. 操作步驟
2.1 準備待聯動表資料
「資料聯動」算子支援多表跨庫聯動。使用者可準備 2 張及以上表資料,進行聯動操作。
本文範例中,準備兩張表資料,進行聯動。
範例表資料下載:english.xls、math.xls
1)英語成績表 english 資料如下圖所示:
2)數學成績表 math 資料如下圖所示:
現希望將 english 表左聯動 math 表。
2.2 讀取待聯動表資料
2.2.1 步驟
1)建立定時任務,拖入「資料轉換」節點,進入「資料轉換」節點。
2)拖入「DB表輸入」算子,讀取 english 表資料。如下圖所示:
3)可為該算子設定備註,備註讀取的哪張表資料,便於之後任務維運與查看。如下圖所示:
4)同理,再拖入一個「DB表輸入」算子,讀取 math 表資料,並備註讀取的哪張表資料。如下圖所示:
2.2.2 注意點
「DB表輸入」算子中,預設抽取前 5000 行表資料進行後續計算;因此,後續的「資料聯動」算子中聯動表資料時,只會取前 5000 行資料進行聯動。導致使用者在「資料聯動」算子中查看聯動效果時,可能出現聯動效果不準確的問題。但任務實際運作時,是會使用全量資料做聯動操作的。
若使用者希望在「資料聯動」算子中查看聯動效果時,結果準確,可在「DB表輸入」算子的「樣本設定」按鈕中,讀取全量資料。
詳情請參見:定时任务数据量说明
2.3 設定聯動
1)拖入「資料聯動」算子,連結方式選擇左連結,連結欄位選擇姓名。如下圖所示:
需注意:
若聯動兩張表資料,左表、右表均為可選項;若聯動兩張以上表資料,從第二次聯動開始,左表不再是可選項,而是預設為上一步的連結結果,右表始終為可選項。
可以選擇多個「連結欄位」,多個「連結欄位」為且的關係。
遇到同名欄位,欄位名後綴自動加1,格式為:column1、column2、column3。
若連結方式選擇左連結/右連結時,請確認好左表和右表是否正確(A表左聯動B表,與B表左聯動A表,聯動邏輯是不同的)。
2)點選「資料預覽」,效果如下圖所示:
需注意:
使用者若想刪除姓名1列,可在資料匯出時,取消姓名1列的映射(參考本文 2.4 節內容);或者後接一個「欄位設定」算子(該算子也支援修改欄位類型),刪除姓名1列。
2.4 匯出資料
1)拖入「DB表匯出」算子,將聯動後的資料匯出,取消姓名1列的映射。如下圖所示:
2)寫入方式選擇「追加寫入資料」。
2.5 效果查看
1)任務運作成功後,日誌如下圖所示:
資料庫資料如下圖所示:
2)點選「發佈」按鈕可將任務發佈到 生產模式 。如下圖所示: