1. 程式人生 > >實時資料庫歷史資料容量的計算方法

實時資料庫歷史資料容量的計算方法

經常有客戶問,使用你們的實時資料庫,該如何計算存貯一年曆史資料所需要的磁碟空間? 讓我們以一個具體例子進行說明吧:一個專案中,總共有1萬個模擬量測點,這些測點平均每秒變化一次,每次變化均要儲存,存貯一年曆史資料,需要多少磁碟空間? 為了很好地說明這個問題,我們先來分析一下,如果採用關係資料庫來儲存這些歷史資料,需要多少磁碟空間。假定關係資料庫採用一個表來儲存歷史資料,表的格式定義如下:
欄位名 型別 長度 備註
TagID 整型 4位元組 測點編號,1萬個測點只需2位元組整型,但考慮到最大儲存測點可能超過65536,因此,定義為4位元組整型
Second 整型 4位元組
MillSecond 短整型 2位元組 毫秒
Quality 位元組 1
位元組
質量戳
Value 雙精度數 8位元組
關係資料庫中,計算曆史資料應考慮如下幾個方面的因素: l  管理檔案 l  表格式描述頭 l  資料 l  索引 其中,管理檔案及表格式描述頭可以忽略不計,只需要考慮資料和索引即可。另外,在此也不考慮日誌檔案的大小。 假定關係資料庫中不對資料進行任何壓縮,採用定時儲存,則資料容量的計算公式如下所示: 資料容量=單條歷史資料的尺寸*秒數*分鐘數*小時數*天數*測點數 所以,資料容量=(4+4+2+1+8)*60*60*24*365*10000=5580G 假定對該表中的TagIDSecondMillSecond建立唯一索引,同時假定關係資料庫的索引結構為B+
樹索引,一般的B+樹的利用效率在40%左右,因此,索引大小的計算公式如下所示: 索引容量=單條索引的尺寸*秒數*分鐘數*小時數*天數*測點數/0.4 所以,索引容量=(4+4+2)*60*60*24*365*10000/0.4=7342G 因此,用關係資料庫儲存10000個每秒鐘變化一次的雙精度數,同時建立一個索引,需要磁碟空間為:12922G。 ------------------------------------------------------------------------------ 下面,我們再來計算一下實時資料庫的歷史資料容量的計算方法。 首先要說明,不同的實時資料庫對歷史資料採用了不同的存貯方法,因此,計算方法也各不相同,在此,僅以我們自己的實時資料庫為例,進行計算。 首先需要介紹一下我們的實時資料庫的特點: l  歷史資料按時間段分為多個檔案儲存,每個檔案儲存一段時間內的歷史資料,儲存一年的歷史資料大概需要60
個檔案; l  每段時間內的資料和索引儲存在同一個檔案內; l  測點的ID與其它資料在檔案內分開儲存。 針對我們的實時資料庫,計算曆史資料應考慮如下幾個方面的因素: l  管理檔案 l  檔案頭 l  資料 l  索引 其中,管理檔案的大小大概為100K左右,可以忽略。 檔案頭大小=單個檔案頭大小*所有歷史資料檔案頭大小=512K*60=0.03G,也可以忽略 在完全不壓縮的情況下,資料容量的計算公式為: 不壓縮資料容量=單條歷史資料的尺寸*秒數*分鐘數*小時數*天數*測點數 其中,單條歷史資料的尺寸已經過緊密化處理,只佔14位元組,所以,資料容量=14*60*60*24*365*10000=4111G 我們的實時資料庫採用了特殊的索引機制,不需要對每條資料進行索引,平均200條資料才需要記錄一次索引,在完全不壓縮的情況下,索引容量的計算方法為: 不壓縮索引容量=單條索引的尺寸*秒數*分鐘數*小時數*天數*測點數/200 所以,索引容量=10*60*60*24*365*10000/200=15G 最後,再考慮壓縮率。採用不同的壓縮演算法會有不同的壓縮比,另外,還與壓縮率有關,這個沒有統一的計算公式。但是,在工程現場,一般而言,採用哈佛曼演算法的壓縮比為15:1左右,採用變化壓縮演算法的壓縮比為20:1左右,採用旋轉門演算法的壓縮比為30:1左右。如果再加上一些特殊的技術(如二次壓縮技術,質量戳與資料值分開儲存等),壓縮比可以達到40:1左右。我們就按40:1進行計算 壓縮後總容量=(不壓縮資料容量+不壓縮索引容量)/壓縮比 所以,以上例子中,實時資料庫歷史資料總容量=4111+15/40=103G 注意,以上計算只考慮了雙精度數測點,如果系統中還有開關量、字串、單精度數,其中,開關量的變化可能非常緩慢,這些沒有準確的計算公式,可以近似地處理為,將以上結果再除以4最後,給出一個在我們的實時資料庫中,大致計算曆史資料容量的公式: 歷史資料容量=年數*萬點數*25/平均變化一次的秒數 ----------------> 就儲存來說:RTDB是DB 的 1/100

