メインコンテンツへスキップ

階層型Dictionary

ClickHouse は、数値キー を持つ階層型Dictionaryをサポートしています。 以下の階層構造を見てください。
0 (共通の親)

├── 1 (ロシア)
│   │
│   └── 2 (モスクワ)
│       │
│       └── 3 (中心部)

└── 4 (イギリス)

    └── 5 (ロンドン)
この階層は、次の Dictionary テーブルで表せます。
region_idparent_regionregion_name
10Russia
21Moscow
32Center
40Great Britain
54London
このテーブルには、各要素の直近の親のキーを格納する parent_region カラムがあります。 ClickHouse は、外部 Dictionary 属性の階層プロパティをサポートしています。このプロパティを使うと、前述のような階層型 Dictionary を設定できます。 dictGetHierarchy 関数を使うと、要素の親チェーンを取得できます。 この例では、Dictionary の構造は次のようになります。
CREATE DICTIONARY regions_dict
(
    region_id UInt64,
    parent_region UInt64 DEFAULT 0 HIERARCHICAL,
    region_name String DEFAULT ''
)
PRIMARY KEY region_id
SOURCE(...)
LAYOUT(HASHED())
LIFETIME(3600);

最終更新日 2026年6月10日