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의 메타데이터 필드 섹션을 참조하십시오.
예¶
두 서비스 엔드포인트 간에 트래픽을 분할하는 게이트웨이를 생성합니다.
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
$$;