GPS定位資料庫表設計
- 減少冗餘資料的儲存
- 資料寫入時進行預運算
- 通過降低記錄量提高系統的響應能力
- 降低磁碟的讀操作
GPS軌跡日誌資料表儲存原始的定位資訊資料,索引表為日誌資料表的索引資訊內容,預處理模組完成新資料的預處理運算功能,保持索引表的資訊與日誌資料表的資訊一致。
預處理模組建議為資料庫內部的儲存過程,保證對資料表操作的效率效能,通訊伺服器以訪問儲存過程的方式,完成資料儲存的事務處理。
1.3 模型原理 1.3.1 資料量日誌資料表最多儲存四個月的定位資訊資料,最高的記錄為246億條資料,資料量為2.3T(2012年9月-12月)。
索引表為日誌資料表的索引資訊,保留三個月零一天的車輛定位資訊,每車每天為一條記錄,最高資料量為432萬,每個車輛每天的摘要資訊儲存在二進位制的欄位裡。
摘要的資料內容包含定位時間、速度、里程、經度、緯度、角度狀態資訊,摘要在索引表裡按規定的報文方式儲存在索引表的二進位制欄位裡,每個車輛一天產生的定位資料量為4320條,速度為0的定位資訊所佔比例為40%-60%左右,因此摘要裡只記錄有速度的定位資料,每車每天的實際摘要的資料量為2000左右。每個摘要資訊量為30Bytes,因此每車每天產生的摘要為58K Bytes左右。
注:從統計角度考慮,摘要資訊裡也許會包括速度為0的定位資訊。
1.3.2 讀取效能索引表根據業務操作的需要分為“最新定位索引表”、“三個月定位索引表”及“相關的統計索引表”。由於索引表裡的記錄量在百萬級別內,可以實現毫秒級別的響應能力,所有的定位摘要資料儲存在一個BLOB的二進位制欄位裡,一次性快速讀取出58K Bytes左右的資料,即可獲得全天的車輛定位資料,避免資料庫在磁碟上隨機檢索定位資料讀而引起I/O效能瓶頸。
1.3.3 索引資料的寫操作每車每天的索引資訊的更新,通過預處理模組完成,如果索引表裡已經存在該車該天的記錄,則進行二進位制欄位的更新,否則自動新增新的記錄。新的車輛定位摘要資訊通過規定好的報文協議直接追加到二進位制欄位後面。
每天通過後臺作業的方式,定時刪除索引表裡最早一天的資料。一次刪除的最大記錄量為4.9萬條(2012年12月31日)。
讀取車輛在某時間段內的定位資料,會從索引表裡獲得到相應天數的記錄數,通過對BLOB欄位進行資料協議的處理,獲得定位摘要的記錄集。
協議的解析工作可以由預處理模組解析,然後反轉為表形式返回給web應用,也可以資料庫直接交付給web應用伺服器二進位制資料,由web應用伺服器完成資料的解析操作。
1.3.5 報表統計索引表裡二進位制資料摘要的狀態可以支援8種不同的狀態,每個定位資料可以同時具有8種不同的狀態,比如超速、偏移路線等,可以直接通過索引表進行統計,快速實時的獲取最新的報表資料。
1.4 關鍵表結構以下資料表的結構內容未必完整,為關鍵欄位的描述。
1.4.1 最新定位資料索引表專案 | 型別 | 長度(Byes) | 說明 |
號牌資訊 | Varchar2 | 8 | 粵A4811B格式 |
卡號資訊 | Number | 7 | 如:13828838124 |
定位時間 | Date | 8 | YYYYMMDDHH24MISS |
記錄時間 | Date | 8 | YYYYMMDDHH24MISS |
速度 | Number | 3 | 0≤SPEED≤999 |
里程 | Number | 4 | 0.00≤ MILEAGE≤9999.99 |
經度 | Number | 5 | 0.0000≤LONGITUDE≤180.0000,如果考慮境外定位,需要增加1位,可以支援最小-999.999 |
緯度 | Number | 5 | -90.0000≤LATITUDE≤90.000 |
角度 | Number | 3 | 0≤ANGLE≤999 |
狀態 | CHAR | 2 | 十六進位制,支援8種狀態,為2n,1≤n≤8, 1≤STATUS≤255 |
專案 | 型別 | 長度(Byes) | 說明 | |||
號牌資訊 | Varchar2 | 8 | 粵A4811B格式 | |||
卡號資訊 | Number | 7 | 如:13828838124 | |||
日期 | Number | 5 | 20090531格式 | |||
摘要資訊 | BLOB | ≈58K | 二進位制格式,記錄速度≥0的定位資訊 | |||
靜止摘要資訊 | BLOB | ≈58K | 二進位制格式,記錄速度=0的定位資訊,待定欄位 |
專案 | 型別 | 長度(Byes) | 說明 |
序號 | number | 10 | 格式為YYYYMMDDHH24+8位序號,共18位,每車每小時產生的記錄數為180,8位序號可以支援10萬車輛的定位服務 |
號牌資訊 | Varchar2 | 8 | 粵A4811B格式 |
卡號資訊 | Number | 7 | 如:13828838124 |
定位時間 | Date | 8 | YYYYMMDDHH24MISS |
記錄時間 | Date | 8 | YYYYMMDDHH24MISS |
速度 | Number | 3 | 0≤SPEED≤999 |
里程 | Number | 4 | 0.00≤ MILEAGE≤9999.99 |
經度 | Number | 5 | 0.0000≤LONGITUDE≤180.0000,如果考慮境外定位,需要增加1位,可以支援最小-999.999 |
緯度 | Number | 5 | -90.0000≤LATITUDE≤90.000 |
角度 | Number | 3 | 0≤ANGLE≤999 |
狀態 | CHAR | 2 | 十六進位制,支援8種狀態,為2n,1≤n≤8, 1≤STATUS≤255 |
合計 | 63 |