게이트웨이 수정

게이트웨이 수정 (ALTER GATEWAY)

%spcs%는 일부 예외를 제외하고 AWS, Microsoft Azure, and Google Cloud Platform commercial regions의 계정에서 사용할 수 있습니다. 자세한 내용은 를 참조하세요.

기존 gateway의 구성을 수정합니다. 이 명령을 사용하여 게이트웨이의 트래픽 분할 또는 섀도 트래픽 구성을 업데이트하세요.

참조:

CREATE GATEWAY , DESCRIBE GATEWAY, DROP GATEWAY , SHOW GATEWAYS

출처: 문서

본문

구문

ALTER GATEWAY [ IF EXISTS ] 
  FROM SPECIFICATION 

매개변수

name

변경할 게이트웨이의 식별자를 지정해요.

식별자에 공백이나 특수 문자가 포함되어 있으면 전체 문자열을 큰따옴표로 묶어야 해요. 큰따옴표로 묶인 식별자는 대소문자도 구분해요.

자세한 내용은 식별자 요구 사항을 참조하세요.

FROM SPECIFICATION

업데이트된 게이트웨이 사양을 인라인으로 지정해요. 사양은 트래픽 분할 또는 섀도 트래픽 구성을 정의해요.

트래픽 분할 게이트웨이의 경우 사양은 다음 형식을 사용해요:

spec:
  type: traffic_split
  split_type: custom
  targets:
  - type: endpoint
    value: ..!
    weight: 
  - type: endpoint
    value: ..!
    weight: 

섀도 트래픽 게이트웨이의 경우 사양은 다음 형식을 사용해요:

섀도 트래픽 게이트웨이는 모든 계정에서 사용할 수 있어요.

spec:
  type: shadow_traffic
  primary:
  - type: endpoint
    value: ..!
  shadow:
  - type: endpoint
    value: ..!
    weight: 

사양 매개변수

type

게이트웨이 구성 유형이에요. 지원되는 값은 다음과 같아요:

  • traffic_split: 가중치에 따라 대상 엔드포인트 간에 요청을 라우팅해요.
  • shadow_traffic: 모든 요청을 하나의 기본 엔드포인트로 라우팅하고 요청의 일정 비율을 하나 이상의 섀도 엔드포인트로 미러링해요.

split_type

traffic_split 게이트웨이의 경우 고정 값 custom이에요.

shadow_traffic 게이트웨이에서는 이 매개변수를 지정하지 마세요.

targets

traffic_split 게이트웨이의 경우 트래픽을 라우팅할 대상 엔드포인트 목록이에요. 각 대상은 다음을 지정해야 해요:

type

고정 값이에요. endpoint로 설정해야 해요.

value

db.schema.service!endpoint 형식의 정규화된 엔드포인트 이름이에요. 각 대상 엔드포인트는 존재해야 해요.

weight

이 엔드포인트의 트래픽 가중치로, 정수로 지정해요. 모든 가중치의 합은 100이 되어야 해요.

primary

shadow_traffic 게이트웨이의 경우 정확히 하나의 기본 엔드포인트를 포함하는 목록이에요. 기본 엔드포인트는 모든 요청을 받고 클라이언트에 응답을 반환해요.

기본 엔드포인트에는 weight를 지정하지 마세요.

shadow

shadow_traffic 게이트웨이의 경우 하나 이상의 섀도 엔드포인트 목록이에요. 각 섀도 엔드포인트는 weight로 지정된 요청 비율의 복사본을 받아요. 섀도 엔드포인트의 응답은 클라이언트에 반환되지 않아요.


각 섀도우 타깃은 트래픽 분할 타깃과 동일한 typevalue 필드를 사용해요. weight는 0부터 100 사이의 정수로 설정하세요. 여러 섀도우 타깃의 가중치가 합계 100이 될 필요는 없어요.

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

액세스 제어 요구 사항

이 작업을 실행하는 데 사용되는 role은 최소한 다음 privileges을 보유해야 해요.

권한 객체 참고
MODIFY or OWNERSHIP Gateway 게이트웨이 구성을 변경하는 데 필요해요.
BIND SERVICE ENDPOINT Account 서비스 엔드포인트를 게이트웨이에 바인딩하는 데 필요해요.
USAGE Database 게이트웨이가 포함된 데이터베이스에 필요해요.
USAGE Schema 게이트웨이가 포함된 스키마에 필요해요.
USAGE Service endpoints 대상 서비스 엔드포인트에 필요해요.

필요한 권한을 부여하려면 다음 명령을 사용하세요.

-- Grant MODIFY or OWNERSHIP privilege on the gateway
GRANT MODIFY ON GATEWAY  TO ROLE ;
-- OR
GRANT OWNERSHIP ON GATEWAY  TO ROLE ;

-- Grant BIND SERVICE ENDPOINT privilege on the account
GRANT BIND SERVICE ENDPOINT ON ACCOUNT TO ROLE ;

지정된 권한 집합을 가진 사용자 지정 역할을 만드는 방법은 을 참조하세요.

securable objects에 대해 SQL 작업을 수행하기 위한 역할 및 권한 부여에 대한 일반적인 정보는 Overview of Access Control을 참조하세요.

사용 참고 사항

  • 메타데이터 관련:

    고객은 Snowflake 서비스를 사용할 때 메타데이터로 개인 데이터(User object용 데이터 제외), 민감한 데이터, 수출 통제 데이터 또는 기타 규제 대상 데이터가 입력되지 않도록 해야 해요. 자세한 내용은 Metadata fields in Snowflake를 참조하세요.

예제

게이트웨이를 변경하여 트래픽 분할 구성을 업데이트해요:

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

섀도우 트래픽 게이트웨이를 변경하여 요청의 25%를 챌린저 엔드포인트로 미러링해요:

ALTER GATEWAY shadow_gateway
  FROM SPECIFICATION $$
spec:
  type: shadow_traffic
  primary:
  - type: endpoint
    value: db.schema.production_service!inference
  shadow:
  - type: endpoint
    value: db.schema.challenger_service!inference
    weight: 25
$$;

더 알아보기 (Learn more)