Starrocks的主鍵表涉及到的MOR Delete+Insert更新策略

背景

寫這個文章的作用主要是做一些總結和梳理,特別是正對大數據場景下的實時寫入更新策略 COWMOR 以及 Delete+Insert 的技術策略的演進,
這也適用于其他大數據的計算存儲系統。該文章主要參考了Primary Key table.

分析總結

Starrocks 的主鍵表主要是用來加速實時更新的效率,以及在做Adhoc查詢的時候能夠加速查詢速度。在paimon等數據表格式中,一開始都是采用的MOR的策略來達到實時寫入的目的,但是在讀取的時候,就得進行合并的操作才能獲取真正的數據,這種方式雖然能加速數據的寫入速度,但是在讀取的時候就會比較慢,采用Delete+Insert的方式,只會在寫入的時候在DelVector增加一個標志位,讀取的時候,只讀最新的數據即可。大大的縮短了,數據讀取的時間。

Starrocks的Unique表和Aggreate表采用的是 MOR 的策略,這個會存在讀放大的問題。除此之外,由于存在Merge操作,謂詞和索引也不能下推到底層的數據源中,即使下推了,也不能起到過濾的作用,這個嚴重的影響到了查詢的效率。

對于Starrocks的主鍵索引,讀寫主鍵表的路程如下(參考Starrocks的官方文檔):

  • 對于寫: Starrocks 先把對應的tablets的主鍵索引加載到內存,對于刪除操作,Starrocks首先使用主鍵索引找到每行對應的數據位置,并在DelVector中把數據行標記為刪除。對于更新操作,會轉換為Delete + insert操作,除了在DelVector增加刪除標志外,還會寫入最新的數據,同時主鍵索引也會被更新。
    在這里插入圖片描述

  • 對于讀: 由于歷史的數據在寫入的時候,已經被標志為了刪除,所以只需要讀取主鍵索引對應的信息就可以了,歷史數據不需要再進行合并了。并且當底層的數據掃描的時候,可以利用謂詞以及各種索引去減少掃描的數據量。因此查詢性能得到大大的提升。
    在這里插入圖片描述

注意:

  1. DelVector 是 Rowset 級別的
  2. 主鍵索引會記錄pk到rowsetId + segementId + rowId的映射關系

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/79677.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/79677.shtml
英文地址,請注明出處:http://en.pswp.cn/web/79677.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C 語言_常見排序算法全解析

