高效实时数据同步方案:秒级响应多字段搜索

目录

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 业务目标

  1. 功能性需求:

    1. 支持多字段模糊搜索(响应时间≤500ms)
    2. 中文人名拼音搜索支持
    3. 数据实时性要求(秒级延迟)
    4. 同义词扩展搜索能力

    2.非功能性需求:

    • 响应时间:≤500ms
    • 实时数据同步延迟 ≤ 10s(业务容忍阈值)。
    • 系统可用性:≥99.9%
    • 信创环境适配要求

2.2 核心痛点

  • 现有系统瓶颈

    • MySQL模糊查询性能差(全表扫描)。

    • 跨库(MySQL基础库 +MySQL业务库 )联合查询无法实现。

3、技术选型

3.1 实时工具同步选型

CloudCanal支持离线/实时支持支持低,
  • 2 核 CPU
  • 6 GB 内存
  • CC时间限制3个月,到期免费申请
  • 流程数为5个
  • 全量:1w/1-2s
 
  • 增量:1w/1-2s

操作简单

专注于数据库实时同步和增量数据迁移(CDC)

  • 可视化ETL能力不强 
  • Dameng 不支持JSONB格式

RestCloud支持离线/实时支持支持中,CPU:Intel 1.6G 4核或以上
内存:可用内存8G或以上(不包括操作系统等其他程序占用内存)
可用硬盘空间:40G或以上
  • 限制30个流程
  • 无时间限制
  • 全 量:1w/600s
 
  • 增量:1w/300s

ETL能力强、组件多

ETL+CDC

  • 步骤较为复杂
  • 同步速度较慢
  • Dameng 支持不友好
  • 个人在使用上功能成熟度不够(例如10w数据量全量同步有问题,需要手动处理,再次同步)

Flink CDC+Hadoop(HDFS)+Flink支持支持部分支持(Flink 支持)

16 核CPU

24G 内存

  • 全量:1w/4-5s
  • 增量:1w/4-5s
- 技术栈统一
- 扩展性强
- 实施复杂度高
- 运维成本大

全量迁移速度(监听相同源库)-无ETL处理

CCmysqlDoris1w/1-2s北京内网
RestCloudmysqlDoris1w/600s北京内网
Flink CDCmysqlDoris1w/4-5s北京内网

增量迁移速度(监听相同源库)-无ETL处理

CCmysqlDoris1w/1s-2s北京内网
RestCloudmysqlDoris1w/300s北京内网
Flink CDCmysqlDoris1w/4-5s北京内网

结论:根据需求、复杂度、成本及其性能:选择CloudCanal 更加合适

3.2 OLAP数据库选型

Analytical Data store(分析数据存储选型)

ES支持支持支持支持

需要使用DSL语言进行查询,不支持开发人员熟悉的sql语法

Doris不支持

支持(现在版本不支持倒排索/分词引,2.0 版本以上)

不支持支持

  • 拼音额外自己处理(pinyin4库)
  • 同义词额外处理(向量数据库)
Hbase不支持不支持不支持不支持
  • 仅适合 KV 查询
  • 不支持join

ClickHouse不支持支持不支持支持
  • 分词功能弱;
  • 实时更新性能差

3.3 候选技术路线对比

大数据技术架构草图

2.1 基于CC工具实现数据同步,在Doris中进行物化视图操作

2.2 基于CC工具实现数据同步+ETL+Join

         

绿色代表:CC已经支持;紫色代表需要根据业务进行ETL进行处理;橘色代表我们合并之后的宽表。其中自定义代码最重要的点是选定事实表

基于CC+视图/物化视图操作

视图(无索引/不能添加分词索引)

(同步/异步)物化视图-同步视图单表/异步视图实时性都是以小时/天为单位的

缺失
基于CC+ETL+Join(链表查询)源端为Dameng不支持JSONB格式/源端为Mysql Json类型转换不一致缺失

3.4 技术难点

  1. 跨数据库实时同步:需处理Mysql/Dameng到Doris的异构数据转换
  2. 数据一致性保障:CDC过程中的断点续传与异常恢复机制

3.5 技术选型推荐

     3.5.1、推荐的技术路线

      采用CloudCanal实现实时同步+ETL处理+Join(链表查询)

       推荐原因如下:

  1. 技术延续性:已有使用/部署经验
     3.5.2 架构示意图

      

      

4 、可行性验证方案​

​4.1 测试用例设计​

CC全量同步(10w数据)数据完整性/耗时<10秒完成
CC增量同步(1w数据)延迟时间/数据一致性1-2秒

Doris搜索响应(110w数据)

