成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

深入探索列式數據庫:是什么讓它們脫穎而出

存儲 存儲架構
以列存儲數據的想法并不新鮮。它最早由 GP Copeland 和 SN Khoshafian 在 1985 年全面提出。他們的論文“A Decomposition Storage Model (DSM),”提出以二元關系存儲數據,將每個屬性值與記錄的標識符配對。

如果您是一名數據從業者,了解這些內部原理可以幫助您優化性能。

譯自Deep Dive into Columnar Databases: What Makes Them Shine,作者 Gaurav Ramesh。

列式存儲已成為數據工程和分析領域的一個顛覆者。與傳統的行式數據庫相比,它提供了顯著的性能優勢。

以列存儲數據的想法并不新鮮。它最早由 GP Copeland 和 SN Khoshafian 在 1985 年全面提出。他們的論文“A Decomposition Storage Model (DSM),”提出以二元關系存儲數據,將每個屬性值與記錄的標識符配對。這種方法按列而不是按行組織數據,為涉及屬性子集的查詢提供了簡單性和檢索性能優勢。但是,它總體上需要更多的存儲空間。

研究人員于1999 年開始開發 MonetDB,并于 2004 年將其作為開源項目發布。它成為首批采用列式架構進行分析工作負載并展示其有效性的系統之一。在 2000 年代中期開發的C-Store標志著另一個重要的里程碑。它引入了先進的概念,這些概念現在已成為現代列式存儲系統中的標準。

在 2000 年代后期和 2010 年代初期,該領域的發展加速,Apache Parquet等項目(受Google 的 Dremel 論文的影響)將列式存儲引入了 Hadoop 生態系統。

核心概念:列式存儲與行式存儲

傳統的行式數據庫將單個行的所有數據存儲在一起。一行表示您要建模的實體。從這個角度來看,對于這篇文章,可以將面向文檔的數據庫(如 MongoDB)視為行式數據庫,因為它將整個文檔(實體)存儲在一起,類似于行式數據庫。相比之下,列式數據存儲將數據組織成列,每列包含所有行中單個屬性的值。這種看似簡單的更改對性能產生了深遠的影響。

查詢處理中的謂詞和投影

在討論事務和分析系統時,需要理解兩個關鍵概念:

  • 謂詞是您用來過濾所需實體(行)的條件(將它們視為 SQL 查詢中的WHERE子句)。
  • 投影是您在響應中需要的字段(列)(將它們視為在SELECT語句中定義的名稱)。

如果您將數據視為垂直堆疊的行列表,則謂詞會水平切片,而投影會垂直切片。

事務查詢通常依賴于謂詞來過濾行,投影跨越整行(例如,SELECT * FROM orders WHERE user_id = 1234)。相比之下,分析查詢中的投影涉及被查詢實體的一小部分字段(例如,SELECT user_id, name, num_orders FROM user_aggregates WHERE user_id = 1234)。

考慮一個包含 50 列和數百萬行的表。在行式系統中,如果您只需要三列,數據庫仍然必須讀取每行的所有 50 列。使用列式存儲,僅訪問三個相關的列,從而大大減少了 I/O 開銷,即在分析中處理的數據量查詢。

支持列式存儲的關鍵技術

以列存儲數據可以實現各種優化,從而顯著提高查詢性能。這是一個思維模型:將查詢執行視為一個通過各個階段傳遞數據的管道,并在每個步驟中對其進行轉換。數據越小,成本越低,管道速度越快。

減少數據您可以使用多種方法:

  • 高效的數據表示(數據壓縮,列式壓縮)
  • 提前過濾數據(列裁剪,謂詞下推)
  • 盡可能晚地擴展數據(直接對壓縮數據進行操作,延遲物化)
  • 更快的數據處理(向量化執行,優化連接)

這些技術是相互關聯的,并且相互依賴以獲得最大的性能提升。

數據壓縮和列式壓縮

列式存儲實現了高壓縮率,因為單個列中的數據類型相同并且表現出相似的模式。諸如字典編碼、運行長度編碼 (RLE)、位打包和增量編碼等技術通常用于現代列式存儲中。

例如,在跟蹤用戶流量來源的 Web 分析數據庫中,source列通常具有一小組唯一值。 這允許:

  • 字典編碼:將整數值分配給字符串值(例如,email = 1,Twitter = 2)。
  • 運行長度編碼 (RLE):如果連續條目具有相同的值,則將其存儲為(值,計數)。
  • 位打包:如果只存在幾個唯一值,則每個值使用較少的位而不是完整的整數。

列裁剪

列裁剪消除了查詢執行中不必要的列。 考慮以下查詢:

SELECT first_name, last_name, email, phone FROM users WHERE num_orders > 10

