ALTER SERVICE

Ändert die Konfiguration von Snowpark Container Services-Diensten, aktualisiert den Code von Diensten und ermöglicht Ihnen das Anhalten oder Fortsetzen eines Dienstes. Sie können Folgendes tun:

  • Anwenden von Änderungen auf einen aktiven Dienst. Sie können zum Beispiel einen Dienst anhalten oder fortsetzen und die Anzahl der in Ausführung befindlichen Dienstinstanzen aktualisieren.

  • Anwenden von Änderungen, die erst nach dem Neustart des Dienstes wirksam werden. Geben Sie beispielsweise ein Standard-Warehouse für Abfragen an.

  • Anwenden von Änderungen, die dazu führen, dass Snowflake den Dienst herunterfährt und ihn mit neuem Code neu startet. Sie könnten so beispielweise aktualisierten Dienstcode bereitstellen.

  • Starten Sie die angegebenen Instanzen eines Dienstes unter Verwendung des Snapshots neu, der als anfänglicher Inhalt für das angegebene Volume bereitgestellt wurde. Der Dienst muss angehalten werden, bevor Sie ALTER SERVICE ausführen.

Siehe auch:

CREATE SERVICE, DESCRIBE SERVICE, DROP SERVICE, SHOW SERVICES

Syntax

ALTER SERVICE [ IF EXISTS ] <name> { SUSPEND | RESUME }

ALTER SERVICE [ IF EXISTS ] <name>
  {
     fromSpecification
     | fromSpecificationTemplate
  }

ALTER SERVICE [IF EXISTS] <service_name> RESTORE VOLUME <volume_name>
                                                 INSTANCES <comma_separated_instance_ids>
                                                 FROM SNAPSHOT <snapshot_name>

ALTER SERVICE [ IF EXISTS ] <name> SET [ MIN_INSTANCES = <num> ]
                                       [ MAX_INSTANCES = <num> ]
                                       [ MIN_READY_INSTANCES = <num> ]
                                       [ QUERY_WAREHOUSE = <warehouse_name> ]
                                       [ AUTO_RESUME = { TRUE | FALSE } ]
                                       [ EXTERNAL_ACCESS_INTEGRATIONS = ( <EAI_name> [ , ... ] ) ]
                                       [ COMMENT = '<string_literal>' ]



ALTER SERVICE [ IF EXISTS ] <name> UNSET { MIN_INSTANCES                |
                                           MAX_INSTANCES                |
                                           MIN_READY_INSTANCES          |
                                           QUERY_WAREHOUSE              |
                                           AUTO_RESUME                  |
                                           EXTERNAL_ACCESS_INTEGRATIONS |
                                           COMMENT
                                         }
                                         [ , ... ]

ALTER SERVICE [ IF EXISTS ] <name> SET [ TAG <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ]]
Copy

Wobei:

fromSpecification ::=
  {
    FROM SPECIFICATION_FILE = '<yaml_file_path>' -- for native app service.
    | FROM @<stage> SPECIFICATION_FILE = '<yaml_file_path>' -- for non-native app service.
    | FROM SPECIFICATION <specification_text>
  }
Copy
fromSpecificationTemplate ::=
  {
    FROM SPECIFICATION_TEMPLATE_FILE = '<yaml_file_path>' -- for native app service.
    | FROM @<stage> SPECIFICATION_TEMPLATE_FILE = '<yaml_file_path>' -- for non-native app service.
    | FROM SPECIFICATION_TEMPLATE <specification_text>
  }
  USING ( <key> => <value> [ , <key> => <value> [ , ... ] ]  )
Copy

Parameter

name

Gibt den Bezeichner für den zu ändernden Server an.

Wenn der Bezeichner Leerzeichen oder Sonderzeichen enthält, muss die gesamte Zeichenfolge in doppelte Anführungszeichen gesetzt werden. Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß- und Kleinschreibung zu beachten.

Weitere Informationen dazu finden Sie unter Anforderungen an Bezeichner.

{ SUSPEND | RESUME }

Gibt an, ob der Dienst angehalten oder fortgesetzt werden soll.

Wenn Sie einen Dienst anhalten, wird Snowflake heruntergefahren und die Container werden gelöscht. Wenn Sie später einen angehaltenen Dienst fortsetzen, erstellt Snowflake die Container neu. Das heißt, Snowflake verwendet das Image aus Ihrem Repository und startet die Container. Beachten Sie, dass Snowflake dieselbe Image-Version bereitstellt, da es sich nicht um eine Aktualisierungsoperation des Dienstes handelt.

Wenn Sie einen angehaltenen Dienst entweder über eine Dienstfunktion oder über den öffentlichen Endpunkt (Dateneingang) aufrufen, setzt Snowflake den Dienst automatisch fort.

FROM ...

Bezeichnet die Spezifikation oder die Spezifikationsvorlage für den Dienst.

Verwendung einer Dienstspezifikation

Sie können die Spezifikation entweder inline oder in einer separaten Datei definieren.

SPECIFICATION_FILE = 'yaml_file_path' oder . @stage SPECIFICATION_FILE = 'yaml_file_path' oder . SPECIFICATION specification_text

Gibt die Datei an, die die Dienstspezifikation oder die Dienstspezifikation inline enthält. Wenn Ihre Dienstspezifikation in einer Datei vorliegt, verwenden Sie SPECIFICATION_FILE. Für Dienste, die in einer Snowflake Native App erstellt wurden, lassen Sie @stage weg und geben einen Pfad relativ zum Stammverzeichnis der App an. Für Dienste, die in anderen Kontexten erstellt wurden, geben Sie den internen Snowflake-Stagingbereich und den Pfad zur Datei mit der Dienstspezifikation an.

