디렉터리 테이블

이 항목에서는 주요 개념을 소개하고 보조 정보와 디렉터리 테이블 사용 지침에 대한 링크를 제공합니다.

이 항목의 내용:

디렉터리 테이블이란 무엇입니까?

디렉터리 테이블은 (별개의 데이터베이스 오브젝트가 아니라) 스테이지에 계층화된 암시적 오브젝트로, 스테이지의 데이터 파일에 대한 파일 수준 메타데이터를 저장하므로 개념적으로는 외부 테이블과 유사합니다. 디렉터리 테이블에는 자체적으로 할당할 수 있는 권한이 없습니다.

외부(외부 클라우드 저장소) 및 내부(Snowflake) 스테이지가 모두 디렉터리 테이블을 지원합니다. 스테이지를 생성할 때(CREATE STAGE 사용) 또는 나중에(ALTER STAGE 사용) 스테이지에 디렉터리 테이블을 추가할 수 있습니다.

특히 디렉터리 테이블을 사용하여 다음과 같은 비정형 데이터 작업을 수행할 수 있습니다.

  • 스테이지의 모든 비정형 파일 목록을 쿼리합니다. 디렉터리 테이블을 쿼리하여 스테이지의 모든 파일 목록을 검색할 수 있습니다. 쿼리 출력에는 크기, 파일이 마지막으로 수정된 타임스탬프, 해당 Snowflake 파일 URL 등 각 파일에 대한 정보가 포함됩니다.

  • 비정형 데이터의 뷰를 만듭니다. 비정형 파일에 대한 추가 데이터와 메타데이터가 포함된 Snowflake 테이블과 디렉터리 테이블을 조인하여 비정형 파일과 관련 데이터를 단일 뷰에서 볼 수 있습니다.

  • 파일 처리 파이프라인 을 생성합니다. Snowpark API 또는 외부 함수가 포함된 디렉터리 테이블을 사용하여 파일 처리 파이프라인을 생성할 수 있습니다.

디렉터리 테이블 메타데이터 자동 새로 고치기

클라우드 저장소 서비스에 대해 이벤트 알림 서비스를 사용하여 디렉터리 테이블에 대한 메타데이터를 자동으로 새로 고칠 수 있습니다. 새로 고침 작업은 외부 스테이지 및 경로에 있는 최신 관련 파일 세트과 메타데이터를 동기화합니다. 즉,

  • 경로의 새 파일이 테이블 메타데이터에 추가됩니다.

  • 경로의 파일에 대한 변경 사항은 테이블 메타데이터에서 업데이트됩니다.

  • 경로에 더 이상 없는 파일은 테이블 메타데이터에서 제거됩니다.

자세한 내용은 자동화된 디렉터리 테이블 메타데이터 새로 고침 섹션을 참조하십시오.

디렉터리 테이블에 대한 청구하기

디렉터리 테이블 메타데이터의 자동 새로 고침에 대한 이벤트 알림을 관리하는 오버헤드가 요금에 포함됩니다. 이 오버헤드는 디렉터리 테이블을 포함하는 스테이지에 대해 클라우드 저장소에 추가된 파일 수를 기준으로 증가합니다. Snowpipe는 자동 디렉터리 테이블 새로 고침을 위한 이벤트 알림에 사용되므로 이 간접비는 청구서에 Snowpipe 요금으로 나타납니다. PIPE_USAGE_HISTORY 함수를 쿼리하거나 Account Usage PIPE_USAGE_HISTORY 뷰 를 검사하여 이 요금을 추정할 수 있습니다.

또한 디렉터리 테이블 메타데이터(ALTER STAGE … REFRESH 사용)를 수동으로 새로 고치는 데 약간의 유지 관리 오버헤드가 부과됩니다. 이 오버헤드는 Snowflake의 모든 유사한 활동과 마찬가지로 표준 클라우드 서비스 청구 모델 에 따라 청구됩니다.

ACCOUNTADMIN 역할의 사용자 또는 전역 MONITOR USAGE 권한이 있는 역할은 AUTO_REFRESH_REGISTRATION_HISTORY 테이블 함수를 쿼리하여 지정된 오브젝트의 메타데이터에 등록된 데이터 파일의 기록과 이러한 작업에 대해 청구된 크레딧을 검색할 수 있습니다.

디렉터리 테이블에 대한 액세스 제어 요구 사항

다음 표에는 디렉터리 테이블 작업 시 공통 SQL 명령을 실행하는 데 필요한 스테이지 권한 이 요약되어 있습니다.

작업

오브젝트 타입

필요한 권한

SELECT FROM DIRECTORY 문을 사용하여 디렉터리 테이블에서 파일 URL을 검색합니다.

스테이지

스테이지 유형에 따라 다음 중 하나입니다.

  • 내부 스테이지: 스테이지에 대한 READ 권한이 있는 계정 역할 또는 데이터베이스 역할.

  • 외부 스테이지: 스테이지에 대한 USAGE 권한이 있는 계정 역할 또는 데이터베이스 역할.

PUT 명령을 사용하여 데이터를 업로드합니다.

스테이지(내부 전용)

스테이지에 대한 WRITE 권한이 있는 계정 역할 또는 데이터베이스 역할.

REMOVE 명령을 사용하여 파일을 제거합니다.

스테이지

스테이지 유형에 따라 다음 중 하나입니다.

  • 내부 스테이지: 스테이지에 대한 WRITE 권한이 있는 계정 역할 또는 데이터베이스 역할.

  • 외부 스테이지: 스테이지에 대한 USAGE 권한이 있는 계정 역할 또는 데이터베이스 역할.

ALTER STAGE 명령을 사용하여 메타데이터를 새로 고칩니다.

스테이지

스테이지 유형에 따라 다음 중 하나입니다.

  • 내부 스테이지: 스테이지에 대한 WRITE 권한이 있는 계정 역할 또는 데이터베이스 역할.

  • 외부 스테이지: 스테이지에 대한 USAGE 권한이 있는 계정 역할 또는 데이터베이스 역할.

Information Schema

Snowflake Snowflake Information Schema 에는 디렉터리 테이블에 대한 정보를 검색하기 위해 쿼리할 수 있는 테이블 함수가 포함되어 있습니다.

테이블 함수

AUTO_REFRESH_REGISTRATION_HISTORY

지정된 오브젝트의 메타데이터에 등록된 데이터 파일의 내역과 이러한 작업에 대해 청구된 크레딧을 검색합니다.

STAGE_DIRECTORY_FILE_REGISTRATION_HISTORY

메타데이터를 새로 고칠 때 발견된 오류를 포함하여 디렉터리 테이블의 메타데이터 기록에 대한 정보를 검색합니다.

다음 항목: