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

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

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方法进行相应处理

支持以下三种作业调度机制:

bboss另一个显著的特色就是直接基于java语言来编写数据同步作业程序,基于强大的java语言和第三方工具包,能够非常方便地加工和处理需要同步的源数据,然后将最终的数据保存到目标库(Elasticsearch或者数据库);同时也可以非常方便地在idea或者eclipse中调试和运行同步作业程序,调试无误后,通过bboss提供的gradle脚本,即可构建和发布出可部署到生产环境的同步作业包。因此,对广大的java程序员来说,bboss无疑是一个轻易快速上手的数据同步利器。

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

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

本文从mysql数据库表td_cms_document导入数据到es中,除了导入上述maven坐标,还需要额外导入mysql驱动坐标(其他数据库驱动程序自行导入): mysql 5.x驱动依赖包

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

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

或访问一飞开源:https://code.exmay.com/

1 、简介

DataPipeline :隶属于北京数见 科技 有限公司,是一家企业级批流一体数据融合服务商和解决方案提供商,国内实时数据管道技术的倡导者。

通过平台和技术为企业客户解决数据准备过程中的各种痛点,帮助客户更敏捷、更高效、更简单地实现复杂异构数据源到目的地的实时数据融合和数据管理等综合服务。

从而打破传统 ETL 给客户灵活数据应用带来的束缚,让数据准备过程不再成为数据消费的瓶颈。

Kettle:是一款国外开源的ETL工具,纯java编写,可以在Windows、Linux、Unix上运行,数据抽取高效稳定。Kettle 中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出。

Informatica:是全球领先的数据管理软件提供商。

在如下Gartner魔力象限位于领导者地位:数据集成工具魔力象限、数据质量工具魔力象限、元数据管理解决方案魔力象限、主数据管理解决方案魔力象限、企业级集成平台即服务(EiPaaS)魔力象限。

Talend :是数据集成解决方案领域的领袖企业,为公共云和私有云以及本地环境提供一体化的数据集成平台。Talend的使命是致力于帮助客户优化数据,提高数据可靠性,把企业数据更快地转化为商业价值。

以此为使命,Talend的解决方案将数据从传统基础架构中解放出来,提高客户在业务中的洞察力,让客户更早实现业务价值。

DataX :是阿里巴巴集团内被广泛使用的离线数据同步工具 / 平台,实现包括 MySQL、Oracle、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、DRDS 等各种异构数据源之间高效的数据同步功能。开源地址:https://github.com/alibaba/DataX

2 、成本

软件成本包括多方面,主要包括软件产品, 售前培训, 售后咨询, 技术支持等。

开源产品本身是免费的,成本主要是培训和 咨询,所以成本会一直维持在一个较低水平。

商业产品本身价格很高,但是一般会提供几次免费的咨询或支持,所以采用商用软件最初成本很高,但是逐渐下降。

手工编码最初成本不高,主要是人力成本,但后期维护的工作量会越来越大。

3、适用场景

DataPipeline: 主要用于各类数据融合、数据交换场景,专为超大数据量、高度复杂的数据链路设计的灵活、可扩展的数据交换平台;

Kettle: 面向数据仓库建模传统ETL工具;

Informatica: 面向数据仓库建模传统ETL工具;

Talend:面向数据仓库建模传统ETL工具;

DataX :面向数据仓库建模传统ETL工具

4、使用方式

DataPipeline: 全流程图形化界面,应用端采用B/S架构,Cloud Native为云而生,所有 *** 作在浏览器内就可以完成,不需要额外的开发和生产发布;

Kettle: C/S客户端模式,开发和生产环境需要独立部署,任务的编写、调试、修改都在本地,需要发布到生产环境,线上生产环境没有界面,需要通过日志来调试、 debug,效率低,费时费力;

Informatica: C/S客户端模式,开发和生产环境需要独立部署,任务的编写、调试、修改都在本地,需要发布到生产环境;学习成本较高,一般需要受过专业培训的工程师才能使用;

Talend:C/S客户端模式,开发和生产环境需要独立部署,任务的编写、调试、修改都在本地,需要发布到生产环境;

DataX :DataX是以脚本的方式执行任务的,需要完全吃透源码才可以调用,学习成本高,没有图形开发化界面和监控界面,运维成本相对高

5、底层架构

DataPipeline: 分布式集群高可用架构,可以水平扩展到多节点支持超大数据量,架构容错性高,可以自动调节任务在节点之间分配,适用于大数据场景;

Kettle:主从结构非高可用,扩展性差,架构容错性低,不适用大数据场景;

Informatica: schema mapping非自动;可复制性比较差;更新换代不是很强,支持分布式部署;

Talend:支持分布式部署;

DataX :支持单机部署和集群部署两种方式

6、CDC机制

