데이터 로드를 위한 Snowpipe REST 엔드포인트 개요

데이터 로드를 위한 Snowpipe REST 엔드포인트 개요

이 주제는 데이터를 로드하고 로드 기록 보고서를 검색하기 위해 공용 REST 엔드포인트를 호출할 때의 사용 세부 정보에 대한 개요를 제공해요.

출처: Documentation

본문

인증

공용 Snowpipe REST 엔드포인트 호출은 수집 서비스가 클라이언트 세션을 유지하지 않기 때문에 일반적인 사용자 이름/비밀번호 인증 대신 키 기반 인증을 사용해요.

최소 권한의 일반 원칙을 따르기 위해, 파이프를 사용해 파일을 수집하는 데 사용할 별도의 사용자와 역할을 만드는 것을 권장해요. 사용자는 이 역할을 기본 역할로 만들어야 하며, 역할은 데이터 로드를 위해 대상 테이블에 파일을 삽입하는 데 필요한 최소 권한 집합을 가져야 해요.

프로세스 흐름

클라이언트 애플리케이션은 데이터 파일 이름 목록과 참조된 파이프 이름으로 공용 REST 엔드포인트를 호출해요(편의를 위해 Java 및 Python SDK가 제공돼요). 목록과 일치하는 새 데이터 파일이 스테이지에서 발견되면 로드 대기열에 들어가요. Snowflake가 제공하는 컴퓨팅 리소스가 파이프에 정의된 매개 변수에 따라 큐의 데이터를 Snowflake 테이블에 로드해요.

Snowpipe REST API 프로세스 흐름:

  1. 데이터 파일이 내부(Snowflake) 또는 외부(Amazon S3, Google Cloud Storage 또는 Microsoft Azure) 스테이지에 복사돼요.
  2. 클라이언트가 수집할 파일 목록과 정의된 파이프로 insertFiles 엔드포인트를 호출해요. 엔드포인트는 이러한 파일을 수집 큐로 이동해요.
  3. 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 함수를 만들어요.
  • 로드 기록을 검색해요.

더 알아보기