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 } ]
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;
+---------------------------------------------------------+
| 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';
+---------------------------------------------------------+
| status |
|---------------------------------------------------------|
| Application 'hello_snowflake_app' created successfully. |
+---------------------------------------------------------+