key -> attributes) です。
ClickHouse は、Dictionary を操作するための特別な関数をサポートしており、これらはクエリ内で使用できます。参照テーブルに対して JOIN を使用するよりも、関数を使って Dictionary を利用するほうが簡単で効率的です。
Dictionary は、次の 2 つの方法で作成できます。
- DDLクエリを使用する (推奨)
- 設定ファイルを使用する
DDL クエリを使用した Dictionary の作成
- サーバー設定ファイルに追加のレコードを記述する必要がありません。
- Dictionary は、テーブルやビューと同様の第一級エンティティとして使用できます。
- Dictionary の table function ではなく、使い慣れた
SELECT構文を使ってデータを直接読み取れます。なお、SELECTステートメントで Dictionary に直接アクセスした場合、cache 型の Dictionary では cache されているデータのみが返され、非 cache 型の Dictionary では保持しているすべてのデータが返されます。 - Dictionary は簡単に名前を変更できます。
構文
| 句 | 説明 |
|---|---|
| Attributes | Dictionary の属性は、テーブルのカラムと同様に指定します。必須のプロパティは type のみで、それ以外はデフォルト値を設定できます。 |
| PRIMARY KEY | Dictionary のルックアップに使用するキーカラムを定義します。layout に応じて、1 つ以上の属性をキーとして指定できます。 |
SOURCE | Dictionary のデータソース (例: ClickHouse テーブル、HTTP、PostgreSQL) を定義します。 |
LAYOUT | Dictionary をメモリ内でどのように格納するかを制御します (例: FLAT、HASHED、CACHE) 。 |
LIFETIME | Dictionary の更新間隔を設定します。 |
ON CLUSTER | クラスター上に Dictionary を作成します。省略可能です。 |
SETTINGS | Dictionary に対する追加設定です。省略可能です。 |
COMMENT | Dictionary にテキストコメントを追加します。省略可能です。 |
設定ファイルを使用したDictionaryの作成
設定ファイルを使用したDictionaryの作成は ClickHouse Cloud ではサポートされていません。DDL (上記を参照) を使用し、
default ユーザーとしてDictionaryを作成してください。- レイアウト — Dictionaryがメモリ内でどのように格納されるか
- SOURCES — データソースへの接続
- 有効期間 — 自動更新の設定
- 属性 — キーと属性の設定
- Embedded Dictionaries — 組み込みのgeobase Dictionary
- system.dictionaries — Dictionaryの情報を含むシステムテーブル