ETL & 流批一体化框架 bboss v7.1.3 发布

数据采集 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 功能改进

  1. 为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

  1. 优化停止db数据源机制,修复当停止数据源并移除数据源信息时,没有执行停止数据源操作

  2. 处理sqlite数据库创建statement兼容性问题

  3. Clickhouse-native-jdbc驱动兼容性问题修复处理

  4. 优化jvm推出机制:默认关闭jvm退出时注销ioc容器及相关资源 在启用自动关闭的情况下,才可以在jvm退出时自动关闭和释放资源,否则需要手动调用ShutdownUtil.shutdown()方法释放资源,启用自动释放资源方法:

    jvm命令行参数
        -DenableShutdownHook=true
    环境变量
        enableShutdownHook=true
    默认关闭:
        enableShutdownHook=false
  5. 文件输出插件文件序号在kafka、mysql cdc、MongoDB cdc等场景下序号滚动机制完善

  6. 完善持久层报错日志:数据源不存在时给出友好的提示信息

  7. 优化jackson对localdatetime类型的处理,如果没有引入jackson-datatype-jsr310插件,忽略加载localdatetime处理插件异常

  8. 优化基于消息流处理事件上下文重置机制

  9. 去重兼容老版本的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

猜你喜欢

转载自www.oschina.net/news/274695/bboss-7-1-3-released