模糊搜索
  • 单表查询    ≤500ms(db查询100ms左右;应用程序400ms)
  • 和cbim_user(3.5w)进行join(db查询103ms左右;)
故障恢复测试断点续传能力通过

​4.2 非功能性指标​

  • 性能:搜索响应时间≤400ms(优于需求500ms)
  • 稳定性:无数据丢失


​​5、 风险与应对策略​​​

Doris版本安装(→v2.1.10)提前搭建测试环境验证-
CC许可证到期(3个月)已确认可免费续期申请-
拼音搜索实现复杂度采用开源pinyin4j组件预处理-
Mysql→ Doris json类型到目标端被更改为TEXT通过提前建表即可-
Dameng 不支持JSONB同步通过自定义代码实现-
大量数据更新影响稳定性(在 1 对 N 的数据关系中,若“1”端数据发生变化,可能导致宽表数据大规模更新,对服务稳定性构成挑战)可以利用结合join连表-

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/93962.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/93962.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

面试问题详解七:Qt 信号与槽 + QML 的结合详解

在现代 Qt 开发中&#xff0c;QML&#xff08;Qt Quick&#xff09;负责 UI 层&#xff0c;C 负责逻辑层或后端服务层 是一种非常流行的架构方式。 这一模式下&#xff0c;信号与槽机制在 QML 与 C 间的前后端通信中扮演桥梁角色&#xff0c;是实现数据驱动界面更新、事件响应、…

孔夫子旧书网 API 实战:古籍与二手书数据获取及接口调用方案

孔夫子旧书网作为国内知名的古籍、二手书交易平台&#xff0c;其商品数据对于图书收藏、学术研究及二手书电商系统具有重要价值。本文将详细介绍孔夫子平台接口的调用方法&#xff0c;涵盖认证机制、搜索参数配置、数据解析及反爬策略&#xff0c;并提供可直接使用的 Python 代…

文件包含的学习笔记

面试问题 1&#xff0c;任意文件读取&#xff0c;到底读什么文件&#xff0c;有什么危害 权限是www 只能读第一个&#xff0c;读这个没用&#xff0c;密码在/etc/shadow中 其它没有权限 my.cnf mysql密码看不了 但是可以看见日志文件的目录 sql注入时&#xff0c;你有注…

Linux 软件包安装和管理的相关操作及使用总结(未完成)

一、基础知识1、软件包分类源码包&#xff08;Source Package&#xff09;&#xff1a;包含软件的源代码文件、编译指令和配置文件。需要用户自行编译安装&#xff0c;过程相对复杂&#xff0c;但灵活性高&#xff0c;可以定制安装选项。文件格式通常为.tar.gz、.tar.bz2等压缩…

【开发指南】飞凌i.MX9352核心板开发过程中的常见问题及排查思路

飞凌嵌入式作为NXP金牌合作伙伴&#xff0c;已基于i.MX系列应用处理器推出了多款嵌入式主控产品&#xff0c;除了最新发布的i.MX95xx系列核心板外&#xff0c;同为i.MX9系的i.MX93xx系列核心板也已上市多年并获得了众多客户的认可和选择。在长期的技术支持服务过程中&#xff0…

Windows应急响应一般思路(二)

进程排查 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动&#xff0c;是系统进行资源分配和调度的基本单位&#xff0c;是操作系统结构的基础 无论是在Windows系统还是Linux系统中&#xff0c;主机在感染恶意程序后&#xff0c;恶意程序都会启动相应的进程&am…

FFmpeg03:多媒体文件处理基础

日志系统 #include <libavutil/log.h>av_log_set_level(AV_LOG_DEBUG)av_log(NULL, AV_LOG_INFO, “…%s\n”, op) 常用日志级别 AV_LOG_ERROR AV_LOG_WARNING AV_LOG_INFO Demo log.cpp #include <iostream> extern "C" { #include <libavutil/log.h…

【每天一个知识点】AIOps 与自动化管理

一、AIOps 的内涵AIOps&#xff08;Artificial Intelligence for IT Operations&#xff09;&#xff1a;指将人工智能、大数据分析和机器学习技术应用于 IT 运维管理中。主要目标是&#xff1a;利用智能算法对云平台、网络、应用和日志等海量运维数据进行实时分析&#xff0c;…

ios使用saveVideoToPhotosAlbum 保存视频失败提示 invalid video

ios使用saveVideoToPhotosAlbum 保存视频失败提示 invalid video 解决办法 iOS 上对保存到相册的视频存在某种格式和分辨率上的限制&#xff0c;建议先自查看下视频生成的参数&#xff0c;可以先试试苹果自带浏览器 safari 上能否播放该视频。 如果不能播放&#xff0c;证明 io…

