CREATE-GATEWAY

Erstellt ein neues Gateway im aktuellen Schema. Ein Gateway ermöglicht die Aufteilung des Datenverkehrs auf mehrere Dienstendpunkte.

Siehe auch:

ALTER-GATEWAY , DESCRIBE-GATEWAY, DROP-GATEWAY , SHOW-GATEWAYS

Syntax

CREATE [ OR REPLACE ] GATEWAY [ IF NOT EXISTS ] <name>
  FROM SPECIFICATION <specification_text>
Copy

Erforderliche Parameter

name

Zeichenfolge, die den Bezeichner für das Gateway angibt. Der Wert muss für das Schema, in dem das Gateway erstellt wird, eindeutig sein.

FROM SPECIFICATION

Gibt die Inline-Gateway-Spezifikation an. Die Spezifikation definiert die Konfiguration der Aufteilung des Datenverkehrs.

Die Spezifikation verwendet das folgende Format:

spec:
  type: traffic_split
  split_type: custom
  targets:
  - type: endpoint
    value: <db>.<schema>.<service>!<endpoint>
    weight: <weight>
  - type: endpoint
    value: <db>.<schema>.<service>!<endpoint>
    weight: <weight>
Copy

Spezifikationsparameter

type

Fester Wert. Muss auf traffic_split gesetzt sein.

split_type

Fester Wert. Muss auf custom gesetzt sein.

targets

Eine Liste der Zielendpunkte, an die der Datenverkehr weitergeleitet werden soll. Jedes Ziel muss Folgendes angeben:

type

Fester Wert. Muss auf endpoint gesetzt sein.

value

Der vollqualifizierte Endpunktname im Format db.schema.service!endpoint. Jeder Zielendpunkt muss vorhanden sein.

weight

Die Gewichtung des Datenverkehrs für diesen Endpunkt, angegeben als Ganzzahl. Alle Gewichtungen müssen in der Summe 100 ergeben.

Bemerkung

  • Die maximale Anzahl von Endpunkten pro Gateway beträgt standardmäßig 5.

Anforderungen an die Zugriffssteuerung

Eine Rolle, die zur Ausführung dieser Operation verwendet wird, muss mindestens die folgenden Berechtigungen haben:

Berechtigung

Objekt

Anmerkungen

CREATE-GATEWAY

Schema

Erforderlich, um ein Gateway im Schema zu erstellen.

BIND SERVICE ENDPOINT

Konto

Erforderlich, um Dienstendpunkte an das Gateway zu binden.

USAGE

Datenbank

Erforderlich für die Datenbank, die das Gateway enthält.

USAGE

Schema

Erforderlich für das Schema, das das Gateway enthält.

USAGE

Dienstendpunkte

Erforderlich für die Zieldienstendpunkte. Dienstrolle ALL_ENDPOINTS_USAGE zuweisen, um den Zugriff zu ermöglichen.

Um die erforderlichen Berechtigungen zu erteilen, verwenden Sie die folgenden Befehle:

-- Grant CREATE GATEWAY privilege in the schema
GRANT CREATE GATEWAY ON SCHEMA <schema_name> TO ROLE <role_name>;

-- Grant BIND SERVICE ENDPOINT privilege on the account
GRANT BIND SERVICE ENDPOINT ON ACCOUNT TO ROLE <role_name>;

-- Grant USAGE on target endpoints via service role
GRANT SERVICE ROLE <db_name>.<schema_name>.<service_name>!ALL_ENDPOINTS_USAGE TO ROLE <role_name>;
Copy

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 „User“), sensible Daten, exportkontrollierte Daten oder andere regulierte Daten als Metadaten eingegeben werden. Weitere Informationen dazu finden Sie unter Metadatenfelder in Snowflake.

Beispiele

Erstellen Sie ein Gateway, das den Datenverkehr zwischen zwei Dienstendpunkten aufteilt:

CREATE GATEWAY split_gateway
  FROM SPECIFICATION $$
spec:
  type: traffic_split
  split_type: custom
  targets:
  - type: endpoint
    value: db.schema.s2!ep1
    weight: 60
  - type: endpoint
    value: db.schema.s1!ep1
    weight: 40
$$;
Copy

Erstellen oder ersetzen Sie ein Gateway durch eine neue Konfiguration für die Aufteilung des Datenverkehrs:

CREATE OR REPLACE GATEWAY split_gateway
  FROM SPECIFICATION $$
spec:
  type: traffic_split
  split_type: custom
  targets:
  - type: endpoint
    value: db.schema.service1!endpoint1
    weight: 70
  - type: endpoint
    value: db.schema.service2!endpoint1
    weight: 30
$$;
Copy