溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

數(shù)據(jù)倉庫中的OLTP與OLAP查詢是怎樣的

發(fā)布時間:2022-01-18 16:42:32 來源:億速云 閱讀:320 作者:柒染 欄目:數(shù)據(jù)庫

小編今天帶大家了解數(shù)據(jù)倉庫中的OLTP與OLAP查詢是怎樣的,文中知識點介紹的非常詳細。覺得有幫助的朋友可以跟著小編一起瀏覽文章的內容,希望能夠幫助更多想解決這個問題的朋友找到問題的答案,下面跟著小編一起深入學習“數(shù)據(jù)倉庫中的OLTP與OLAP查詢是怎樣的”的知識吧。

在業(yè)務數(shù)據(jù)處理的早期,對數(shù)據(jù)庫的寫操作通常對應于正在發(fā)生的商業(yè)交易-進行銷售,與供應商下訂單,支付員工的工資等。隨著數(shù)據(jù)庫擴展到不涉及的領域  涉及貨幣易手,但是交易一詞仍然存在,是指構成邏輯單元的一組讀寫操作。 這些類型的查詢稱為事務處理系統(tǒng)查詢(OLTP)。  為這些查詢設計的系統(tǒng)通常是面向用戶的,這意味著它們可能會看到大量的請求。 為了處理負載,應用程序通常僅在每個查詢中觸摸少量記錄。  該應用程序使用某種密鑰來請求記錄,而存儲引擎使用索引來查找所請求密鑰的數(shù)據(jù)。 磁盤查找時間通常是這里的瓶頸。

但是,數(shù)據(jù)庫也開始越來越多地用于數(shù)據(jù)分析,而這種數(shù)據(jù)分析具有非常不同的訪問模式。  通常,分析查詢需要掃描大量記錄,僅讀取每條記錄的幾列,并計算匯總統(tǒng)計信息(例如計數(shù),總和或平均值),而不是將原始數(shù)據(jù)返回給用戶。  例如,如果您的數(shù)據(jù)是銷售交易表,則分析查詢可能是:

  • 一月份,我們每家商店的總收入是多少?

  • 在最近的促銷活動中,我們售出的iPhone比平時多了多少?

  • 哪個品牌的牛奶最常與家樂氏的玉米片一起購買?

這些查詢通常由業(yè)務分析人員編寫,并饋入有助于公司管理層做出更好決策(業(yè)務智能)的報告。  為了將這種使用數(shù)據(jù)庫的模式與事務處理區(qū)分開來,它被稱為在線分析處理(OLAP)。 它們之所以鮮為人知,是因為它們是由業(yè)務分析師而不是最終用戶處理的。  與OLTP系統(tǒng)相比,它們處理的查詢量要少得多,但每個查詢的要求通常很高,需要在短時間內掃描數(shù)百萬條記錄。  磁盤帶寬(不是尋道時間)通常是這里的瓶頸,而面向列的存儲是此類工作負載越來越流行的解決方案。

OLTP和OLAP之間的區(qū)別并不總是很明確,但是下面列出了一些典型特征。

數(shù)據(jù)倉庫中的OLTP與OLAP查詢是怎樣的

首先,將相同的數(shù)據(jù)庫用于事務處理和分析查詢。事實證明,SQL在這方面非常靈活:它對于OLTP類型查詢和OLAP類型查詢都適用。盡管如此,在1980年代末和1990年代初,公司有一種趨勢是停止使用OLTP系統(tǒng)進行分析,而改為在單獨的數(shù)據(jù)庫上運行分析。這個獨立的數(shù)據(jù)庫稱為數(shù)據(jù)倉庫。

企業(yè)可能具有數(shù)十種不同的交易處理系統(tǒng):為面向客戶的網(wǎng)站提供動力的系統(tǒng),實體商店中的銷售點(結帳)系統(tǒng),倉庫中的庫存跟蹤,車輛路線規(guī)劃,供應商管理,員工管理等。這些系統(tǒng)中的一個很復雜,需要一個團隊來維護它,因此這些系統(tǒng)最終只能彼此獨立地運行。通常期望這些OLTP系統(tǒng)具有高可用性,并以低延遲處理事務,因為它們通常對業(yè)務運營至關重要。因此,數(shù)據(jù)庫管理員密切保護其OLTP數(shù)據(jù)庫。他們通常不愿讓業(yè)務分析人員在OLTP數(shù)據(jù)庫上運行臨時分析查詢,因為這些查詢通常很昂貴,會掃描數(shù)據(jù)集的大部分,這可能會損害并發(fā)執(zhí)行事務的性能。

數(shù)據(jù)倉庫

數(shù)據(jù)倉庫中的OLTP與OLAP查詢是怎樣的

