CREATE DICTIONARY
Dictionary は (key -> attributes) のマッピングであり、さまざまな種類の参照リストに適しています。
ClickHouse は、クエリ内で使用できる Dictionary 用の専用関数をサポートしています。参照テーブルとの JOIN を使うよりも、Dictionary をこれらの関数と組み合わせて使用する方が簡単かつ効率的です。
Dictionary を作成する方法は 2 つあります:
DDLクエリでDictionaryを作成する
Supported in ClickHouse Cloud
DictionaryはDDLクエリを使って作成できます。
この方法での作成が推奨されるのは、次の理由によります:
- サーバーの設定ファイルに追加のレコードを追記する必要がありません。
- Dictionaryをテーブルや VIEW などの第一級のエンティティと同様に扱うことができます。
- Dictionaryテーブル関数ではなく、なじみのある
SELECT構文を使ってデータを直接読み取ることができます。SELECT文でDictionaryに直接アクセスする場合、キャッシュ型Dictionaryはキャッシュされているデータのみを返し、非キャッシュ型Dictionaryでは保持しているすべてのデータを返すことに注意してください。 - Dictionaryは容易に名前を変更できます。
構文
| Clause | Description |
|---|---|
| Attributes | Dictionary の属性はテーブルのカラムと同様に指定します。必須プロパティは型のみで、それ以外にはデフォルト値を設定できます。 |
| PRIMARY KEY | Dictionary に対するルックアップ用のキーとなるカラムを定義します。レイアウトに応じて、1 つ以上の属性をキーとして指定できます。 |
SOURCE | Dictionary のデータソースを定義します(例: ClickHouse テーブル、HTTP、PostgreSQL)。 |
LAYOUT | Dictionary をメモリ上にどのように格納するかを制御します(例: FLAT, HASHED, CACHE)。 |
LIFETIME | Dictionary のリフレッシュ間隔を設定します。 |
ON CLUSTER | クラスタ上に Dictionary を作成します。省略可能です。 |
SETTINGS | 追加の Dictionary 設定を指定します。省略可能です。 |
COMMENT | Dictionary にテキストコメントを追加します。省略可能です。 |
設定ファイルを使用して Dictionary を作成する
Not supported in ClickHouse Cloud
注記
設定ファイルを使用して Dictionary を作成する方法は ClickHouse Cloud ではサポートされていません。上記の DDL を使用し、default USER として Dictionary を作成してください。
Dictionary の設定ファイルは次の形式です。
同じファイル内に任意の数の辞書を設定できます。
関連コンテンツ
- Layouts — Dictionary がメモリ上でどのように格納されるか
- Sources — データソースへの接続方法
- Lifetime — 自動更新の設定
- Attributes — キーおよび属性の設定
- Embedded Dictionaries — 組み込み geobase Dictionary
- system.dictionaries — Dictionary 情報を保持するシステムテーブル