日日碰狠狠躁久久躁96avv-97久久超碰国产精品最新-婷婷丁香五月天在线播放,狠狠色噜噜色狠狠狠综合久久 ,爱做久久久久久,高h喷水荡肉爽文np肉色学校

睿治

智能數據治理平臺

睿治作為國內功能最全的數據治理產品之一,入選IDC企業數據治理實施部署指南。同時,在IDC發布的《中國數據治理市場份額》報告中,連續四年蟬聯數據治理解決方案市場份額第一。

什么是數據倉庫?我為什么需要它?

時間:2022-05-07來源:高冷VIP瀏覽數:298

數據倉庫是一種分析數據庫,用于存儲和處理數據,以便對數據進行分析。


來? 源:AI前線

數據倉庫”這個詞在數據分析領域被廣泛使用,但對于剛接觸數據分析的人來說,仍然會很經常問到這個問題。本文將對數據倉庫的定義做一番解釋,并說明為什么以及什么時候需要考慮建立一個數據倉庫。

1什么是數據倉庫?

數據倉庫是一種分析數據庫,用于存儲和處理數據,以便對數據進行分析。數據倉庫的兩個主要功能:存儲分析數據和處理分析數據。

首先,如果多個業務數據位于不同的數據源,就無法輕易地將它們組合在一起。

其次,你的數據源系統不適合用來運行大量的數據分析,這樣做可能會危及業務運行,因為它會給系統帶來很重的負載。

數據倉庫是分析管道的核心,它有三個主要作用:

存儲:在合并 (提取和加載) 步驟,數據倉庫將接收和存儲來自多個數據源的數據。

處理:在處理 (轉換和建模) 步驟,數據倉庫將處理大部分 (或全部) 由轉換步驟生成的密集處理工作負載。

訪問:在生成報告 (可視化和交付) 步驟,首先需要在數據倉庫中收集報告,然后將其可視化并交付給最終用戶。

目前,大多數數據倉庫使用 SQL 作為主要的查詢語言。

2什么時候需要構建數據倉庫?

簡單地說,這取決于公司所處的階段、所擁有的數據量和預算,等等。

在早期階段,你可能不需要數據倉庫,而是直接使用業務智能 (BI) 工具連接到生產數據庫。

如果你仍然不確定數據倉庫是否適合你的公司,請考慮以下幾點:

首先,你是否需要分析來自不同數據源的數據?

在公司發展的某個階段,你可能需要將來自不同數據源的數據組合起來,以便做出更好、更明智的業務決策。

例如,如果你是一家餐館,想要分析訂單 / 服務員效率比率 (每周里哪個小時員工最忙和最空閑),就需要將銷售數據 (來自 POS 系統) 與員工職責數據 (來自 HR 系統) 結合起來。

對于這些分析,如果數據都位于一個中心位置,就會容易得多。

第二,是否需要將分析數據與事務數據分離?

如前所述,你的事務系統不適合用來進行數據分析。因此,如果你在應用程序中收集了活動日志或其他可能有用的信息,那么將這些數據存儲到應用程序的數據庫中,并讓分析師直接在生產數據庫上進行數據分析可能不是一個好主意。

相反,購買一個為復雜查詢而設計的數據倉庫,并將分析數據保存到數據倉庫里,這樣會更好。這樣,應用程序的性能就不會受到數據分析任務的影響。

第三,原始數據源適合用來查詢嗎?

例如,絕大多數 BI 工具不能很好地與 NoSQL 數據存儲 (如 MongoDB) 搭在一起使用。也就是說,在后端使用 MongoDB 的應用程序需要將數據傳輸到數據倉庫,數據分析人員才能夠有效地使用它們。

第四,是否希望提高數據分析的查詢性能?

如果事務數據有數十萬行,那么創建匯總表可能是一個好主意,它會將數據聚合成容易查詢的表單。如果不這樣做,查詢會非常慢,而且會給數據庫帶來不必要的負擔。

如果你對上述任意一個問題的回答是“是”,那么你很可能需要一個數據倉庫。

也就是說,在我們看來,構建一個數據倉庫通常是個好主意,因為在云計算時代,數據倉庫并不貴。

3應該選擇哪一個數據倉庫?

以下是一些常見的數據倉庫,你可以從中選擇:

亞馬 Redshift

谷歌 BigQuery

Snowflake

ClickHouse(自托管)

Presto(自托管)

如果你才剛開始,還沒有確定的想法,那么建議你使用谷歌 BigQuery,原因如下:

BigQuery 前 10GB 存儲和前 1TB 查詢量是免費的,之后按使用量付費。

BigQuery 是全托管的 (無服務器),不需要啟動或管理物理 (或虛擬) 服務器。

BigQuery 的架構是可自動伸縮的:根據查詢的復雜性和數據量,BigQuery 將自動確定分配給每個查詢多少計算資源,無需手動調整。

