-
Notifications
You must be signed in to change notification settings - Fork 13
etl crontab调度
hw2499 edited this page Jul 28, 2024
·
18 revisions
默认情况etl-designer已经集成到etl_crontab服务中,启动etl_crontab服务后,通过浏览器访问后台管理系统进行使用
- 支持通过crontab表达式配置并执行周期性etl-engine任务
- 支持将调度执行日志输出到数据库中
- 日志支持适配输出到mysql或postgre或oracle或sqlserver
- 支持将执行失败情况发送预警通知
- etl_crontab支持启动http/https服务(整合etl-designer和etl-crontab功能)。
- etl_crontab服务端暴露接口支持https双向认证,支持Basic Auth认证、支持Token认证功能。
- etl_crontab支持执行过程中,失败情况通过http/https协议发送预警功能(根据用户需求提供sms发送预警)。
- etl_crontab支持集中模式部署和分离模式部署两种场景,方便用户根据实际场景进行集成。
- etl_crontab为实现高可用,支持自动向consul进行服务注册。
- etl_crontab支持浏览http|mq 阻塞式服务的心跳轨迹。
etl_crontab.exe -fileUrl conf.cron
使用体验到期后,如希望继续试用,可通过下面方式自行生成试用授权
etl_crontab.exe -freeLicense true
访问管理后台,默认浏览http://127.0.0.1:11100/etl_designer
登录用户名称admin,登录用户口令123456
<?xml version="1.0" encoding="UTF-8"?>
<Jobs logLevel="trace" showLogo="true" port="11100" engineFile="d:/etl_engine.exe" confDir="d:/" startHttp="true" outDbLog="true" alterLog="false" serverCertFile="" serverKeyFile="" releasePage="false" webSocketPort="11101">
</Jobs>
- logLevel 控制台输出日志级别(info,debug,trace)
- showLogo 控制台输出logo
- port 默认启动http/https服务的监听端口(默认11100)
- engineFile 引擎文件所在位置(根据实际部署情况修改)
- confDir 任务配置文件的根目录(根据实际部署情况修改)
- startHttp 是否启动http/https服务
- outDbLog 是否输出日志信息到日志数据库
- alterLog 是否输出预警信息
- serverCertFile https服务证书文件位置
- serverKeyFile https服务秘钥文件位置
- releasePage 是否允许第三方系统集成本系统
- webSocketPort 配置监听端口号(默认11101),向前端推送系统控制台日志信息,不配置则关闭该功能.
- ip 配置WEBUI监听IP,配合port使用.
- ip2 配置日志监控监听IP,配合webSocketPort使用.
该配置文件与etl_crontab在一个目录下。
db.type=mysql
db.url=127.0.0.1:3306
db.database=db1
db.username=root
db.password=123456
auth.type=file
auth.username=admin
auth.password=paI+Td8SvwQtpZwOsIyO6Q==
auth.key=hskj_123456_hskj
auth.usetoken=true1
auth.basicauth=true1
#auth.authdbtype=mysql
#auth.authdburl=127.0.0.1:3306
#auth.authdbdatabase=db1
#auth.authdbusername=root
#auth.authdbpassword=123456
alter.type=http
alter.http.url=http://127.0.0.1:18000/fr/postDeviceNotify
alter.http.method=post
alter.http.contenttype=application/x-www-form-urlencoded
alter.http.fixedtoken=
alter.http.username=
alter.http.password=
alter.http.extinfo=devicdCode=001;address=北京
alter.http.isdetail=false
##heartbeat
#service.http.heartbeat.flag=true
#service.http.heartbeat.interval=60
#service.mq.heartbeat.flag=true
#service.mq.heartbeat.interval=60
#service.prometheus.exporter.heartbeat.flag=true1
#service.prometheus.exporter.heartbeat.interval=60
##redis
#redis.url=127.0.0.1:16379
#redis.password=123456
#redis.database=0
#redis.pool.max.active.connection=0
#redis.pool.max.idle.connection=16
#redis.pool.idle.timeout=300
- db.type 连接数据库类型,支持mysql,oracle,postgre,sqlserver
- db.url 连接数据库URL信息
- db.database 连接数据库DB信息
- db.username 连接数据库用户名称
- db.password 连接数据库用户口令
- auth.type 支持file和db类型,db支持mysql,oracle,postgre,sqlserver
- auth.username 登录用户名称
- auth.password 登录口令(密文)paI+Td8SvwQtpZwOsIyO6Q== 匹配明文123456
- auth.key 加密盐值(不可修改)
- alter.type 支持类型,默认http
- alter.http.url http/https服务端地址
- alter.http.method post方式
- alter.http.contenttype header头信息,推荐使用application/x-www-form-urlencoded
- alter.http.fixedtoken 固定token,需要服务端支持
- alter.http.username baseAuth认证用户名称,需要服务端支持
- alter.http.password baseAuth认证用户密码,需要服务端支持
- alter.http.extinfo 额外信息,需要服务端支持
- alter.http.isdetail 是否输出日志明细
- service.http.heartbeat.flag 是否输出http服务心跳,true代表输出
- service.http.heartbeat.interval 心跳输出频率,默认60秒
- service.mq.heartbeat.flag 是否输出mq心跳,true代表输出
- service.mq.heartbeat.interval 心跳输出频率,默认60秒
- redis.url redis服务器地址
- redis.password redis服务器密码
- redis.database 数据库ID号
- redis.pool.max.active.connection 最大激活连接
- redis.pool.max.idle.connection 最大空闲连接
- redis.pool.idle.timeout 空闲超时时间
更多配置信息持续更新...
mysql数据库脚本
CREATE DATABASE `db1` ;
USE `db1`;
/*Table structure for table `t_etl_logs` */
DROP TABLE IF EXISTS `t_etl_logs`;
CREATE TABLE `t_etl_logs` (
`UUID` varchar(32) NOT NULL,
`username` varchar(32) ,
`flag` varchar(32) DEFAULT '0',
`taskuuid` varchar(32) DEFAULT NULL,
`fileurl` varchar(300) DEFAULT NULL,
`taskdesc` varchar(200) DEFAULT NULL,
`nodeid` varchar(100) DEFAULT NULL,
`STATUS` varchar(32) DEFAULT NULL,
`recordnum` varchar(100) DEFAULT NULL,
`ERRORS` varchar(300) DEFAULT NULL,
`writetime` varchar(32) DEFAULT NULL,
PRIMARY KEY (`UUID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*Table structure for table `t_etl_job_list` */
DROP TABLE IF EXISTS `t_etl_job_list`;
CREATE TABLE `t_etl_job_list` (
`UUID` varchar(32) NOT NULL,
`username` varchar(32) ,
`PORT` varchar(32) DEFAULT NULL,
`jobid` varchar(32) DEFAULT NULL,
`jobdesc` varchar(300) DEFAULT NULL,
`STATUS` varchar(32) DEFAULT NULL,
`ERRORS` varchar(300) DEFAULT NULL,
`writetime` varchar(32) DEFAULT NULL,
PRIMARY KEY (`UUID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*Table structure for table `t_etl_job_logs` */
DROP TABLE IF EXISTS `t_etl_job_logs`;
CREATE TABLE `t_etl_job_logs` (
`UUID` varchar(32) NOT NULL,
`username` varchar(32) ,
`PORT` varchar(32) DEFAULT NULL,
`jobuuid` varchar(32) DEFAULT NULL,
`taskuuid` varchar(32) DEFAULT NULL,
`cronexpress` varchar(100) DEFAULT NULL,
`cronfileurl` varchar(300) DEFAULT NULL,
`graphfileurl` varchar(300) DEFAULT NULL,
`STATUS` varchar(32) DEFAULT NULL,
`errors` varchar(300) DEFAULT NULL,
`writetime` varchar(32) DEFAULT NULL,
PRIMARY KEY (`UUID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `t_etl_auth_user_info` (
`username` varchar(32) NOT NULL,
`password` varchar(100) DEFAULT NULL,
`writetime` varchar(32) DEFAULT NULL,
PRIMARY KEY (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into t_etl_auth_user_info (username,password,writetime) values ('admin','paI+Td8SvwQtpZwOsIyO6Q==','2022-09-27 10:11:12');
CREATE TABLE t_etl_service_heart (
UUID varchar(32) NOT NULL,
extinfo varchar(100) DEFAULT NULL,
username varchar(32) DEFAULT NULL,
flag varchar(32) DEFAULT '0',
type varchar(32) DEFAULT '0',
taskuuid varchar(32) DEFAULT NULL,
fileurl varchar(300) DEFAULT NULL,
taskdesc varchar(200) DEFAULT NULL,
nodeid varchar(100) DEFAULT NULL,
STATUS varchar(32) DEFAULT NULL,
writetime varchar(32) DEFAULT NULL,
ip VARCHAR(30) DEFAULT NULL,
PRIMARY KEY (UUID)
);
CREATE TABLE t_etl_ip_logs (
UUID VARCHAR(32) NOT NULL,
ip VARCHAR(30) DEFAULT NULL,
username VARCHAR(50) DEFAULT NULL,
describer VARCHAR(100) DEFAULT NULL,
writetime VARCHAR(32) DEFAULT NULL,
PRIMARY KEY (UUID)
);
方式 | 接口名称 | 接口地址 | 参数 | 说明 | 返回内容 |
---|---|---|---|---|---|
POST | 立即运行指定的Job,供外部系统使用 | /runJobForGraphFile | "jsondata":{ "method":"runjobforgraphfile","username":"u1","graphfile":"d:/读写数据表1.grf","globalargs":"arg1=abc;arg2=上海" } | Body:x-www-form-urlencoded | {"status":"success","msg":""} |
-
为方便第三方系统集成管理端页面,公开管理端URL
/etldesigner 任务设计器
/etlcrondesigner 调度设计器
/etlquerylogs 任务日志分析
/etlqueryjobstatus 调度执行日志
/etlbashboard 监控面板 -
第三方系统集成 etl_crontab 管理页面样本
<template>
<div>
<iframe :src="this.EtlServerUiUrl"
width="100%"
scrolling="no"
style="margin: 0px;padding: 0px;height: calc(100vh);border:none;overflow:hidden;"
/>
</div>
</template>
<script>
let Base64 = require('js-base64').Base64
export default {
name: "commIntegrationPage.vue",
data(){
return{
EtlServerUiUrl : "http://127.0.0.1:8080/etl_designer/etlbashboard?username=admin&password="+Base64.encode("paI+Td8SvwQtpZwOsIyO6Q==")+"&serverAddress=http://127.0.0.1:11100",
}
}
}
</script>