EXECUTE DCM PROJECT¶
Executa uma das seguintes ações em um projeto DCM:
EXECUTE DCM PROJECT <name> PLANefetua dry run de um DCM project para analisar as alterações que serão aplicadas ao destino durante uma implantação, mas não aplica nenhuma alteração.EXECUTE DCM PROJECT <name> DEPLOYimplanta na conta as alterações definidas nos arquivos de definição do projeto.EXECUTE DCM PROJECT <name> REFRESH ALLatualiza tabelas dinâmicas gerenciadas pelo DCM project.EXECUTE DCM PROJECT <name> TEST ALLtesta todas as expectativas de funções de métrica de dados anexadas e gerenciadas pelo DCM project.EXECUTE DCM PROJECT <name> PREVIEWretorna uma amostra de dados das definições atuais especificadas no caminho de origem para a tabela, exibição ou tabela dinâmica especificada.
- Consulte também:
CREATE DCM PROJECT, ALTER DCM PROJECT, DESCRIBE DCM PROJECT, DROP DCM PROJECT, SHOW DCM PROJECTS, SHOW DEPLOYMENTS IN DCM PROJECT
Sintaxe¶
Parâmetros obrigatórios¶
nameEspecifica o identificador do projeto DCM a ser executado.
Se o identificador contiver espaços ou caracteres especiais, toda a cadeia de caracteres deverá ser delimitada por aspas duplas. Os identificadores delimitados por aspas duplas também diferenciam letras maiúsculas de minúsculas.
Para obter mais informações, consulte Requisitos para identificadores.
PLANInstrui o Snowflake a efetuar dry run do DCM project. Para dry run, o Snowflake analisa as alterações que serão aplicadas ao destino durante uma implantação, mas não aplica nenhuma alteração.
DEPLOY [ AS 'deployment_name_alias' ]Implanta na conta as alterações definidas nos arquivos de definição do projeto. Opcionalmente, especifica um alias para a implantação.
FROM 'source_files_path'Especifica o diretório que contém os arquivos de origem para o DCM project. O diretório deve conter um arquivo de manifesto e pelo menos um arquivo de definição em
/sources/definitions/. O arquivo de manifesto fornece os valores de modelagem, caso uma configuração tenha sido especificada.REFRESH ALLAtualiza todas as tabelas dinâmicas que são gerenciadas pelo DCM project no momento.
TEST ALLTesta todas as expectativas de qualidade de dados anexadas a tabelas, tabelas dinâmicas ou exibições que são gerenciadas pelo DCM project no momento.
PREVIEW fully_qualified_table_object_nameRetorna uma amostra de dados das definições atuais especificadas no caminho de origem para a tabela, exibição ou tabela dinâmica especificada, seja qual for o estado implantado.
Parâmetros opcionais¶
USING CONFIGURATION config_nameEspecifica a configuração a ser usada. Isso permite que você personalize as implantações de acordo com os diferentes ambientes, como desenvolvimento, preparação ou produção, sem usar arquivos de definição de projeto distintos.
Se o nome da configuração não estiver em letras maiúsculas, coloque-o entre aspas duplas.
USING ( expr [, expr , ... ] )Opcionalmente, especifica os valores das variáveis de modelo. O uso dessa opção substitui os valores padrão ou de configuração para a variável específica. A expressão única deve ter o seguinte formato:
<variable_name> => <variable_value>. Para listas, use o seguinte formato:<variable_name> => [<value1>, <value2>, ...]. Por exemplo:wh_size => 'MEDIUM'outeams => ['TEAM_A', 'TEAM_B'].Isso permite que você personalize as implantações de acordo com os diferentes ambientes, como desenvolvimento, preparação ou produção, sem usar arquivos de definição de projeto distintos.
Requisitos de controle de acesso¶
A função usada para executar essa operação deve ter, no mínimo, os seguintes privilégios:
Privilégio |
Objeto |
Notas |
|---|---|---|
OWNERSHIP |
Projeto 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). |
Operar em um objeto em um esquema requer pelo menos um privilégio no banco de dados pai e pelo menos um privilégio no esquema pai.
Para instruções sobre como criar uma função personalizada com um conjunto específico de privilégios, consulte Criação de funções personalizadas.
Para informações gerais sobre concessões de funções e privilégios para executar ações de SQL em objetos protegíveis, consulte Visão geral do controle de acesso.
Saída¶
Após a execução de DCM project, esse comando retornará a seguinte saída dependendo da variação:
PLAN e DEPLOY: uma única linha contendo um objeto JSON com o log de alterações.
PREVIEW: um conjunto de resultados.
REFRESH ALL: uma única linha contendo um objeto JSON com a resposta completa.
TEST ALL: uma única linha contendo um objeto JSON com a resposta completa.
Saída de PLAN e DEPLOY¶
Nota
Durante a fase de versão preliminar, o formato exato da saída pode mudar.
A saída padrão do plano contém as seguintes informações sobre a execução do plano no formato JSON:
Propriedade |
Descrição |
|---|---|
|
Versão do esquema do formato de saída. A versão 2 é a mais recente e a única compatível. |
|
Informações contextuais sobre a execução. |
|
Carimbo de data/hora ISO 8601 de quando o comando foi executado. |
|
Identificador exclusivo da consulta que gerou este plano. |
|
Nome totalmente qualificado do objeto de projeto DCM. |
|
Nome do usuário que executou o comando. |
|
Função ativa utilizada para executar o comando. |
|
O comando que foi executado. |
|
Uma matriz de entradas de alteração. Cada entrada representa um objeto que seria ou foi criado, alterado ou descartado. Uma matriz vazia indica que as definições do projeto já estão sincronizadas com a conta. |
|
A ação planejada para o objeto. Valores possíveis: |
|
Identifica o objeto de destino. |
|
O tipo de objeto Snowflake. |
|
Nome do objeto. |
|
Nome totalmente qualificado do objeto. |
|
Banco de dados que contém o objeto. Omitido para objetos em nível de conta. |
|
Esquema que contém o objeto. Omitido para objetos em nível de banco de dados e de conta. |
|
Uma matriz de descritores de alteração que detalha as modificações específicas de atributos. |
|
O tipo de alteração. Possíveis valores: |
|
Nome do atributo que está sendo definido ou alterado. Presente quando |
|
O novo valor do atributo. Presente quando |
|
O valor anterior do atributo antes da alteração. Presente somente quando |
|
Nome da coleção que está sendo modificada (por exemplo, |
|
Rótulo utilizado para identificar itens dentro da coleção (por exemplo, |
|
Uma matriz aninhada de descritores de itens de coleção. Presente somente quando |
|
O tipo de alteração no item da coleção. Valores possíveis: |
|
Identifica o item dentro da coleção. Pode ser uma cadeia de caracteres ou um objeto, dependendo do tipo da coleção. |
|
Uma matriz de descritores de alteração adicionais para este item. Presente para itens |
Exemplo de saída de um plano:
Saída de REFRESH ALL¶
A saída JSON contém os resultados da operação de atualização da tabela dinâmica no seguinte formato:
Propriedade |
Descrição |
|---|---|
|
Contém os resultados da operação de atualização da tabela dinâmica. |
|
Uma matriz de entradas, uma para cada tabela dinâmica que foi atualizada. |
|
Nome totalmente qualificado da tabela dinâmica que foi atualizada. |
|
Estatísticas de atualização da tabela. |
|
Número de linhas inseridas durante a atualização. |
|
Número de linhas excluídas durante a atualização. |
|
Carimbo de data/hora ISO 8601 que representa a atualização pontual dos dados após a atualização. |
Um exemplo de saída JSON para uma atualização de tabela dinâmica:
Saída de TEST ALL¶
A saída de TEST contém o status geral e as expectativas com os valores no seguinte formato:
Nota
Durante a fase de versão preliminar, o formato exato da saída pode mudar.
Propriedade |
Descrição |
|---|---|
|
Resultado geral da execução do teste. Valores possíveis: |
|
Uma matriz de resultados de expectativa, um para cada expectativa de qualidade de dados avaliada. |
|
Nome totalmente qualificado da tabela ou exibição na qual a expectativa foi avaliada. |
|
Banco de dados com a função de métrica de dados. |
|
Esquema com a função de métrica de dados. |
|
Nome da função de métrica de dados (por exemplo, |
|
Nome da expectativa conforme definido no projeto. |
|
Expressão booliana usada como base para o valor da métrica avaliado (por exemplo, |
|
O resultado da avaliação da função de métrica de dados. Presente somente quando |
|
Se a expectativa foi violada. |
|
Uma matriz de nomes de colunas em que a função de métrica de dados foi avaliada. |
Um exemplo de saída JSON de um teste de qualidade de dados:
Notas de uso¶
Ao executar um DCM project com EXECUTE DCM PROJECT PLAN, a saída do comando é igual a da implantação real. A diferença é que nenhuma alteração na conta afetada é aplicada. Esse recurso permite verificar se os arquivos de definição renderizados têm uma sintaxe válida, quais alterações serão aplicadas à conta e se a função de proprietário do projeto tem os privilégios necessários para aplicar as alterações.
Para evitar alterações não intencionais e detectar erros, sempre execute EXECUTE DCM PROJECT PLAN antes de implantar um DCM project.
Suporte para variáveis de modelo¶
As variáveis de modelo permitem que você escolha dinamicamente o conteúdo dos arquivos de definições parametrizados durante a execução do DCM project. Você pode usar variáveis de modelo das seguintes maneiras:
Consulte a seção Exemplos de variáveis de modelo para ver os exemplos.
Exemplos¶
Exemplos básicos¶
Executar um DCM project no modo PLAN para validar alterações em um projeto sem aplicá-las:
Executar um projeto DCM no modo DEPLOY (para aplicar alterações) para especificar um alias de implantação e uma configuração chamada PROD:
Exemplos de variáveis de modelo¶
Os exemplos a seguir demonstram como você pode especificar o valor das variáveis de modelo em uma instrução EXECUTE DCM PROJECT.
Substituir a variável de modelo definida no arquivo de manifesto do projeto DCM
Defina uma variável de modelo chamada
descno arquivo de manifesto:Crie um arquivo de definição que use a variável de modelo:
Chame o comando EXECUTE DCM PROJECT no modo DEPLOY e especifique um valor para a variável
descpara substituir o valor padrão no manifesto:
Fornecer um valor para uma variável de modelo não definida no arquivo de manifesto
Crie um arquivo de definição com os comandos desejados:
Chame o comando EXECUTE DCM PROJECT e especifique um valor para a variável
desc_new: