数据采集 ETL & 流批一体化框架 bboss v7.1.3 发布 --- 高效、稳定、快速、安全
本次版本最大亮点:从持久层和ETL两个方面优化对Clickhouse的支持,新增Clickhouse客户端负载均衡机制
bboss 是一个基于开源协议 Apache License 发布的开源项目,由开源团队 bboss 运维,主要由以下三部分构成:
-
Elasticsearch Highlevel Java Restclient , 一个高性能高兼容性的 Elasticsearch/Opensearch java 客户端框架
-
数据采集同步 ETL ,一个基于 java 语言实现数据采集作业的强大 ETL 工具,提供丰富的输入插件和输出插件,可以基于插件规范轻松扩展新的输入插件和输出插件
-
流批一体化计算框架,提供灵活的数据指标统计计算流批一体化处理功能的简易框架,可以结合数据采集同步 ETL 工具,实现数据流处理和批处理计算,亦可以独立使用;计算结果可以保存到各种关系数据库、分布式数据仓库 Elasticsearch、Clickhouse 等,特别适用于数据体量和规模不大的企业级数据分析计算场景,具有成本低、见效快、易运维等特点,助力企业降本增效。
项目源码地址参考:源码下载和构建
快速上手:https://esdoc.bbossgroups.com/#/quickstart
v7.1.3 功能改进
-
为Clickhouse数据源增加负载均衡机制,解决Clickhouse-native-jdbc驱动只有容灾功能而没有负载均衡功能的缺陷,使用方法如下:
在jdbc url地址后面增加b.balance和b.enableBalance参数
jdbc:clickhouse://101.13.6.4:29000,101.13.6.7:29000,101.13.6.6:29000/visualops?b.balance=roundbin&b.enableBalance=true
b.enableBalance为true时启用负载均衡机制,并具备原有容灾功能,否则只具备容灾功能
b.balance 指定负载均衡算法,目前支持random(随机算法,不公平机制)和
roundbin(轮询算法,公平机制)两种算法,默认random算法
另外也可以在DBConf上进行设置,例如:
BConf tempConf = new DBConf(); tempConf.setPoolname(ds.getDbname()); tempConf.setDriver(ds.getDbdriver()); tempConf.setJdbcurl( ds.getDburl()); tempConf.setUsername(ds.getDbuser()); tempConf.setPassword(ds.getDbpassword()); tempConf.setValidationQuery(ds.getValidationQuery()); //tempConf.setTxIsolationLevel("READ_COMMITTED"); tempConf.setJndiName("jndi-"+ds.getDbname()); PropertiesContainer propertiesContainer = PropertiesUtil.getPropertiesContainer(); int initialConnections = propertiesContainer.getIntProperty("initialConnections",5); tempConf.setInitialConnections(initialConnections); int minimumSize = propertiesContainer.getIntProperty("minimumSize",5); tempConf.setMinimumSize(minimumSize); int maximumSize = propertiesContainer.getIntProperty("maximumSize",10); tempConf.setMaximumSize(maximumSize); tempConf.setUsepool(true); tempConf.setExternal(false); tempConf.setEncryptdbinfo(false); boolean showsql = propertiesContainer.getBooleanProperty("showsql",true); tempConf.setShowsql(showsql); tempConf.setQueryfetchsize(null); tempConf.setEnableBalance(true); tempConf.setBalance(DBConf.BALANCE_RANDOM); return SQLManager.startPool(tempConf);
持久层使用案例:
https://gitee.com/bboss/bestpractice/blob/master/persistent/src/com/frameworkset/sqlexecutor/TestClickHouseDB.java
ETL DB输出插件案例(DB输入插件类似):
https://gitee.com/bboss/bboss-datatran-demo/blob/main/src/main/java/org/frameworkset/elasticsearch/imp/clickhouse/Db2Clickhousedemo.java
-
优化停止db数据源机制,修复当停止数据源并移除数据源信息时,没有执行停止数据源操作
-
处理sqlite数据库创建statement兼容性问题
-
Clickhouse-native-jdbc驱动兼容性问题修复处理
-
优化jvm推出机制:默认关闭jvm退出时注销ioc容器及相关资源 在启用自动关闭的情况下,才可以在jvm退出时自动关闭和释放资源,否则需要手动调用ShutdownUtil.shutdown()方法释放资源,启用自动释放资源方法:
jvm命令行参数 -DenableShutdownHook=true 环境变量 enableShutdownHook=true 默认关闭: enableShutdownHook=false
-
文件输出插件文件序号在kafka、mysql cdc、MongoDB cdc等场景下序号滚动机制完善
-
完善持久层报错日志:数据源不存在时给出友好的提示信息
-
优化jackson对localdatetime类型的处理,如果没有引入jackson-datatype-jsr310插件,忽略加载localdatetime处理插件异常
-
优化基于消息流处理事件上下文重置机制
-
去重兼容老版本的maven坐标,兼容版本对应关系:
老版本坐标 | 新版本坐标 |
---|---|
bboss-elasticsearch-rest-file2ftp | bboss-datatran-fileftp |
bboss-elasticsearch-rest-file | bboss-datatran-fileftp |
bboss-elasticsearch-rest-hbase | bboss-datatran-hbase |
bboss-elasticsearch-rest-jdbc | bboss-datatran-jdbc |
bboss-elasticsearch-rest-kafka1x | bboss-datatran-kafka1x |
bboss-elasticsearch-rest-kafka2x | bboss-datatran-kafka2x |
bboss-elasticsearch-rest-mongodb | bboss-datatran-mongodb |
参考上面的对应关系将老版本迁移到新版本的坐标即可
导入和使用 bboss
bboss 版本最新版本号从以下文档章节【1.1 在工程中导入 bboss maven 坐标】获取:
https://esdoc.bbossgroups.com/#/db-es-tool
bboss ETL 插件使用指南
https://esdoc.bbossgroups.com/#/datatran-plugins
bboss 详细介绍文档
https://esdoc.bbossgroups.com/#/README
bboss 实战视频
Elasticsearch Bboss Stream ETL 介绍视频
实时采集 Mysql binlog 增删改数据视频教程
bboss 流批一体化计算入门教程
Elasticsearch 导出 Excel 文件,按记录数切割 Excel 文件,解决单个文件导出数量过大问题
通用数据库管理工具--支持关系数据库、Clickhouse、doris等数据库管理
https://doc.bbossgroups.com/#/tools
还没有评论,来说两句吧...