高效實時數據同步方案:秒級響應多字段搜索

目錄

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
英文地址,請注明出處:http://en.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編程案例&…