Atomic prend en charge les requêtes DROP TABLE et RENAME TABLE sans blocage, ainsi que les requêtes atomiques EXCHANGE TABLES. Le moteur de base de données Atomic est utilisé par défaut dans la version open source de ClickHouse.
Dans ClickHouse Cloud, le moteur de base de données
Shared est utilisé par défaut et prend également en charge
les opérations mentionnées ci-dessus.Créer une base de données
Spécificités et recommandations
UUID de la table
Atomic possède un UUID permanent et stocke ses données dans le répertoire suivant :
xxxyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy est l’UUID de la table.
Par défaut, l’UUID est généré automatiquement. Les utilisateurs peuvent toutefois le définir explicitement lors de la création d’une table, bien que cela ne soit pas recommandé.
Par exemple :
Vous pouvez utiliser le paramètre show_table_uuid_in_table_create_query_if_not_nil pour afficher l’UUID dans le résultat de la requête
SHOW CREATE.RENAME TABLE
RENAME ne modifient pas l’UUID et ne déplacent pas les données de la table. Elles s’exécutent immédiatement et n’attendent pas la fin des autres requêtes utilisant la table.
DROP/DETACH TABLE
DROP TABLE, aucune donnée n’est supprimée. Le moteur Atomic se contente de marquer la table comme supprimée en déplaçant ses métadonnées vers /clickhouse_path/metadata_dropped/ et en notifiant le thread d’arrière-plan. Le délai avant la suppression définitive des données de la table est défini par le paramètre database_atomic_delay_before_drop_table_sec.
Vous pouvez activer le mode synchrone à l’aide du modificateur SYNC. Pour cela, utilisez le paramètre database_atomic_wait_for_drop_and_detach_synchronously. Dans ce cas, DROP attend la fin des requêtes SELECT, INSERT et autres requêtes en cours qui utilisent la table. La table sera supprimée lorsqu’elle ne sera plus utilisée.
EXCHANGE TABLES/DICTIONARIES
EXCHANGE permute des tables ou des dictionnaires de manière atomique. Par exemple, au lieu de cette opération non atomique :
Non-atomic
Atomic
ReplicatedMergeTree dans la base de données atomic
ReplicatedMergeTree, il est recommandé de ne pas spécifier les paramètres du moteur pour le chemin dans ZooKeeper ni le nom de la réplique. Dans ce cas, les paramètres de configuration default_replica_path et default_replica_name seront utilisés. Si vous souhaitez spécifier explicitement les paramètres du moteur, il est recommandé d’utiliser les macros {uuid}. Cela garantit que des chemins uniques sont automatiquement générés pour chaque table dans ZooKeeper.
Disque de métadonnées
disk est spécifié dans SETTINGS, le disque est utilisé pour stocker les fichiers de métadonnées de la table.
Par exemple :
database_disk.disk est utilisé par défaut.
Voir aussi
- system.databases table système