メインコンテンツへスキップ
このエンジンでは、ClickHouse を RocksDB と統合できます。

テーブルの作成

エンジンパラメータ:
  • ttl - 値の有効期限 (TTL)。TTL は秒単位で指定します。TTL が 0 の場合は、通常の RocksDB インスタンスが使用されます (TTL なし) 。
  • rocksdb_dir - 既存の RocksDB のディレクトリへのパス、または新規作成される RocksDB の保存先パス。指定した rocksdb_dir でテーブルを開きます。
  • read_only - read_only を true に設定すると、読み取り専用モードになります。TTL を使用するストレージでは、compaction は手動・自動のいずれでもトリガーされないため、期限切れのエントリは削除されません。
  • primary_key_name – カラムリスト内の任意のカラム名。
  • primary key の指定は必須で、主キーとしてサポートされるカラムは 1 つのみです。主キーは rocksdb key として binary 形式でシリアライズされます。
  • 主キー以外のカラムは、対応する順序で rocksdb の値として binary 形式でシリアライズされます。
  • キーに対する equals または in フィルタを含むクエリは、rocksdb からの複数キーのルックアップ向けに最適化されます。
エンジン設定:
  • optimize_for_bulk_insert – テーブルは大量挿入向けに最適化されます (insert pipeline は memtable に書き込む代わりに SST ファイルを作成し、rocksdb database にインポートします) 。デフォルト値: 1
  • bulk_insert_block_size - 大量挿入時に作成される SST ファイルの最小サイズ (行数ベース) 。デフォルト値: 1048449
例:

メトリクス

RocksDB の統計情報を公開する system.rocksdb テーブルもあります:

設定

config を使用して、任意の RocksDB のオプション を変更することもできます。
デフォルトでは、単純な概算件数最適化は無効になっており、count() クエリのパフォーマンスに影響する可能性があります。この最適化を有効にするには、optimize_trivial_approximate_count_query = 1 を設定します。また、この設定は EmbeddedRocksDB エンジンの system.tables にも影響します。total_rowstotal_bytes の概算値を表示するには、この設定を有効にしてください。

対応している操作

挿入

新しい行が EmbeddedRocksDB に挿入される際、キーがすでに存在する場合は値が更新され、存在しない場合は新しいキーが作成されます。 例:

削除

行は、DELETE クエリまたは TRUNCATE を使用して削除できます。

更新

値は ALTER TABLE クエリで更新できます。主キーは更新できません。

JOIN

EmbeddedRocksDB テーブルに対する特別な direct join がサポートされています。 この direct join では、メモリ内に hash table を作成せず、 EmbeddedRocksDB から直接データにアクセスします。 大規模な joins では、hash table を作成しないため、 direct joins を使用すると memory usage を大幅に抑えられる場合があります。 direct joins を有効にするには:
join_algorithmdirect, hash に設定されている場合、可能であれば direct JOIN が使用され、 それ以外の場合は hash が使用されます。

EmbeddedRocksDB テーブルを作成し、データを挿入する
テーブル rdb と結合するテーブルを作成し、データを挿入する
JOIN アルゴリズムを direct に設定する
INNER JOIN

JOINの詳細

最終更新日 2026年7月1日