elasticsearch-datatranElasticsearch 高效数据同步工具
bboss-datatran --- 简化版Flink
bboss-datatran由 bboss 开源的数据采集&流批一体化工具,提供数据采集、数据清洗转换处理和数据入库以及数据指标统计计算流批一体化处理功能。
bboss-datatran 数据同步作业采用java语言开发,小巧而精致,同时又可以采用java提供的所有功能和现有组件框架,随心所欲地处理和加工海量存量数据、实时增量数据,实现流批一体数据处理功能;可以根据数据规模及同步性能要求,按需配置和调整数据采集同步作业所需内存、工作线程、线程队列大小;可以将作业独立运行,亦可以将作业嵌入基于java开发的各种应用汇总运行;通过作业执行控制API、任务状态监控metircs api,可以定制化开发一些符合自己要求的同步作业任务监控管理功能,提供作业启动、暂停(pause)、继续(resume)、停止控制功能,轻松定制一款属于自己的ETL管理工具。
工具可以灵活定制具备各种功能的数据采集统计作业
1) 只采集和处理数据作业
2) 采集和处理数据、指标统计计算混合作业
3) 采集数据只做指标统计计算作业
指标计算特点
1) 支持时间维度和非时间维度指标计算
2) 时间维度指标计算:支持指定统计时间窗口,单位到分钟级别
3) 一个指标支持多个维度和多个度量字段计算,多个维度字段值构造成指标的唯一指标key,支持有限基数key和无限基数key指标计算
4) 一个作业可以支持多种类型的指标,每种类型指标支持多个指标计算
5)支持准实时指标统计计算和离线指标统计计算
6)可以从不同的数据输入来源获取需要统计的指标数据,亦可以将指标计算结果保存到各种不同的目标数据源
增量数据采集,默认基于sqlite数据库管理增量采集状态,可以配置到其他关系数据库管理增量采集状态,提供对多种不同数据来源增量采集机制:
1) 基于数字字段增量采集:各种关系数据库、Elasticsearch、MongoDB、Clickhouse等
2) 基于时间字段增量采集:各种关系数据库、Elasticsearch、MongoDB、Clickhouse、HBase等,基于时间增量还可以设置一个截止时间偏移量,比如采集到当前时间前十秒的增量数据,避免漏数据,支持纳秒级精度数据同步
3) 基于文件内容位置偏移量:文本文件、日志文件基于采集位置偏移量做增量
4) 基于ftp文件增量采集:基于文件级别,下载采集完的文件就不会再采集
5)支持mysql binlog,实现mysql增删改实时增量数据采集,支持master/slave监听、binlog日志文件直接采集两种模式
可以把 bboss-datatran看成是一个简单的、轻量级的数据同步框架,亦可以把他当做一个小组件,只需导入一个maven坐标,参考提供的一系列案例,就可以轻松愉快地开发出一个非常棒的数据采集、加工、入库、分发、上传的、具备增量状态管理功能的数据采集同步作业,同时还可以在idea、eclipse中进行debug调测,通过一些错误回调处理机制,可以非常方便地洞悉同步过程中的各种数据问题、处理错误和异常;依赖jdk环境,无需额外安装其他工具环境,就可以将bboss数据采集同步作业跑起来。
如果您还在:
- 苦于logstash、flume、filebeat之类的开源工具无法满足复杂的、海量数据自定义加工处理场景;
- 苦于无法调用企业现有服务和库来处理加工数据;
- 苦于因项目投入有限、进度紧,急需一款功能强大、上手快、实施简单的数据交换工具
- 苦于寻求数据采集和流批一体数据处理和指标统计计算于一体的数据处理计算框架
那么bboss-datatran将是一个不错的选择。
文件输入和输出插件:支持大量文件并行采集、增量/全量采集,快速、稳定、高效
采用标准的输入输出异步管道来处理数据
案例大全
https://esdoc.bbossgroups.com/#/bboss-datasyn-demo
功能特点
1.支持多种数据源之间的数据同步
2.支持多种数据导入方式
- 批量数据导入
- 批量数据多线程并行导入
- 定时全量(串行/并行)数据导入
- 定时增量(串行/并行)数据导入
3.支持的数据库和消息中间件类型
数据库: mysql,maridb,postgress,oracle ,sqlserver,db2,tidb,hive,clickhouse,mongodb、HBase、elasticsearch、达梦等
消息中间件:kafka 1x,kafka 2x
4.Elasticsearch版本兼容性
Elasticsearch 1.x,2.x,5.x,6.x,7.x,8.x+
5.支持海量PB级数据同步导入Elasticsearch
6.支持将ip转换为对应的运营商/省份城市/经纬度坐标位置信息
7.支持设置数据bulk导入任务结果处理回调函数,对每次bulk任务的结果进行成功和失败反馈,然后针对失败的bulk任务通过error和exception方法进行相应处理
8.提供详细的数据同步任务监控指标,可监控作业任务处理总记录数、成功记录数、Ignore记录数、失败记录数,支持自行将任务监控指标数据进行存储或者转发到kafka
9.支持多种定时任务执行引擎
- jdk timer (内置)
- quartz
- xxl-job分布式调度引擎,基于分片调度机制实现海量数据快速同步能力
10.支持两种作业运行方式
- 嵌入到应用中运行,基于quartz和jdk timer调度的作业都可以运行在这种模式下,参考文档:spring boot运行案例
- 独立发布包运行,基于quartz和xxl-job,jdk timer调度的作业都可以运行在这种模式下,参考文档:作业发布
11.基于java语言开发和发布数据同步作业
12.提供了基于gradle管理的作业开发模板工程,以方便大家快速构建和发布自己的数据同步作业:
https://gitee.com/bboss/bboss-datatran-demo
总之bboss-datatran是一款高度灵活的数据交换工具,基于bboss-datatran可以快速实现开发高效而强大的数据同步作业,以及构建在其上的数据交换产品。