반정형 데이터 로딩 소개

비정형 데이터는 미리 정의된 데이터 모델이나 스키마에 맞지 않는 정보입니다. 일반적으로 양식 응답 및 소셜 미디어 대화와 같이 텍스트가 많은 비정형 데이터에는 이미지, 동영상 및 오디오도 포함됩니다. VCF(유전체학), KDF(반도체) 또는 HDF5(항공학)와 같은 산업별 파일 형식이 이 카테고리에 포함됩니다.

Snowflake는 다음 작업을 지원합니다.

  • 클라우드 저장소에 있는 데이터 파일에 안전하게 액세스합니다.

  • 공동 작업자 및 파트너와 파일 액세스 URL을 공유합니다.

  • 파일 액세스 URL과 기타 파일 메타데이터를 Snowflake 테이블에 로딩합니다.

  • 비정형 데이터를 처리합니다.

이 항목에서는 주요 개념을 소개하고 비정형 데이터 파일 액세스, 공유 및 처리 지침을 제공합니다.

이 항목의 내용:

클라우드 저장소 서비스 지원

외부(외부 클라우드 저장소) 및 내부(즉, Snowflake) 스테이지가 모두 비정형 데이터를 지원합니다.

외부 스테이지

외부 클라우드 저장소에 파일 저장: Amazon S3, Google Cloud Storage 또는 지원되는 Microsoft Azure 클라우드 저장소 서비스 중 하나:

  • Blob 저장소

  • Data Lake Storage Gen2

  • 범용 v1

  • 범용 v2

파일 액세스에 사용할 수 있는 URL의 유형

다음과 같은 유형의 URL을 클라우드 저장소의 파일에 액세스하는 데 사용할 수 있습니다.

범위 지정 URL

스테이지에 권한을 부여하지 않고 스테이징된 파일에 대한 임시 액세스를 허용하는 인코딩된 URL입니다.

이 URL은 현재 24시간인 지속 쿼리 결과 기간 이 끝날 때(즉, 결과 캐시 만료 시) 만료됩니다.

파일 URL

데이터베이스, 스키마, 스테이지 및 파일 세트에 대한 파일 경로를 식별하는 URL. 다음과 같이 스테이지에 대한 충분한 권한이 있는 역할이 파일에 액세스할 수 있습니다.

사전 서명된 URL

웹 브라우저를 통해 파일에 액세스하는 데 사용되는 간단한 HTTPS URL. 사용자는 사전 서명된 액세스 토큰을 사용하여 이 URL을 통해 파일에 임시로 액세스할 수 있습니다. 액세스 토큰의 만료 시간은 구성할 수 있습니다.

다음 표에서는 이러한 URL 유형의 주요 특성을 설명합니다.

범위 지정 URL

파일 URL

사전 서명된 URL

사용 사례

파일 관리자가 같은 계정의 특정 역할에 데이터 파일에 대한 범위 지정 액세스 권한을 부여하도록 권장됩니다. 범위 지정 URL을 검색하는 뷰로 파일에 대한 액세스를 제공합니다. 뷰에 대한 권한이 있는 역할만 파일에 액세스할 수 있습니다. Snowflake는 범위가 지정된 URL을 사용하여 파일에 액세스하는 사용자와 시기에 대한 정보를 쿼리 기록에 기록합니다. 공유를 통해 비정형 데이터를 다른 계정에 제공하거나 Snowsight에서 비정형 데이터를 다운로드하고 분석하기 위해 사용자 지정 애플리케이션에 사용하기에 이상적입니다.

스테이지의 파일에 영구적인 URL. 파일을 다운로드하거나 파일에 액세스하기 위해, 사용자는 GET 요청의 파일 URL을 인증 토큰과 함께 REST API 엔드포인트로 보냅니다. 비정형 데이터 파일에 액세스해야 하는 사용자 지정 애플리케이션에 이상적입니다.

Snowflake에 인증하거나 인증 토큰을 전달하지 않고 파일을 다운로드하거나 액세스하는 데 사용됩니다. 사전 서명이 URL이 열려 있습니다. 모든 사용자나 애플리케이션이 파일에 직접 액세스하거나 파일을 다운로드할 수 있습니다. 비정형 파일 내용을 표시해야 하는 비즈니스 인텔리전스 애플리케이션 또는 보고 도구에 이상적입니다.

