vertica 資料庫

mcxiaoracle發表於2022-08-09

Vertica是一款基於列儲存的  (massively parallel processing)架構的資料庫。它可以支援存放多至PB(Petabyte)級別的 。Vertica是由關聯式資料庫大師Michael Stonebraker(2014 年 獲得者)所建立,於2011年被 收購併成為其核心大資料平臺軟體。

 

列式儲存體系架構是 的核心,實際上Vertica是 世界上第一個列式儲存資料庫,它是在2005年發表的 學術論文C-Store的基礎上推出的適用於大規模並行處理場景的真正意義上的分散式資料庫。


投影實際上是一組經過排序和壓縮的儲存在磁碟上的一個檔案集合,這個投影類似於 聚集列索引(它和表的儲存有很大的不同),您可以 認為它是隻儲存了 索引結構。投影的定義類似於帶有一個 AS SELECT子句的 物化檢視,正如您在上面的圖中所看到的三個投影, “CREATE PROJECTION AS SELECT A, B, C FROM sales ORDER BY A;” CREATE PROJECTION AS SELECT B, A, C FROM sales ORDER BY B, A;” “CREATE PROJECTION AS SELECT C, A FROM sales ORDER BY C;”

在大多數情況下,最佳壓縮排序和分散式投影的規則很簡單,它可以直接從查詢中匯出。所以我們為什麼要花費時間手動處理它呢?透過一種稱為 資料庫設計器 的特殊工具能夠自動建立投影,這種工具根據您的工作負載自動為您建議行儲存中的索引。


我們有一個基於磁碟的 列式讀取最佳化儲存 ,我們有一個 記憶體寫入最佳化儲存 ,這是任何插入和更新的預設選項。這讓Vertica能夠支援實時查詢這個核心功能,因為它的唯一缺點是能夠接受幾行資料的插入或更新,並在事務完成以後,記憶體中的資料只需幾毫秒即可用於讀取到磁碟,然後在查詢時進行合併,通常在幾分鐘後的某個時間點它透過後臺程式重新整理到磁碟,形成一個新的排序和壓縮的儲存容器,然後在透過後臺程式再次合併儲存容器。如果您批次載入並且不想浪費記憶體,則可以將資料直接寫入磁碟。因為在這種規模上進行實時分析的任何其他選擇將涉及多種產品的臨時混合架構。

多表聯接 是一個效能殺手,請確保您有 合併連線 列式儲存 之類的功能,讓事情變得更好。但是在白天的工作時間之內到了快要下班的時候,你仍然在獲取來自多個不同地方的資料,並且很好地將它們連線在一起,這顯然需要時間,而且每個查詢都需要這樣做。這就是為什麼 資料集市 長期以來一直是轉到“需要頻繁查詢資料的選項”以檢視資料。當資料發生變化時,需要重新整理到資料集市,這可能會造成大量耗時的計算,除非您只重新整理 已經被更改 的那一部分,但是也存在其他問題。



當我們在上一個特性中討論 資料集市的主題時,請考慮一下,您正在獲取的資料容量每天都在TB級以上。您會怎麼做?

  • 從磁碟讀取千兆位元組的資料併為每個查詢冗餘聚合?
  • 您是否使用聚合資料建立單獨的表並使用複雜的邏輯對其進行更新?
  • 您是否在資料庫前放置了一個OLAP引擎來聚合您的資料從而增加了硬體的成本和複雜性?

不,您可以向表中新增 投影(PROJECTION)功能。它按您需要的所有產品分組並彙總您需要的所有指標,這就是所謂的實時聚合投影,然後與所有其他投影一起重新整理,每次提交。

現在您不需要增加邏輯的複雜性或硬體成本和附加軟體,將為您進行 記憶體聚合,現在一切都來了! 開箱即用,更重要的是開箱即用!!!




推薦閱讀:













來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69949806/viewspace-2909732/,如需轉載,請註明出處,否則將追究法律責任。

相關文章