EXECUTE JOB SERVICE

Bemerkung

Diese Operation fällt derzeit nicht unter den Service Level, der in Support-Richtlinie und dem Service Level Agreement von Snowflake festgelegt ist.

Führt einen Snowpark Container Services-Dienst als Job aus.

Ein Dienst, der mit CREATE SERVICE erstellt wurde, ist langlaufend und Sie müssen ihn explizit beenden, wenn er nicht mehr benötigt wird. Ein Job hingegen, der mit EXECUTE JOB SERVICE erstellt wird, ist ein Dienst, der beendet wird, wenn Ihr Code beendet wird, ähnlich wie eine gespeicherte Prozedur. Wenn alle Container beendet werden, ist auch der Job beendet.

Der Job wird synchron ausgeführt, d. h. der EXECUTE JOB SERVICE-Befehl wird abgeschlossen, nachdem alle Container beendet wurden. Nach Beendigung des Jobs führt Snowflake automatisch die notwendigen Bereinigungen durch. Aber diese Bereinigung erfolgt nicht sofort. Snowflake speichert den Job für eine kurze Zeit, damit Kunden den Jobdienst nach der Ausführung überwachen und debuggen können.

Beachten Sie, dass die Befehlsparameter in einer bestimmten Reihenfolge angegeben werden müssen. Weitere Informationen dazu finden Sie in den Nutzungshinweisen.

Siehe auch:

SYSTEM$GET_SERVICE_STATUS – Veraltet, SYSTEM$GET_SERVICE_LOGS

Syntax

EXECUTE JOB SERVICE
  IN COMPUTE POOL <compute_pool_name>
  {
     fromSpecification
     | fromSpecificationTemplate
  }
  NAME = [<db>.<schema>.]<name>
  [ QUERY_WAREHOUSE = <warehouse_name> ]
  [ COMMENT = '<string_literal>']
  [ EXTERNAL_ACCESS_INTEGRATIONS = ( <EAI_name> [ , ... ] ) ]
  [ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' , ... ] ) ]
Copy

Wobei:

fromSpecification ::=
  {
    FROM @<stage> SPECIFICATION_FILE = '<yaml_file_stage_path>'
    | FROM SPECIFICATION <specification_text>
  }
Copy
fromSpecificationTemplate ::=
  {
    FROM @<stage> SPECIFICATION_TEMPLATE_FILE = '<yaml_file_stage_path>'
    | FROM SPECIFICATION_TEMPLATE <specification_text>
  }
  USING ( <key> => <value> [ , <key> => <value> [ , ... ] ]  )
Copy

Erforderliche Parameter

IN COMPUTE POOL compute_pool_name

Gibt den Namen des Computepools in Ihrem Konto an, auf dem der Dienst ausgeführt werden soll.

FROM stage

Gibt den Snowflake-internen Stagingbereich an, in dem die Spezifikationsdatei gespeichert ist, z. B. @tutorial_stage.

SPECIFICATION_FILE = 'yaml_file_stage_path'

Gibt den Pfad zur Dienstspezifikationsdatei im Stagingbereich an, z. B. 'some-dir/echo_spec.yaml'.

SPECIFICATION_TEMPLATE_FILE = 'yaml_file_stage_path'

Gibt den Pfad zur Vorlagendatei der Dienstspezifikation im Stagingbereich an, z. B. 'some-dir/echo_template_spec.yaml'. Wenn SPECIFICATION_TEMPLATE_FILE angegeben wird, ist der Parameter USING erforderlich.

FROM SPECIFICATION specification_text

Gibt die Dienstspezifikation an. Sie können doppelte Dollarzeichen ($$) verwenden, um den Anfang und das Ende der Spezifikationszeichenfolge abzugrenzen.

FROM SPECIFICATION_TEMPLATE specification_text

Gibt die Dienstspezifikation an. Sie können doppelte Dollarzeichen ($$) verwenden, um den Anfang und das Ende der Spezifikationszeichenfolge abzugrenzen. Wenn SPECIFICATION_TEMPLATE angegeben wird, ist der Parameter USING erforderlich.

NAME = [db.schema.]name

Name (d. h. der Bezeichner) für den Dienst, der wie ein Job ausgeführt wird. Der Wert muss für das Schema, in dem der Dienst erstellt wird, eindeutig sein.

In Anführungszeichen gesetzte Namen für Sonderzeichen oder Namen, bei denen die Groß-/Kleinschreibung beachtet wird, werden nicht unterstützt. Dieselbe Einschränkung gilt auch für Datenbank- und Schemanamen, wenn Sie einen Dienst erstellen. Das heißt, Datenbank- und Schemanamen ohne Anführungszeichen sind beim Erstellen eines Dienstes gültig.

Optionale Parameter

EXTERNAL_ACCESS_INTEGRATIONS = ( EAI_name [ , ... ] )

Gibt die Namen der Integrationen für den externen Zugriff an, die Ihrem Job den Zugriff auf externe Sites ermöglichen. Bei den Namen in dieser Liste wird zwischen Groß- und Kleinschreibung unterschieden. Standardmäßig haben Anwendungscontainer keine Berechtigung für den Zugriff auf das Internet. Wenn Sie Ihrem Job den Zugriff auf eine externe Site ermöglichen möchten, erstellen Sie eine Integration für den externen Zugriff (External Access Integration, EAI), und konfigurieren Sie dann Ihren Job für die Verwendung dieser Integration. Weitere Informationen dazu finden Sie unter Ausgehender Netzwerk-Datenverkehr.

QUERY_WAREHOUSE = warehouse_name

Zu verwendendes Warehouse, wenn ein Dienstcontainer eine Verbindung zu Snowflake herstellt, um eine Abfrage auszuführen, aber das zu verwendende Warehouse nicht ausdrücklich angibt.

Standard: Kein Warehouse.

COMMENT = 'string_literal'

Gibt einen Kommentar für den Dienst an.

Standard: Kein Wert

TAG ( tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ] )

