Clickhouse筆記 資料字典

2021-10-09 02:10:41 字數 3841 閱讀 6893

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 定義或者初始化的...