Skip to content

数据仓(yidun-mplatform-clickhouse) ​

判定产生的海量明细在这里入仓,看板与报表从这里取数。读写分离:mq 只写,facade 只读。

1. 业务定位 ​

承担两个方向:

方向链路
明细入库各业务 Kafka 消息 → dwd_* 明细表
统计出库ads_*_view_all 预聚合 / dwd_*_all 明细 → Dubbo 查询接口

消费的消息包括名单命中(Yidun_Mp_List_Hit)、规则命中(Yidun_Mp_Rule_Hit)、策略命中、内容安全统计、智能风控/反打金/工作室/处置明细等。

2. 架构与模块划分 ​

模块类型职责
common、domainjar错误码、操作符、风险等级常量、DO
service/basejarDAO + Manager + MyBatis mapper(ClickHouse SQL)
service/businessjar业务编排
mqapp各 *SinkClickHouseConsumer 明细入库
facade/dubbo-api + dubbo-providerDubbo统计查询契约与实现

3. 核心链路 ​

入库失败由 *RecordRecover 负责重试,避免单条坏数据阻塞批次。

4. 查询契约 ​

契约场景
ListHitFacade名单命中统计
RuleHitFacade规则命中统计
ReportStatFacade举报统计
DisposeInfoStatFacade处置统计
AntiGoldClusterStatFacade反打金团伙统计
AntispamDataStatFacade内容安全统计
IRiskCheckDetailStatFacade智能风控检测明细
IRiskDashboard*StatFacade智能风控看板
IRiskStudioResultStatFacade工作室识别统计
IRiskPiracyStatFacade盗版统计

5. 数据源划分 ​

ClickHouse 分三套数据源,由 clickhouse.datasource.* 开关装配:

数据源承载
iRisk智能风控(检测明细、看板、工作室、盗版)
antispam内容安全
mplatform平台侧命中、举报、处置、反打金

库表约定:

  • 写侧:本地明细表 dwd_*。
  • 读侧:dwd_*_all(明细查询)与 ads_*_view_all(统计看板)。
  • 建表 DDL 不在本仓库,由数仓侧维护。

6. 设计模式与扩展点 ​

扩展点位置说明
新明细类型mq 下新增 *SinkClickHouseConsumer + Manager + Dao接入新 topic
失败恢复*RecordRecover单条失败重试
新查询契约facade/dubbo-api 新增 Facade + Provider对外提供新统计
分页换算Provider 层 offset/page 转换统一分页语义

7. 上下游依赖 ​

方向模块说明
上游checker-rule、checker-namelist、mplatform-strategy、intelligent-risk、mplatform-eventKafka 明细来源
下游intelligent-risk看板、处置、反打金统计
下游checker-rule、checker-namelist命中统计调度

8. 工程约束与变更红线 ​

  • 读写分离不可打破:mq 只写、facade 只读,混用会导致数据源竞争。
  • 批量写入是硬要求:逐条 insert 在 ClickHouse 上会写放大。
  • 看板口径由表决定:查询 ads_*_view_all 与 dwd_* 的结果天然不同,改表等于改口径。
  • DDL 变更走数仓:本仓库没有建表语句,私自加字段会在线上失败。
  • 消费失败必须可重放:依赖 *RecordRecover,不要吞异常。

9. 关键代码索引 ​

主题路径说明
名单命中入库yidun-mplatform-clickhouse/mq/src/main/java/.../consumer/ListHitSinkClickHouseConsumer.javaKafka → dwd
规则命中入库yidun-mplatform-clickhouse/mq/src/main/java/.../consumer/RuleHitSinkClickHouseConsumer.javaKafka → dwd
查询契约yidun-mplatform-clickhouse/facade/dubbo-api/src/main/java/.../api/ListHitFacade.java名单命中统计
查询实现yidun-mplatform-clickhouse/facade/dubbo-provider/src/main/java/.../provider/ListHitProvider.javaProvider 层
数据源配置yidun-mplatform-clickhouse/service/base/src/main/java/.../component/ch/三套数据源
SQL 映射yidun-mplatform-clickhouse/service/base/src/main/resources/mybatis/mappers/ClickHouse SQL

10. 排查要点 ​

现象定位结论
看板数据为 0查上游是否投递 topic判定被短路,明细根本没产生
明细有、看板少看预聚合表刷新ads_*_view_all 依赖数仓刷新
某段时间数据缺失看 Kafka 堆积与消费位点消费中断或 *RecordRecover 积压
相同查询结果不一致确认查的是 dwd_* 还是 ads_*_view_all表不同,口径不同
查询超时看时间范围与分页大范围扫明细表,应走预聚合
最近更新

内部资料,请勿外传