생성 방법

BUILD_SCOPED_FILE_URL 함수를 쿼리합니다.

스테이징된 파일을 참조하는 스테이지의 디렉터리 테이블을 쿼리하거나 또는 BUILD_STAGE_FILE_URL 함수를 호출합니다.

GET_PRESIGNED_URL 함수를 쿼리합니다.

사용법

사용할 수 있는 옵션은 다음과 같습니다.

  • Snowsight에서 쿼리 결과 테이블의 범위 지정 URL을 클릭합니다. Snowsight는 범위 지정 URL을 생성한 사용자용 파일만 검색합니다.

  • GET 요청에서 범위 지정 URL을 파일 지원 REST API 엔드포인트로 보냅니다. 자세한 내용은 비정형 데이터 지원을 위한 REST API 섹션을 참조하십시오.

사용할 수 있는 옵션은 다음과 같습니다.

  • Snowsight에서 쿼리 결과 테이블의 파일 URL을 클릭합니다. Snowsight는 활성 역할에 충분한 권한이 있는 경우에만 파일을 검색합니다.

  • GET 요청에서 파일 URL을 파일 지원 REST API 엔드포인트로 보냅니다. 자세한 내용은 비정형 데이터 지원을 위한 REST API 섹션을 참조하십시오.

사용할 수 있는 옵션은 다음과 같습니다.

  • Snowsight에서 쿼리 결과 테이블의 사전 서명 URL을 클릭합니다.

  • 웹 브라우저에서 사전 서명 URL로 직접 이동합니다.

Snowflake Secure Data Sharing

데이터 공급자가 공유하는 보안 뷰에서 이 유형의 열 값을 통해 데이터 컨슈머가 비정형 데이터 파일에 액세스할 수 있습니다.

데이터 공급자가 공유하는 보안 뷰에서 이 유형의 열 값을 통해 데이터 컨슈머가 비정형 데이터 파일에 액세스할 수 없습니다.

데이터 공급자가 공유하는 보안 뷰에서 이 유형의 열 값을 통해 데이터 컨슈머가 비정형 데이터 파일에 액세스할 수 있습니다.

인증

범위 지정 URL을 생성하는 사용자만 이 URL을 사용해 참조된 파일에 액세스할 수 있습니다.

GET REST API 호출에 지정된 역할은 스테이지에 대한 충분한 권한, USAGE(외부 스테이지) 또는 READ(내부 스테이지)가 있어야 합니다.

사전 서명 URL을 가진 사람은 누구나 토큰의 수명 동안 참조 파일에 액세스할 수 있습니다.

만료

쿼리 결과 캐시의 만료 기간(현재 24시간).

영구.

expiration_time 인자에 지정된 길이의 시간.

비정형 데이터 액세스를 위한 서버 측 암호화

내부 스테이지에서 구조화되지 않은 데이터 액세스를 활성화하려면 스테이지를 생성할 때 서버 측 암호화 사용을 고려할 수 있습니다. 그렇지 않으면 기본적으로 스테이징된 파일이 클라이언트 측에서 암호화됩니다. 암호화 키는 Snowflake가 소유하며 미리 서명된 파일 또는 범위가 지정된 URL을 사용하는 사용자와 외부 도구는 클라이언트 측 암호화 파일을 읽을 수 없습니다.

내부 스테이지의 서버 측 암호화를 구성하려면 CREATE STAGE 명령에 SNOWFLAKE_SSE 암호화 유형을 지정하십시오. 자세한 내용은 내부 스테이지 매개 변수(internalStageParams) 섹션을 참조하십시오.

다음 예시에서는 서버 측 암호화와 디렉터리 테이블을 사용하여 my_int_stage 라는 내부 스테이지를 생성합니다.

CREATE STAGE my_int_stage
  ENCRYPTION = (TYPE = 'SNOWFLAKE_SSE')
  DIRECTORY = ( ENABLE = true );
Copy

중요

보안 규정 준수를 위해 Tri-Secret Secure 가 필요한 경우 내부 스테이지에 대해 SNOWFLAKE_FULL 암호화 유형을 사용하십시오. SNOWFLAKE_SSE 는 Tri-Secret Secure를 지원하지 않습니다.

