Snowpipe Streaming Classic 비용
Snowpipe Streaming Classic 비용
Snowpipe Streaming의 서버리스 컴퓨트 모델에서는 가상 웨어하우스를 관리하지 않고도 어떤 데이터 볼륨이든 스트리밍할 수 있어요. 대신 Snowflake가 컴퓨트 리소스를 제공·관리하며, 현재 Snowpipe Streaming 부하에 따라 용량을 자동으로 늘리거나 줄입니다.
출처: Snowflake 문서
본문
Snowpipe Streaming Classic에서는 서버리스 컴퓨트와 활성 클라이언트 스트리밍 수집이 사용하는 초당 시간에 따라 계정에 청구됩니다. 다음에 유의하세요:
- 파일 마이그레이션은 스트리밍 수입으로부터 비동기로 발생합니다.
- 파일 마이그레이션은 클러스터링이나 다른 DML 작업에 의해 선점될 수 있습니다.
- 파일 마이그레이션이 항상 발생하지 않을 수도 있으며, 따라서 컴퓨트 비용이 줄어들 수 있습니다.
- Snowflake 관리 Apache Iceberg™ 테이블의 경우, 파일 마이그레이션은 필요 시 새 압축 Parquet 파일을 만들기 위한 Iceberg 테이블 유지보수와 유사하게 동작합니다.
자세한 내용은 Snowflake 서비스 소비 테이블의 "Serverless Feature Credit Table"을 참고하세요.
Snowpipe Streaming 요금 추정
Snowpipe Streaming 부하를 구분짓는 요인이 많기 때문에 Snowflake가 예시 비용을 제공하기는 매우 어려워요. 레코드 크기, 레코드 수, 데이터 타입 등이 파일 마이그레이션의 컴퓨트 리소스 소비에 영향을 줄 수 있습니다. 클라이언트 요금은 초당 기준으로 Snowflake에 데이터를 활발히 쓰는 클라이언트 수에 의해서만 결정됩니다.
일반적인 스트리밍 수집 부하로 실험해 미래 요금을 추정해 보시길 권장합니다. 예상 비용이 포함된 샘플 스트리밍 수집 실험은 이 블로그 글을 참고하세요.
임시 파일 스토리지와 청구
Snowpipe Streaming API는 사용자가 파일을 명시적으로 스테이징하지 않고 행을 Snowflake 테이블에 직접 쓰도록 설계되었지만, Snowpipe Streaming Classic에서는 Snowflake 내부 프로세스가 데이터 임시 버퍼링을 위해 투명한 내부 스테이지를 사용합니다. Classic 아키텍처의 Snowpipe Streaming SDK는 중간 파일을 생성해 이 내부 스테이지에 업로드한 뒤, Snowflake 네이티브 파일 포맷으로 변환합니다.
Snowflake는 이 내부 스테이지의 임시 파일이 소비하는 스토리지에 대해 청구합니다. 이 스토리지 비용은 Snowpipe Streaming 서버리스 컴퓨트 비용과 분리되어 있으며, Snowflake 청구서의 일반 "스토리지 비용" 아래 나타납니다.
내부 스테이지의 임시 파일 보존 기간은 대상 테이블의 데이터 보존 시간(또는 특정 테이블 보존이 설정되지 않았다면 계정 수준 보존)과 직접 연관됩니다. Snowflake는 정의된 Time Travel 창을 벗어나면 이 파일들을 자동으로 삭제합니다. 보통 이 삭제는 데이터가 보존 기간을 벗어난 뒤 1일 이내에 발생합니다. 사용자는 이 내부 스테이지 파일에 직접 접근하거나 볼 수 없어요.
Snowpipe Streaming으로 테이블 클로닝하기
Classic 아키텍처의 Snowpipe Streaming을 통해 활발히 데이터를 받는 테이블을 클론하면 스토리지 비용이 더 높아질 수 있어요. 이 추가 비용은 기본 데이터 파일의 복제 때문이 아닙니다. Snowflake는 zero-copy 클로닝을 수행합니다. 대신 데이터 in-flight, 즉 Classic 아키텍처의 SDK가 처리해 내부 스테이지에 임시 저장됐지만 아직 대상 테이블에 완전히 커밋되지 않은 데이터는 원본 테이블과 클론 양쪽 모두에 파일 마이그레이션이 필요하기 때문이에요. 이 임시 파일의 이중 처리는 파일 마이그레이션 소비를 늘리고 스토리지 사용을 증가시킵니다. 이 추가 비용은 보통 매우 작아 최대 약 5분치 임시 파일을 반영하지만, 시스템이 마이그레이션 지연을 겪으면 매우 높은 처리량에서 더 커질 수 있어요.
반대로, 고성능 아키텍처의 Snowpipe Streaming은 스트리밍 데이터를 활발히 받는 테이블에 진정한 zero-copy 클로닝을 제공합니다. 고성능 아키텍처에서 클로닝 작업은 표준 Snowflake 테이블 클론처럼 동작합니다. 즉, 클론 작업 이후에 쓰인 새 데이터만 추가 스토리지를 소비합니다. 클로닝 시점의 in-flight 데이터는 이 이중 마이그레이션 대상이 아니에요. 그 결과 스트리밍 테이블에 대해 비용 효율적인 클로닝을 누릴 수 있습니다.
계정의 데이터 로드 기록 보기
계정 관리자(ACCOUNTADMIN 역할을 가진 사용자) 또는 MONITOR USAGE 글로벌 권한이 부여된 역할을 가진 사용자는 SQL 명령으로 지정된 날짜 범위 내에 Snowflake 계정에 청구된 크레딧을 볼 수 있어요. 다음 뷰로 Snowflake 테이블로 마이그레이션된 데이터 기록, Snowpipe Streaming을 사용해 테이블에 데이터를 로드하는 데 소요된 시간, 소비된 크레딧을 조회할 수 있습니다.
컴퓨트와 클라이언트 비용을 모두 포함한 총 Snowpipe Streaming 비용을 보려면 <C>SERVICE_TYPE</C>이 <C>SNOWPIPE_STREAMING</C>으로 설정된 미터링 기록을 조회하세요.
- METERING_HISTORY 뷰 (Account Usage 내).
- 총 Snowpipe Streaming 비용 조회에 대한 자세한 내용은 SQL 예를 참고하세요.
클라이언트 수입과 마이그레이션 컴퓨트의 세부 항목을 보려면 다음 뷰를 조회할 수 있어요:
- SNOWPIPE_STREAMING_CLIENT_HISTORY 뷰 (Account Usage 내).
- SNOWPIPE_STREAMING_FILE_MIGRATION_HISTORY 뷰 (Account Usage 내).