但是,如果你的數據量增長速度很快,或者如果你的場景很復雜或者很特殊,就需要仔細評估你的選項。

下面,我們列出了最為流行的一些數據倉庫,目的是讓你對數據倉庫領域最常見的選項有一個高層次的了解。這個清單并不是最完整的,也不足以幫你做出一個最完美的決定。

但我們認為,這是一個良好的開端:

4數據倉庫與SQL數據庫的不同

這個時候,有些人可能會問:

“數據倉庫不是像關系數據庫一樣,存儲數據,然后對數據進行分析嗎?難道我就不能使用 MySQL、PostgreSQL、MSSQL 或 Oracle 作為數據倉庫嗎?”

簡單地說:可以。

但要細說起來:這個要視情況而定。首先,我們需要了解一些概念。

事務工作負載與分析工作負載

理解這兩種數據庫工作負載 (事務工作負載和分析工作負載) 之間的差異是非常重要的。

事務工作負載是指普通業務應用程序的查詢工作負載。當訪問者在 Web 應用程序中加載一個產品頁面時,將向數據庫發送一個查詢,獲取產品信息,并將結果返回給應用程序。

SELECT * FROM products WHERE id = 123

以下是事務工作負載的幾個常見屬性:

每次查詢通常返回一條記錄或少量記錄 (例如,獲取某類別的前 10 篇博文)。

事務工作負載通常包含運行時間非常短 (少于 1 秒) 的簡單查詢。

在任意時刻都有大量的并發查詢,這取決于應用程序的并發訪問者數量。對于大型網站來說,這個數字可能是成千上萬或數十萬。

通常對全數據記錄感興趣 (例如產品表中的每一列)。

分析工作負載是指用于實現分析目的的工作負載。在生成一個數據報告時,一個查詢將被發送給數據庫,計算結果,然后將結果顯示給最終用戶。

SELECT category_name, count(*) as num_products FROM products GROUP BY 1

分析工作負載具有以下屬性:

每個查詢通常會掃描表中的大量數據行。

每個查詢都是重量級的,并且需要很長時間 (幾分鐘,甚至幾小時) 才能完成。

并發查詢并不多,主要由使用分析系統的報告或內部人員數量決定。

通常只對幾列數據感興趣。

下面是事務工作負載(或數據庫)與分析工作負載(或數據庫)的比較。

事務工作負載有很多簡單的查詢,而分析工作負載有一些重量級的查詢。

底層架構的不同

由于上述兩種工作負載之間的巨大差異,這兩種工作負載的數據庫底層后端設計也是非常不一樣的。事務數據庫的優化目標是高并發的快速短查詢,而分析數據庫的優化目標是長時間運行的資源密集型查詢。

那么它們之間的架構區別是什么呢?這需要專門的文章才能解釋清楚,不過簡單地說,分析數據庫使用以下技術來保證性能:

列式存儲引擎:分析數據庫不是在磁盤上逐行存儲數據,而是將數據的列分組存儲。

列式數據的壓縮:壓縮每個列中的數據,獲得更小的存儲和更快的檢索速度。

查詢執行的并行化:現代分析數據庫通常運行在數千臺機器上。因此,可以將每個分析查詢拆分為多個更小的查詢,并在這些機器之間并行執行 (分治策略)。

你可能已經猜到了,MySQL、PostgreSQL、MSSQL 和 Oracle 數據庫主要用于處理事務工作負載,而數據倉庫用于處理分析工作負載。

那么,我可以使用普通的 SQL 數據庫作為數據倉庫嗎?

就像我們之前說的,可以,但要視情況而定。

如果剛開始時只有少量的數據和分析用例,選擇一個普通的 SQL 數據庫作為數據倉庫是可以的 (最流行的是 MySQL、PostgreSQL、MSSQL 或 Oracle)。如果有很多數據,仍然可以這樣做,但需要進行適當的調優和配置。

也就是說,隨著像 BigQuery、Redshift 這樣低成本數據倉庫的出現,我們建議使用數據倉庫。

不過,如果你必須要選擇一個普通的基于 SQL 的數據庫 (例如,你的公司只允許數據駐留在自己的網絡中),我們建議使用 PostgreSQL,因為它提供的分析功能最多。

5總結

在這篇文章里,我們主要談到了:

數據倉庫是存儲和處理數據的集中式分析數據庫。

構建數據倉庫的四個出發點。

一個簡單的數據倉庫技術列表。

數據倉庫為分析工作負載而優化,而傳統數據庫為事務工作負載而優化。

原文鏈接:

https://towardsdatascience.com/what-is-a-data-warehouse-when-and-why-to-consider-one-2e826be68e95

- END -


(部分內容來源網絡,如有侵權請聯系刪除)
立即申請數據分析/數據治理產品免費試用 我要試用
customer

在線咨詢

在線咨詢

點擊進入在線咨詢