ClickHouse Cloud で Memoryテーブルエンジンを使用する場合、データはすべてのノード間でレプリカされません (これは仕様です) 。すべてのクエリが同じノードにルーティングされ、Memoryテーブルエンジンが期待どおりに動作するようにするには、次のいずれかを行います。
- すべての操作を同じセッションで実行する
- clickhouse-client など、TCP またはネイティブインターフェイス (スティッキー接続をサポート) を使用するクライアントを使う
GLOBAL IN の実装 (「IN 演算子」の節を参照) に使用されます。
Memoryエンジンのテーブルサイズを制限するために上限と下限を指定でき、これにより実質的に循環バッファとして動作させることができます (エンジンパラメータ を参照) 。
エンジンパラメータ
min_bytes_to_keep— メモリテーブルにサイズ上限が設定されている場合に保持する最小バイト数。- デフォルト値:
0 max_bytes_to_keepが必要
- デフォルト値:
max_bytes_to_keep— メモリテーブル内で保持する最大バイト数。各 insert 時に最も古い行が削除されます (つまり循環バッファ) 。大きな ブロック を追加する際、削除対象となる最も古い行のまとまりを削除するとmin_bytes_to_keepの制限を下回る場合、最大バイト数は指定した上限を超えることがあります。- デフォルト値:
0
- デフォルト値:
min_rows_to_keep— メモリテーブルにサイズ上限が設定されている場合に保持する最小行数。- デフォルト値:
0 max_rows_to_keepが必要
- デフォルト値:
max_rows_to_keep— メモリテーブル内で保持する最大行数。各 insert 時に最も古い行が削除されます (つまり循環バッファ) 。大きな ブロック を追加する際、削除対象となる最も古い行のまとまりを削除するとmin_rows_to_keepの制限を下回る場合、最大行数は指定した上限を超えることがあります。- デフォルト値:
0
- デフォルト値:
compress- メモリ内のデータを圧縮するかどうか。- デフォルト値:
false
- デフォルト値:
使用方法
bytes と 行 の上限指定パラメータは同時に設定できますが、実際に適用されるのは max と min のうち低い方の制限値です。