CREATE GATEWAY¶
現在のスキーマで新しい ゲートウェイ を作成します。ゲートウェイにより、複数のサービスエンドポイント間でトラフィックを分割できます。
- こちらもご参照ください。
ALTER GATEWAY、 DESCRIBE GATEWAY、 DROP GATEWAY、 SHOW GATEWAYS
構文¶
CREATE [ OR REPLACE ] GATEWAY [ IF NOT EXISTS ] <name>
FROM SPECIFICATION <specification_text>
必須パラメーター¶
nameゲートウェイの識別子を指定する文字列。ゲートウェイが作成されるスキーマに対して一意である必要があります。
FROM SPECIFICATIONゲートウェイ仕様をインラインで指定します。仕様は、トラフィック分割構成を定義します。
仕様では、次の形式を使用します。
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>
仕様パラメーター¶
type固定値。
traffic_splitに設定する必要があります。split_type固定値。
customに設定する必要があります。targetsトラフィックをルーティングするターゲットエンドポイントのリスト。各ターゲットは以下を指定する必要があります。
type固定値。
endpointに設定する必要があります。valuedb.schema.service!endpoint形式の完全修飾エンドポイント名。各ターゲットエンドポイントが存在する必要があります。weightこのエンドポイントのトラフィックの重み。整数として指定されます。すべての重みの合計は100である必要があります。
注釈
ゲートウェイあたりのエンドポイントの最大数は、デフォルトで5です。
アクセス制御の要件¶
この操作の実行に使用される ロール には、少なくとも次の 権限 が必要です。
権限 |
オブジェクト |
メモ |
|---|---|---|
CREATE GATEWAY |
スキーマ |
スキーマでゲートウェイを作成するために必要です。 |
BIND SERVICE ENDPOINT |
アカウント |
サービスエンドポイントをゲートウェイにバインドするために必要です。 |
USAGE |
データベース |
ゲートウェイを含むデータベースで必要です。 |
USAGE |
スキーマ |
ゲートウェイを含むスキーマで必要です。 |
USAGE |
サービスエンドポイント |
ターゲットサービスエンドポイントで必要です。サービスロール |
必要な権限を付与するには、次のコマンドを使用します。
-- 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>;
指定された権限のセットを使用してカスタムロールを作成する手順については、 カスタムロールの作成 をご参照ください。
セキュリティ保護可能なオブジェクト に対して SQL アクションを実行するためのロールと権限付与に関する一般的な情報については、 アクセス制御の概要 をご参照ください。
使用上の注意¶
メタデータについて:
注意
Snowflakeサービスを使用する場合、お客様は、個人データ(ユーザーオブジェクト向け以外)、機密データ、輸出管理データ、またはその他の規制されたデータがメタデータとして入力されていないことを確認する必要があります。詳細については、 Snowflakeのメタデータフィールド をご参照ください。
例¶
2つのサービスエンドポイント間でトラフィックを分割するゲートウェイを作成します。
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
$$;
ゲートウェイを新しいトラフィック分割構成で作成または置き換えます。
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
$$;