目錄
- 流程圖
- 資料庫設計
- 測試資料說明
一、流程圖
說明:
1、 資訊資料彙總後,有處理程式處理,根據演算法,分發到演算法指定的資料庫伺服器上的索引庫,直到存到對應索引庫下面的資料儲存表。
2、每個地域也就是國家,下面可以有多臺資料伺服器,但是此地域(國家)下面的索引庫不能重複。因為這樣方便後續資料查詢。
3、當有資料到達索引庫後,需要儲存資料的情況下。預設情況下,索引庫下沒有儲存表。此時程式會建立第一個儲存表。當資料達到我們規定此存 儲表的儲存上限時,就會建立第二個儲存表,後續的資料,就會存到第二個儲存表中。以此類推。
二、資料庫設計
1、資料庫伺服器配置表:DBServer
[ID] : 主鍵
[DBTypeID]:資料庫型別ID(例如:國內1=D1、國內2=D2、國外1=H1)
[ServerIP] :資料庫伺服器IP
[UID] :使用者名稱
[Pwd]:密碼
[Remark]:備註說明
[MaxDataDBCount] :最多可以建立多少個資料儲存表
[Sequence]:排序
問題:
為什麼要有 [MaxDataDBCount] 欄位? —— 限制資料儲存表的建立,因為每臺伺服器的效能不一樣。要求也不一樣。
為什麼要有 [Sequence]欄位? —— 調整資料庫先後順序,方便資料插入
[DBTypeID]與[ServerIP]的關係 —— 這裡的資料庫型別我們可以比作是區域,一個區域可以分佈多臺資料庫。
2、索引資料庫配置表:IndexServerConfig
[ID]:主鍵
[DBTypeID]:資料庫型別ID(例如:國內1=D1、國內2=D2、國外1=H1)
[IndexDBNo]:索引庫編號
[ServerID]:當前索引庫所在的資料庫伺服器ID
[HashValues]:資料根據演算法生成的HashValues(0~255)
[CurrentDataDBNo]:當前索引庫對應的資料儲存表編號
[MaxDataCount]:對應的當前資料儲存表的最大資料儲存量
說明:
1、[HashValues]:就是我們根據資料特性和定義的相關演算法生成的對應的值,此處的[HashValues]是這些值得集合。
2、 [IndexDBNo]與 [HashValues]的對應關係
例如:
IndexDBNo HashValues
1 0,1,2,3,4,5,6,7
2 11,12,13
5 221,222,223,224,225
3、如上流程圖所示,每個地域國家[DBTypeID]可以對應多臺資料庫伺服器,但是地域下面的索引 [IndexDBNo]與【HashValues】一一對應不能重複。
3、儲存資訊資料庫配置:DataServerConfig
[ID]:主鍵
[DBTypeID]:資料庫型別ID(例如:國內1=D1、國內2=D2、國外1=H1)
[DataDBNo]:資料儲存表編號
[IndexDBNo]:索引庫編號
[ServerID]:伺服器編號
[MaxDataCount]:當前資料儲存表自定義的最大儲存量
三、測試流程
資料庫伺服器配置表:DBServer
索引資料庫配置表:IndexServerConfig
儲存資訊資料庫配置:DataServerConfig
一條資訊資料過來後,通過演算法轉換成HashValue=2,此資訊是國家地域編號 DBTypeID=1的資料。
根據 HashValue=2 和 DBTypeID=1 ,我們到 索引資料庫配置表:IndexServerConfig中找到相關索引資料
我們看到上圖中的第一條資料符合我們的標準,它所對應的資料庫伺服器編號IndexDBNo=1,ServerID=11
這樣我們就可以根據 DBTypeID=1 和 ServerID=11 和 IndexDBNo=1。找到具體什麼地域下的哪臺資料庫中的索引庫下的資料儲存表。
如果當前沒有儲存表,就程式自動建立一個儲存表。隨之將IndexServerConfig中對應的CurrentDataDBNo欄位修改成當前程式獲取的編號。
或者噹噹前儲存表已經滿了,也會建立新的儲存表,同時將新的儲存表編號更新到IndexServerConfig表中對應的CurrentDataDBNo欄位。
總結:
資料儲存
資料查詢: