Doris中的物化視圖(十八)

物化視圖就是包含了查詢結果的數據庫對象,可能是對遠程數據的本地 copy,也可能是一個表或多表 join 后結果的行或列的子集,也可能是聚合后的結果。說白了,就是預先存儲查詢結果的一種數據庫對象。

在 Doris 中的物化視圖,就是查詢結果預先存儲起來的特殊的表。

物化視圖的出現主要是為了滿足用戶,既能對原始明細數據的任意維度分析,也能快速的對固定維度進行分析查詢。

適用場景

  1. 分析需求覆蓋明細數據查詢以及固定維度查詢兩方面。

  2. 查詢僅涉及表中的很小一部分列或行。

  3. 查詢包含一些耗時處理操作,比如:時間很久的聚合操作等。

  4. 查詢需要匹配不同前綴索引。

優勢

  1. 對于那些經常重復的使用相同的子查詢結果的查詢性能大幅提升。

  2. Doris 自動維護物化視圖的數據,無論是新的導入,還是刪除操作都能保證 base 表和物化視圖表的數據一致性。無需任何額外的人工維護成本。

  3. 查詢時,會自動匹配到最優物化視圖,并直接從物化視圖中讀取數據。

  4. 自動維護物化視圖的數據會造成一些維護開銷,會在后面的物化視圖的局限性中展開說明。

物化視圖 VS Rollup

在沒有物化視圖功能之前,用戶一般都是使用 Rollup 功能通過預聚合方式提升查詢效率的。但是 Rollup 具有一定的局限性,他不能基于明細模型做預聚合。

物化視圖則在覆蓋了 Rollup 的功能的同時,還能支持更豐富的聚合函數。所以物化視圖其實是 Rollup 的一個超集。

也就是說,之前 ALTER TABLE ADD ROLLUP 語法支持的功能現在均可以通過CREATE MATERIALIZED VIEW 實現。

物化視圖原理

Doris 系統提供了一整套對物化視圖的 DDL 語法,包括創建,查看,刪除。DDL 的語法和 PostgreSQL, Oracle 都是一致的。但是 Doris 目前創建物化視圖只能在單表操作,不支持 join。

創建物化視圖

首先要根據查詢語句的特點來決定創建一個什么樣的物化視圖。并不是說物化視圖定義和某個查詢語句一模一樣就最好。這里有兩個原則:

(1)從查詢語句中抽象出,多個查詢共有的分組和聚合方式作為物化視圖的定義。

(2)不需要給所有維度組合都創建物化視圖。

首先第一個點,一個物化視圖如果抽象出來,并且多個查詢都可以匹配到這張物化視圖。這種物化視圖效果最好。因為物化視圖的維護本身也需要消耗資源。

如果物化視圖只和某個特殊的查詢很貼合,而其他查詢均用不到這個物化視圖。則會導致這張物化視圖的性價比不高,既占用了集群的存儲資源,還不能為更多的查詢服務。

所以用戶需要結合自己的查詢語句,以及數據維度信息去抽象出一些物化視圖的定義。

第二點就是,在實際的分析查詢中,并不會覆蓋到所有的維度分析。所以給常用的維度組合創建物化視圖即可,從而到達一個空間和時間上的平衡。

通過下面命令就可以創建物化視圖了。創建物化視圖是一個異步的操作,也就是說用戶成功提交創建任務后,Doris 會在后臺對存量的數據進行計算,直到創建成功。

具體的語法可以通過下面命令查看:

HELP CREATE MATERIALIZED VIEW

這里以一個銷售記錄表為例:

比如我們有一張銷售記錄明細表,存儲了每個交易的時間,銷售員,銷售門店,和金額。

提交完創建物化視圖的任務后,Doris 就會異步在后臺生成物化視圖的數據,構建物化視圖。

在構建期間,用戶依然可以正常的查詢和導入新的數據。創建任務會自動處理當前的存量數據和所有新到達的增量數據,從而保持和 base 表的數據一致性。用戶不需關心一致性問題。

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

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

相關文章

【深度學習】P1 數據缺失值預處理

