PIPE 오브젝트¶
PIPE 오브젝트는 Snowpipe Streaming의 서버 측 처리 계층입니다. 모든 스트리밍 수집은 파이프를 통해 처리되며, 이 파이프는 대상 테이블에 데이터를 커밋하기 전에 스키마 유효성 검사, 선택적 진행 중 데이터 변환, 선택적 사전 클러스터링을 처리합니다.
PIPE 오브젝트는 다음과 같은 기능을 제공합니다.
전송 중 변환: COPY 명령 변환 구문을 사용하여 수집 중에 행을 필터링하고, 열을 재정렬하고, 유형을 캐스팅하고, 식을 적용합니다. 이를 통해 별도의 ETL 단계 없이 수집 시 데이터를 정리하고 재구성할 수 있습니다.
사전 클러스터링: 최적화된 쿼리 성능을 위해 테이블 클러스터링 키를 기반으로 수집 중에 데이터를 정렬합니다.
서버 측 스키마 유효성 검사: 커밋하기 전에 파이프에 정의된 스키마에 대해 수신 데이터의 유효성을 검사합니다.
테이블 기능 지원: 클러스터링 키, DEFAULT 값 열, AUTOINCREMENT(또는 IDENTITY) 열이 정의된 테이블로 수집합니다.
빠른 설정을 위해 Snowflake는 모든 테이블에 대해 기본 파이프 를 자동으로 생성합니다. 기본 파이프는 수동 DDL 없이 수집을 처리합니다. 변환 또는 사전 클러스터링이 필요한 고급 사용 사례의 경우 명명된 사용자 지정 파이프를 생성할 수 있습니다. 자세한 내용은 CREATE PIPE 섹션을 참조하십시오.
기본 파이프¶
Snowflake는 모든 대상 테이블에 대해 기본 파이프를 제공합니다. 기본 파이프는 대상 테이블에 대해 파이프 정보 또는 오픈 채널 호출이 처음 성공한 후에 온디맨드 방식으로 생성됩니다. 이를 통해 CREATE PIPE DDL 문을 수동으로 실행할 필요 없이 즉시 데이터 스트리밍을 시작할 수 있습니다.
온디맨드 생성: 고객은 이러한 호출 중 하나를 통해 파이프를 인스턴스화한 후에 파이프를 확인하거나 설명할 수만 있습니다(SHOW PIPES 또는 DESCRIBE PIPE 사용).
명명 규칙:
<TABLE_NAME>-STREAMING(예:MY_TABLE-STREAMING)완전 Snowflake 관리형: 기본 파이프에 대한 CREATE, ALTER 또는 DROP 권한을 실행할 수 없습니다.
가시성: SHOW PIPES, DESCRIBE PIPE 및 SHOW CHANNELS 를 사용하여 기본 파이프를 검사할 수 있습니다. 기본 파이프는 ACCOUNT_USAGE.PIPES, ACCOUNT_USAGE.METERING_HISTORY 및 ORGANIZATION_USAGE.PIPES 뷰에도 포함됩니다.
기본 파이프에는 다음과 같은 제한 사항이 있습니다.
변환 없음: 기본 파이프는 기본 복사 문에서
MATCH_BY_COLUMN_NAME을 사용합니다. 특정 데이터 변환은 지원하지 않습니다.사전 클러스터링 없음: 기본 파이프는 대상 테이블에 대한 사전 클러스터링을 지원하지 않습니다.
워크플로에 변환 또는 사전 클러스터링이 필요한 경우 직접 명명된 파이프를 생성합니다. 자세한 내용은 CREATE PIPE 섹션을 참조하십시오.
Snowpipe Streaming SDK 또는 REST API를 구성하는 경우, 클라이언트 구성에서 기본 파이프 이름을 참조하여 스트리밍을 시작할 수 있습니다. 자세한 내용은 자습서 Snowpipe Streaming 고성능 아키텍처 SDK 시작하기 및 자습서: cURL 및 JWT를 사용하여 Snowpipe Streaming REST API 시작하기 섹션을 참조하십시오.
수집 중 데이터 사전 클러스터링¶
Snowpipe Streaming은 수집 중에 진행 중인 데이터를 클러스터링할 수 있어 대상 테이블의 쿼리 성능이 향상됩니다. 이 기능은 데이터가 커밋되기 전, 수집 단계에서 바로 데이터를 정렬합니다.
사전 클러스터링을 사용하려면 대상 테이블에 클러스터링 키가 정의되어 있어야 합니다. 그런 다음 Snowpipe Streaming 파이프를 생성하거나 교체할 때 COPY INTO 문에서 CLUSTER_AT_INGEST_TIME 매개 변수를 :code:`TRUE`로 설정하여 이 기능을 활성화할 수 있습니다.
자세한 내용은 :ref:`CLUSTER_AT_INGEST_TIME <label-copy_into_table_copyoptions> ` 섹션을 참조하십시오.
중요
사전 클러스터링 기능을 사용하는 경우 대상 테이블에서 자동 클러스터링 기능을 비활성화하지 마세요. 자동 클러스터링을 비활성화하면 시간이 지남에 따라 쿼리 성능이 저하될 수 있습니다.