CREATE APPLICATION¶
Cria uma Snowflake Native App com base em um pacote de aplicativo ou listagem. Os provedores usam este comando para instalar um aplicativo em sua conta de desenvolvimento.
Quando esse comando é executado, ele executa o script de configuração para criar o aplicativo.
- Consulte também:
ALTER APPLICATION, DESCRIBE APPLICATION, DROP APPLICATION, SHOW APPLICATIONS
Sintaxe¶
CREATE APPLICATION <name> FROM APPLICATION PACKAGE <package_name>
[ USING RELEASE CHANNEL { QA | ALPHA | DEFAULT } ]
[ COMMENT = '<string_literal>' ]
[ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , ... ] ) ]
[ AUTHORIZE_TELEMETRY_EVENT_SHARING = { TRUE | FALSE } ]
[ WITH FEATURE POLICY = <policy_name> ]
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>' [, ...] ) ]
[ AUTHORIZE_TELEMETRY_EVENT_SHARING = { TRUE | FALSE } ]
[ WITH FEATURE POLICY = <policy_name> ]
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>' [ , ... ] ) ]
[ AUTHORIZE_TELEMETRY_EVENT_SHARING = { TRUE | FALSE } ]
[ WITH FEATURE POLICY = <policy_name> ]
CREATE APPLICATION <name> FROM LISTING <listing_name>
[ USING RELEASE CHANNEL { QA | ALPHA | DEFAULT } ]
[ COMMENT = '<string_literal>' ]
[ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , ... ] ) ]
[ BACKGROUND_INSTALL = { TRUE | FALSE } ]
[ AUTHORIZE_TELEMETRY_EVENT_SHARING = { TRUE | FALSE } ]
[ WITH FEATURE POLICY = <policy_name> ]
Parâmetros obrigatórios¶
nameEspecifica 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_nameEspecifica 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_nameEspecifica o nome da listagem que contém o pacote de aplicativo usado para criar o aplicativo.
USING RELEASE CHANNEL QA | ALPHA | DEFAULTEspecifica o canal de lançamento definido no pacote do aplicativo ou listagem usado para criar o aplicativo. Se você não especificar esta cláusula, o canal de lançamento padrão será usado.
QAespecifica o canal de lançamento da garantia de qualidade.ALPHAespecifica o canal de lançamento alfa.DEFAULTespecifica o canal de lançamento padrão.
Esta cláusula pode ser usada somente ao criar um aplicativo a partir de um pacote de aplicativo que tenha uma diretriz de versão definida ou ao criar um aplicativo a partir de uma listagem.
USING path_to_version_directoryEspecifica o caminho para o estágio que contém os arquivos exigidos pelo 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 }Habilita ou desabilita modo de depuração para o aplicativo que está sendo criado. O modo de depuração permite que um provedor veja o conteúdo do aplicativo.
TRUEativa o modo de depuração para o aplicativo instalado.FAlSEdesativa o modo de depuração para o aplicativo instalado.
Nota
Você só pode ativar o modo de depuração nas seguintes condições:
O aplicativo está na mesma conta que o pacote do aplicativo.
O aplicativo está sendo criado com base em uma versão específica ou a partir 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.
BACKGROUND_INSTALL = { TRUE | FALSE }Cria o 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
Quando esta cláusula é usada, o aplicativo é criado mesmo que o comando falhe. 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.
AUTHORIZE_TELEMETRY_EVENT_SHARING = { TRUE | FALSE }Habilita o registro e o compartilhamento de evento no aplicativo.
WITH FEATURE POLICY = policy_nameCrie o aplicativo com a política de recursos especificada. Se o aplicativo tentar criar um objeto que a política de recursos proíbe (como um banco de dados), o comando falhará.
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 |
|---|---|---|
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 aplicativo em uma conta diferente da conta que contém o pacote de aplicativo. |
APPLY FEATURE POLICY APPLY ou OWNERSHIP |
Conta Política de recursos |
Esses privilégios são necessários para aplicar uma política de recursos ao criar o aplicativo usando a cláusula WITH FEATURE POLICY. |
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 aplicativo difere de um banco de dados das seguintes maneiras:
Um aplicativo não pode ser transitório.
A função com o OWNERSHIP O privilégio no aplicativo tem as seguintes capacidades e limitações:
Pode descartar o banco de dados ou modificar a propriedade 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.
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. |
+---------------------------------------------------------+