2.3 資料來源
以csv資料為準,在ch的配置檔案config.xml下,*_dictionary.xml, 預設將載入所有該匹配到的配置檔案。並且支援不停機更新。完整的配置結構如下:
<?xml version="1.0"?>
geo
field1
string
field2
uint64
其中,標籤attribute中的配置說明如下:
配置名稱
是否必填
預設值說明
name是–
欄位名稱
type是–
字段型別
null_value是–
在查詢時,條件key沒有對應元素時的預設值
expression
否無表示式
表示式,可以呼叫或者表示式
hierarchical
否false
是否支援層次結構
injective
否false
是否支援集合單對映優化,開啟後在後續的group by查詢中,如果呼叫了dictget函式通過key獲取value,則該value直接從group by資料返回
is_object_id
否false
是否開啟mongodb優化,通過objectid對mongodb文件執行查詢
擴充套件字典的型別使用layout元素定義,目前支援7種型別。乙個字段型別,決定了其資料在記憶體中的儲存結構和字典支援的key型別。一種是單數值的key型別,包括flat、hashed、range_hashed和cache;另一類是復合key型別,包括complex_key_hashed、complex_key_cache和ip_trie。
2.2.1. flat
flat字典是效能最高的字典型別,只能以uint64數值型key,使用陣列結構儲存,初始大小為1024上限為500000,在建立字典時資料量超出其上限,那麼字典會建立失敗。以下為flat字典的示例:
測試資料:
1,"a0001","研發部"
2,"a0002","產品部"
3,"a0003","資料部"
4,"a0004","測試部"
5,"a0005","運維部"
6,"a0006","規劃部"
配置檔案:
<?xml version="1.0"?>
test_flat_dict
/home/data/ch/organization.csv
csv
idcode
string
name
string
300360
由於字典資料是懶載入,起初的狀態為 not_loaded:
在查詢了資料後:
hashed字典與flat不同的是,flat是以陣列的方式儲存,hashed則是雜湊結構,沒有上限制約。
以下是hashed字典的配置示例:
<?xml version="1.0"?>
test_flat_dict
/home/data/ch/organization.csv
csv
idcode
string
name
string
300360
2.2.3. range_hashed
在hashed字典的基礎上增加了指定時間區間的特性,資料會以雜湊結構儲存並按照時間排序。時間的區間通過range_min和range_max元素指定,所指定的字段必須是date或者datetime型別。
<?xml version="1.0"?>
test_range_hashed_dict
/home/data/ch/sales.csv
csv
idstart
endprice
float32
300360
2.2.4. cache
在記憶體中會通過固定長度的向量陣列儲存,長度為2 的整數倍並會自動向上取整,並不會像其他字典查詢一次後一次性全部直接載入到記憶體,而是命中一次載入一次,所以效能最不穩定,完全取決於命中率(快取命中率=命中次數/查詢次數)
2.2.5. complex_key_hashed
該型別的字典在功能上與hashed字典完全相同,只是將單個的數值的key替換成了複合型
<?xml version="1.0"?>
test_complex_hashed_dict
/home/data/ch/organization.csv
csv
iduint64
code
string
name
string
300360
查詢方式如下:
在cache字典的基礎上,將單數值的key替換為複合型。
2.2.7. ip_trie
專門用於ip字首查詢的場景,配置如下:
2.2.8. 總結
名稱儲存結構
字典鍵型別
支援的資料來源
flat
陣列uint64
雜湊uint64
雜湊按時間排序
uint64和時間
雜湊複合型key
層次結構
複合型key(單個string)
固定大小陣列
固定大小陣列
複合型key
國家資料字典mysql mysql的資料字典
因為對元資料 元資料就是那些關於如何資料庫的那些資料 的使用已經變得愈來愈普遍了,mysql5在產品中也相應地設計了乙個專門的資料庫,這個資料庫的固定名稱就是information schema,該資料庫作為乙個中心資料字典的角色出現,其中包含了資料庫的所有物件資訊和其他與資料庫相關的專案 比如安全...
資料字典筆記
資料字典可分為內部表 資料字典表 動態效能檢視和資料字典檢視。1.內部表 rdbms 是資料庫的核心,用於跟蹤內部庫資訊,維持庫正常執行。它以x 開頭,它些表是加密的,如x bh x ksmsp x kvit。資料庫啟動時動態建立內部表,不允許顯示授權。2.資料字典表用於儲存表 索引 約束等庫資訊。...
學習筆記(資料轉換)
1 object轉換string string str obj obj為null也不影響 string.valueof obj 定義或者初始化的obj傳入 2 object轉換long object string long string str string.valueof obj 定義或者初始化的...