一、开源项目简介
bboss数据同步可以方便地实现多种数据源之间的数据同步功能,支持增、删、改数据同步,本文为大家程序各种数据同步案例。
二、开源协议
使用Apache-2.0开源协议
三、界面展示
四、功能概述
通过bboss,可以非常方便地采集 database/mongodb/Elasticsearch/kafka/hbase/本地或者Ftp日志文件源数据,经过数据转换处理后,再推送到目标库elasticsearch/database/file/ftp/kafka/dummy/logger。
数据导入的方式
- 支持逐条数据导入
- 批量数据导入
- 批量数据多线程并行导入
- 定时全量(串行/并行)数据导入
- 定时增量(串行/并行)数据导入
- 支持记录切割功能
支持各种主流数据库、各种es版本以及本地/Ftp日志文件数据采集和同步、加工处理
支持从kafka接收数据;经过加工处理的数据亦可以发送到kafka;
支持将单条记录切割为多条记录;
可以将加工后的数据写入File并上传到ftp/sftp服务器;
支持备份采集完毕日志文件功能,可以指定备份文件保存时长,定期清理超过时长文件;
支持自动清理下载完毕后ftp服务器上的文件;
支持excel、csv文件采集(本地和ftp/sftp)
支持导出数据到excel和csv文件,并支持上传到ftp/sftp服务器
提供自定义处理采集数据功能,可以自行将采集的数据按照自己的要求进行处理到目的地,支持数据来源包括:database,elasticsearch,kafka,mongodb,hbase,file,ftp等,想把采集的数据保存到什么地方,有自己实现CustomOutPut接口处理即可。
支持的数据库:mysql,maridb,postgress,oracle ,sqlserver,db2,tidb,hive,mongodb、HBase等
支持的Elasticsearch版本:1.x,2.x,5.x,6.x,7.x,8.x,
支持海量PB级数据同步导入功能
支持将ip转换为对应的运营商和城市地理坐标位置信息
支持设置数据bulk导入任务结果处理回调函数,对每次bulk任务的结果进行成功和失败反馈,然后针对失败的bulk任务通过error和exception方法进行相应处理
支持以下三种作业调度机制:
- jdk timer (内置)
- quartz
- xxl-job分布式调度引擎,基于分片调度机制实现海量数据快速同步能力
bboss另一个显著的特色就是直接基于java语言来编写数据同步作业程序,基于强大的java语言和第三方工具包,能够非常方便地加工和处理需要同步的源数据,然后将最终的数据保存到目标库(Elasticsearch或者数据库);同时也可以非常方便地在idea或者eclipse中调试和运行同步作业程序,调试无误后,通过bboss提供的gradle脚本,即可构建和发布出可部署到生产环境的同步作业包。因此,对广大的java程序员来说,bboss无疑是一个轻易快速上手的数据同步利器。
五、技术选型
1.准备工作
1.1 在工程中导入jdbc es maven坐标
代码语言:javascript复制<dependency>
<groupId>com.bbossgroups.plugins</groupId>
<artifactId>bboss-elasticsearch-rest-jdbc</artifactId>
<version>6.5.2</version>
</dependency>
如果需要增量导入,还需要导入sqlite驱动:
代码语言:javascript复制<dependency>
<groupId>org.xerial</groupId>
<artifactId>sqlite-jdbc</artifactId>
<version>3.40.0</version>
<scope>compile</scope>
</dependency>
如果需要使用xxjob来调度作业任务,还需要导入坐标:
代码语言:javascript复制<dependency>
<groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId>
<version>2.0.2</version>
<scope>compile</scope>
</dependency>
本文从mysql数据库表td_cms_document导入数据到es中,除了导入上述maven坐标,还需要额外导入mysql驱动坐标(其他数据库驱动程序自行导入):mysql 5.x驱动依赖包
代码语言:javascript复制<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.40</version>
</dependency>
mysql 8.x驱动依赖包(mysql 8必须采用相应版本的驱动,否则不能正确运行)
代码语言:javascript复制<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.16</version>
</dependency>
来源:
https://www.toutiao.com/article/7072339727835677214/?log_from=553b3e02b091e_1650937215613
“IT大咖说”欢迎广大技术人员投稿,投稿邮箱:aliang@itdks.com
来都来了,走啥走,留个言呗~
IT大咖说 | 关于版权
由“IT大咖说(ID:itdakashuo)”原创的文章,转载时请注明作者、出处及微信公众号。投稿、约稿、转载请加微信:ITDKS10(备注:投稿),茉莉小姐姐会及时与您联系!
感谢您对IT大咖说的热心支持!
- 相关推荐
- 推荐文章
- 如何使用 SSHGUARD 阻止 SSH 暴力攻击
- 实时时间序列异常检测
- [开源]一套BS架构,支持PC、H5端的开源知识管理系统、知识库系统
- 后端开发常见层式结构设计:跳表、时间轮、LSM-Tree
- 16 个有用的带宽监控工具来分析 Linux 中的网络使用情况
- Redis 中的过期删除策略和内存淘汰机制
- 一个可以测试并发数和运行次数的压力测试代码
- linux远程桌面管理工具xrdp
- Android C 系列:NDK 减少 so 库体积方法总结
- 阿里一面,说说你对Mysql死锁的理解