Verwendung einer Vorlage für eine Dienstspezifikation

Sie können die -Spezifikationsvorlage entweder inline oder in einer separaten Datei definieren.

SPECIFICATION_TEMPLATE_FILE = 'yaml_file_path' oder . @stage SPECIFICATION_TEMPLATE_FILE = 'yaml_file_path' oder . SPECIFICATION_TEMPLATE specification_text

Gibt die Datei an, die die Vorlage für die Dienstspezifikation oder die Vorlage für die Dienstspezifikation inline enthält. Wenn sich Ihre Vorlage für die Dienstspezifikation in einer Datei befindet, verwenden Sie SPECIFICATION_TEMPLATE_FILE. Für Dienste, die in einer Snowflake Native App erstellt wurden, lassen Sie @stage weg und geben einen Pfad relativ zum Stammverzeichnis der App an. Für Dienste, die in anderen Kontexten erstellt wurden, geben Sie den internen Snowflake-Stagingbereich und den Pfad zur Datei mit der Dienstspezifikation an. Wenn Sie eine Spezifikationsvorlage verwenden, sollten Sie auch den Parameter USING angeben.

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

Gibt die Variablen der Vorlage und die Werte dieser Variablen an.

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

Verwenden Sie ein Komma zwischen jedem Schlüssel-Wert-Paar.

RESTORE VOLUME volume_name INSTANCES comma_separated_instance_ids FROM SNAPSHOT snapshot_name

Stellt den Snapshot snapshot_name auf dem vorhandenen Blockspeicher-Volume volume_name für die Instanzen comma_separated_instance_ids wieder her.

Snapshots können nur für Blockspeicher-Volumes erstellt werden (und nicht für lokale, Arbeitsspeicher- oder Staging-Volumes).

Bei Volume-Namen wird zwischen Groß- und Kleinschreibung unterschieden. Daher sollten doppelte Anführungszeichen immer verwendet werden, um den entsprechenden Namen in der Dienstspezifikation zu finden.

SET ...

Legt eine oder mehrere angegebene Eigenschaften oder Parameter für den Dienst fest:

MIN_INSTANCES = num

Gibt die minimale Anzahl von Dienstinstanzen an.

MAX_INSTANCES = num

Gibt die maximale Anzahl von Dienstinstanzen an.

MIN_READY_INSTANCES = num

Gibt an, welche Instanzen des Dienstes mindestens bereit sein müssen, damit Snowflake den Dienst als bereit für die Bearbeitung von Anfragen betrachtet. Weitere Informationen dazu finden Sie in der Beschreibung des Parameters MIN_READY_INSTANCES unter CREATE SERVICE.

Bemerkung

Wenn Sie den Befehl SHOW SERVICES oder DESCRIBE SERVICE verwenden möchten, um die für den Dienst konfigurierte MIN_READY_INSTANCES zu finden, müssen Sie das Verhaltensänderungs-Bundle 2024_08 Verhaltensweise in Ihrem Konto aktivieren. Zum Aktivieren dieses Bundles in Ihrem Konto führen Sie die folgende Anweisung aus:

SELECT SYSTEM$ENABLE_BEHAVIOR_CHANGE_BUNDLE('2024_08');
Copy
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.

AUTO_RESUME = { TRUE | FALSE }

Gibt an, ob der Dienst automatisch fortgesetzt werden soll, wenn die Dienstfunktion aufgerufen wird oder eine Anforderung eingeht.

EXTERNAL_ACCESS_INTEGRATIONS = ( EAI_name [ , ... ] )

Gibt die Namen der Integrationen für den externen Zugriff an, die Ihrem Dienst den Zugriff auf externe Sites ermöglichen. Snowflake ersetzt alle vorhandenen EAIs durch die in diesem Parameter angegebenen. Bei den Namen in dieser Liste wird zwischen Groß- und Kleinschreibung unterschieden. Weitere Informationen dazu finden Sie unter Ausgehender Netzwerk-Datenverkehr. Beachten Sie, dass dies den zulässigen Netzwerkzugriff für alle laufenden Instanzen des Dienstes ändert. Sie müssen den Dienst nicht explizit anhalten und fortsetzen.

COMMENT = 'string_literal'

Gibt einen Kommentar zum Computepool an.

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.

UNSET ...

Gibt eine (oder mehrere) Eigenschaften und/oder Parameter an, deren Einstellungen für den Dienst wieder aufgehoben werden sollen, wodurch sie auf die Standardwerte zurückgesetzt werden (siehe CREATE SERVICE):

  • MIN_INSTANCES

  • MAX_INSTANCES

  • MIN_READY_INSTANCES

  • QUERY_WAREHOUSE

  • AUTO_RESUME

  • EXTERNAL_ACCESS_INTEGRATIONS

  • COMMENT

Anforderungen an die Zugriffssteuerung

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

Berechtigung

Objekt

Anmerkungen

OPERATE

Dienst

USAGE

Snapshot

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

  • 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

Halten Sie einen Dienst an.

ALTER SERVICE echo_service SUSPEND;
Copy

Ändern Sie die Eigenschaften MIN_INSTANCES und MAX_INSTANCES eines bestehenden Dienstes.

ALTER SERVICE echo_service SET MIN_INSTANCES=3 MAX_INSTANCES=5;
Copy

Stellen Sie einen Snapshot auf einem vorhandenen Blockspeicher-Volume wieder her, das mit den Instanzen 0 und 2 des Dienstes example_service verbunden ist.

ALTER SERVICE example_service
  RESTORE VOLUME "myvolume"
  INSTANCES 0,2
  FROM SNAPSHOT my_snapshot;
Copy