數據缺失值預處理 創建數據集展示數據集缺失值處理 創建數據集 首先創建一個人工數據集,作為下文對數據缺失值預處理的案例, import osos.makedirs(os.path.join(.., data), exist_okTrue) data_file os.path.join(.., data, house_tiny.csv) with op…

SIP協議在語音通信的應用方式

在企業語音通信的過程中,SIP協議支持的網絡通信技術通過網絡為用戶提供了無數的通信便利,已成為企業不可或缺的重要通信技術。由于SIP協議是語音通信幫助企業實現這些優勢的原因,因此了解支持這些呼叫的SIP協議的上下文至關重要。 什么是SIP?…

Duplicate 模型中的 ROLLUP(十六)

因為 Duplicate 模型沒有聚合的語意。所以該模型中的 ROLLUP,已經失去了“上卷”這一層含義。而僅僅是作為調整列順序,以命中前綴索引的作用。下面詳細介紹前綴索引,以及如何使用 ROLLUP 改變前綴索引,以獲得更好的查詢效率。 前…

微服務保護 Sentinel

1.初識Sentinel 文章目錄 1.初識Sentinel1.1.雪崩問題及解決方案1.1.1.雪崩問題1.1.2.超時處理1.1.3.倉壁模式1.1.4.斷路器1.1.5.限流1.1.6.總結 1.2.服務保護技術對比1.3.Sentinel介紹和安裝1.3.1.初識Sentinel1.3.2.安裝Sentinel 1.4.微服務整合Sentinel 2.流量控制2.1.簇點鏈…

C語言—指針初始化

指針初始化&#xff1a;指針初始情況下指向哪個地址。兩種指針初始化方式 1、聲明指針時就進行指針初始化&#xff0c;告訴指針指向哪個地址 #include <stdio.h> int main () {int i5;int *p&i;return 0; }2、聲明指針時未進行初始化&#xff0c;在后期把指向的地…

MacM1(ARM)安裝Protocol Buffers

MacM1(ARM)安裝Protocol Buffers 本文目錄 MacM1(ARM)安裝Protocol Buffers3.21之前版本安裝使用configure3.22之后版本安裝使用cmake使用編譯后的版本 protobuf下載地址&#xff1a;https://github.com/protocolbuffers/protobuf/releases 在運行./autogen.sh或./configure命…

大表查詢如何優化?

大表查詢的優化方法有以下幾種&#xff1a; 索引優化&#xff1a;通過建立合理高效的索引&#xff0c;提高查詢的速度。SQL優化&#xff1a;組織優化SQL語句&#xff0c;使查詢效率達到最優&#xff0c;在很多情況下要考慮索引的作用。水平拆表&#xff1a;如果表中的數據呈現…

curl添加https服務

CURL支持的通信協議有FTP、FTPS、HTTP、HTTPS、TFTP、SFTP、Gopher、SCP、Telnet、DICT、FILE、LDAP、LDAPS、IMAP、POP3、SMTP和RTSP。 首選刪除系統自帶的openssl&#xff0c;因為他只有可執行程序和庫&#xff0c;沒有頭文件。 sudo apt-get remove openssl openssl官網&am…

CentOS7磁盤掛載

1 引言 本文主要講述CentOS7磁盤掛載相關知識點和操作。 2 磁盤掛載 步驟1&#xff1a; 查看機器所掛硬盤及分區情況 fdisk -l查詢結果&#xff1a; 由上圖可以看到該結果包含&#xff1a;硬盤名稱、硬盤大小等信息。 屬性解釋說明Disk /dev/vda硬盤名稱53.7G磁盤大…

6S精益管理必備裝備降低物料損耗

在工廠生產環境中&#xff0c;設備管理是確保生產效率和質量的關鍵因素之一。6S管理方法是一種源自日本的管理體系&#xff0c;旨在通過整頓、整理、清掃、清潔、素養、遵守六個步驟&#xff0c;實現工作環境的優化和管理的高效。 倉庫管理中&#xff0c;庫存損耗一直是企業面…

分布式篇---第四篇

