Especificação de modelos

Define um único modelo em uma colaboração. Os modelos são registrados chamando REGISTER_TEMPLATE com a especificação do modelo.

Esquema:

api_version: 2.0.0              # Required: Must be "2.0.0"
spec_type: template             # Required: Must be "template"
name: <template_name>           # Required: Unique name (max 75 chars)
version: <version_string>       # Required: Version identifier (max 20 chars)
type: <template_type>           # Required: sql_analysis or sql_activation
description: <template_description>  # Optional: High-level description (max 1,000 chars)
methodology: <methodology_description>  # Optional: Detailed description (max 1,000 chars)

parameters:                     # Optional: User-provided parameters
  - name: <parameter_name>      # One or more parameter items...
    description: <parameter_description>  # Optional: Description (max 500 chars)
    required: <true_or_false>   # Optional: Whether required (default: false)
    default: <default_value>    # Optional: Default value
    type: <data_type>           # Optional: String, integer, number, Boolean, array, or object

code_specs:             # Optional: List of code bundles used by this template
  - <code_spec_id>        # One or more code spec IDs.

template: |                     # Required: JinjaSQL template content
  <template_content>
api_version

A versão da API do Collaboration utilizada. Deve ser 2.0.0.

spec_type

Identificador do tipo de especificação. Deve ser template.

name: template_name

Um nome exclusivo e amigável para este modelo. Deve seguir as Regras do identificador do Snowflake com no máximo 75 caracteres. O par name_version deve ser exclusivo para todos os modelos nesta conta.

version: version_string

Um identificador de versão para este modelo (máximo de 20 caracteres). Deve seguir as regras do identificador do Snowflake. A cadeia de caracteres de versão recebe sua própria coluna na resposta a VIEW_TEMPLATES e VIEW_REGISTERED_TEMPLATES; portanto, use um valor que possa ser classificado por valor crescente. Exemplo: V0

type

O tipo de modelo. Um dos seguintes valores:

  • sql_analysis: modelo para operações de análise de dados.

  • sql_activation: modelo para operações de ativação de dados.

description: template_description (opcional)

Uma descrição de alto nível do que este modelo faz (máximo de 1.000 caracteres).

methodology: methodology_description (opcional)

Uma descrição mais detalhada de como este modelo funciona (máximo de 1.000 caracteres).

parameters (opcional)

A lista de todos os parâmetros fornecidos pelo usuário neste modelo. Cada item pode ter os seguintes campos:

  • name: Nome do parâmetro como identificador válido do Snowflake, com no máximo 255 caracteres.

  • description (opcional): descrição legível do parâmetro (máximo de 500 caracteres).

  • required (opcional): Se o parâmetro é obrigatório. O padrão é false.

  • default (opcional): valor padrão para o parâmetro, que pode ser qualquer tipo de dados.

  • type (opcional): tipo de dados esperado para o parâmetro. Um dos seguintes: string, integer, number, boolean, array ou object.

code_specs (opcional)

Um ou mais pacotes de código que definem as funções referenciadas pelo modelo. Necessário quando o modelo chama funções personalizadas. IDs de especificação de códigos têm versões; se quiser acessar uma nova versão de uma função, você deve atualizar a ID de especificação do código aqui, mas não no modelo em si, que chama o nome da função sem controle de versão. O nome da especificação de código deve ter um sublinhado e corresponder ao padrão de expressão regular [A-Za-z]\w{0,74}_\w{1,20}.

template

O conteúdo do modelo. Para modelos SQL, este contém o modelo JinjaSQL. Para obter mais informações, consulte Design do modelo.

Os nomes das colunas expostos ao modelo são determinados pelos valores category e column_type da coluna na especificação da oferta de dados. Para obter mais informações, consulte Renomeação da coluna de origem.

Exemplo

api_version: 2.0.0
spec_type: template
name: trivial_template
version: V1
type: sql_analysis
description: Simple one-row template.
methodology: Always returns "1". Requires one source table.

parameters:
  - name: row_count
    description: Count of rows
    required: true

template: |
    SELECT 1 FROM IDENTIFIER( {{ source_table[0] }} ) LIMIT {{ row_count }};