Spezifikation der Vorlage

Definiert eine einzelne Vorlage in einer Zusammenarbeit. Vorlagen werden durch den Aufruf von REGISTER_TEMPLATE mit der Spezifikation der Vorlage registriert.

Schema:

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

Die verwendete Version der Collaboration API. Sie müssen 2.0.0 sein.

spec_type

Bezeichner des Spezifikationstyps. Sie müssen template sein.

name: template_name

Ein eindeutiger, benutzerfreundlicher Name für diese Vorlage. Dies muss den Snowflake-Bezeichnerregeln folgen und darf maximal 75 Zeichen umfassen. Das name_version-Paar muss für alle Vorlagen in diesem Konto eindeutig sein.

version: version_string

Ein Bezeichner der Version für diese Vorlage (maximal 20 Zeichen). Muss den Regeln für Snowflake-Bezeichner folgen. Die Versionszeichenfolge erhält eine eigene Spalte in der Antwort auf VIEW_TEMPLATES und VIEW_REGISTERED_TEMPLATES. Verwenden Sie also einen Wert, der anhand aufsteigender Werte sortiert werden kann. Beispiel: V0

type

Der Vorlagentyp. Einer der folgenden Werte:

  • sql_analysis: Vorlage für Datenanalysevorgänge.

  • sql_activation: Vorlage für Datenaktivierungsvorgänge.

description: template_description (Optional)

Eine allgemeine Beschreibung der Funktion dieser Vorlage (maximal 1.000 Zeichen).

methodology: methodology_description (Optional)

Eine genauere Beschreibung der Funktion dieser Vorlage (maximal 1.000 Zeichen).

parameters (Optional)

Die Liste aller vom Benutzer in dieser Vorlage bereitgestellten Parameter. Jedes Element kann die folgenden Felder haben:

  • name: Parametername als gültiger Snowflake-Bezeichner, maximal 255 Zeichen.

  • description (Optional): Von Menschen lesbare Beschreibung des Parameters (maximal 500 Zeichen).

  • required (Optional): Gibt an, ob der Parameter erforderlich ist. Standardwert ist false.

  • default (Optional): Standardwert für den Parameter, der ein beliebiger Datentyp sein kann.

  • type (Optional): Erwarteter Datentyp des Parameters. Einer der folgenden: string, integer, number, boolean, array oder object.

code_specs (Optional)

Ein oder mehrere Code-Bundles, die von dieser Vorlage referenzierte Funktionen definieren. Erforderlich, wenn die Vorlage kundenspezifische Funktionen aufruft. Code-Spezifikations-IDs sind versioniert; wenn Sie auf eine neue Version einer Funktion zugreifen möchten, müssen Sie die Code-Spezifikations-ID hier aktualisieren – nicht jedoch im Template selbst, da dieses den nicht versionierten Funktionsnamen aufruft. Der Name der Codespezifikation muss einen Unterstrich enthalten und mit dem Muster des regulären Ausdrucks übereinstimmen [A-Za-z]\w{0,74}_\w{1,20}.

template

Der Inhalt der Vorlage. Für SQL-Vorlagen beinhaltet dies die JinjaSQL-Vorlage. Weitere Informationen dazu finden Sie unter Vorlagenentwurf.

Die im Template verfügbaren Spaltennamen werden durch die category- und column_type-Werte der Spalte in der Data-Offering-Spezifikation bestimmt. Weitere Informationen dazu finden Sie unter Umbenennen der Quellspalte.

Beispiel

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