CREATE GATEWAY

현재 스키마에서 새 게이트웨이 를 생성합니다. 게이트웨이를 사용하면 여러 서비스 엔드포인트에서 트래픽을 분할할 수 있습니다.

참고 항목:

ALTER GATEWAY , DESCRIBE GATEWAY, DROP GATEWAY , SHOW GATEWAYS

구문

CREATE [ OR REPLACE ] GATEWAY [ IF NOT EXISTS ] <name>
  FROM SPECIFICATION <specification_text>
Copy

필수 매개 변수

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>
Copy

사양 매개 변수

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>;
Copy

지정된 권한 세트로 사용자 지정 역할을 만드는 방법에 대한 지침은 사용자 지정 역할 만들기 섹션을 참조하십시오.

보안 오브젝트 에 대해 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
$$;
Copy

게이트웨이를 생성하거나 새 트래픽 분할 구성으로 바꿉니다.

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
$$;
Copy