DataPipeline: 基于日志、基于时间戳和自增序列等多种方式可选;

Kettle:基于时间戳、触发器等;

Informatica: 基于日志、基于时间戳和自增序列等多种方式可选;

Talend:基于触发器、基于时间戳和自增序列等多种方式可选;

DataX :离线批处理

7、对数据库的影响

DataPipeline: 基于日志的采集方式对数据库无侵入性;

Kettle:对数据库表结构有要求,存在一定侵入性;

Informatica: 基于日志的采集方式对数据库无侵入性;

Talend:有侵入性;

DataX :通过sql select 采集数据,对数据源没有侵入性

8、自动断点续传

DataPipeline:支持;

Kettle:不支持;

Informatica:不支持;

Talend:不支持;

DataX :不支持

9、监控预警

DataPipeline:可视化的过程监控,提供多样化的图表,辅助运维,故障问题可实时预警;

Kettle:依赖日志定位故障问题,往往只能是后处理的方式,缺少过程预警;

Informatica:monitor可以看到报错信息,信息相对笼统,定位问题仍需依赖分析日志;

Talend:有问题预警,定位问题仍需依赖日志;

DataX :依赖工具日志定位故障问题,没有图形化运维界面和预警机制,需要自定义开发

10、数据清洗

DataPipeline:围绕数据质量做轻量清洗;

Kettle:围绕数据仓库的数据需求进行建模计算,清洗功能相对复杂,需要手动编程;

Informatica:支持复杂逻辑的清洗和转化;

Talend:支持复杂逻辑的清洗和转化;

DataX :需要根据自身清晰规则编写清洗脚本,进行调用(DataX3.0 提供的功能)

11、数据转换

DataPipeline:自动化的schema mapping;

Kettle:手动配置schema mapping;

Informatica:手动配置schema mapping;

Talend:手动配置schema mapping;

DataX :通过编写json脚本进行schema mapping映射

12、易用性、应用难度、是否需要开发

DataPipeline: 有非常容易使用的 GUI,具有丰富的可视化监控,易用性低,难度低,不需要开发;

Kettle: GUI+Coding,易用性低,难度高,需要开发;

Informatica: GUI+Coding,有GUI,但是要专门的训练,易用性低,难度高,需要开发;

Talend:GUI+Coding,有 GUI 图形界面但是以 Eclipse 的插件方式提供,易用性低,难度中,需要开发;

DataX:需要完全吃透源码才可以调用,学习成本高,没有图形开发化界面和监控界面,易用性低,难度高,需要开发

13、技能要求

DataPipeline: *** 作简单,无技术要求;

Kettle: ETL设计, SQL, 数据建模 ;

Informatica: ETL设计, SQL, 数据建模;

Talend:需要写Java;

DataX:需要写json脚本

14、数据实时性

DataPipeline:支持异构数据源的实时同步,速度非常快;

Kettle:不支持实时数据同步;

Informatica:支持实时,效率较低;

Talend:支持实时处理,需要购买高级版本,价格贵;

DataX :支持实时

15、技术支持

DataPipeline:本地化原厂技术支持;

Kettle:开源软件,需客户自行实施、维护;

Informatica:在美国,主要为第三方的实施和售后服务;

Talend:在美国,分为开源版和企业版,企业版可提供相应服务;

DataX:阿里开源代码,需要客户自动实施、开发、维护

文章为自己学习整理后的成果,如有错误的地方,欢迎提出已作出及时修正。

原文地址: https://www.jianshu.com/p/7aa55172c3e2

web服务产生的日志文件,需要进行日志收集并进行可视化展示,一般使用filebeat和logstash组合。

Logstash是具有实时收集日志功能,可以动态统一来自不同来源的数据,任何类型的事件都可以通过各种各样的输入,过滤功能和输出插件来丰富和转换。是一个重量级的服务,很占用内存,会影响到部署到本机器上的服务。

Filebeat是用于转发和采集日志数据的轻量级服务。能监视您指定的日志文件或位置,收集日志事件,并将它们转发到Logstash或elasticsearch (在 5.x 版本中,它也具备过滤的能力,但是还不及Logstash丰富)

如果对于日志不需要进行过滤分析的,可以直接使用filebeat

如果需要对日志进行过滤分析, 可以使用filebeat+Logstash最合适,如果单独使用Logstash,多台机都需部署Logstash,每台机消耗资源大,filebeat+Logstash相结合,每台机部署filebeat进行数据采集, 一台机部署Logstash作为中心进行接收数据处理以及存储到不同的地方,

Logstash

Filebeat

filebeat文档: https://www.elastic.co/guide/en/beats/filebeat/current/index.html

logstash文档: https://www.elastic.co/guide/en/logstash/7.3


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/6675498.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-26
下一篇2023-03-26

发表评论

登录后才能评论

评论列表(0条)

    保存