CREATE APPLICATION

Cria um novo objeto de aplicativo usando um pacote ou listagem de aplicativos. Este comando é usado pelos provedores para testar um pacote de aplicativo antes de publicar um Snowflake Native App.

Quando esse comando é executado, ele executa o script de configuração do pacote de aplicativo.

Consulte também:

ALTER APPLICATION, DESCRIBE APPLICATION, DROP APPLICATION, SHOW APPLICATIONS

Sintaxe

CREATE APPLICATION <name> FROM APPLICATION PACKAGE <package_name>
   [ COMMENT = '<string_literal>' ]
   [ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , ... ] ) ]

CREATE APPLICATION <name> FROM APPLICATION PACKAGE <package_name>
  USING <path_to_version_directory>
  [ DEBUG_MODE = { TRUE | FALSE } ]
  [ COMMENT = '<string_literal>' ]
  [ [ WITH ] TAG ( <tag_name> = '<tag_value>' [, ...] ) ]


CREATE APPLICATION <name> FROM APPLICATION PACKAGE <package_name>
  USING VERSION  <version_identifier> [ PATCH <patch_num> ]
  [ DEBUG_MODE = { TRUE | FALSE } ]
  [ COMMENT = '<string_literal>' ]
  [ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , ... ] ) ]

CREATE APPLICATION <name> FROM LISTING <listing_name>
   [ COMMENT = '<string_literal>' ]
   [ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , ... ] ) ]
   [ BACKGROUND_INSTALL = { TRUE | FALSE } ]
Copy

Parâmetros obrigatórios

name

Especifica o identificador do aplicativo. Deve ser único para sua conta.

Além disso, o identificador deve começar com um caractere alfabético e não pode conter espaços ou caracteres especiais, a menos que toda a cadeia de caracteres do identificador esteja entre aspas duplas (por exemplo, "My object"). Os identificadores delimitados por aspas duplas também diferenciam letras maiúsculas de minúsculas.

Para obter mais detalhes, consulte Requisitos para identificadores.

FROM APPLICATION PACKAGE package_name

Especifica o nome do pacote de aplicativo usado para criar o aplicativo. Para usar esta cláusula para criar um aplicativo a partir de um pacote de aplicativo sem especificar um estágio ou uma versão/patch, o pacote de aplicativo deve ter uma diretriz de versão padrão definida.

Esta cláusula só pode ser usada para criar um aplicativo na mesma conta que o pacote do aplicativo. Esta cláusula não pode ser usada para criar um aplicativo no modo de desenvolvimento.

FROM LISTING listing_name

Especifica o nome da listagem que contém o pacote de aplicativo usado para criar o aplicativo.

USING path_to_version_directory

Especifica o caminho para o estágio que contém os arquivos do aplicativo para o aplicativo.

USING version [ PATCH patch_num ]

Especifica a versão e, opcionalmente, o patch, definido no pacote do aplicativo usado para criar o aplicativo.

Parâmetros opcionais

COMMENT = 'string_literal'

Especifica um comentário para o aplicativo.

Padrão: sem valor

DEBUG_MODE = { TRUE | FALSE }

Ativa ou desativa o modo de depuração do objeto de aplicativo a ser criado. O modo de depuração permite que um provedor veja o conteúdo do objeto do aplicativo.

  • TRUE ativa o modo de depuração para o aplicativo instalado.

  • FAlSE desativa o modo de depuração para o aplicativo instalado.

Nota

Você só pode definir DEBUG_MODE se o aplicativo cumprir os seguintes requisitos:

  • O aplicativo está na mesma conta que o pacote do aplicativo.

  • O aplicativo está sendo criado a partir de uma versão específica ou de arquivos em um estágio nomeado.

TAG ( tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ] )

Especifica o nome da tag e o valor da cadeia de caracteres dela.

O valor de tag é sempre uma cadeia de caracteres, e o número máximo de caracteres do valor da tag é 256.

Para obter informações sobre como especificar tags em uma instrução, consulte Cotas de tags para objetos e colunas.

BACKGROUND_INSTALL = { TRUE | FALSE }

Cria o objeto aplicativo a partir de uma listagem em segundo plano. Se você especificar esta cláusula, o comando retornará imediatamente ao prompt e o processo de instalação continuará em segundo plano. Para monitorar esse status da instalação, use o comando DESCRIBE APPLICATION.

Nota

Ao usar esta cláusula, o objeto do aplicativo é criado mesmo se o comando falhar. Nessa situação, use o comando DROP APPLICATION para excluir o objeto antes de executar o comando CREATE APPLICATION novamente.

Esta cláusula é usada principalmente por Snowsight para instalar um Snowflake Native App em segundo plano. A instalação em segundo plano permite que o consumidor saia da listagem em Snowsight durante a instalação. Um provedor pode usar esta cláusula ao testar a instalação de um Snowflake Native App de uma listagem antes de publicar a listagem.

Requisitos de controle de acesso

Uma função usada para executar este comando SQL deve ter os seguintes privilégios no mínimo:

Privilégio

Objeto

Notas

CREATE APPLICATION

Conta

DEVELOP

Pacote de aplicativo

INSTALL

Pacote de aplicativo

IMPORT SHARE

CREATE APPLICATION

Conta

Esses privilégios são necessários para criar um objeto de aplicativo em uma conta diferente da conta que contém o pacote do aplicativo.

Notas de uso

  • Para criar um aplicativo diretamente de um pacote de aplicativo, você deve especificar uma diretriz de versão padrão no pacote de aplicativo.

  • O objeto de aplicativo difere de um banco de dados das seguintes maneiras:

    • Um aplicativo não pode ser transitório.

    • A função com o privilégio OWNERSHIP no aplicativo:

      • Pode descartar o banco de dados ou modificar o COMMENT bem como quaisquer propriedades específicas do aplicativo.

      • Não é possível ver ou modificar o conteúdo do aplicativo, exceto por meio dos privilégios concedidos às funções do aplicativo. Além disso, essa função não pode criar um objeto em nível de banco de dados, como um esquema ou uma função de banco de dados.

  • Em relação aos metadados:

    Atenção

    Os clientes devem garantir que nenhum dado pessoal (exceto para um objeto do usuário), dados sensíveis, dados controlados por exportação ou outros dados regulamentados sejam inseridos como metadados ao usar o serviço Snowflake. Para obter mais informações, consulte Campos de metadados no Snowflake.

  • Instruções CREATE OR REPLACE <object> são atômicas. Ou seja, quando um objeto é substituído, o objeto antigo é excluído e o novo objeto é criado em uma única transação.

Exemplos

CREATE APPLICATION hello_snowflake_app
  FROM APPLICATION PACKAGE hello_snowflake_package
  USING VERSION v1;
Copy
+---------------------------------------------------------+
| status                                                  |
|---------------------------------------------------------|
| Application 'hello_snowflake_app' created successfully. |
+---------------------------------------------------------+
CREATE APPLICATION hello_snowflake_app
  FROM APPLICATION PACKAGE hello_snowflake_package
  USING '@hello_snowflake_code.core.hello_snowflake_stage';
Copy
+---------------------------------------------------------+
| status                                                  |
|---------------------------------------------------------|
| Application 'hello_snowflake_app' created successfully. |
+---------------------------------------------------------+