日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

mssql 为什么连接是sleeping 而不释放_什么是数据仓库,以及我为什么需要它?

發布時間:2025/3/15 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mssql 为什么连接是sleeping 而不释放_什么是数据仓库,以及我为什么需要它? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    • 亞馬 Redshift

    • 谷歌 BigQuery

    • Snowflake

    • ClickHouse(自托管)

    • Presto(自托管)

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

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

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

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

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

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

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

    名稱開發商價格
    亞馬遜 Redshift亞馬遜,作為 AWS 產品的一部分按實例付費,每小時 0.25 美元起(一個月大約 180 美元)
    谷歌 BigQuery谷歌,作為 Google Cloud 產品的一部分按數據查詢和數據存儲付費,前 10GB 存儲和前 1TB 查詢量免費
    ClickHouse由 Yandex 開發,后來開源出來開源免費,可以部署在自己的服務器上
    SnowflakeSnowflake 公司按使用量付費
    Presto由 Facebook 開發,后來開源出來,現在由 Presto 基金(Linux 基金的一部分)負責管理開源免費,可以部署在自己的服務器上
    數據倉庫與普通 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,因為它提供的分析功能最多。

    總結

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

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

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

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

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

    原文鏈接:

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

    你也「在看」嗎??

    總結

    以上是生活随笔為你收集整理的mssql 为什么连接是sleeping 而不释放_什么是数据仓库,以及我为什么需要它?的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。