直击 | 认识和了解 bboss
1. BBoss 是什么
bboss 是一个基于开源协议 Apache License 发布的开源项目,由开源团队bboss运维,主要由以下三部分构成:
Elasticsearch Highlevel Java Restclient , 一个高性能高兼容性的 Elasticsearch/Opensearch java 客户端框架
数据采集同步 ETL ,一个基于 java 语言实现数据采集作业的强大 ETL 工具,提供丰富的输入插件和输出插件,可以基于插件规范轻松扩展新的输入插件和输出插件
流批一体化计算框架,提供灵活的数据指标统计计算流批一体化处理功能的简易框架,可以结合数据采集同步 ETL 工具,实现数据流处理和批处理计算,亦可以独立使用;计算结果可以保存到各种关系数据库、分布式数据仓库 Elasticsearch、Clickhouse 等,特别适用于数据体量和规模不大的企业级数据分析计算场景,具有成本低、见效快、易运维等特点,助力企业降本增效。
项目源码地址参考:源码下载和构建,下面分别介绍各部分。
1.1 高性能 Elasticsearch Highlevel Java Restclient
bboss Elasticsearch Highlevel Java Restclient是一套基于 query dsl 语法操作和访问分布式搜索引擎 Elasticsearch/Opensearch 的 o/r mapping 高性能开发库
1.1.1 主要功能特色
学习成本低,上手快,代码简洁,安全高效,客户端负载容灾,兼容性好,易于集成
ORM 和 DSL 二者兼顾,类 mybatis 方式操作 ElasticSearch,提供丰富的开发API和开发Demo
采用XML文件配置和管理检索dsl脚本,简洁而直观;提供丰富的逻辑判断语法,在 dsl 脚本中可以使用变量、脚本片段、foreach 循环、逻辑判断、注释;基于可扩展DSL配置管理机制可以非常方便地实现数据库、redis 等方式管理 dsl;配置管理的 dsl 语句支持在线修改、自动热加载,开发和调试非常方便
提供 Elasticsearch 集群节点自动负载均衡和容灾恢复机制,Elasticsearch 节点断连恢复后可自动重连,高效可靠
提供 Elasticsearch 集群节点自动发现机制:自动发现 Elasticsearch 服务端节点增加和下线操作并变更客户端集群可用节点地址清单
提供http 连接池管理功能,提供精细化的 http 连接池参数配置管理
支持在应用中访问和操作多个Elasticsearch集群,每个 Elasticsearch 集群的版本可以不同
提供高效的BulkProcessor处理机制
提供按时间日期ES历史数据清理工具
1.1.2 典型应用场景
1.2 数据采集同步 ETL 以及流批一体化计算框架
数据采集同步ETL以及流批一体化计算框架,基于灵活的插件体系结构,提供数据采集、数据清洗转换处理和数据入库以及数据指标统计计算流批一体化处理功能,提供丰富的输入插件和输出插件,可以基于插件规范轻松扩展新的输入插件和输出插件:
1.2.1 数据采集 ETL
数据采集同步ETL以及流批一体化计算作业分为作业配置态和运行态,作业可以独立调度运行,亦可以嵌入到应用中运行,同时也可以和各种主流的调度引擎(quartz、xxl-job 等)结合运行:
通过 bboss 可以灵活定制具备各种功能的数据采集统计作业
只采集和处理数据作业
采集和处理数据、指标统计计算混合作业--通过 ImportBuilder 注册 ETLMetrics+其他数据源 Output 插件结合实现
采集数据只做指标统计计算作业--通过指标插件 MetricsOutputConfig 实现
4)可以在应用中单独集成和使用指标统计功能
1.2.2 数据采集特点
bboss 支持全量和增量数据采集,增量数据采集默认基于 sqlite 数据库管理增量采集状态,可以配置到其他关系数据库管理增量采集状态,提供对多种不同数据来源增量采集机制:
基于数字字段增量采集:各种关系数据库、Elasticsearch、MongoDB、Clickhouse 等
基于时间字段增量采集:各种关系数据库、Elasticsearch、MongoDB、Clickhouse、HBase 等,基于时间增量还可以设置一个截止时间偏移量,比如采集到当前时间前十秒的增量数据,避免漏数据
基于文件内容位置偏移量:文本文件、日志文件基于采集位置偏移量做增量
基于 ftp 文件增量采集:基于文件级别,下载采集完的文件就不会再采集
支持mysql binlog,实现 mysql 增删改实时增量数据采集
1.2.3 流批一体化计算特点
支持时间维度和非时间维度指标计算
时间维度指标计算:支持指定统计滑动时间窗口,支持设定时间统计窗口类型,在流处理或者离线处理过程中,对于数据到来的先后顺序没有严格要求,乱序数据不影响最终指标计算结果
一个指标支持多个维度和多个度量字段计算,多个维度字段值构造成指标的唯一指标 key,支持有限基数 key 和无限基数 key 指标计算(维度字段组合形成的唯一指标 key 的个数是有限的就是有限基数,个数是无限的就是无限基数)
一个作业可以支持多种类型的指标,每种类型指标支持多个指标计算
5)支持准实时指标统计计算和离线指标统计计算
6)可以从不同的数据输入来源获取需要统计的指标数据,亦可以将指标计算结果保存到各种不同的目标数据源
1.2.4 典型应用案例---互联网用户行为分析监控
2. 快速开始 bboss
2.1 Elasticsearch Highlevel Java Restclient
https://esdoc.bbossgroups.com/#/quickstart
https://esdoc.bbossgroups.com/#/document-crud
2.2 数据采集同步 ETL 以及流批一体化计算框架
https://esdoc.bbossgroups.com/#/db-es-tool
https://esdoc.bbossgroups.com/#/etl-metrics
3. 源码下载和构建
源码工程地址,欢迎大家 star 和支持我们:
https://gitee.com/bboss/bboss-elastic
https://gitee.com/bboss/bboss-elastic-tran
从源码构建
https://esdoc.bbossgroups.com/#/bboss-build
4.官网和文档地址
官网:https://www.bbossgroups.com/
文档:
https://esdoc.bbossgroups.com/
5. BBoss Demo
https://www.bbossgroups.com/sources-demos.html
6. 视频教程
bboss cdc之实时采集Mysql binlog增删改数据教程
7. bboss 兼容性
作为 Elasticsearch 兼容性最好的 java 客户端和数据采集 &流批一体化计算工具,bboss 各版本对 Elasticsearch、Spring boot 兼容性说明如下:
jdk 兼容性:jdk 1.8+
8. 联系我们
Elasticsearch 技术交流群:21220580,166471282
Elasticsearch 微信公众号:
评论