CREATE GATEWAY¶
Crée une nouvelle passerelle dans le schéma actuel. Une passerelle permet de répartir le trafic entre plusieurs points de terminaison de service.
- Voir aussi :
ALTER GATEWAY , DESCRIBE GATEWAY, DROP GATEWAY , SHOW GATEWAYS
Syntaxe¶
CREATE [ OR REPLACE ] GATEWAY [ IF NOT EXISTS ] <name>
FROM SPECIFICATION <specification_text>
Paramètres requis¶
nameChaîne qui indique l’identificateur de la passerelle ; elle doit être unique pour le schéma dans lequel la passerelle est créée.
FROM SPECIFICATIONSpécifie la spécification de la passerelle en ligne. La spécification définit la configuration de la répartition du trafic.
La spécification utilise le format suivant :
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>
Paramètres de spécification¶
typeValeur fixe. Doit être défini sur
traffic_split.split_typeValeur fixe. Doit être défini sur
custom.targetsUne liste de points de terminaison cibles vers lesquels acheminer le trafic. Chaque cible doit spécifier :
typeValeur fixe. Doit être défini sur
endpoint.valueLe nom pleinement qualifié du point de terminaison au format
db.schema.service!endpoint. Chaque point de terminaison cible doit exister.weightLe poids du trafic pour ce point de terminaison, spécifié sous la forme d’un entier. Tous les poids doivent s’additionner jusqu’à 100.
Note
Le nombre maximum de points de terminaison par passerelle est de 5 par défaut.
Exigences en matière de contrôle d’accès¶
Un rôle utilisé pour exécuter cette opération doit au minimum disposer des privilèges suivants :
Privilège |
Objet |
Remarques |
|---|---|---|
CREATE GATEWAY |
Schéma |
Requis pour créer une passerelle dans le schéma. |
BIND SERVICE ENDPOINT |
Compte |
Requis pour lier les points de terminaison de service à la passerelle. |
USAGE |
Base de données |
Requis sur la base de données contenant la passerelle. |
USAGE |
Schéma |
Requis sur le schéma contenant la passerelle. |
USAGE |
Points de terminaison de service |
Requis sur les points de terminaison de service cibles. Accordez le rôle de service |
Pour accorder les privilèges requis, utilisez les commandes suivantes :
-- 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>;
Pour obtenir des instructions sur la création d’un rôle personnalisé avec un ensemble spécifique de privilèges, voir Création de rôles personnalisés.
Pour des informations générales sur les rôles et les privilèges accordés pour effectuer des actions SQL sur des objets sécurisables, voir Aperçu du contrôle d’accès.
Notes sur l’utilisation¶
Concernant les métadonnées :
Attention
Les clients doivent s’assurer qu’aucune donnée personnelle (autre que pour un objet utilisateur), donnée sensible, donnée à exportation contrôlée ou autre donnée réglementée n’est saisie comme métadonnée lors de l’utilisation du service Snowflake. Pour plus d’informations, voir Champs de métadonnées dans Snowflake.
Exemples¶
Créer une passerelle qui répartit le trafic entre deux points de terminaison de service :
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
$$;
Créer ou remplacer une passerelle par une nouvelle configuration de répartition du trafic :
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
$$;