排序算法是計算機科學中的基礎內容,本文將介紹 C 語言中幾種常見的排序算法,包括實現代碼、時間復雜度分析、適用場景和詳細解析。 一、冒泡排序(Bubble Sort) 基本思想:重復遍歷數組,比較相鄰元素,將較大元素交換到右側。 代碼實現: void bubbleSort(int arr[], i…

JIT+Opcache如何配置才能達到性能最優

首先打開php.ini文件,進行配置 1、OPcache配置 ; 啟用OPcache opcache.enable1; CLI環境下啟用OPcache(按需配置) opcache.enable_cli0; 預加載腳本(PHP 7.4,加速常用類) ; opcache.preload/path/to/prel…

Python訓練打卡Day23

機器學習管道 pipeline 基礎概念 pipeline在機器學習領域可以翻譯為“管道”,也可以翻譯為“流水線”,是機器學習中一個重要的概念。 在機器學習中,通常會按照一定的順序對數據進行預處理、特征提取、模型訓練和模型評估等步驟,以…

GPU SIMT架構的極限壓榨:PTX匯編指令級并行優化實踐

點擊 “AladdinEdu,同學們用得起的【H卡】算力平臺”,H卡級別算力,按量計費,靈活彈性,頂級配置,學生專屬優惠。 一、SIMT架構的調度哲學與寄存器平衡藝術 1.1 Warp Scheduler的調度策略解構 在NVIDIA GPU…

HarmonyOS 【詩韻悠然】AI古詩詞賞析APP開發實戰從零到一系列(二、項目準備與后臺服務搭建)

在開發一款面向HarmonyOS平臺的應用程序——【詩韻悠然】AI古詩詞賞析APP時,選擇了流行Go語言作為后端開發語言,并使用了go-zero微服務框架來搭建服務接口。本文將詳細介紹項目準備和后臺服務搭建的過程,幫助大家更好地理解和掌握go-zero框架…

QT5.14安裝以及新建基礎項目

進入qt中文網站:Qt | 軟件開發全周期的各階段工具 額,考慮新手可能還是找不到,我就分享一下我下載的的吧 通過網盤分享的文件:qt-opensource-windows-x86-5.14.2.exe 鏈接:https://pan.baidu.com/s/1yQTRp-b_ISje5B3UWb7Apw?pw…

深入解析 I/O 模型:原理、區別與 Java 實踐

一、I/O 模型的核心概念 I/O 操作的本質是數據在用戶空間(應用程序內存)和內核空間(操作系統內核內存)之間的傳輸。根據數據準備與拷貝階段的處理方式不同,I/O 模型可分為以下五類: 阻塞 I/O(…

EMQX v5.0通過連接器和規則同步數據

1 概述 EMQX數據集成功能,幫助用戶將所有的業務數據無需額外編寫代碼即可快速完成處理與分發。 數據集成能力由連接器和規則兩部分組成,用戶可以使用數據橋接或 MQTT 主題來接入數據,使用規則處理數據后,再通過數據橋接將數據發…

重構門店網絡:從“打補丁“到“造地基“的跨越

您是否遇到過這樣的窘境? 新店開張要等一周,就為裝根網線; 偏遠地區門店三天兩頭斷網,顧客排長隊卻結不了賬; 總部想看實時數據,結果收到一堆亂碼報錯; 總部ERP系統升級,2000家門…

PH熱榜 | 2025-05-13

1. FirstQuadrant 標語:通過以人為本的人工智能來最大化B2B銷售 介紹:銷售人工智能,幫助創始人和收益團隊提高效率,保持組織有序,并促成更多交易。它通過簡化銷售幕后工作,確保每個細節都不會遺漏。 產品…

【即插即用漲點模塊】【上采樣】CARAFE內容感知特征重組:語義信息與高效計算兩不誤【附源碼】

《------往期經典推薦------》 一、AI應用軟件開發實戰專欄【鏈接】 項目名稱項目名稱1.【人臉識別與管理系統開發】2.【車牌識別與自動收費管理系統開發】3.【手勢識別系統開發】4.【人臉面部活體檢測系統開發】5.【圖片風格快速遷移軟件開發】6.【人臉表表情識別系統】7.【…

esp32硬件支持AT指令

步驟1:下載AT固件 從樂鑫官網或Git鑫GitHub倉庫(https://github.com/espressif/esp-at)獲取對應ESP32型號的AT固件(如ESP32-AT.bin)。 步驟2:安裝燒錄工具 使用 esptool.py(命令行工具&#…

【神經網絡與深度學習】局部最小值和全局最小值

引言 在機器學習和優化問題中,目標函數的優化通常是核心任務。優化過程可能會產生局部最小值或全局最小值,而如何區分它們并選擇合適的優化策略,將直接影響模型的性能和穩定性。 在深度學習等復雜優化問題中,尋找全局最小值往往…

鏈表的面試題4之合并有序鏈表

這篇文章我們繼續來講鏈表中很經典的面試題:合并有序鏈表。 目錄 迭代 遞歸 我們首先來看一下這張圖片里面的要求,給你兩個鏈表,要求把他們按照從小到大的方式排列。 這里涉及到幾個問題,首先,我們的頭節點是不是要…

flea-cache使用之Redis哨兵模式接入

Redis哨兵模式接入 1. 參考2. 依賴3. 基礎接入3.1 定義Flea緩存接口3.2 定義抽象Flea緩存類3.3 定義Redis客戶端接口類3.4 定義Redis客戶端命令行3.5 定義哨兵模式Redis客戶端實現類3.6 定義Redis哨兵連接池3.7 定義Redis哨兵配置文件3.8 定義Redis Flea緩存類3.9 定義抽象Flea…

OpenAI for Countries:全球AI基礎設施的“技術基建革命”

2025年5月7日,OpenAI宣布啟動“OpenAI for Countries”計劃,目標是為全球各國構建本土化的AI基礎設施,提供定制化服務。這一計劃被視為其“星際之門”項目的全球化延伸,以技術合作為核心,覆蓋數據中心建設、模型適配與…

Linux精確列出非法 UTF-8 字符的路徑或文件名

Docker構建的時候報錯:failed to solve: Internal: rpc error: code = Internal desc = grpc: error while marshaling: string field contains invalid UTF-8 1、創建一個test.sh文件 find . -print0 | while IFS= read -r -d file;

FFmpeg在Android開發中的核心價值是什么?

FFmpeg 在 Android 開發中的核心價值主要體現在其強大的多媒體處理能力和靈活性上,尤其在音視頻編解碼、流媒體處理及跨平臺兼容性方面具有不可替代的作用。以下是具體分析: --- 1. 強大的音視頻編解碼能力 - 支持廣泛格式:FFmpeg 支持幾乎所…

自我獎勵語言模型:突破人類反饋瓶頸

核心思想 自我獎勵語言模型提出了一種全新的語言模型對齊范式。傳統方法如RLHF或DPO依賴人類反饋數據訓練固定的獎勵模型,這使模型的能力受限于人類標注數據的質量和數量。論文作者認為,要實現超人類能力的AI代理,未來的模型需要突破人類反饋…

5. 動畫/過渡模塊 - 交互式儀表盤

5. 動畫/過渡模塊 - 交互式儀表盤 案例&#xff1a;數據分析儀表盤 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title></head><style type"text/css">.dashboard {font-family: Arial…