RestCloud ETL抽取動態庫表資料實踐
RestCloud ETL社群版是一款資料整合工具,提供視覺化多資料管道構建、資料來源管理、執行監控及許可權管理功能。
1.場景說明:
對於一些業務系統每天執行自動產生一張新資料表,希望透過1條資料流程每天自動讀取當天的資料表。如2022年6月1日產生表名稱為“table_20220601”,2022年6月2日產生表名稱為“table_20220602”,以此類推;對於這樣的動態表,如何使用RestCloud ETL簡單、便捷實現資料抽取。
2.實現原理:
首先我們需要根據日期自動生成對於的表名稱,並做將該引數傳輸給庫表輸入元件。實現流程圖如下:
實現該業務的前提條件是庫表輸入元件支援接收變數傳輸,這個RestCloud ETL無與倫比的優勢。
3.實現步驟:
3.1配置"執行Java指令碼"
右鍵"執行Java指令碼",點選“節點屬性”開啟配置編輯頁面,點選下一步,編輯Java程式碼。程式碼中加入生成表名稱程式碼,輸出引數為: p_tablename ,如下圖:
程式碼如下:
package cn.restcloud.etl.rule.ext;
import org.apache.commons.lang3.StringUtils;
import org.bson.Document;
import java.sql.Connection;
import cn.restcloud.framework.core.context.*;
import cn.restcloud.etl.base.IETLBaseEvent;
import cn.restcloud.etl.base.IETLBaseProcessEngine;
import cn.restcloud.framework.core.util.*;
import cn.restcloud.framework.core.util.db.rdb.*;
import java.util.*;
import java.text.SimpleDateFormat;
/**
indoc為流資料
執行成功必須返回字元1,返回0表示終止流程
*/
public class ETL_T00005_1INWBJPUXVB implements IETLBaseEvent {
@Override
public String execute(IETLBaseProcessEngine engine, Document modelNodeDoc, Document indoc,String fieldId,String params) throws Exception {
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
String table = "table_" + sdf.format(date);
PrintUtil.o(table);
indoc.put("p_tablename",table);
return "1";
}
}
完成程式碼編輯,點選【編譯並儲存】退出配置。
3.2 庫表輸入配置
右鍵"庫表輸入",點選“節點屬性”開啟配置編輯頁面。
選擇源表資料來源,點選下一步:
編輯讀取資料SQL語句,select * from 表名稱,表名稱輸入接收引數,引數格式:${引數},${p_tablename},點選下一步:
點選【新增欄位】,輸入抽取資料表欄位,點選儲存完成配置。
3.3 庫表輸出配置
右鍵"庫表輸入",點選“節點屬性”開啟配置編輯頁面。
依次輸入配置,選擇資料來源,載入資料庫表,選擇資料庫表。
點選【從表中讀入】,勾選關鍵字(主鍵),點選下一步。
根據需要選擇對應的日記策略,點選儲存完成配置。
4.執行測試
點選【執行】
點選【開始執行】
5.檢視執行結果
點選庫表輸出,資料傳輸統計
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70005218/viewspace-2902694/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Restcloud ETl實踐之資料行列轉換RESTCloud
- Restcloud ETL實踐之Excel檔案資料採集RESTCloudExcel
- RestCloud ETL實踐之無標識位實現增量資料同步RESTCloud
- ETL資料整合平臺,RestCloud視覺化ETLRESTCloud視覺化
- RestCloud ETL WebService資料同步到本地RESTCloudWeb
- ETL資料整合,RestCloud資料整合平臺RESTCloud
- Restcloud ETl資料通過時間戳實現增量資料同步RESTCloud時間戳
- 使用RestCloud ETL輕鬆解決WebService資料同步RESTCloudWeb
- RestCloud ETL資料交換平臺,支援分散式部署RESTCloud分散式
- Docker部署RestCloud ETL社群DockerRESTCloud
- Restcloud ETL社群版,即插即用RESTCloud
- 陳胡:Apache SeaTunnel實現 非CDC資料抽取實踐Apache
- RestCloud ETL與Kettle對比分析RESTCloud
- [shell]shell指令碼實現每天自動抽取資料插入hive表指令碼Hive
- 資料倉儲系列之ETL中常見的增量抽取方式
- RestCloud ETL 社群版背後的故事RESTCloud
- RestCloud ETL平臺是怎樣的?RESTCloud
- MariaDB Spider 資料庫分庫分表實踐IDE資料庫
- 貝聊億級資料庫分庫分表實踐資料庫
- 資料庫實踐資料庫
- Vue專案資料動態過濾實踐Vue
- RestCloud ETL社群積分商城重磅上線RESTCloud
- Restcloud ETL 我的演算法我做主RESTCloud演算法
- ETLCloud:新一代ETL資料抽取工具的定義與革新Cloud
- 利用FreeSql.Generator自動根據資料庫表動態生成實體類SQL資料庫
- Flink 實踐教程-進階(2):複雜格式資料抽取
- 寫 Linux 動態庫的最佳實踐Linux
- 分散式資料庫中介軟體 MyCat | 分庫分表實踐分散式資料庫
- 基於代理的資料庫分庫分表框架 Mycat實踐資料庫框架
- RestCloud ETL社群 九月精選問答RESTCloud
- RestCloud ETL社群 八月精選問答RESTCloud
- RestCloud ETL社群版序列號相關諮訊RESTCloud
- RestCloud ETL解決shell指令碼引數化RESTCloud指令碼
- 4月18日“RestCloud ETL社群版”重磅推出RESTCloud
- Oracle元件實現動態Web資料庫(轉)Oracle元件Web資料庫
- 【實驗】【外部表】以資料泵檔案格式抽取and遷移資料演示
- 資料庫動態脫敏資料庫
- DM資料庫操作實踐資料庫