前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >「开源」数据同步ETL工具,支持多数据源间的增、删、改数据同步

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

作者头像
IT大咖说
发布2022-04-27 12:40:32
1.5K0
发布2022-04-27 12:40:32
举报
文章被收录于专栏:IT大咖说

一、开源项目简介

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大咖说的热心支持!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-04-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT大咖说 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、开源项目简介
  • 二、开源协议
  • 三、界面展示
  • 四、功能概述
  • 五、技术选型
  • 1.准备工作
  • 1.1 在工程中导入jdbc es maven坐标
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档