Spécification du modèle

Définit un modèle unique dans une collaboration. Les modèles sont enregistrés en appelant REGISTER_TEMPLATE avec la spécification du modèle.

Schéma :

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

Version de l’API de collaboration utilisée. Doit être 2.0.0.

spec_type

Identificateur du type de spécification. Doit être template.

name: template_name

Nom unique et convivial pour ce modèle. Doit suivre les règles des identificateurs Snowflake avec un maximum de 75 caractères. La paire name_version doit être unique pour tous les modèles de ce compte.

version: version_string

Identificateur de version pour ce modèle (20 caractères maximum). Doit suivre les règles des identificateurs Snowflake. La chaîne de version reçoit sa propre colonne dans la réponse à VIEW_TEMPLATES et VIEW_REGISTERED_TEMPLATES ; utilisez donc une valeur qui peut être triée par ordre croissant. Exemple : V0

type

Type de modèle. Une des valeurs suivantes :

  • sql_analysis : Modèle pour les opérations d’analyse des données.

  • sql_activation : Modèle pour les opérations d’activation des données.

description: template_description (Facultatif)

Description de haut niveau de ce que fait ce modèle (maximum 1 000 caractères).

methodology: methodology_description (Facultatif)

Description plus détaillée du fonctionnement de ce modèle (maximum 1 000 caractères).

parameters (Facultatif)

Liste de tous les paramètres fournis par l’utilisateur dans ce modèle. Chaque élément peut contenir les champs suivants :

  • name : Nom du paramètre comme identificateur Snowflake valide, max 255 caractères.

  • description (Facultatif) : Description du paramètre lisible par l’utilisateur (maximum 500 caractères).

  • required (Facultatif) : Si le paramètre est nécessaire. La valeur par défaut est false.

  • default (Facultatif) : Valeur par défaut pour le paramètre, qui peut être n’importe quel type de données.

  • type (Facultatif) : Type de données attendu du paramètre. L’un des types suivants : string, integer, number, boolean, array ou object.

code_specs (Facultatif)

Un ou plusieurs bundles de code qui définissent toutes les fonctions référencées par ce modèle. Requis lorsque le modèle appelle des fonctions personnalisées. Les IDs de spécification de code sont versionnés ; si vous souhaitez accéder à une nouvelle version d’une fonction, vous devez mettre à jour l’ID de spécification de code ici, mais pas dans le modèle lui-même, qui appelle le nom de la fonction non versionnée. Le nom de la spécification de code doit comporter un trait de soulignement et correspondre au modèle d’expression régulière [A-Za-z]\w{0,74}_\w{1,20}.

template

Contenu du modèle. Pour les modèles SQL, contient le modèle JinjaSQL. Pour plus d’informations, voir Conception de modèle.

Les noms des colonnes exposées au modèle sont déterminés par les valeurs category et column_type pour la colonne dans la spécification de l’offre de données. Pour plus d’informations, voir Renommage de colonne source.

Exemple

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 }};