系列文章目錄 文章目錄 系列文章目錄前言一、分布式ID生成有幾種方案?二、冪等解決方法有哪些?三、常見負載均衡算法有哪些?前言 前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到網站,這篇文章男女通用,看懂了就去分享給…

多回路交流三相單相電壓電流電量監測開口式互感器適用多種環境用電能耗監控

1 產品概述 多回路交流無線電壓電流傳感器/電量采集監測儀搭配多路開口式互感器&#xff0c;可以監控采集三相電壓、電流、功率和電量等信息&#xff0c;可用于能耗采集監控。支持RS485和4G網絡接口&#xff0c;數據可以對接客戶指定的第三方云平臺。本產品可實現單相/三相用電…

Spring事務的實現方式和實現原理;事務聲明的方式,Spring的事務傳播行為,spring事務的實現原理

Spring事務的實現方式和實現原理 Spring事務的本質其實就是數據庫對事務的支持&#xff0c;沒有數據庫的事務支持&#xff0c;spring是無法提供事務功能的。真正的數據庫層的事務提交和回滾是通過binlog或者redo log實現的。 什么是事務 數據庫事務是指作為單個邏輯工作單元執…

發布本地(sap hana)Jar包到Maven私有倉庫

在控制臺執行如下命令&#xff1a; mvn deploy:deploy-file -DgroupId"com.sap.cloud.db.jdbc" -DartifactId"ngdbc" -Dversion"2.0.13" -Dpackaging"jar" -Dfile"F:\sap_ngdbc\ngdbc-2.0.13.jar" -DrepositoryId"rel…

Co-DETR:DETRs與協同混分配訓練論文學習筆記

論文地址&#xff1a;https://arxiv.org/pdf/2211.12860.pdf 代碼地址&#xff1a; GitHub - Sense-X/Co-DETR: [ICCV 2023] DETRs with Collaborative Hybrid Assignments Training 摘要 作者提出了一種新的協同混合任務訓練方案&#xff0c;即Co-DETR&#xff0c;以從多種標…

網站會遭受那些攻擊,要怎么應對

隨著互聯網的普及和發展&#xff0c;很多企業或個人都建立了自己的網站&#xff0c;這些網站不僅可以展示企業或個人的信息&#xff0c;還可以提供各種服務和交流平臺。但是&#xff0c;在運營網站的過程中&#xff0c;很多人都會遇到網站被流量攻擊的情況&#xff0c;這種情況…

gmapping仿真

文章目錄 獲取源碼安裝依賴項編譯簡單場景運行gmapping開啟鍵盤控制通過launch文件來啟動gmappingGmapping建圖的參數設置地圖的保存和加載參考 獲取源碼 cd ~/catkin_ws/src/ git clone https://gitcode.com/weixin_42990464/wpr_simulation.git git clone https://gitcode.c…

【開源】基于Vue.js的農村物流配送系統的設計和實現

項目編號&#xff1a; S 024 &#xff0c;文末獲取源碼。 \color{red}{項目編號&#xff1a;S024&#xff0c;文末獲取源碼。} 項目編號&#xff1a;S024&#xff0c;文末獲取源碼。 目錄 一、摘要1.1 項目介紹1.2 項目錄屏 二、功能模塊2.1 系統登錄、注冊界面2.2 系統功能2.2…

java使用poi框架導出excel文件名命名為中文的方法

最近使用poi框架實現自動化報表導入導出功能&#xff0c;但是遇到一個問題&#xff0c;導出的表格命名為中文時不被識別&#xff0c;直接會以接口名為文件名導出&#xff0c;那么如何解決這個問題呢&#xff1f; 三行代碼解決&#xff1a; String fileName "xxxx統計表-…

小程序:用戶查找英語單詞的意思 ← Python字典

【程序分析】 ● 字典中的條目是沒有順序的。 ● 可以對字典使用如下方法&#xff1a; keys()、values()、 items()、 clear()、 get(key)、 pop(key) 和popitem()【程序代碼】 dictionary{"dog":"狗","apple":"蘋果","banana&q…