비용에 맞게 클라우드 서비스 최적화하기¶
클라우드 서비스 사용량 이 예상보다 높은 경우 Snowflake 사용이 다음 패턴을 따르는지 확인하십시오. 각 패턴에는 클라우드 서비스와 관련된 비용을 줄이는 데 도움이 될 수 있는 권장 사항이 포함됩니다.
- 패턴: 선택성이 부족한 복사 명령
복사 명령을 실행하면 Amazon Simple Storage Service(S3)의 파일이 나열됩니다. 목록 파일은 클라우드 서비스 컴퓨팅만 사용하므로 선택성이 부족한 복사 명령을 실행하면 클라우드 서비스 사용량이 증가할 수 있습니다.
권장 사항: 필요한 대상 파일만 나열되도록 일종의 날짜 접두사를 포함하게끔 S3 버킷의 구조를 변경하는 것이 좋습니다.
- 패턴: 빈도가 높은 DDL 작업 및 복제본 생성
데이터 정의 언어(DDL) 작업, 특히 복제는 전적으로 메타데이터 작업인데, 이는 곧 클라우드 서비스 컴퓨팅만 사용한다는 의미입니다. 대규모 스키마나 테이블을 자주 생성 또는 삭제하거나 백업을 위해 데이터베이스를 복제하면 상당한 클라우드 서비스 사용량이 발생할 수 있습니다.
권장 사항: 복제는 심층 복제에 필요한 리소스 중 일부만 사용하므로 복제를 계속해야 합니다. 복제본 패턴을 검토하여 가능한 한 세분화되어 있고 너무 자주 실행되고 있지는 않은지 확인하십시오. 예를 들어 전체 스키마가 아닌 개별 테이블만 복제할 수 있습니다.
- 패턴: 빈도가 높은 간단한 쿼리
단일 단순 쿼리를 통한 클라우드 서비스 소비는 무시할 수준이지만
SELECT 1
,SELECT sequence1.NEXTVAL
또는SELECT CURRENT_SESSION()
과 같은 쿼리를 매우 높은 빈도(하루 수만 회)로 실행하면 상당한 클라우드 서비스 사용량이 발생할 수 있습니다.권장 사항: 쿼리 빈도를 검토하고 빈도가 사용 사례에 맞춰 적절하게 설정되어 있는지 확인하십시오. JDBC 드라이버를 사용하는 파트너 도구에서 발생하는
SELECT CURRENT_SESSION()
쿼리의 빈도가 높은 경우 파트너가 SnowflakeConnection 인터페이스 에서getSessionId()
메서드를 사용하도록 코드를 업데이트했는지 확인하십시오. 이를 통해 캐싱을 활용하고 클라우드 서비스 사용량을 줄입니다.
- 패턴: 빈도가 높은 INFORMATION_SCHEMA 쿼리
Snowflake Information Schema 에 대한 쿼리는 클라우드 서비스 리소스만 소비합니다. INFORMATION_SCHEMA 뷰에 대한 단일 쿼리의 클라우드 서비스 소비는 무시할 수 있지만, 이러한 쿼리를 매우 높은 빈도(하루 수만 회)로 실행하면 상당한 클라우드 서비스 사용량이 발생할 수 있습니다.
권장 사항: 쿼리 빈도를 검토하고 빈도가 사용 사례에 맞춰 적절하게 설정되어 있는지 확인하십시오. 또는 INFORMATION_SCHEMA 뷰 대신 ACCOUNT_USAGE 스키마 의 뷰를 쿼리할 수 있습니다. ACCOUNT_USAGE 스키마를 쿼리하면 클라우드 서비스가 아닌 가상 웨어하우스가 사용됩니다.
- 패턴: 고빈도 SHOW 명령(데이터 애플리케이션 및 서드 파티 도구에 의한)
SHOW 명령은 전적으로 메타데이터 작업이며, 이는 곧 클라우드 서비스 리소스만 소비한다는 의미입니다. 이 패턴은 일반적으로 SHOW 명령을 자주 실행하는 Snowflake를 기반으로 구축된 애플리케이션을 만들었을 때 발생합니다. 서드 파티 도구에서 이러한 명령을 시작할 수도 있습니다.
권장 사항: 쿼리 빈도를 검토하고 빈도가 사용 사례에 맞춰 적절하게 설정되어 있는지 확인하십시오. 파트너 도구의 경우 파트너에게 연락하여 사용량을 조정할 계획이 있는지 확인하십시오.
- 패턴: 단일 행 삽입 및 조각화된 스키마(데이터 애플리케이션별)
Snowflake는 OLTP 시스템이 아니므로 단일 행 삽입은 최적이 아니며 상당한 클라우드 서비스 리소스를 소모할 수 있습니다.
고객당 하나의 스키마를 정의하는 데이터 애플리케이션을 만들면 특정 기간에 여러 데이터 로드가 발생하여 클라우드 서비스 소비량이 증가할 수 있습니다.
또한 이 패턴으로 인해 Snowflake가 유지 관리해야 하는 메타데이터가 훨씬 더 많아지는데, 메타데이터 작업은 클라우드 서비스 리소스를 소비합니다. 각 메타데이터 작업은 개별적으로 최소한의 리소스를 소비하지만 전체적으로는 소비량이 상당할 수 있습니다.
권장 사항: 일반적으로 단일 행 삽입보다는 배치 또는 대량 로딩을 수행합니다.
공유 스키마를 사용하는 것이 훨씬 더 효율적이므로 비용이 절감됩니다.
customer_ID
의 모든 테이블을 클러스터링하고 보안 뷰 를 사용하는 것이 좋습니다.
- 패턴: 복잡한 SQL 쿼리
쿼리에 조인/데카르트 곱이 많이 포함되거나, 큰 목록에 IN 연산자를 사용하거나, 매우 큰 쿼리인 경우 쿼리 실행 시 상당한 클라우드 서비스 컴퓨팅을 소비할 수 있습니다. 이러한 유형의 쿼리는 모두 컴파일 시간이 깁니다.
권장 사항: 쿼리를 검토하여 의도한 작업을 수행 중인지 확인하십시오. Snowflake는 이러한 쿼리를 지원하며 소비된 리소스에 대해서만 비용을 청구합니다.