데이터 로드를 위한 Snowpipe REST 엔드포인트 개요
데이터 로드를 위한 Snowpipe REST 엔드포인트 개요
이 주제는 데이터를 로드하고 로드 기록 보고서를 검색하기 위해 공용 REST 엔드포인트를 호출할 때의 사용 세부 정보에 대한 개요를 제공해요.
출처: Documentation
본문
인증
공용 Snowpipe REST 엔드포인트 호출은 수집 서비스가 클라이언트 세션을 유지하지 않기 때문에 일반적인 사용자 이름/비밀번호 인증 대신 키 기반 인증을 사용해요.
최소 권한의 일반 원칙을 따르기 위해, 파이프를 사용해 파일을 수집하는 데 사용할 별도의 사용자와 역할을 만드는 것을 권장해요. 사용자는 이 역할을 기본 역할로 만들어야 하며, 역할은 데이터 로드를 위해 대상 테이블에 파일을 삽입하는 데 필요한 최소 권한 집합을 가져야 해요.
프로세스 흐름
클라이언트 애플리케이션은 데이터 파일 이름 목록과 참조된 파이프 이름으로 공용 REST 엔드포인트를 호출해요(편의를 위해 Java 및 Python SDK가 제공돼요). 목록과 일치하는 새 데이터 파일이 스테이지에서 발견되면 로드 대기열에 들어가요. Snowflake가 제공하는 컴퓨팅 리소스가 파이프에 정의된 매개 변수에 따라 큐의 데이터를 Snowflake 테이블에 로드해요.
Snowpipe REST API 프로세스 흐름:
- 데이터 파일이 내부(Snowflake) 또는 외부(Amazon S3, Google Cloud Storage 또는 Microsoft Azure) 스테이지에 복사돼요.
- 클라이언트가 수집할 파일 목록과 정의된 파이프로
insertFiles엔드포인트를 호출해요. 엔드포인트는 이러한 파일을 수집 큐로 이동해요. - Snowflake가 제공하는 가상 웨어하우스가 지정된 파이프에 정의된 매개 변수에 따라 큐에 있는 파일의 데이터를 대상 테이블에 로드해요.
워크플로
이 섹션은 설정 및 로드 워크플로의 높은 수준의 개요를 제공해요.
Snowpipe 구성
- 데이터 파일이 스테이징될 이름이 있는 스테이지 객체를 만들어요. Snowpipe는 내부(Snowflake) 스테이지와 외부 스테이지(즉, S3 버킷)를 모두 지원해요.
- CREATE PIPE로 파이프 객체를 만들어요.
- 연속 데이터 로드를 실행할 사용자에 대한 보안을 구성해요. Snowpipe 데이터 로드를 단일 사용자로 제한할 계획이라면 한 번만 사용자에 대해 키 페어 인증을 구성하면 돼요. 그 후에는 각 데이터 로드에 사용되는 데이터베이스 객체에 대한 액세스 제어 권한만 부여하면 돼요.
- Snowpipe 공용 REST 엔드포인트 호출용 클라이언트 SDK(Java 또는 Python)를 설치해요.
Snowpipe REST API로 데이터 로드
옵션 1: 클라이언트를 사용해 REST API 호출
클라이언트를 사용해 REST API를 호출해요. Java 및 Python SDK 샘플 코드가 제공돼요. 자세한 내용은 옵션 1: Snowpipe REST API로 데이터 로드를 참고해요.
- 스테이징될 때 로드할 파일 목록으로 REST 엔드포인트를 호출해요.
- 로드 기록을 검색해요.
옵션 2: AWS Lambda를 사용해 REST API 호출
AWS Lambda 함수를 사용해 REST API를 호출해 Snowpipe를 자동화해요. Lambda 함수는 Amazon S3에 저장된 파일에서 데이터를 로드하기 위해 REST API를 호출할 수 있어요. 자세한 내용은 옵션 2: AWS Lambda로 Snowpipe 자동화를 참고해요.
- 외부(즉, S3) 스테이지에서 데이터를 로드하기 위해 Snowpipe REST API를 호출하는 AWS Lambda 함수를 만들어요.
- 로드 기록을 검색해요.