一款高性能的实时数据统计框架。
- 性能卓越,本地环境测试,统计速度:10W+,每秒
- 无需编码,简单配置即可支持统计不同的数据
- 可实时观察统计效率,监控界面:http://localhost:9999/
- 支持在监控界面停止统计
- 安装kafka环境
- 运行produce-kafka-data-test初始化测试数据
- 更改blackHode项目配置(mysql、kafka)
- 运行blackHode项目,打开监控界面:http://localhost:9999/ 观测统计速度,预计10分钟后统计速度达到10W+/秒
- spring-boot
- fastjson
- mybatis-plus
- mysql-connector-java
- druid
- disruptor
- spring-kafka
- vertx-core
- spring-boot-starter-data-redis
[{
/* 数据库名称 */
"dbName": "statistics",
/* 数据表名称 */
"tableName": "ad_space_report",
/* 数据表备注 */
"tableComment": "广告位报表",
/* 分表类型:YEAR(按年分表)、MONTH(按月分表)、NONE(不分表) */
"tableShardingType": "MONTH",
/* 数据表字段列表 */
"columnList": [{
/* 列名 */
"name": "area",
/* 数据类型:CHAR、VARCHAR、TEXT、TIMESTAMP、DATETIME、DATE、TIME、INT、FLOAT*/
"type": "VARCHAR",
/* 长度 */
"length": 10,
/* 列备注 */
"comment": "区域",
/* 是否是自增列,自增列必须是主键 */
"autoIncrement": false,
/* 是否是主键列 */
"primaryKey": true,
/* 是否不为空 */
"notNull":true,
/* 默认值,无默认值可不填 */
"defaultValue": ""
}]
}]
[
{
/* 数据表名 */
"tableName": "ad_space_report",
/* 时间列 */
"dateTimeColumn": {
/* 列名 */
"columnName": "_current_date",
/* 时间格式化字符串 */
"dateFormat": "yyyy-MM-dd",
/* 字段对应的数据源,行数据的下标 */
"index": 0
},
/* 主键列列表 */
"primaryKeyList": [
{
/* 列名 */
"columnName": "_current_date",
/* 字段对应的数据源,行数据的下标 */
"index": 0
}
],
/* 数量统计列表 */
"countColumnList": [
{
/* 列名 */
"columnName": "pv",
/* 字段对应的数据源,行数据的下标 */
"index": 4
}
],
/* uv统计列表 */
"uvColumnList": [
{
/* 列名 */
"columnName": "uv",
/* 字段对应的数据源,行数据的下标 */
"index": 6
}
]
}
]
- 更改blackHode项目配置(mysql、kafka、redis)
- redis需要单独分配一个db
- 更改数据表配置:configure/tableConfig.json
- 更新数据源&数据表关系配置:configure/sourceDataMapper.json
- 运行blackHode项目
- 停止统计时防止数据丢失
- 支持UV统计
- 支持故障恢复
- 支持pulsar
- 支持分布式统计
灵感来自 @lilonglong