有些使用者業務系統的資料庫是 MongoDB,需要透過定時任務將數倉或其他業務系統的資料匯出到 MongoDB 。
定時任務支援寫入 MongoDB。如下圖所示:
1)使用該功能前,需要確定資料平台已經註冊了「NoSQL」功能點,註冊事項詳情參見:註冊簡介
2)需要先建立 MongoDB資料連結
3)可使用 to_json 函式,構建 MongoDB 集合中的 json 欄位。
本文範例:將本地表 jihe 中的資料同步到包含 array 欄位類型的 MongoDB 集合中。
範例資料(源資料):jihe.xlsx
如下圖所示:
MongoDB 集合資料(info 欄位為 array 類型):
需要使用「Spark SQL」算子,將二維表的多個欄位拼成一個 json 物件陣列。
1)建立定時任務,拖入「資料轉換」節點,進入「資料轉換」節點。
2)拖入「DB表輸入」算子,讀取本地資料。如下圖所示:
1)拖入「Spark SQL」算子,將本地資料的 date、time 欄位拼成一個 json 物件陣列,便於後續同步到包含 array 欄位類型的 MongoDB 集合中。如下圖所示:
注:語句中表名和表欄位需要點選生成;to_json、struct 函式具體介紹請參見:to_json、struct 函式
SELECT username, concat("[",concat_ws(",",collect_list(to_json(struct(date,time)))),"]")as kaoqinFROM DB表輸入 GROUP BY username
點選「資料預覽」,如下圖所示:
1)拖入「MongoDB匯出」算子,將處理後的資料匯出到 MongoDB 集合中,寫入方式選擇「直接將資料寫入目標集合」即可。如下圖所示:
注:資料同步到 MongoDB 集合的陣列欄位時,源表欄位值中需要帶中括號[]
各設定項介紹如下表所示:
已存在集合:
選擇資料庫後,備選項為對應資料庫下所有集合
自動建集合:
1)支援配置目標集合欄位名稱、欄位類型
2)4.1.6.1 之前版本集合名稱支援包含英文、數字、底線,4.1.6.1 及之後版本,集合名稱支援包含英文、中文、數字、底線
3)支援配置欄位的非空屬性
4)不支援配置主鍵欄位:因為 MongoDB 集合的主鍵,預設為「_id」欄位,不支援自訂
5)不支援「手動建表」功能
2)支援給已存在集合的「_id」欄位配置映射。如下圖所示:
1)寫入方式支援清空目標集合,再寫入資料
2)寫入方式支援直接將資料寫入目標集合
支援設定主鍵衝突策略:
支援設定主鍵映射:當欄位映射中有 MongoDB「_id」欄位的映射,則主鍵預設設定「_id」的欄位映射;當欄位映射中沒有MongoDB「_id」欄位的映射,則使用者可以設定其他欄位為邏輯主鍵
3)寫入方式支援:基於標識欄位,追加/更新/刪除資料
邏輯刪除:只對標識值為null的資料行進行邏輯刪除
支援設定標識欄位、標識值
支援設定主鍵映射:當欄位映射中有MongoDB「_id」欄位的映射,則主鍵預設設定「_id」的欄位映射;當欄位映射中沒有MongoDB「_id」欄位的映射,則使用者可以設定其他欄位為邏輯主鍵
2)點選右上角「儲存」按鈕。
運作後,MongoDB 集合資料如下圖所示:
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
反馈已提交
网络繁忙