相關推薦

實時資料庫歷史資料容量計算方法

經常有客戶問,使用你們的實時資料庫,該如何計算存貯一年曆史資料所需要的磁碟空間? 讓我們以一個具體例子進行說明吧:一個專案中,總共有1萬個模擬量測點,這些測點平均每秒變化一次,每次變化均要儲存,存貯一年曆史資料,需要多少磁碟空間? 為了很好地說明這個問題,我們先來分析一下,

鋰離子電池電壓與容量的關係及容量計算方法

我也是轉載的    鋰離子電池開路電壓與電池容量的對應關係分析      先給出一個表格:如下,百分比是電池的剩餘容量,右側是對應的電池的開路電壓(OCV).   100%----4.20V   90%-----4.06V   8

SQL查詢日誌 檢視資料庫歷史查詢記錄的方法

SELECT TOP 1000  --建立時間  QS.creation_time,  --查詢語句  SUBSTRING(ST.text,(QS.statement_start_offset/2)+1,  ((CASE QS.statement_end_offset WH

實時資料庫資料採集

   實時資料庫(RTDB-Real Time DataBase)是資料庫系統發展的一個分支,是資料庫技術結合實時處理技術產生的。實時資料庫系統是開發實時控制系統、資料採集系統、CIMS系統等的支撐軟體。在流程行業中,大量使用實時資料庫系統進行控制系統監控,系統先進控制和優化控制,併為企業的生產管理和排程

含LOB的表實際容量計算方法

前兩天有一個開發庫,報了ORA-01654的錯誤,提示的是SYS_IL000…$$的物件不能分配表空間了,首先這種SYS_IL的物件名稱是系統預設為LOB大物件LOBINDEX設定的名稱,其次開發人員檢索dba_segments檢視看這個LOB所屬表的空間,似乎

【原創】基於分散式儲存的開源系統在實時資料庫海量歷史資料儲存專案上的預研

1.  要關注的問題 2.  解決問題的傳統方法 3.  傳統方法的優化以及優化過程中問題 4.  Hadoop是什麼?Hadoop中的HDFS、MapReduce與HBase。 5  利用HBase如何解決要關注的問題 1.  要關注的問題 青島高

資料中心(IDC)的UPS電池容量配置的計算方法

UPS電池配置計算方法: (UPS容量<VA>)×功率因數×後備時間÷啟動電壓=AH<安時> 其中: 啟動電壓可以向廠家諮詢。一般為384V或者240V(單相或三相)。 每組電

兩個Oracle資料庫中的表的結構和資料的複製方法

1. 複製表結構及其資料: create table table_name_new as select * from table_name_old 2. 只複製表結構: create table table_name_new as select * from table_name_old

mssql sqlserver 使用sql指令碼 清空所有資料庫資料方法分享

摘要: 下文講述清空資料庫中所有表資訊的方法分享,如下所示: 實驗環境:sql server 2008 實現思路: 1.禁用所有約束,外來鍵 2.禁用所有觸發器 3.刪除表資料 4.開啟觸發器 5.開啟約束 CREATE PROCEDURE proc_deleteDateSql /* 生

mysql設定表列的時候把時間設定成String型別,java 程式後面涉及到當前時間和資料庫資料的差值計算,怎麼破?

mysql設定表列的時候把時間設定成String型別,java 程式後面涉及到當前時間和資料庫裡資料的差值計算,怎麼破? 如果改資料庫裡面表的列屬性varchar改成time,需要很多地方改進,而且專案已經試運行了,怕出問題? 在java程式中型別轉化很多,String型別可以轉化為date

資料庫怎麼實時備份,資料雙機熱備

www.syncnavigator.cn SyncNavigator 做資料同步時所支援的資料庫型別: 支援sqlserver 2000-2014所有版本,全相容,和MYsql 4.x 、MYsql 5.x 、MYsql 6.x版本。 來源資料庫和目標資料庫可以版本不同,比如:來源資料庫

scrapy框架 基於mysql資料庫儲存資料方法、案例

流程思路 將解析資料存到items物件 使用yield 將items交給管道檔案處理 在管道檔案pipelines編寫程式碼儲存到資料庫 在setting配置檔案開啟管道 案例 items中 按照格式定義欄位 import s

基於歷史資料的使用者訪問次數,每天新老使用者,日活,周活,月活的hive計算

最近有一個需求,統計每天的新老使用者,日活,周活,月活。 我們每天的增量資料會加入到hive歷史資料表中,包含使用者訪問網站的一些資訊,欄位有很多,包括使用者唯一標識guid。 當然了日活,周活,月活就是一個count(distinct(guid))語句,非常常用的sql。 但是

風火程式設計--python獲取單隻股票實時資料歷史資料

獲取股票資料 這本來是專門為我的一個單一選股模型提供資料的類, 因此封裝的只是模型中需要的資料. 如有其它需求可以自己擴充套件. 積分多的可以下載檔案, 沒積分的直接複製下面的程式碼是一樣的. 程式碼不復雜, 一看就懂. 歡迎加qq或微信(77245741)共同探討. # cod

Hadoop(三) 大資料離線計算實時計算

分享一下我老師大神的人工智慧教程吧。零基礎,通俗易懂!風趣幽默!http://www.captainbed.net/ 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

使用binlog日誌恢復MySQL資料庫刪除資料方法

binlog日誌簡介: binlog 就是binary log,二進位制日誌檔案,這個檔案記錄了MySQL所有的DDL和DML(除了資料查詢語句)語句,以事件形式記錄,還包含語句所執行的消耗的時間。 binlog日誌包括兩類檔案: 1)二進位制日誌索引檔案(檔名字尾為.index):用於

金融量化分析-python量化分析系列之---使用python獲取股票歷史資料實時分筆資料

財經資料介面包tushare的使用(一) Tushare是一款開源免費的金融資料介面包,可以用於獲取股票的歷史資料、年度季度報表資料、實時分筆資料、歷史分筆資料,本文對tushare的用法,已經存在的一些問題做一些介紹。 一:安裝tushare 為避免由於依賴包缺失導致安裝失敗,請先安裝anaconda,

網頁資料實時更新的三種簡單方法

一、頁面自動重新整理<meta http-equiv="refresh" content="20">其中20指每隔20秒重新整理一次頁面. 二、頁面自動跳轉:<meta http-equiv="refresh" content="20;url=http://www.hackhome.com">其

ms SQL server資料庫備份、壓縮與SQL資料庫資料處理的方法

ms SQL server資料庫備份、壓縮與SQL資料庫資料處理的方法 一、備份資料庫 1、開啟SQL企業管理器,在控制檯根目錄中依次點開Microsoft SQL Server 2、SQL Server組-->雙擊開啟你的伺服器-->雙擊開啟資料庫目錄 3、選擇你的資料庫名稱(如論

資料庫資料轉換為excel檔案下載到本地的方法中遇到的困難及解決方案

以下是將資料庫的資料轉換為excel檔案下載到本地的方法 @Autowired private BooksService booksService; @RequestMapping("/downloadBooksExcel") public void down