ALTER PIPE¶
기존 파이프 오브젝트에 대한 제한된 속성 세트를 수정합니다. 다음 작업도 지원합니다.
파이프 일시 중지.
파이프 새로 고침(즉, 지정된 스테이징된 데이터 파일을 대상 테이블로의 로딩 목적으로 Snowpipe 수집 큐에 복사).
파이프에 대한 설명 추가/덮어쓰기/제거.
파이프의 태그 설정/해제.
- 참고 항목:
구문¶
ALTER PIPE [ IF EXISTS ] <name> SET { [ objectProperties ]
[ COMMENT = '<string_literal>' ] }
ALTER PIPE <name> SET TAG <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ]
ALTER PIPE <name> UNSET TAG <tag_name> [ , <tag_name> ... ]
ALTER PIPE [ IF EXISTS ] <name> UNSET { <property_name> | COMMENT } [ , ... ]
ALTER PIPE [ IF EXISTS ] <name> REFRESH { [ PREFIX = '<path>' ] [ MODIFIED_AFTER = <start_time> ] }
여기서
objectProperties ::= PIPE_EXECUTION_PAUSED = TRUE | FALSE
매개 변수¶
name
변경할 파이프의 식별자를 지정합니다. 식별자에 공백이나 특수 문자가 포함된 경우 전체 문자열을 큰따옴표로 묶어야 합니다. 큰따옴표로 묶인 식별자도 대/소문자를 구분합니다.
SET ...
파이프를 위해 설정할 하나 이상의 속성을 지정합니다(공백, 쉼표 또는 줄 바꿈으로 구분됨).
ERROR_INTEGRATION = 'integration_name'
클라우드 메시징 서비스로 오류 알림을 보내도록 Snowpipe를 구성하는 경우에만 필요합니다. 메시징 서비스와 통신하는 데 사용되는 알림 통합의 이름을 지정합니다. 자세한 내용은 Snowpipe 오류 알림 섹션을 참조하십시오.
PIPE_EXECUTION_PAUSED = TRUE | FALSE
일반적으로 파이프 소유권 이전을 준비할 때 실행 중인 파이프를 일시 중지할지 여부를 지정합니다.
TRUE
를 지정하면 파이프가 일시 중지됩니다. SYSTEM$PIPE_STATUS 에서 보고되는executionState
는PAUSED
입니다. 파이프 소유자는 일시 중지된 파이프에 파일을 계속 제출할 수 있지만, 파이프가 다시 시작될 때까지는 파일이 처리되지 않습니다.FALSE
를 지정하면 파이프가 다시 시작됩니다. SYSTEM$PIPE_STATUS 에서 보고되는executionState
는RUNNING
입니다.참고
다음 중 어느 시나리오에서든 SYSTEM$PIPE_FORCE_RESUME 함수를 호출하여 파이프를 강제로 다시 시작해야 합니다.
파이프 소유권을 다른 역할로 이전. 이 요구 사항을 통해 새 소유자는 파이프 상태를 평가하고 SYSTEM$PIPE_STATUS 함수를 호출하여 로딩되기를 기다리는 파일 개수를 결정할 수 있습니다.
데이터 로딩을 트리거하기 위해 클라우드 메시징을 활용하는 파이프 오브젝트가(즉, 파이프 정의에서
AUTO_INGEST = TRUE
인 경우) 부실해질 수 있도록 허용. 파이프에 대해 수신된 이벤트 메시지의 제한된 보존 기간(기본적으로 14일)보다 오래 일시 중지된 파이프는 부실한 것으로 간주됩니다.
기본값:
FALSE
(파이프는 기본적으로 실행 중임)
TAG tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ]
태그 이름과 태그 문자열 값을 지정합니다.
태그 값은 항상 문자열이며, 태그 값의 최대 문자 수는 256자입니다.
문에서 태그를 지정하는 방법에 대한 자세한 내용은 오브젝트 및 열에 대한 태그 할당량 섹션을 참조하십시오.
COMMENT = 'string'
파이프에 대한 설명을 추가하거나 기존 설명을 덮어씁니다.
UNSET ...
파이프에 대해 설정 해제할 하나 이상의 속성을 지정하여 이들을 기본값으로 재설정합니다.
PIPE_EXECUTION_PAUSED
TAG tag_name [ , tag_name ... ]
COMMENT
단일 ALTER 문으로 여러 속성을 재설정할 수 있지만, 각 속성은 쉼표로 구분해야 합니다. 속성을 재설정할 때는 이름만 지정하십시오. 속성 값을 지정하면 오류가 반환됩니다.
REFRESH
대상 테이블에 로딩하기 위해 스테이지 상태 데이터 파일 세트를 Snowpipe 수집 큐에 복사합니다. 이 절은 선택적 경로를 허용하고 지정된 시작 시간을 기준으로 로딩할 파일 목록을 더 세밀하게 필터링할 수 있습니다.
참고
이 SQL 명령은 지난 7일 이내에 스테이징된 데이터 파일만 로딩할 수 있습니다.
이 SQL 명령은 파이프와 대상 테이블 둘 다에 대한 로딩 기록을 확인합니다. 결과적으로 명령은 다음 중 하나를 사용하여 이미 로딩되지 않은 파일만 큐에 넣습니다.
파일이 로딩된 후 파이프 소유자가 파이프를 다시 생성하지 않은 경우 동일한 파이프입니다.
중요
REFRESH 기능은 Snowpipe가 파일의 서브세트를 로딩하지 못하고 정기적으로 사용할 목적이 아닐 때 특정 문제를 해결하려고 단기적으로 사용할 목적으로 제공되는 기능입니다.
PREFIX = 'path'
파이프 정의에서 스테이지 참조에 추가된 경로(또는 접두사)입니다. 이 경로는 로딩할 파일 세트를 제한합니다. 지정된 경로로 시작하는 파일만 데이터 로딩에 포함됩니다.
예를 들어 파이프 정의가
@mystage/path1/
을 참조한다고 가정해보십시오.path
값이d1/
이면 ALTER PIPE 문은/path1/d1/
경로가 있는@mystage
스테이지의 파일로의 로딩을 제한합니다. 자세한 내용은 예제를 참조하십시오.경로는 작은따옴표로 묶어야 합니다.
MODIFIED_AFTER = 'start_time'
LAST_MODIFIED 날짜(즉, 파일을 스테이징한 날짜)를 기준으로 Snowpipe 수집 큐에 복사할 가장 오래된 데이터 파일의 타임스탬프(ISO-8601 형식)입니다.
기본값이자 최대 허용 값은 7일입니다.
사용법 노트¶
파이프 소유자(즉, 파이프에 대한 OWNERSHIP 권한이 있는 역할)만 파이프의 속성을 설정하거나 설정 해제할 수 있습니다.
다음과 같은 최소 권한을 가진 비소유자 역할은 파이프를 새로 고칠 수 있습니다(ALTER PIPE … REFRESH … 사용).
권한
오브젝트
참고
OPERATE
파이프
USAGE
파이프 정의에서의 스테이지
외부 스테이지만
READ
파이프 정의에서의 스테이지
내부 스테이지만
SELECT, INSERT
파이프 정의의 테이블
파이프에 대한 OPERATE 권한이 있는 비소유자 역할은 파이프를 일시 중지하거나 재개할 수 있습니다(ALTER PIPE … SET PIPE_EXECUTION_PAUSED = TRUE | FALSE 사용).
스키마 오브젝트에 대한 SQL 작업에는 오브젝트를 포함하는 데이터베이스와 스키마에 대한 USAGE 권한도 필요합니다.
현재는 ALTER PIPE 문을 사용하여 다음 파이프 속성을 수정할 수 없습니다.
AWS_SNS_TOPIC
매개 변수INTEGRATION
매개 변수
대신 CREATE OR REPLACE PIPE 문을 사용하여 파이프를 다시 만듭니다.
메타데이터 관련:
주의
고객은 Snowflake 서비스를 사용할 때 개인 데이터(사용자 오브젝트 제외), 민감한 데이터, 수출 통제 대상 데이터 또는 기타 규제 데이터가 메타데이터로 입력되지 않도록 해야 합니다. 자세한 내용은 Snowflake의 메타데이터 필드 섹션을 참조하십시오.
예¶
mypipe
파이프 일시 중지:
alter pipe mypipe SET PIPE_EXECUTION_PAUSED = true;
파이프 mypipe
에 대한 설명 추가 또는 수정:
alter pipe mypipe SET COMMENT = "Pipe for North American sales data";
파이프 새로 고침¶
예제를 위한 설정:
CREATE PIPE mypipe AS COPY INTO mytable FROM @mystage/path1/;
mypipe
파이프 정의에 정의된 것처럼, @mystage/path1/
스테이지와 경로에서 데이터 파일을 mytable
테이블로 로딩합니다.
ALTER PIPE mypipe REFRESH;
이전의 예와 같지만, 경로에 d1
을 추가해 로딩할 파일의 목록을 더욱 제한합니다. 현재의 예에서는 이 문이 @mystage/path1/d1/
스테이지와 경로에서 파일을 로딩합니다.
ALTER PIPE mypipe REFRESH PREFIX='d1/';
이전의 예와 같지만, 지정된 타임스탬프 이후에 스테이징된 파일만 로딩합니다.
ALTER PIPE mypipe REFRESH PREFIX='d1/' MODIFIED_AFTER='2018-07-30T13:56:46-07:00';