CREATE APPLICATION PACKAGE

Cria um novo pacote de aplicativo que contém o conteúdo de dados e a lógica do aplicativo usando o Native Apps Framework. Um pacote de aplicativo é um banco de dados com recursos adicionados que especificam o seguinte:

  • A versão de um aplicativo.

  • O conteúdo de dados que está disponível para o aplicativo.

Consulte também:

ALTER APPLICATION PACKAGE, DROP APPLICATION PACKAGE, SHOW APPLICATION PACKAGES

Sintaxe

CREATE APPLICATION PACKAGE [ IF NOT EXISTS ] <name>
  [ DATA_RETENTION_TIME_IN_DAYS = <integer> ]
  [ MAX_DATA_EXTENSION_TIME_IN_DAYS = <integer> ]
  [ DEFAULT_DDL_COLLATION = '<collation_specification>' ]
  [ COMMENT = '<string_literal>' ]
  [ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , ... ] ) ]
  [ DISTRIBUTION = { INTERNAL | EXTERNAL } ]
Copy

Parâmetros obrigatórios

name

Especifica o identificador do pacote de 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.

Parâmetros opcionais

DATA_RETENTION_TIME_IN_DAYS = integer

Especifica o número de dias para os quais as ações de Time Travel (CLONE e UNDROP) podem ser executadas no pacote de aplicativo, bem como especifica o tempo padrão de retenção do Time Travel para todos os esquemas criados no banco de dados.

Para obter mais detalhes, consulte Compreensão e uso do Time Travel.

Para uma descrição detalhada deste parâmetro de nível de objeto, bem como mais informações sobre parâmetros de objeto, consulte Parâmetros.

Valores:

  • Standard Edition: 0 ou 1

  • Enterprise Edition:

    • 0 a 90 para bancos de dados permanentes

Padrão:

  • Standard Edition: 1

  • Enterprise Edition (ou superior): 1 (a menos que um valor padrão diferente tenha sido especificado no nível da conta)

Nota

Um valor de 0 desabilita o Time Travel para o banco de dados.

MAX_DATA_EXTENSION_TIME_IN_DAYS = integer

Parâmetro de objeto que especifica o número máximo de dias para os quais o Snowflake pode estender o período de retenção de dados das tabelas no pacote de aplicativo para evitar que os fluxos nas tabelas se tornem obsoletos.

Para uma descrição detalhada deste parâmetro, consulte MAX_DATA_EXTENSION_TIME_IN_DAYS.

DEFAULT_DDL_COLLATION = 'collation_specification'

Determina uma especificação de agrupamento padrão para todos os esquemas e tabelas adicionados ao pacote do aplicativo. O padrão pode ser anulado no nível do esquema e da tabela individual.

Para obter mais detalhes sobre o parâmetro, consulte DEFAULT_DDL_COLLATION.

COMMENT = 'string_literal'

Especifica um comentário para o pacote do aplicativo.

Padrão: sem valor

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.

DISTRIBUTION = { INTERNAL | EXTERNAL }

Especifica se um consumidor pode criar um aplicativo com base no pacote de aplicativo em uma organização externa.

  • INTERNAL especifica que um consumidor pode criar um aplicativo dentro da mesma organização em que o pacote do aplicativo foi criado.

  • EXTERNAL especifica que um consumidor pode criar um aplicativo em uma organização diferente.

    Nota

    A configuração do parâmetro DISTRIBUTION para EXTERNAL aciona uma revisão de segurança automatizada para cada versão ativa e patch definido no pacote do aplicativo.

    As seguintes restrições se aplicam até que a revisão de segurança automatizada tenha um status de APPROVED:

    • Você não pode definir uma diretriz de versão para uma versão ou patch.

    • Você não pode publicar uma listagem para o pacote de aplicativo.

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 PACKAGE

Conta

Somente a função ACCOUNTADMIN tem este privilégio por padrão. O privilégio pode ser concedido a outras funções, conforme necessário.

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.

Notas de uso

  • Para criar um pacote de aplicativo, o chamador deve ter o privilégio CREATE APPLICATION PACKAGE na conta.

  • Não há restrições sobre os tipos de objetos que podem residir no pacote de aplicativo ou quais funções (banco de dados ou nível de conta) podem possuir esses objetos.

  • 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 PACKAGE hello_snowflake_package;
Copy
+-----------------------------------------------------------------------+
| status                                                                |
|-----------------------------------------------------------------------|
| Application Package 'hello_snowflake_package' created successfully.   |
+-----------------------------------------------------------------------+