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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

OLTP 系统和 OLAP 系统的核心设计思想

發布時間:2023/12/1 windows 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OLTP 系统和 OLAP 系统的核心设计思想 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

關于 OLTP 系統和 OLAP 系統的核心設計思想

數據存儲系統的關于查詢的典型操作:

-- 第一種需求: 根據 key(1) 找 value(name,age), 單點查詢 select name, age from student where id = 1; student:map id=1value=(name,age) -- 第二種需求: 根據 department 統計平均年齡, 全表查詢 select name, age from student where age > 30; 全表掃描 select department, avg(age) from student group by department; 全表掃描

對于第一種需求來說:

  • 如果數據量小,并且數據是結構化的,使用 MySQL 去存儲即可
  • 如果數據量大,不管是不是結構化的,可以轉成 key-value 的存儲,使用 HBase,Cassandra 等來解決, OLTP 系統 KV 系統 來滿足

對于第二種需求來說:

  • 如果數據量小,并且數據是結構化的,使用 MySQL 去存儲即可
  • 如果數據量大,不管是不是結構化的,設計一個專門用來做分析的存儲計算引擎解決分析的低效率問題, 設計一個 OLAP 系統

OLTP存儲系統核心設計思想

OLTP 存儲系統,核心需求是 實現海量數據集中的低延時隨機讀寫操作

  • 01、數據排序:在海量數據中要想保證低延時的隨機讀寫操作,數據最好是排序的
  • 02、范圍分區:當數據排序之后,可以進行范圍分區,來平攤負載,讓多臺服務器聯合起來對外提供服務
  • 03、內存 + 磁盤:保證處理效率,也保證數據安全
  • 04、內存:必須經過設計,內存具備優秀的數據結構,保證基本的讀寫高效,甚至為了不同的需求,可以讓讀寫效率傾斜。
  • 05、寫緩存:將為了實現數據有序而進行的低效率隨機寫轉換為內存隨機寫+磁盤順序寫的方式
  • 06、讀緩存:將經常查詢的熱點數據緩存在內存中,提高查詢效率
  • 07、磁盤:數據必須存放在磁盤,保證數據安全。磁盤數據文件必須經過精心設計,保證掃描磁盤數據文件的高效率
  • 08、跳表:基于數據排序+范圍分區構建索引表,形成跳表的拓撲結構,方便用戶操作時快速定位數據分區的位置
  • 09、LSM-Tree 存儲引擎:把隨機寫變成順序追加,在通過定期合并的方式來合并數據,去除無效數據,從而實現數據的刪除和修改。
  • 10、布隆過濾器:快速判斷一個元素(1)是否存在于一個龐大集合內/文件中(100E),常數級別的執行效率

海量數據中,如果進行高效率的查詢的核心思想:設計一種架構,能夠快速把待搜尋的數據范圍降低到原來的 1/n,然后再結合索引或者熱點數據放在內存等思路,就能實現高效率的查詢了。

OLAP存儲系統核心設計思想

核心需求是 實現海量數據集中的高性能低延遲查詢分析功能

  • 01、數據排序
  • 02、數據分區分片 + 分布式查詢
  • 03、列式存儲 + 字段類型統一
  • 04、列裁剪
  • 05、預聚合(搜索引擎: 輸入關鍵詞,搜索引擎根據關鍵詞到 數據庫 找到這個 關鍵詞對應的所有的 URL:這些 URL 就是提前計算出來的 )
  • 06、利用CPU特性:向量化引擎,操作系統必須支持
  • 07、主鍵索引 + 二級索引 + 位圖索引 + 布隆索引 等等各種索引技術
  • 08、支持近似計算, pv 一個電商平臺的 sku 總數
  • 09、定制引擎:多樣化的存儲引擎滿足不同場景的特定需要
  • 10、多樣化算法選擇:Volnitsky高效字符串搜索算法 和 HyperLogLog基于概率高效去重算法
    單條記錄的增刪改等操作,通過數據的橫向劃分,做到數據操作的快速定位,在海量數據查詢分析中,一般就是針對大量行少量列做分析,既然并不是全部列,那么把數據做縱向切分把表中的數據按照列來單獨存儲,那么在做分析的時候,同樣可以快速把待查詢分析的數據總量降低到原來表的1/n,同樣提高效率。而且對于常用的聚合邏輯的結果,也可以提前算出來緩存起來用來提供效率,這就是預聚合技術。
    Kylin 是一個把預聚合技術發揮到極致的一個 OLAP 技術,詳細見:OLAP引擎——Kylin介紹
    它的缺點如下:
  • 1、預聚合只支持固定的分析場景,無法滿足自定義分析場景,所以預聚合只能作為一種可選方案
  • 2、維度組合爆炸會導致數據膨脹,這樣會造成不必要的計算和存儲開銷。無必要的維度組合的計算就屬于浪費資源
  • 3、大概率數據都是增量生成,預聚合不能進行數據更新。所以會產生大量的重算。

總結

以上是生活随笔為你收集整理的OLTP 系统和 OLAP 系统的核心设计思想的全部內容,希望文章能夠幫你解決所遇到的問題。

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