Skip to main content
Atomic エンジンは、非ブロッキングの DROP TABLE および RENAME TABLE クエリと、アトミックな EXCHANGE TABLES クエリをサポートします。オープンソース版 ClickHouse では、Atomic データベースエンジンがデフォルトで使用されます。
ClickHouse Cloud では、Shared データベースエンジン がデフォルトで使用されており、 上記の操作もサポートしています。

データベースの作成

詳細と推奨事項

テーブル UUID

Atomic データベース内の各テーブルには永続的な UUID が割り当てられており、そのデータは次のディレクトリに保存されます。
ここで、xxxyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy はテーブルの UUID を表します。 デフォルトでは、UUID は自動的に生成されます。ただし、テーブルの作成時に UUID を明示的に指定することもできますが、これは推奨されません。 たとえば:
UUID を SHOW CREATE クエリで表示するには、show_table_uuid_in_table_create_query_if_not_nil 設定を使用できます。

RENAME TABLE

RENAME クエリでは、UUID は変更されず、テーブルデータも移動されません。これらのクエリは即座に実行され、対象のテーブルを使用中の他のクエリの完了を待ちません。

DROP/DETACH TABLE

DROP TABLE を使用しても、データは削除されません。Atomic エンジンは、メタデータを /clickhouse_path/metadata_dropped/ に移動してテーブルを drop 済みとしてマークし、バックグラウンドスレッドに通知するだけです。最終的にテーブルデータが削除されるまでの遅延は、database_atomic_delay_before_drop_table_sec 設定で指定します。 SYNC 修飾子を使用すると、同期モードを指定できます。これを行うには、database_atomic_wait_for_drop_and_detach_synchronously 設定を使用します。この場合、DROP は、そのテーブルを使用している実行中の SELECTINSERT、およびその他のクエリが終了するまで待機します。テーブルは、使用されなくなった時点で削除されます。

EXCHANGE TABLES/辞書

EXCHANGEクエリは、テーブルまたは辞書をアトミックに入れ替えます。たとえば、次のような非アトミックな操作ではなく:
Non-atomic
Atomic データベースを使用できます。
Atomic

Atomic データベース内の ReplicatedMergeTree

ReplicatedMergeTree テーブルでは、ZooKeeper 内のパスとレプリカ名についてエンジンパラメータを指定しないことを推奨します。この場合、設定パラメータ default_replica_pathdefault_replica_name が使用されます。エンジンパラメータを明示的に指定する場合は、{uuid} マクロを使用することを推奨します。これにより、ZooKeeper 内で各テーブルに対して一意のパスが自動的に生成されます。

メタデータ用ディスク

SETTINGSdisk を指定すると、そのディスクにテーブルのメタデータファイルが保存されます。 例:
指定しない場合は、デフォルトで database_disk.disk に定義されたディスクが使用されます。

関連項目

最終更新日 2026年7月3日