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に設定されると、可能な場合に直接ジョインが使用され、そうでなければハッシュが使用されます。