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

Dictionary レイアウトの種類

Dictionary をメモリ内に格納する方法は複数あり、それぞれ CPU 使用量と RAM 使用量の間でトレードオフがあります。
推奨レイアウトflathashed、および complex_key_hashed は、最良のクエリパフォーマンスを提供します。 キャッシュ系レイアウトは、パフォーマンスが低くなる可能性があり、パラメータ調整も難しいため推奨されません。詳細は cache を参照してください。

Dictionary のレイアウトを指定する

ClickHouse Cloud で Dictionary を使用している場合は、DDLクエリオプションを使用して Dictionary を作成し、default ユーザーとして作成してください。 また、サポートされている Dictionary ソースの一覧は、Cloud Compatibility ガイドで確認してください。
Dictionary のレイアウトは、LAYOUT 句 (DDL の場合) または設定ファイル定義の layout 設定で指定できます。

完全な DDL 構文については、CREATE DICTIONARY も参照してください。 レイアウト名に complex-key* を含まない Dictionary は UInt64 型のキーを持ち、complex-key* Dictionary は複合キー (複雑で、任意の型を持つキー) を持ちます。 数値キーの例 (カラム key_columnUInt64 型) :

複合キーの例 (キーは String 型の要素を 1 つ持ちます) :

Dictionary のパフォーマンスを向上させる

Dictionary のパフォーマンスを向上させる方法はいくつかあります。
  • GROUP BY の後で、Dictionary を使用する関数を呼び出します。
  • 取得する属性を injective としてマークします。 異なるキーに異なる属性値が対応する場合、その属性は injective と呼ばれます。 そのため、GROUP BY でキーから属性値を取得する関数を使用している場合、この関数は自動的に GROUP BY から除外されます。
ClickHouse は Dictionary に関するエラーに対して例外を生成します。 エラーの例としては、次のようなものがあります。
  • アクセスしている Dictionary を読み込めない。
  • cached Dictionary のクエリ時のエラー。
Dictionary の一覧とそのステータスは、system.dictionaries テーブルで確認できます。
最終更新日 2026年7月3日