相比之下,數(shù)據(jù)倉庫是一個獨立的數(shù)據(jù)庫,分析人員可以查詢其內心的內容,而不會影響OLTP操作。數(shù)據(jù)倉庫包含公司所有各種OLTP系統(tǒng)中數(shù)據(jù)的只讀副本。從OLTP數(shù)據(jù)庫中提取數(shù)據(jù)(使用定期數(shù)據(jù)轉儲或連續(xù)的更新流),將其轉換為易于分析的模式,進行清理,然后將其加載到數(shù)據(jù)倉庫中。將數(shù)據(jù)放入倉庫的過程稱為"提取-轉換-加載(ETL)"?,F(xiàn)在,幾乎所有大型企業(yè)都存在數(shù)據(jù)倉庫,但在小型企業(yè)中幾乎聞所未聞。這可能是因為大多數(shù)小型公司沒有太多不同的OLTP系統(tǒng);而且大多數(shù)小型公司的數(shù)據(jù)量都很小-足夠小,可以在常規(guī)SQL數(shù)據(jù)庫中查詢,甚至可以在電子表格中進行分析。在大型公司中,要做一些在小型公司中簡單的事情需要很多繁重的工作。

使用單獨的數(shù)據(jù)倉庫而不是直接查詢OLTP系統(tǒng)進行分析的一大優(yōu)勢是,可以針對分析訪問模式對數(shù)據(jù)倉庫進行優(yōu)化。 某些數(shù)據(jù)庫(例如Microsoft SQL  Server和SAP HANA)在同一產(chǎn)品中支持事務處理和數(shù)據(jù)倉庫。 但是,它們越來越成為兩個獨立的存儲和查詢引擎,它們恰巧可以通過公共SQL接口進行訪問。  數(shù)據(jù)倉庫供應商(例如Teradata,Vertica,SAP HANA和ParAccel)通常在昂貴的商業(yè)許可下銷售其系統(tǒng)。 Amazon  RedShift是ParAccel的托管版本。 最近,出現(xiàn)了許多開源的SQL-onHadoop項目。 他們很年輕,但旨在與商業(yè)數(shù)據(jù)倉庫系統(tǒng)競爭。  這些包括Apache hive,Spark SQL,Cloudera Impala,F(xiàn)acebook Presto,Apache Tajo和Apache  Drill。 其中一些是基于Google Dremel的想法。

Analytics的存儲架構

根據(jù)應用程序的需求,在事務處理領域中會使用各種不同的數(shù)據(jù)模型。 另一方面,在分析中,數(shù)據(jù)模型的多樣性要少得多。  許多數(shù)據(jù)倉庫都以相當公式化的方式使用,稱為星型模式(也稱為維建模)。 通常,將事實捕獲為單個事件,因為這樣可以在以后最大程度地進行分析。  但是,這意味著事實表可能會變得非常大。

星星和雪花:

數(shù)據(jù)倉庫中的OLTP與OLAP查詢是怎樣的

"星型模式"的名稱來自以下事實:當可視化表關系時,事實表位于中間,并被其維度表包圍; 這些桌子的連接就像星星的光芒。  此模板的一種變體稱為雪花模式,其中尺寸進一步細分為多個子維度。  像Apple,Walmart或eBay這樣的大企業(yè),其數(shù)據(jù)倉庫中可能有數(shù)十PB的事務歷史記錄,其中大多數(shù)實際上是表。

列式存儲:

數(shù)據(jù)倉庫中的OLTP與OLAP查詢是怎樣的

盡管事實表通常超過100列,但是典型的數(shù)據(jù)倉庫查詢一次只能訪問其中的4或5。  在大多數(shù)OLTP數(shù)據(jù)庫中,存儲以面向行的方式進行布局:表的一行中的所有值都彼此相鄰存儲。  為了處理諸如"查找某項X在12月的平均銷售額"之類的分析查詢,面向行的存儲引擎仍然需要將所有這些行(每個行包含100多個屬性)從磁盤加載到內存中  ,解析它們并過濾掉不符合要求的條件,這可能會花費很長時間。 面向列的存儲背后的想法很簡單:不要將一行中的所有值都存儲在一起,而是將每一列中的所有值存儲在一起。  如果每列存儲在單獨的文件中,則查詢僅需要讀取和解析該查詢中使用的那些列,這可以節(jié)省大量工作。

列壓縮:

數(shù)據(jù)倉庫中的OLTP與OLAP查詢是怎樣的

通常,一列中不同值的數(shù)量與行數(shù)相比很小(例如,零售商可能進行數(shù)十億次銷售交易,但只有100,000種不同產(chǎn)品)。  根據(jù)列中的數(shù)據(jù),可以使用不同的壓縮技術-在數(shù)據(jù)倉庫中特別有效的一種技術是位圖編碼。

現(xiàn)在,我們可以將一列包含n個不同的值,并將其轉換為n個單獨的位圖-每個不同的值一個位圖,每行一個位。 如果行具有該值,則該位為1,否則為0。  如果n很小(例如,一個國家/地區(qū)列可能具有大約200個不同的值),則這些位圖可以每行一位存儲。

感謝大家的閱讀,以上就是“數(shù)據(jù)倉庫中的OLTP與OLAP查詢是怎樣的”的全部內容了,學會的朋友趕緊操作起來吧。相信億速云小編一定會給大家?guī)砀鼉?yōu)質的文章。謝謝大家對億速云網(wǎng)站的支持!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI