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

redis テーブル関数

このテーブル関数により、ClickHouse を Redis と統合できます。

構文

redis(host:port, key, structure[, db_index[, password[, pool_size]]])

引数

引数説明
host:portRedis サーバーのアドレス。port を省略した場合は、デフォルトの Redis ポート 6379 が使用されます。
keyカラムリスト内の任意のカラム名。
structureこの関数から返される ClickHouse テーブルのスキーマ。
db_indexRedis の DB インデックス。0〜15 の範囲で指定し、デフォルトは 0。
passwordユーザーのパスワード。デフォルトは空文字列。
pool_sizeRedis の最大接続プールサイズ。デフォルトは 16。
primary必須で、プライマリキーとして 1 つのカラムのみをサポートします。プライマリキーは Redis キーとしてバイナリ形式でシリアライズされます。
  • プライマリキー以外のカラムは、指定された順序で Redis の値としてバイナリ形式でシリアライズされます。
  • key に対する = または IN でのフィルタ条件を含むクエリは、Redis への複数キーのルックアップとして最適化されます。キーでのフィルタ条件がないクエリでは全表スキャンが行われ、これは高コストな処理になります。

現在のところ、redis テーブル関数では Named collections はサポートされていません。

返される値

Redis のキーをキー列とし、その他のカラムをまとめて 1 つの Redis の値として格納するテーブルオブジェクトです。

使用例

Redis からの読み込み:

SELECT * FROM redis(
    'redis1:6379',
    'key',
    'key String, v1 String, v2 UInt32'
)

Redis への書き込み:

INSERT INTO TABLE FUNCTION redis(
    'redis1:6379',
    'key',
    'key String, v1 String, v2 UInt32') values ('1', '1', 1);