elastic job oracle,GitHub - bbossgroups/db-elasticsearch-xxjob: 数据库与Elasticsearch数据同步xxjob分布式任务调度dem...

Bboss is a good elasticsearch Java rest client. It operates and accesses elasticsearch in a way similar to mybatis.

BBoss Environmental requirements

JDK requirement: JDK 1.7+

Elasticsearch version requirements: 1.x,2.X,5.X,6.X,+

Spring booter 1.x,2.x,+

bboss elasticsearch 数据导入工具xx job定时任务调度demo

使用本demo所带的应用程序运行容器环境,可以快速编写、打包发布可运行在分布式定时任务引擎xx job的数据同步任务。

支持的数据库:

mysql,maridb,postgress,oracle ,sqlserver,db2,hive等

支持的Elasticsearch版本:

1.x,2.x,5.x,6.x,7.x,+

支持海量PB级数据同步导入功能

开发作业

准备工作

通过gradle构建发布作业,gradle安装配置文档:

gradle安装配置参考文档:

实现作业

下载源码工程-基于gradle

从github下载源码工程,然后导入idea或者eclipse

定义同步作业配置逻辑,参考实现类:

org.frameworkset.elasticsearch.imp.jobhandler.XXJobImportTask

任务处理类必须继承抽象类org.frameworkset.elasticsearch.client.schedule.xxjob.AbstractDB2ESXXJobHandler

修改es和数据库配置-db-elasticsearch-xxjob\src\test\resources\application.properties

将定义的任务添加到application.properties中,并修改其中xxjob参数配置:

# xxjob分布式作业任务配置

### xxl-job admin address list, such as "http://address" or "http://address01,http://address02"

xxl.job.admin.addresses=http://127.0.0.1:8080/xxl-job-admin

### xxl-job executor address

xxl.job.executor.appname=db-elasticsearch-xxjob

xxl.job.executor.ip=192.168.137.1

xxl.job.executor.port=9995

### xxl-job, access token

xxl.job.accessToken=

### xxl-job log path

xxl.job.executor.logpath=d:/xxl-job/

### xxl-job log retention days

xxl.job.executor.logretentiondays=-1

##

# 作业任务配置

# xxl.job.task为前置配置多个数据同步任务,后缀XXJobImportTask和OtherTask将xxjob执行任务的名称

# 作业程序都需要继承抽象类org.frameworkset.elasticsearch.client.schedule.xxjob.AbstractDB2ESXXJobHandler

# 实现抽象方法init即可:

# public void init(){

# externalScheduler = new ExternalScheduler();

# externalScheduler.dataStream(()->{

# DB2ESImportBuilder importBuilder = DB2ESImportBuilder.newInstance();

# 编写导入作业任务配置逻辑,参考文档:https://esdoc.bbossgroups.com/#/db-es-tool

# return importBuilder;

# }

# }

#

xxl.job.task.XXJobImportTask = org.frameworkset.elasticsearch.imp.jobhandler.XXJobImportTask

## xxl.job.task.otherTask = org.frameworkset.elasticsearch.imp.jobhandler.OtherTask

#配置运行xxl-job作业主程序

mainclass=org.frameworkset.elasticsearch.client.schedule.xxjob.XXJobApplication

工程已经内置mysql jdbc驱动,如果有依赖的第三方jdbc包(比如oracle驱动),可以将第三方jdbc依赖包放入db-elasticsearch-xxjob\lib目录下

测试和调试导入功能

运行db-elasticsearch-xxjob\src\test\java目录下面的ApplicationTest测试类即可:

​ src\test\java\org\frameworkset\elasticsearch\imp\ApplicationTest.java

测试调试通过后,构建发布可运行的版本

进入命令行模式,切换到源码工程根目录db-elasticsearch-xxjob下,运行以下指令打包发布版本:

​ release.bat

运行作业

版本发布后,在build/distributions目录下会生成可以运行的zip包,解压运行导入程序

linux:

chmod +x restart.sh

./restart.sh

windows: restart.bat

作业启动后,可以在xx-job-admin进行任务的配置,并查看运行日志。

作业jvm配置

修改jvm.options,设置内存大小和其他jvm参数

-Xms1g

-Xmx1g

作业参数配置

在代码中获取参数dropIndice方法:

boolean dropIndice = CommonLauncher.getBooleanAttribute("dropIndice",false);//同时指定了默认值false

另外可以在resources/application.properties配置控制作业执行的一些参数,例如工作线程数,等待队列数,批处理size等等:

queueSize=50

workThreads=10

batchSize=20

在作业执行方法中获取并使用上述参数:

int batchSize = CommonLauncher.getIntProperty("batchSize",10);//同时指定了默认值

int queueSize = CommonLauncher.getIntProperty("queueSize",50);//同时指定了默认值

int workThreads = CommonLauncher.getIntProperty("workThreads",10);//同时指定了默认值

importBuilder.setBatchSize(batchSize);

importBuilder.setQueue(queueSize);//设置批量导入线程池等待队列长度

importBuilder.setThreadCount(workThreads);//设置批量导入线程池工作线程数量

elasticsearch技术交流群:166471282

elasticsearch微信公众号:bbossgroup

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值