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>
Erforderliche Parameter¶
nameZeichenfolge, die den Bezeichner für das Gateway angibt. Der Wert muss für das Schema, in dem das Gateway erstellt wird, eindeutig sein.
FROM SPECIFICATIONGibt 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>
Spezifikationsparameter¶
typeFester Wert. Muss auf
traffic_splitgesetzt sein.split_typeFester Wert. Muss auf
customgesetzt sein.targetsEine Liste der Zielendpunkte, an die der Datenverkehr weitergeleitet werden soll. Jedes Ziel muss Folgendes angeben:
typeFester Wert. Muss auf
endpointgesetzt sein.valueDer vollqualifizierte Endpunktname im Format
db.schema.service!endpoint. Jeder Zielendpunkt muss vorhanden sein.weightDie 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 |
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>;
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
$$;
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
$$;