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 } ]
  [ MULTIPLE_INSTANCES = TRUE ]
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 o tipo de listagem que um provedor pode criar ao usar o pacote de aplicativos como o produto de dados de uma listagem.

  • INTERNAL indica que um provedor só pode criar uma listagem privada dentro da mesma organização onde o pacote de aplicativo foi criado. A verificação de segurança automatizada não é executada quando a propriedade DISTRIBUTION está definida como INTERNAL.

  • EXTERNAL indica que um provedor pode criar listagens fora da mesma organização onde o pacote de aplicativo foi criado.

Consulte Execução da verificação de segurança automatizada para obter informações sobre a configuração da propriedade DISTRIBUTION e a varredura de segurança automatizada.

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.

MULTIPLE_INSTANCES = TRUE

Permite que o consumidor instale várias instâncias de um aplicativo a partir do pacote de aplicativos. Essa propriedade não pode ser definida para pacotes de aplicativos inclusos em uma listagem de avaliação ou monetizada.

Quando várias instâncias são permitidas, os consumidores podem instalar um máximo de dez instâncias de um aplicativo em sua conta.

Cuidado

Após definir essa propriedade como verdadeira, ela não poderá ser definida como FALSE ou redefinida posteriormente.

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 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.   |
+-----------------------------------------------------------------------+