目录
1、其他
2、业务背景和目标
2.1 业务目标
2.2 核心痛点
3、技术选型
3.1 实时工具同步选型
3.2 OLAP数据库选型
3.3 候选技术路线对比
3.4 技术难点
3.5 技术选型推荐
3.5.1、推荐的技术路线
3.5.2 架构示意图
4 、可行性验证方案
4.1 测试用例设计
4.2 非功能性指标
5、 风险与应对策略
1、其他
2、业务背景和目标
支撑产品提出的全局搜索需求,需支持项目、任务单、任务、文档、图纸、表单、审批、知识、工具、用户 基本字段以及扩展字段的筛选,并支持关键字搜索功能。
由于数据筛选的字段可能来自不同的数据库(例如–任务的筛选字段有所属项目以及任务单),需要将来自不同模块的数据进行数据整合。
本文档主要专注于数据实时同步方案,主要有两个源端:Mysql、Dameng
整体方案大概如图所示:
2.1 业务目标
-
功能性需求:
- 支持多字段模糊搜索(响应时间≤500ms)
- 中文人名拼音搜索支持
- 数据实时性要求(秒级延迟)
- 同义词扩展搜索能力
2.非功能性需求:
- 响应时间:≤500ms
- 实时数据同步延迟 ≤ 10s(业务容忍阈值)。
- 系统可用性:≥99.9%
- 信创环境适配要求
2.2 核心痛点
-
现有系统瓶颈
-
MySQL模糊查询性能差(全表扫描)。
-
跨库(MySQL基础库 +MySQL业务库 )联合查询无法实现。
-
3、技术选型
3.1 实时工具同步选型
CloudCanal | 支持 | 离线/实时支持 | 有 | 支持 | 低 | 低,
|
|
| 操作简单 专注于数据库实时同步和增量数据迁移(CDC) |
|
RestCloud | 支持 | 离线/实时支持 | 有 | 支持 | 中 | 中,CPU:Intel 1.6G 4核或以上 内存:可用内存8G或以上(不包括操作系统等其他程序占用内存) 可用硬盘空间:40G或以上 |
|
| ETL能力强、组件多 ETL+CDC |
|
Flink CDC+Hadoop(HDFS)+Flink | 支持 | 支持 | 无 | 部分支持(Flink 支持) | 16 核CPU 24G 内存 | 无 |
| - 技术栈统一 - 扩展性强 | - 实施复杂度高 - 运维成本大 |
全量迁移速度(监听相同源库)-无ETL处理
CC | mysql | Doris | 1w/1-2s | 北京内网 |
RestCloud | mysql | Doris | 1w/600s | 北京内网 |
Flink CDC | mysql | Doris | 1w/4-5s | 北京内网 |
增量迁移速度(监听相同源库)-无ETL处理
CC | mysql | Doris | 1w/1s-2s | 北京内网 |
RestCloud | mysql | Doris | 1w/300s | 北京内网 |
Flink CDC | mysql | Doris | 1w/4-5s | 北京内网 |
结论:根据需求、复杂度、成本及其性能:选择CloudCanal 更加合适
3.2 OLAP数据库选型
Analytical Data store(分析数据存储选型)
ES | 支持 | 支持 | 支持 | 支持 | 需要使用DSL语言进行查询,不支持开发人员熟悉的sql语法 |
Doris | 不支持 | 支持(现在版本不支持倒排索/分词引,2.0 版本以上) | 不支持 | 支持 |
|
Hbase | 不支持 | 不支持 | 不支持 | 不支持 |
|
ClickHouse | 不支持 | 支持 | 不支持 | 支持 |
|
3.3 候选技术路线对比
大数据技术架构草图
2.1 基于CC工具实现数据同步,在Doris中进行物化视图操作
2.2 基于CC工具实现数据同步+ETL+Join
绿色代表:CC已经支持;紫色代表需要根据业务进行ETL进行处理;橘色代表我们合并之后的宽表。其中自定义代码最重要的点是选定事实表
基于CC+视图/物化视图操作 | 视图(无索引/不能添加分词索引) (同步/异步)物化视图-同步视图单表/异步视图实时性都是以小时/天为单位的 | 缺失 |
基于CC+ETL+Join(链表查询) | 源端为Dameng不支持JSONB格式/源端为Mysql Json类型转换不一致 | 缺失 |
3.4 技术难点
- 跨数据库实时同步:需处理Mysql/Dameng到Doris的异构数据转换
- 数据一致性保障:CDC过程中的断点续传与异常恢复机制
3.5 技术选型推荐
3.5.1、推荐的技术路线
采用CloudCanal实现实时同步+ETL处理+Join(链表查询)
推荐原因如下:
- 技术延续性:已有使用/部署经验
3.5.2 架构示意图
4 、可行性验证方案
4.1 测试用例设计
CC全量同步(10w数据) | 数据完整性/耗时 | <10秒完成 |
CC增量同步(1w数据) | 延迟时间/数据一致性 | 1-2秒 |
Doris搜索响应(110w数据) | 模糊搜索 |
|
故障恢复测试 | 断点续传能力 | 通过 |
4.2 非功能性指标
- 性能:搜索响应时间≤400ms(优于需求500ms)
- 稳定性:无数据丢失
5、 风险与应对策略
Doris版本安装(→v2.1.10) | 提前搭建测试环境验证 | - |
CC许可证到期(3个月) | 已确认可免费续期申请 | - |
拼音搜索实现复杂度 | 采用开源pinyin4j组件预处理 | - |
Mysql→ Doris json类型到目标端被更改为TEXT | 通过提前建表即可 | - |
Dameng 不支持JSONB同步 | 通过自定义代码实现 | - |
大量数据更新影响稳定性(在 1 对 N 的数据关系中,若“1”端数据发生变化,可能导致宽表数据大规模更新,对服务稳定性构成挑战) | 可以利用结合join连表 | - |