Gibt den Namen des Tags und den Wert der Tag-Zeichenfolge an.

Der Tag-Wert ist immer eine Zeichenfolge, die maximale 256 Zeichen lang sein kann.

Weitere Informationen zur Angabe von Tags in einer Anweisung finden Sie unter Tag-Kontingente für Objekte und Spalten.

USING ( key => value [ , key => value [ , ... ] ]  )

Ermöglicht es Ihnen, Werte zur Parametrisierung der Erweiterung der Spezifikationsvorlage anzugeben.

USING ist erforderlich, wenn Sie eine Spezifikationsvorlage verwenden (FROM SPECIFICATION_TEMPLATE_FILE oder FROM SPECIFICATION_TEMPLATE). Die Schlüssel-Wert-Paare müssen eine durch Komma getrennte Liste bilden.

Wobei:

  • key ist der Name der Vorlagenvariable. Der Name der Vorlagenvariable kann optional in doppelte Anführungszeichen (") eingeschlossen werden.

  • value ist der Wert, der der Variablen in der Vorlage zugewiesen werden soll. Zeichenfolgenwert müssen in ' oder $$ eingeschlossen sein. Der Wert muss entweder alphanumerisch oder ein gültiger JSON-Wert sein.

Anforderungen an die Zugriffssteuerung

Eine Rolle, die zur Ausführung dieses SQL-Befehls verwendet wird, muss mindestens die folgenden Berechtigungen haben:

Berechtigung

Objekt

Anmerkungen

CREATE SERVICE

Schema

USAGE

Computepool

READ

Stagingbereich

Dies ist der Stagingbereich, in dem die Spezifikation gespeichert ist.

READ

Image-Repository

Repository von Images, auf die in der Spezifikation verwiesen wird.

Beachten Sie, dass für die Bearbeitung eines Objekts in einem Schema auch die Berechtigung USAGE für die übergeordnete Datenbank und das Schema erforderlich ist.

Eine Anleitung zum Erstellen einer kundenspezifischen Rolle mit einer bestimmten Gruppe von Berechtigungen finden Sie unter Erstellen von kundenspezifischen Rollen.

Allgemeine Informationen zu Rollen und Berechtigungen zur Durchführung von SQL-Aktionen auf sicherungsfähigen Objekten finden Sie unter Übersicht zur Zugriffssteuerung.

Nutzungshinweise

  • Beim Aufrufen von EXECUTE JOB SERVICE sollten die Parameter in dieser Reihenfolge angegeben werden: erst Computepool, gefolgt von anderen Eigenschaften und abschließend die Dienstspezifikation (entweder geben Sie den Namen der Spezifikationsdatei im Stagingbereich oder die Inline-Spezifikation an).

  • Metadaten:

    Achtung

    Kunden müssen sicherstellen, dass bei der Nutzung des Snowflake-Dienstes keine personenbezogenen Daten (außer für ein Objekt „Benutzer“), sensible Daten, exportkontrollierte Daten oder andere regulierte Daten als Metadaten eingegeben werden. Weitere Informationen dazu finden Sie unter Metadatenfelder in Snowflake.

Beispiele

Starten eines Snowpark Container Services-Jobdienstes:

EXECUTE JOB SERVICE
  IN COMPUTE POOL tutorial_compute_pool
  NAME = tutorial_db.data_schema.example_job
  FROM @tutorial_stage
  SPECIFICATION_FILE='my_job_spec.yaml';
Copy