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``으로 설정해야 합니다.

value

db.schema.service!endpoint 형식의 정규화된 엔드포인트 이름입니다. 각 대상 엔드포인트가 있어야 합니다.

weight

이 엔드포인트의 트래픽 가중치로, 정수로 지정됩니다. 모든 가중치의 합은 최대 100이어야 합니다.

참고

  • 게이트웨이당 최대 엔드포인트 수는 기본적으로 5개입니다.

액세스 제어 요구 사항

이 작업을 실행하는 데 사용되는 역할 에는 최소한 다음 권한 이 있어야 합니다.

권한

오브젝트

참고

CREATE GATEWAY

스키마

스키마에서 게이트웨이를 생성하는 데 필요합니다.

BIND SERVICE ENDPOINT

계정

서비스 엔드포인트를 게이트웨이에 바인딩하는 데 필요합니다.

USAGE

데이터베이스

게이트웨이가 포함된 데이터베이스에 필요합니다.

USAGE

스키마

게이트웨이가 포함된 스키마에 필요합니다.

USAGE

서비스 엔드포인트

대상 서비스 엔드포인트에 필요합니다. ALL_ENDPOINTS_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
$$;