EmbeddedRocksDBエンジン
このエンジンは、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の統計情報を表示します:
構成
次のようにconfigを使用して任意のrocksdbオプションを変更できます:
デフォルトでは、トリビアル近似カウント最適化はオフになっており、これがcount()クエリのパフォーマンスに影響を与える可能性があります。この
最適化を有効にするには、optimize_trivial_approximate_count_query = 1を設定します。この設定はEmbeddedRocksDBエンジンのsystem.tablesにも影響を与え、
total_rowsおよびtotal_bytesの近似値を表示するには設定をオンにします。
サポートされている操作
挿入
新しい行がEmbeddedRocksDBに挿入されるとき、キーがすでに存在する場合は値が更新され、存在しない場合は新しいキーが作成されます。
例:
削除
行はDELETEクエリまたはTRUNCATEを使用して削除できます。
更新
値はALTER TABLEクエリを使用して更新できます。主キーは更新できません。
ジョイン
EmbeddedRocksDBテーブルとの特別なdirectジョインがサポートされています。
この直接ジョインはメモリ内でハッシュテーブルを形成せず、EmbeddedRocksDBからデータに直接アクセスします。
大きなジョインでは、ハッシュテーブルが作成されないため、直接ジョインでメモリ使用量が大幅に低下することがあります。
直接ジョインを有効にするには:
join_algorithmがdirect, hashに設定されると、可能な場合に直接ジョインが使用され、そうでなければハッシュが使用されます。