참고

  • 스테이지를 생성한 후에는 내부 스테이지의 암호화 유형을 변경할 수 없습니다.

  • 현재, 서버 측 암호화를 사용한 내부 스테이지 만들기는 Snowflake 클라이언트 버전 JDBC Driver v3.12.11 이상으로 제한됩니다.

디렉터리 테이블

디렉터리 테이블은 클라우드 저장소에 스테이징된 파일의 카탈로그를 저장합니다. 충분한 권한이 있는 역할은 디렉터리 테이블을 쿼리하여 스테이징된 파일에 액세스하기 위한 파일 URL을 불러올 수 있습니다.

자세한 내용은 디렉터리 테이블 섹션을 참조하십시오.

SQL 함수

데이터 파일에 액세스하기 위해 다음 파일 함수 가 제공됩니다.

SQL 함수

설명

GET_STAGE_LOCATION

스테이지 이름을 입력으로 사용하여 외부 또는 내부의 명명된 스테이지에 대한 URL을 반환합니다.

GET_RELATIVE_PATH

클라우드 저장소에서 스테이지 이름과 절대 파일 경로를 입력으로 사용하여 스테이지에서 스테이징된 파일의 위치를 기준으로 파일 경로를 추출합니다.

GET_ABSOLUTE_PATH

스테이지 내 파일의 위치를 기준으로 하는 파일의 경로와 스테이지 이름을 입력으로 사용하여 스테이징된 파일의 절대 경로를 반환합니다.

GET_PRESIGNED_URL

스테이지 이름과 상대 파일 경로를 입력으로 사용하여 스테이징된 파일에 대한 사전 서명 URL을 생성합니다. 이 함수를 사용하여 외부 스테이지의 파일에 액세스합니다.

BUILD_SCOPED_FILE_URL

스테이지 이름과 상대 파일 경로를 입력으로 사용하여 스테이징된 파일에 대한 범위가 지정된 Snowflake 파일 URL을 생성합니다.

BUILD_STAGE_FILE_URL

스테이지 이름과 상대 파일 경로를 입력으로 사용하여 스테이징된 파일에 대한 Snowflake 파일 URL을 생성합니다.

Snowsight에서 스테이징된 파일 다운로드하기

사용자는 Snowsight 워크시트의 결과 테이블에서 생성된 범위 지정 URL, 사전 서명 URL 또는 파일 URL을 클릭하여 참조 파일을 다운로드할 수 있습니다.

  1. Snowflake 웹 인터페이스인 Snowsight 에 로그인합니다.

  2. Worksheets » My Worksheets (또는 Recent 또는 Folders 아래에서 로컬 워크시트 열기) » <워크시트_이름> 을 클릭합니다.

  3. 지원되는 방법 중 하나를 사용하여 쿼리에서 범위 지정, 사전 서명 또는 파일 URL을 반환합니다.

  4. 결과 테이블에서 URL을 클릭합니다. Snowsight는 URL에서 참조하는 파일을 다운로드합니다.

    Download pre-signed URL in Snowsight results table

비정형 데이터 처리하기

Snowflake는 비정형 데이터를 처리하는 데 도움이 되는 다음 기능을 지원합니다.

외부 함수

외부 함수는 Snowflake 외부에 저장하고 실행하는 사용자 정의 함수입니다. 외부 함수를 사용할 경우 내부 UDF(사용자 정의 함수)에서 액세스할 수 없는 Amazon Textract, Document AI 또는 Azure Computer Vision과 같은 라이브러리를 사용할 수 있습니다.

자세한 내용은 외부 함수 쓰기 섹션을 참조하십시오.

사용자 정의 함수 및 저장 프로시저

Snowflake는 비정형 데이터를 처리하거나 UDF(사용자 정의 함수), UDTF(사용자 정의 테이블 함수) 또는 저장 프로시저에서 자체 머신 러닝 모델을 사용할 수 있도록 Java 또는 Python 코드 내에서 파일을 읽는 여러 가지 방법을 지원합니다.

Snowflake에서 사용하는 SQL을 확장 하거나 Snowpark API 를 사용하여 애플리케이션을 빌드할 수 있습니다.

자세한 내용과 예제는 다음 항목을 참조하십시오.