您的位置 首页 java

「开源」数据同步ETL工具,支持多数据源间的增、删、改数据同步

一、开源项目简介

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等,想把采集的数据保存到什么地方,有自己实现Custom OutPut 接口处理即可。

支持的数据库: 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坐标

 <dependency>
<groupId>com.bbossgroups.plugins</groupId>
<artifactId>bboss-elasticsearch-rest-jdbc</artifactId>
<version>6.5.2</version>
</dependency>  

如果需要增量导入,还需要导入sqlite驱动:

 <dependency>
      <groupId>org.xerial</groupId>
      <artifactId>sqlite-jdbc</artifactId>
      <version>3.40.0</version>
      <scope>compile</scope>
 </dependency>  

如果需要使用xxjob来调度作业任务,还需要导入坐标:

 <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驱动依赖包

 <dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.40</version>
</dependency>  

mysql 8.x驱动依赖包(mysql 8必须采用相应版本的驱动,否则不能正确运行)

 <dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.16</version>
</dependency>  

六、源码地址

私信回复:数据同步ETL工具

或访问一飞开源:

文章来源:智云一二三科技

文章标题:「开源」数据同步ETL工具,支持多数据源间的增、删、改数据同步

文章地址:https://www.zhihuclub.com/201100.shtml

关于作者: 智云科技

热门文章

网站地图