Vue基础(③父子组件)

房子&#xff08;父组件&#xff09;包含窗户和门&#xff08;子组件&#xff09; 窗户和门&#xff08;子组件&#xff09;是房子&#xff08;父组件&#xff09;的一部分父组件<!-- 父组件&#xff1a;比如叫 Home.vue --> <template><div><h1>这是父…

AI领域的语义空间是什么?

写在前面&#xff1a;本文将从简单的二维空间来逐渐展开问题&#xff0c;带您理解语义空间。距离和体型&#xff1a;这里尝试用距离和体型这两个尺度来理解语义空间&#xff0c;先说的是低维情况&#xff0c;后面在尝试理解高维的情况。比如&#xff0c;在二维空间的x,y坐标系&…

排序---插入排序

基本思想对于插入排序而言&#xff0c;它的基本思想就是往已经排好序的序列里边插入数据。思想类似于玩扑克牌。接下来的排序都是基于下边的这个数组。int a[ ] { 5 , 3 , 9 , 6 , 2 , 4 , 7 , 1 , 8 };直接插入排序我们想要将这个数组排成升序&#xff0c;在最一开始&#xf…

Java性能优化实战(四):IO与网络优化的4个关键方向

IO与网络操作是Java应用性能的常见瓶颈&#xff0c;尤其在高并发场景下&#xff0c;低效的IO处理会导致响应缓慢、资源浪费等问题。本文将聚焦IO与网络优化的四个核心方向&#xff0c;通过真实案例、代码对比和性能数据&#xff0c;详解如何提升IO效率、减少网络传输开销&#…

对齐Wireshark和USRP捕获信号的波形

一、USRP信号 USRP捕获信号的波形如下&#xff1a; 放大后&#xff1a; 100ms 10ms 1ms 100us 10us 1us 二、波形分析 2.1 时间分辨率 采样率61.44MHz, 对应时间分辨率为1/61.44us0.01627us16.27ns。 这时间分辨率够用了&#xff0c;数据包长度为1到20us&#xff1a; 2.2 W…

2025年加密软件技术深度分析:从原理到企业级应用实践

一、加密技术基础与分类加密技术作为信息安全的核心基石&#xff0c;其基本原理是通过特定算法将明文数据转换为不可读的密文&#xff0c;只有持有正确密钥的授权用户才能解密还原。2025年主流的加密技术可分为三大类&#xff1a;‌对称加密‌&#xff1a;使用相同密钥进行加密…

打工人日报20250822

打工人日报20250822 对自己负责&#xff0c;可以是换一个角度看待自己不喜欢的工作&#xff0c;转换一个角度&#xff0c;从中找到自己感兴趣的点 真的非常不想计算声场的数据 啊啊啊啊啊 技术 STM32烧录问题 STM32 代码烧录失败&#xff1a;Error: Flash Download failed …

消费盲返模式:重构快消行业营销生态的破局之道与风险防控指南

一、模式爆发&#xff1a;快消行业的新增长引擎在流量成本攀升、用户留存困难的商业环境下&#xff0c;消费盲返模式正成为零售领域的一匹黑马。其核心逻辑在于通过"消费即投资"的机制设计&#xff0c;将每笔交易转化为后续100笔订单的激励源&#xff0c;形成独特的&…

STM32-FreeRTOS快速入门指南(上)

第一章 FreeRTOS系统配置 1. FreeRTOSConfig.h文件 针对 FreeRTOSConfig.h 文件&#xff0c;在 FreeRTOS 官方的在线文档中有详细的说明&#xff0c;网址为&#xff1a; https://www.freertos.org/a00110.html FreeRTOS 使用 FreeRTOSConfig.h 文件进行配置和裁剪。 FreeRTOSCo…

南溪智融双碳示范基地建筑设备管理系统 + 智能照明系统调试完成:筑牢 “绿色智能” 运营基石

南溪智融双碳示范基地作为聚焦 “双碳” 目标的标杆项目&#xff0c;其建筑设备管理系统与智能照明系统的调试完成&#xff0c;标志着基地在 “设备高效运维、能源精准管控、低碳场景落地” 方面迈出关键一步。两大系统深度契合示范基地 “以技术赋能双碳” 的核心定位&#xf…

c++的可扩展性方法

在C编码中&#xff0c;"方便扩展"通常指的是代码设计具有良好的**可维护性、可重用性和灵活性**&#xff0c;能够在不修改原有代码或仅少量修改的情况下&#xff0c;轻松添加新功能、支持新类型或适应新需求。以下是一些典型的、体现“方便扩展”思想的C编程案例&…