ATTACH, le serveur connaîtra l’existence de la table, du dictionnaire ou de la base de données.
Si une table a été précédemment détachée (requête DETACH), c’est-à-dire que sa structure est connue, vous pouvez utiliser la forme abrégée sans définir la structure.
Attacher une table existante
SyntaxeATTACH, qu’il exécute simplement au lancement (à l’exception de certaines tables système, qui sont créées explicitement sur le serveur).
Si la table a été détachée de façon permanente, elle ne sera pas attachée au démarrage du serveur ; vous devez donc exécuter explicitement la requête ATTACH.
Créer une nouvelle table et y attacher des données
Avec un chemin spécifié pour les données de la table
La requête crée une nouvelle table avec la structure fournie et y attache les données de la table à partir du répertoire indiqué dansuser_files.
L’utilisateur doit disposer des privilèges READ ON FILE et WRITE ON FILE pour cette requête : elle lit le répertoire et le déplace vers le data path de la nouvelle table.
Syntaxe
Query
Response
Avec l’UUID de la table spécifié
Cette requête crée une nouvelle table avec la structure fournie et y attache les données de la table ayant l’UUID spécifié. Elle est prise en charge par le moteur de base de données Atomic. SyntaxeRattacher une table MergeTree en ReplicatedMergeTree
Permet de rattacher une table MergeTree non répliquée en tant que ReplicatedMergeTree. La table ReplicatedMergeTree sera créée avec les valeurs des paramètresdefault_replica_path et default_replica_name. Il est également possible de rattacher une table répliquée en tant que table MergeTree classique.
La conversion est prise en charge pour les tables des bases de données Atomic et Ordinary. Une table d’une base de données Ordinary n’a pas d’UUID : la conversion en génère donc un, l’utilise une seule fois pour développer default_replica_path et enregistre explicitement le path obtenu dans les arguments du moteur de la table convertie. Pour ajouter d’autres répliques d’une telle table, indiquez explicitement ce path comme premier argument du moteur ReplicatedMergeTree ; vous le trouverez dans la colonne zookeeper_path de system.replicas. Comme le path enregistré ne contient plus la macro {uuid}, le znode appartenant à une telle table est retrouvé à chaque chargement en comparant de nouveau ce path à default_replica_path ; la conversion est refusée lorsqu’il est impossible de faire correspondre le path à ce modèle (par exemple, lorsque celui-ci développe {uuid} plus d’une fois). L’utilisation de {uuid} dans default_replica_name n’est prise en charge pour aucune conversion.
Notez que les données de la table dans ZooKeeper ne sont pas modifiées par cette requête. Cela signifie que vous devez ajouter les métadonnées dans ZooKeeper à l’aide de SYSTEM RESTORE REPLICA ou les supprimer avec SYSTEM DROP REPLICA ... FROM ZKPATH ... après le rattachement.
Si vous essayez d’ajouter une réplique à une table ReplicatedMergeTree existante, gardez à l’esprit que toutes les données locales de la table MergeTree convertie seront détachées.
Syntaxe
Query
Response
Query