メインコンテンツまでスキップ
メインコンテンツまでスキップ

EmbeddedRocksDB エンジン

Not supported in ClickHouse Cloud

このエンジンは、ClickHouse を RocksDB と統合することを可能にします。

テーブルの作成

エンジンパラメータ:

  • ttl - 値の有効期限。TTLは秒単位で受け付けられます。TTLが 0 の場合、通常の RocksDB インスタンスが使用されます (TTL なし)。
  • rocksdb_dir - 既存の RocksDB のディレクトリのパスまたは作成された RocksDB の宛先パス。指定された rocksdb_dir でテーブルを開きます。
  • read_only - read_only が true に設定されている場合、読み取り専用モードが使用されます。TTL を持つストレージの場合、コンパクションはトリガーされず (手動または自動のどちらも)、期限切れのエントリは削除されません。
  • primary_key_name – カラムリスト内の任意のカラム名。
  • primary key は指定する必要があり、主キーには 1 つのカラムのみがサポートされています。主キーは rocksdb key としてバイナリでシリアライズされます。
  • 主キー以外のカラムは、対応する順序で rocksdb 値としてバイナリでシリアライズされます。
  • キー equals または in フィルタリングを持つクエリは、rocksdb からのマルチキーのルックアップに最適化されます。

エンジン設定:

  • optimize_for_bulk_insert – テーブルはバルク挿入用に最適化されています (挿入パイプラインは SST ファイルを作成し、メムテーブルへの書き込みの代わりに rocksdb データベースにインポートします); デフォルト値: 1
  • bulk_insert_block_size - バルク挿入によって作成される SST ファイルの最小サイズ (行数単位); デフォルト値: 1048449

例:

メトリクス

system.rocksdb テーブルもあり、rocksdb の統計情報を公開しています:

設定

任意の rocksdb オプション を設定を使用して変更することもできます:

デフォルトでは、単純な近似カウントの最適化はオフになっており、これが count() クエリのパフォーマンスに影響を与える可能性があります。この最適化を有効にするには、optimize_trivial_approximate_count_query = 1 を設定します。また、この設定は EmbeddedRocksDB エンジンの system.tables にも影響し、total_rows および total_bytes の近似値を表示するには設定をオンにしてください。

サポートされる操作

挿入

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

例:

削除

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

更新

値は ALTER TABLE クエリを使用して更新できます。主キーは更新できません。

ジョイン

EmbeddedRocksDB テーブルとの特別な direct ジョインがサポートされています。 この直接ジョインは、メモリ上でハッシュテーブルを形成せず、EmbeddedRocksDB から直接データにアクセスします。

大規模なジョインでは、ハッシュテーブルが作成されないため、メモリ使用量が大幅に低下する場合があります。

直接ジョインを有効にするには:

ヒント

join_algorithmdirect, hash に設定されている場合、可能な場合は直接ジョインが使用され、それ以外の場合はハッシュジョインが使用されます。

EmbeddedRocksDB テーブルの作成とデータの挿入
rdb テーブルと結合するためのテーブルの作成とデータの挿入
ジョインアルゴリズムを direct に設定
INNER JOIN

ジョインに関するさらなる情報