使用RestCloud ETL Shell元件實現定時排程DataX離線任務
RestCloud ETL社群版是一款資料整合工具,提供視覺化多資料管道構建、資料來源管理、執行監控及許可權管理功能。
1.場景說明:
對於一些已經在使用阿里的離線資料同步工具DataX的使用者,想實現每天定時執行(或手動執行)job任務是非常困難的,都需要進入控制介面敲命令列,有沒有更簡單、快捷的方法呢?有!使用RestCloud ETL Shell元件構建流程,實現定時/手動執行任務。
2.整體流程圖:
3.實現步驟:
3.1建立一個流程,在指令碼執行元件分類中拉取一個執行Shell指令碼元件
3.2 配置Shell指令碼內容
這裡使用呼叫遠端伺服器的方式呼叫,填寫好遠端伺服器的IP、登入使用者ID、密碼以及需要執行的shell指令碼。
Shell指令碼這裡可以使用變數的方式,動態獲取到流程裡的資料或者是http請求傳進來的資料。
Shell指令碼示例程式碼如下:
============
#!/bin/bash
#!/usr/bin/env python
source /etc/profile
python /usr/wgx/datax/bin/datax.py -p "-DlastSuccessEndTime='2022-05-12 18:37:27'" \
/usr/wgx/datax/job/mysql-job3.json
============
DataX的Job示例程式碼如下:
3.3 配置斷言執行邏輯
執行的結果會存放到shellResult變數中,所以可以透過在流程線中獲取並進行判斷。
如果返回的是0代表成功,其他返回則不成功,不成功我們則可以實現傳送釘釘訊息的方式預警訊息。
成功的路由線配置
失敗的路由線配置
失敗後則透過釘釘訊息的方式傳送:
釘釘配置
這樣,整個流程就已經配置完成了。
3.4 配置定時排程
我們可以透過返回到流程介面,修改流程配置。
我們這裡使用 只有主伺服器可執行 即可。
執行方式:我們這裡選擇定時排程的方式執行
排程策略:根據自己的需求選擇排程的策略
任務排程模式:
任務佇列領取模式:表示將任務放到佇列中,由伺服器自由領取的方式執行
所有叢集伺服器均可同時執行:表示所有伺服器均執行
只有主伺服器可執行:適用於主伺服器效能比其他伺服器高時使用,或只有一臺伺服器 執行時使用
由排程伺服器統一排程:表示由系統的排程器統一排程
4.執行結果
我們可以手動執行並檢視排程記錄
具體的流程執行流程線可以點選圖形控制檢視
我們進入到datax可以檢視到執行產生的日誌檔案
當執行Shell失敗時,則傳送釘釘訊息
到這裡,完成了透過RestCloud ETL Shell元件實現遠端排程datax任務。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70005218/viewspace-2902187/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用Java實現定時任務排程Java
- 通過Web ETL統一排程和管理DataX任務Web
- 在Spring中使用JDK定時器實現排程任務SpringJDK定時器
- Linux 定時任務排程Linux
- laravel框架任務排程(定時執行任務)Laravel框架
- Java定時任務排程詳解Java
- Crontab定時任務排程介紹
- 深入 Java Timer 定時任務排程器實現原理Java
- 基於Azkaban的任務定時排程實踐
- Android 中的定時任務排程Android
- Spring排程定時任務的方式Spring
- 利用排程任務定時刪除分割槽
- OPPO大資料離線任務排程系統OFLOW大資料
- 十七、.net core(.NET 6)搭建基於Quartz元件的定時排程任務quartz元件
- NET作業排程(定時任務)-Quartz.Netquartz
- 定時任務的實現
- 【ETL工具】DataX + DataXWeb 初使用過程記錄Web
- 任務排程
- Linux Crontab Shell指令碼實現秒級定時任務Linux指令碼
- celery 與 flask 實現非同步任務排程Flask非同步
- oracle job使用方法--實現定時任務Oracle
- 用海豚排程器定時排程從Kafka到HDFS的kettle任務指令碼Kafka指令碼
- Java如何實現定時任務?Java
- Laravel5.6 使用定時任務實現定時發郵件Laravel
- Laravel5.6使用定時任務實現定時發郵件Laravel
- 『學了就忘』Linux系統定時任務 — 89、任務排程工具anacronLinux
- Laravel 任務排程Laravel
- Airflow 任務排程AI
- 如何在Java中實現非同步任務排程?Java非同步
- [奇思異想]使用RabbitMQ實現定時任務MQ
- Java中的定時任務最佳化:從Cron表示式到高精度排程的實現Java
- 基於redis實現定時任務Redis
- Quartz實現動態定時任務quartz
- RestCloud ETL解決shell指令碼引數化RESTCloud指令碼
- [原始碼分析] 定時任務排程框架 Quartz 之 故障切換原始碼框架quartz
- DolphinScheduler心臟:Quartz的定時任務排程框架深度解析quartz框架
- 關於使用 go cron 庫(任務排程)平滑關閉的實現Go
- CloseableHttpClient 連線超時導致XxlJob排程阻塞,影響排程任務的執行HTTPclient