EXECUTE DCM PROJECT¶
Exécute l’une des actions suivantes sur un projet DCM :
EXECUTE DCM PROJECT <name> PLANeffectue une simulation de l’exécution de DCM project pour analyser les modifications qui seraient appliquées à la cible lors d’un déploiement, mais n’applique aucune modification.EXECUTE DCM PROJECT <name> DEPLOYdéploie les modifications définies dans les fichiers de définition du projet sur le compte.EXECUTE DCM PROJECT <name> REFRESH ALLactualise les tables dynamiques gérées par DCM project.EXECUTE DCM PROJECT <name> TEST ALLteste toutes les attentes des fonctions de métrique des données associées gérées par DCM project.EXECUTE DCM PROJECT <name> PREVIEWrenvoie un échantillon de données des définitions actuelles spécifiées dans le chemin source de la table, vue ou table dynamique spécifiée.
- Voir aussi :
CREATE DCM PROJECT, ALTER DCM PROJECT, DESCRIBE DCM PROJECT, DROP DCM PROJECT, SHOW DCM PROJECTS, SHOW DEPLOYMENTS IN DCM PROJECT
Syntaxe¶
Paramètres requis¶
nameSpécifie l’identificateur du projet DCM à exécuter.
Si l’identificateur contient des espaces ou des caractères spéciaux, toute la chaîne doit être délimitée par des guillemets doubles. Les identificateurs entre guillemets doubles sont également sensibles à la casse.
Pour plus d’informations, voir Exigences relatives à l’identificateur.
PLANDemande à Snowflake d’effectuer une simulation de l’exécution de|dcm-object|. En mode simulation, Snowflake analyse les modifications qui seraient appliquées à la cible lors d’un déploiement, mais n’applique aucune modification.
DEPLOY [ AS 'deployment_name_alias' ]Déploie les modifications définies dans les fichiers de définition du projet sur le compte ; spécifie éventuellement un alias pour le déploiement.
FROM 'source_files_path'Indique le répertoire qui contient les fichiers sources de DCM project. Le répertoire doit contenir un fichier manifeste et au moins un fichier de définition dans
/sources/definitions/. Le fichier manifeste fournit les valeurs de modélisation au cas où une configuration a été spécifiée.REFRESH ALLActualise toutes les tables dynamiques actuellement gérées par DCM project.
TEST ALLVérifie toutes les contraintes de qualité des données associées aux tables, aux tables dynamiques ou aux vues actuellement gérées par DCM project.
PREVIEW fully_qualified_table_object_nameRenvoie un échantillon de données des définitions actuelles spécifiées dans le chemin source pour la table, la vue ou la table dynamique spécifiée, indépendamment de tout état déployé.
Paramètres facultatifs¶
USING CONFIGURATION config_nameSpécifie la configuration à utiliser. Cela vous permet de personnaliser les déploiements pour différents environnements, tels que le développement, la mise en zone de préparation ou la production, sans utiliser différents fichiers de définition de projet.
Si le nom de la configuration n’est pas tout en majuscules, placez-le entre guillemets doubles.
USING ( expr [, expr , ... ] )Spécifie éventuellement les valeurs des variables de modèle. L’utilisation de cette option remplace toutes les valeurs par défaut ou de configuration pour cette variable spécifique. L’expression unique doit se présenter sous la forme suivante :
<variable_name> => <variable_value>. Pour les listes, utilisez le format suivant :<variable_name> => [<value1>, <value2>, ...]. Par exemple :wh_size => 'MEDIUM'orteams => ['TEAM_A', 'TEAM_B'].Cela vous permet de personnaliser les déploiements pour différents environnements, tels que le développement, la mise en zone de préparation ou la production, sans utiliser différents fichiers de définition de projet.
Exigences en matière de contrôle d’accès¶
Un rôle utilisé pour exécuter cette opération doit au minimum disposer des privilèges suivants :
Privilège |
Objet |
Remarques |
|---|---|---|
OWNERSHIP |
Projet DCM |
OWNERSHIP is a special privilege on an object that is automatically granted to the role that created the object, but can also be transferred using the GRANT OWNERSHIP command to a different role by the owning role (or any role with the MANAGE GRANTS privilege). |
Pour effectuer une opération sur un objet dans un schéma, il est nécessaire de disposer d’au moins un privilège sur la base de données parente et d’au moins un privilège sur le schéma parent.
Pour obtenir des instructions sur la création d’un rôle personnalisé avec un ensemble spécifique de privilèges, voir Création de rôles personnalisés.
Pour des informations générales sur les rôles et les privilèges accordés pour effectuer des actions SQL sur des objets sécurisables, voir Aperçu du contrôle d’accès.
Sortie¶
Après l’exécution de DCM project, cette commande renvoie la sortie suivante en fonction de la variation :
PLAN et DEPLOY : Une seule ligne contenant un objet JSON avec le journal des modifications.
PREVIEW : Un jeu de résultats.
REFRESH ALL : Une seule ligne contenant un objet JSON qui contient la réponse complète.
TEST ALL : Une seule ligne contenant un objet JSON qui contient la réponse complète.
Sortie PLAN et DEPLOY¶
Note
Au cours de la phase de prévisualisation, le format de sortie exact peut être sujet à changement.
La sortie du plan standard contient les informations suivantes sur l’exécution du plan au format JSON :
Propriété |
Description |
|---|---|
|
Version du schéma du format de sortie. La version 2 est la dernière version et la seule version prise en charge. |
|
Informations contextuelles sur l’exécution. |
|
Horodatage ISO 8601 du moment où la commande a été exécutée. |
|
Identificateur unique de la requête qui a produit ce plan. |
|
Nom complet de l’objet de projet DCM. |
|
Nom de l’utilisateur qui a exécuté la commande. |
|
Rôle actif utilisé pour exécuter la commande. |
|
La commande qui a été exécutée. |
|
Un tableau d’entrées de modifications. Chaque entrée représente un objet qui serait ou a été créé, modifié ou supprimé. Un tableau vide indique que les définitions du projet sont déjà synchronisées avec le compte. |
|
L’action planifiée pour l’objet. Valeurs possibles : |
|
Identifie l’objet cible. |
|
Le type d’objet Snowflake. |
|
Nom de l’objet. |
|
Nom complet de l’objet. |
|
Base de données contenant l’objet. Omis pour les objets au niveau du compte. |
|
Schéma contenant l’objet. Omis pour les objets au niveau de la base de données et au niveau du compte. |
|
Un tableau de descripteurs de changements détaillant les modifications d’attributs spécifiques. |
|
Le type de modification. Valeurs possibles : |
|
Nom de l’attribut en cours de définition ou de modification. Présent lorsque |
|
La nouvelle valeur de l’attribut. Présent lorsque |
|
Valeur précédente de l’attribut avant la modification. Présente uniquement lorsque |
|
Nom de la collection en cours de modification (par exemple, |
|
Étiquette utilisée pour identifier les éléments de la collection (par exemple, |
|
Un tableau imbriqué de descripteurs d’éléments de collection. Présente uniquement lorsque |
|
Type de modification apportée à l’élément de la collection. Valeurs possibles : |
|
Identifie l’élément dans la collection. Peut être une chaîne ou un objet, selon le type de collection. |
|
Un tableau de descripteurs de modifications supplémentaires pour cet élément. Présent pour les éléments |
Exemple de sortie de plan :
Sortie REFRESH ALL¶
La sortie JSON contient les résultats de l’opération d’actualisation de la table dynamique au format suivant :
Propriété |
Description |
|---|---|
|
Contient les résultats de l’opération d’actualisation de la table dynamique. |
|
Un tableau d’entrées, une pour chaque table dynamique actualisée. |
|
Nom complet de la table dynamique qui a été actualisée. |
|
Actualiser les statistiques de la table. |
|
Nombre de lignes insérées lors de l’actualisation. |
|
Nombre de lignes supprimées lors de l’actualisation. |
|
Horodatage ISO 8601 représentant le niveau d’actualisation ponctuel des données après l’actualisation. |
Un exemple de sortie JSON pour l’actualisation d’une table dynamique :
Sortie TEST ALL¶
La sortie TEST contient l’état global et les attentes avec leurs valeurs au format suivant :
Note
Au cours de la phase de prévisualisation, le format de sortie exact peut être sujet à changement.
Propriété |
Description |
|---|---|
|
Résultat global de l’exécution du test. Valeurs possibles : |
|
Tableau de résultats des attentes, un pour chaque attente en matière de qualité des données évaluée. |
|
Nom complet de la table ou de la vue sur laquelle l’attente a été évaluée. |
|
Base de données contenant la fonction de métrique des données. |
|
Schéma contenant la fonction de métrique des données. |
|
Nom de la fonction de métrique des données (par exemple, |
|
Nom de l’attente tel que défini dans le projet. |
|
Expression booléenne par rapport à laquelle la valeur de la métrique est évaluée (par exemple, |
|
Résultat de l’évaluation de la fonction de métrique des données. Présente uniquement lorsque |
|
Si l’attente a été respectée ou non. |
|
Tableau de noms de colonnes sur lesquels la fonction de métrique des données a été évaluée. |
Un exemple de sortie JSON pour un test de qualité des données :
Notes sur l’utilisation¶
Lors de l’exécution d’un DCM project avec EXECUTE DCM PROJECT PLAN, la sortie de la commande est identique à celle du déploiement réel. La différence est qu’aucune modification n’est appliquée au compte concerné. Cette fonctionnalité vous permet de vérifier si les fichiers de définition générés respectent la syntaxe requise, quelles modifications seraient appliquées au compte, et si le rôle de propriétaire du projet dispose des privilèges nécessaires pour appliquer ces modifications.
Pour éviter les modifications involontaires et détecter les erreurs, exécutez toujours EXECUTE DCM PROJECT PLAN avant de déployer un DCM project.
Prise en charge des variables de modèle¶
Les variables de modèle permettent de choisir de manière dynamique le contenu des fichiers de définitions paramétrés pendant l’exécution DCM project. Vous pouvez utiliser les variables de modèle des manières suivantes :
Consultez la section Exemples de variables de modèle pour obtenir des exemples.
Exemples¶
Exemples de base¶
Exécutez un DCM project en mode PLAN pour valider les modifications apportées à un projet sans les appliquer :
Exécutez un projet DCM en mode DEPLOY (pour appliquer les modifications) pour spécifier un alias de déploiement et une configuration nommée PROD :
Exemples de variables de modèle¶
Les exemples suivants montrent comment vous pouvez spécifier la valeur des variables de modèle dans une instruction EXECUTE DCM PROJECT.
Remplacer la variable de modèle définie dans le fichier manifeste du projet DCM
Définir une variable de modèle nommée
descdans le fichier manifeste :Créer un fichier de définition qui utilise la variable de modèle :
Appeler la commande EXECUTE DCM PROJECT en mode DEPLOY, et spécifier une valeur pour la variable
descpour remplacer sa valeur par défaut dans le manifeste :
Indiquer une valeur pour une variable de modèle non définie dans le fichier manifeste
Créer un fichier de définition avec les commandes souhaitées :
Appeler la commande EXECUTE DCM PROJECT, et spécifier une valeur pour la variable
desc_new: