Restcloud ETL 我的演算法我做主
實時資料處理規則有什麼作用 ?
在大資料中的實時資料採集、ETL批次資料傳輸過程中很多資料處理過程以及資料質量都希望實時進行處理和檢測並把不符合要求的髒資料過濾掉或者進行實時的資料質量告警等。
在資料倉儲建設過程中,每家企業的資料處理過程中肯定會有一些自身的資料處理特點如學號的處理、車牌號的處理、身份證號碼的處理、SKU編碼的處理、訂單號的處理等等,各行各業都有自已的資料處理和運算方式,而ETL平臺本身只是內建了一些通用的資料處理規則,企業所需要的這些個性化的運算規則就可以透過ETL的自定義規則來實現了。
怎麼自定義資料處理規則?
首先進入ETL平臺的一個應用,只有應用中才可以新增自定義規則,因為規則必須屬於某一個應用。
注意:新增一個規則的分類才可以新增自定義規則
進入應用配置中新增一個規則分類
有了分類後再進入到自定義規則中就可以新增規則了,點選新增規則後給規則一個名稱如:發動機號校驗規則、訂單號合法性校驗規則等等,class path不用填系統會自動生成。
自定義資料處理規則的注意事項
規則新增成功後就可以給規則進行程式碼邏輯的編寫了
系統會自動生成一個規則運算的程式碼模板出來,只需要根據模板中的提示進行邏輯修改即可
平臺運算規則使用的是標準的Java語法,不是JavaScript之類的,所以不用擔心運算規則的執行效率,經過我們測試處理100W的資料使用Java規則只需要幾秒種即可完成,而如果用JavaScript語法的規則需要幾分鐘才能完成,所以RestCloud ETL在效能上是很有優勢的。
規則程式碼編寫完成後可以點選編譯並儲存按扭即可,如果提示成功則表示程式碼沒有問題,如果提示失敗可以根據提示資訊進行程式碼修改,如果在Web IDE中編輯不是很方便也可以把程式碼copy到idea/eclipse中進行編輯,編輯完成後再copy進來即可。
使用引數提升資料處理規則的複用率
如果規則都是固定演算法不需要在系統執行時傳入引數就不需要定義引數,但是有時我們為了能提升規則的複用性就必須得用到規則引數的功能瞭如:自定義一個格式化時間的規則,而格式化時間會有: yyyy-MM-dd、yyyy年MM月dd日、yyyy-MM-dd HH:mm:ss等等,根本不知道使用者想格式化成什麼樣,光是一個時間格式如果不用引數我們就得定義一大堆規則才可以實現上面的功能,最好的方式是時間的格式是由繫結規則時指定的一個引數,這樣我們在開發規則的時修只需要一個規則即可完成。
在新建規則時可以指定一個規則引數,這樣在使用者選擇這個規則時就會提醒使用者設定引數
這樣使用者可以在繫結規則時指定一個引數,這個引數會傳入到規則的方法中
系統透過一個{引數id:引數值}的json傳入,我們轉為map對像後再獲取引數值即可在程式碼中使用。
怎麼使用規則進行資料質量的檢查或過濾
規則定義好後我們就可以在ETL的流程中使用這些規則來進行資料質量的檢查,資料清洗過濾等操作,如下面這個流程就可以把不符合要求的電話號碼的使用者給過濾掉同時傳送告警通知給使用者
自定義規則呼叫第三方jar包
規則中可以使用import 引入自已開發的jar包或者第三方jar包的class進入,這樣就可以利用第三方jar包中的運算能力(如:spark、sm4加密演算法、邏輯迴歸演算法等)來實現很多複雜業務的處理和資料運算。
規則中可以執行SQL嗎?
規則中可以很方便的執行SQL語句,系統已經封裝了ETLRdbUtil這樣工具類(還有其他很多資料庫的工具類如:Redis,MongoDB,ES,Kafka等)如下程式碼即可執行SQL並返回資料
String sql=”select * from tablename where id<10”;
List docs=ETLRdbUtil.listDocs(ETLRdbUtil.getConnection("資料來源id"), sql);
for(Document doc:docs) {
PrintUtil.o(doc.getString("userId"));
}
ETLRdbUtil工具類有很多方便訪問資料庫的工具,一般只需要幾行程式碼就能讀取、寫入、修改資料,後面我們會專門介紹ETLRdbUtil工具類的使用。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70005218/viewspace-2899977/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【Flutter高階玩法- Flow 】我的位置我做主Flutter
- Docker部署RestCloud ETL社群DockerRESTCloud
- android--相機開發----我的相機我做主Android
- Restcloud ETL社群版,即插即用RESTCloud
- RestCloud ETL 社群版背後的故事RESTCloud
- RestCloud ETL平臺是怎樣的?RESTCloud
- ETL資料整合平臺,RestCloud視覺化ETLRESTCloud視覺化
- RestCloud ETL與Kettle對比分析RESTCloud
- RestCloud ETL WebService資料同步到本地RESTCloudWeb
- iOS 14將隱私分享權還給使用者,我的資料我做主?iOS
- RestCloud ETL社群積分商城重磅上線RESTCloud
- 我的好書我做主:曬出原創《Go語言程式設計 》的大致目錄Go程式設計
- 新一代Web安全治理體系讓“我的地盤我做主”不再只是夢Web
- ETL資料整合,RestCloud資料整合平臺RESTCloud
- RestCloud ETL社群 九月精選問答RESTCloud
- RestCloud ETL社群 八月精選問答RESTCloud
- RestCloud ETL社群版序列號相關諮訊RESTCloud
- Restcloud ETl實踐之資料行列轉換RESTCloud
- RestCloud ETL解決shell指令碼引數化RESTCloud指令碼
- 4月18日“RestCloud ETL社群版”重磅推出RESTCloud
- 使用RestCloud ETL輕鬆解決WebService資料同步RESTCloudWeb
- RestCloud ETL資料交換平臺,支援分散式部署RESTCloud分散式
- RestCloud ETL抽取動態庫表資料實踐RESTCloud
- 我的島嶼我做主,沙盒經營建造遊戲《島與工廠》將於4月19日推出遊戲
- Restcloud ETL實踐之Excel檔案資料採集RESTCloudExcel
- 我的 Go 演算法之旅Go演算法
- 我理解的 KMP 演算法KMP演算法
- 我對Kosaraju演算法的理解演算法
- RestCloud ETL實踐之無標識位實現增量資料同步RESTCloud
- Restcloud ETl資料通過時間戳實現增量資料同步RESTCloud時間戳
- 通過容器化技術RestCloud ETL支援大規模的分散式部署架構RESTCloud分散式架構
- 觀、礪、破——我的演算法之道演算法
- 使用RestCloud ETL Shell元件實現定時排程DataX離線任務RESTCloud元件
- 專訪Ubitus CEO 郭榮昌:我們給索尼、任天堂、卡普空做主機遊戲雲化遊戲
- 我的密碼演算法v1.0密碼演算法
- 如果我是推薦演算法面試官,我會問哪些問題?演算法面試
- 我的簽名我來看
- 我錯了,我有罪,我下跪