如果表有 100 列,但查詢只需要 5 列,則列裁剪可將 I/O 開銷降低 95%。

謂詞下推

謂詞下推在查詢執行管道中盡早地過濾數據。 通過使用區域圖(跟蹤存儲塊內最小值/最大值的元數據),數據庫可以跳過不符合過濾條件的整個塊。

例如,在查詢中:

SELECT name FROM users WHERE age > 30 AND city = 'New York'

列式數據庫可以首先根據元數據過濾塊,然后再掃描單個行,從而減少不必要的處理。

直接對壓縮數據進行操作

列式數據庫可以直接對壓縮數據執行操作,從而最大限度地降低 I/O 成本。 考慮以下查詢:

SELECT sum(salary) FROM employees WHERE department = 1002

使用字典編碼和 RLE,只有相關數據在最后一步被讀取和擴展,從而顯著提高性能。

延遲物化

延遲物化會延遲加載不必要的列,直到需要時才加載。 在查詢中:

SELECT name FROM users WHERE age > 30 AND city = 'New York'

最初只處理 age 和 city,name 列在最后階段加載。

向量化處理

SIMD(單指令多數據)允許處理器并行地對多個值執行操作。 考慮:

SELECT sum(price) FROM sales WHERE user_id = 1234

SIMD 不是逐行評估 user_id,而是一次比較 256 個值,從而顯著提高速度。

高效的連接實現

列式數據庫實現了高級連接技術,例如使用 Bloom 過濾器的半連接。 這些結構允許數據庫有效地檢查數據集中是否存在某個值,從而減少不必要的比較。

例如,在連接中:

SELECT * FROM orders o JOIN customers c ON o.customer_id = c.id WHERE c.region = 'EMEA'

為有效客戶構建 Bloom 過濾器,允許數據庫快速丟棄不相關的訂單。

結論

列式數據存儲提供:

  • 通過壓縮實現存儲效率
  • 通過列裁剪和謂詞下推實現減少 I/O
  • 使用向量化處理和優化連接實現更快的執行速度

它們廣泛用于 Web 分析、商業智能、機器學習基礎設施和實時分析。

如果您是數據從業者,了解這些內部原理可以幫助您優化性能。 如果您是工程負責人,這些技術將幫助您評估權衡并為您的組織做出戰略決策。

責任編輯:武曉燕 來源: 云云眾生s
相關推薦

2014-02-24 13:55:47

簡歷簡歷技巧

2016-05-12 13:51:05

IBM大型機混合云

2009-04-13 10:52:03

視頻面試求職技巧

2013-03-25 16:39:42

華為BYOD解決方案

2013-08-27 15:45:37

App應用商店ASO應用商店優化App營銷推廣

2021-08-17 07:15:16

Github開源項目

2012-08-08 10:00:17

面試技術

2015-08-06 10:03:03

云計算云計算認證云遷移

2024-06-20 09:44:19

Vars()函數Python工具

2020-02-14 09:50:19

數據中心IT技術

2014-09-02 15:25:10

國產操作系統

2011-12-27 15:02:37

云計算

2018-06-03 00:16:36

阿里巴巴技術面試

2010-08-04 14:11:58

面試木訥

2018-01-11 23:07:07

構建生態垂直落地AIoT

2015-03-06 09:21:41

APP

2015-10-27 10:13:42

初創公司脫穎而出

2017-05-02 14:40:20

程序員

2019-05-10 09:15:33

能力IT代碼

2017-04-11 10:15:07

無線墨倉混戰
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91久久久久久久久久久 | 久久国产精品亚洲 | 精品中文字幕在线观看 | 国产无套一区二区三区久久 | 国产一区二区三区精品久久久 | 亚洲欧美在线观看 | 99在线观看视频 | 在线播放日韩 | 亚洲高清在线观看 | 久久精品国产亚洲 | 成人免费网站www网站高清 | www久久久| 亚洲国产精品成人无久久精品 | 一区二区国产精品 | 一区二区国产精品 | 精品久久国产老人久久综合 | 日韩在线精品强乱中文字幕 | 日日摸天天添天天添破 | 精品国产欧美 | 日本一区二区电影 | 波多野结衣在线观看一区二区三区 | 精品欧美一区二区中文字幕视频 | 精品亚洲一区二区三区四区五区高 | 女人av| 黄色毛片免费看 | 精品国产1区2区3区 在线国产视频 | 精品国产视频 | 国产精品一区三区 | 美女三区| 亚洲精品国产一区 | 久久一二区 | 日本精品一区 | 国产精品久久久久久久久动漫 | 欧美在线亚洲 | 久久激情网 | 日本精品裸体写真集在线观看 | 日韩精品在线观看一区二区 | 亚洲高清在线免费观看 | 99热播精品 | 在线视频一区二区 | 91视频一区二区三区 |