Redis
このエンジンは、ClickHouse を Redis と統合することを可能にします。Redis は kv モデルを使用するため、where k=xx
や where k in (xx, xx)
のようにポイントクエリでのみクエリを実行することを強く推奨します。
Creating a table
Engine Parameters
host:port
— Redis サーバーのアドレスで、ポートは無視してもよく、デフォルトの Redis ポート 6379 が使用されます。db_index
— Redis データベースインデックスは 0 から 15 の範囲で、デフォルトは 0 です。password
— ユーザーパスワードで、デフォルトは空文字列です。pool_size
— Redis 最大接続プールサイズで、デフォルトは 16 です。primary_key_name
- カラムリスト内の任意のカラム名です。
PRIMARY KEY
は 1 つのカラムのみをサポートします。主キーは、Redis キーとしてバイナリ形式でシリアライズされます。主キー以外のカラムは、対応する順序で Redis 値としてバイナリ形式でシリアライズされます。
引数は、named collections を使用しても渡すことができます。この場合、host
と port
は別々に指定する必要があります。このアプローチは、運用環境で推奨されます。この時点で、named collections を使用して Redis に渡すすべてのパラメータは必須です。
key equals
または in filtering
のクエリは、Redis からのマルチキー検索に最適化されます。フィルタリングキーなしのクエリは、フルテーブルスキャンを実行することになり、これは重い操作です。
Usage example
プレーン引数を使用して Redis
エンジンで ClickHouse にテーブルを作成します:
または named collections を使用して:
挿入:
クエリ:
更新:
主キーは更新できないことに注意してください。
削除:
トランケート:
Redis データベースを非同期でフラッシュします。また、Truncate
は SYNC モードをサポートしています。
結合:
他のテーブルと結合します。
Limitations
Redis エンジンは where k > xx
などのスキャンクエリもサポートしていますが、いくつかの制限があります:
- スキャンクエリは、非常に稀なケースとして再ハッシュ時に重複したキーを生成する可能性があります。詳細は Redis Scan を参照してください。
- スキャン中にキーが作成されたり削除されたりする可能性があるため、結果のデータセットは有効な時間のポイントを表すことができません。