디렉터리 테이블 쿼리하기

이 항목에서는 디렉터리 테이블을 쿼리하여 각 파일에 대해 Snowflake 파일 URL과 같은 메타데이터가 포함된 스테이지의 모든 파일 목록을 검색하는 방법을 다룹니다.

디렉터리 테이블을 쿼리하는 구문:

SELECT * FROM DIRECTORY( @<stage_name> )
Copy

여기서

stage_name

디렉터리 테이블이 활성화된 스테이지의 이름입니다.

문과 문 내에 있는 다른 절로서의 SELECT에 대한 자세한 내용은 Snowflake SQL 명령 참조에서 쿼리 구문 섹션을 참조하십시오.

출력

디렉터리 테이블 쿼리의 출력은 다음과 같은 열을 포함할 수 있습니다.

데이터 타입

설명

RELATIVE_PATH

TEXT

파일 URL을 사용하여 액세스할 파일의 경로.

SIZE

NUMBER

파일 크기(바이트).

LAST_MODIFIED

TIMESTAMP_LTZ

파일이 스테이지에서 마지막으로 업데이트된 타임스탬프.

MD5

HEX

파일의 MD5 체크섬.

ETAG

HEX

파일의 ETag 헤더.

FILE_URL

TEXT

파일에 대한 Snowflake 파일 URL.

파일 URL의 형식은 다음과 같습니다.

https://<account_identifier>/api/files/<db_name>.<schema_name>.<stage_name>/<relative_path>
Copy

여기서

account_identifier

스테이지에 대한 Snowflake 계정의 호스트 이름. 호스트 이름은 (Snowflake에서 제공하는) 계정 로케이터로 시작하여 Snowflake 도메인(snowflakecomputing.com)으로 끝납니다.

account_locator.snowflakecomputing.com

자세한 내용은 계정 식별자 섹션을 참조하십시오.

참고

Business Critical 계정의 경우 계정에서 Snowflake 서비스에 비공개 연결이 활성화되지 않은 경우에도 privatelink 세그먼트가 snowflakecomputing.com (privatelink.snowflakecomputing.com) 직전의 URL 앞에 추가됩니다.

db_name

파일이 있는 스테이지를 포함하는 데이터베이스의 이름입니다.

schema_name

파일이 있는 스테이지를 포함하는 스키마의 이름입니다.

stage_name

파일이 있는 스테이지의 이름입니다.

relative_path

파일 URL을 사용하여 액세스할 파일의 경로.

사용법 노트

  • 내부 스테이지에서 다운로드한 파일이 손상된 경우 스테이지에 대해 ENCRYPTION = (TYPE = 'SNOWFLAKE_SSE') 가 설정된 스테이지 작성자에게 확인하십시오.

이 예에서는 mystage 로 명명된 스테이지의 디렉터리 테이블에서 모든 메타데이터 열을 검색합니다.

SELECT * FROM DIRECTORY(@mystage);
Copy

이 예에서는 크기가 100KB보다 큰 파일에 대해 디렉터리 테이블에서 FILE_URL 열 값을 검색합니다.

SELECT FILE_URL FROM DIRECTORY(@mystage) WHERE SIZE > 100000;
Copy

이 예에서는 쉼표로 구분된 값 파일에 대한 디렉터리 테이블에서 FILE_URL 열 값을 검색합니다.

SELECT FILE_URL FROM DIRECTORY(@mystage) WHERE RELATIVE_PATH LIKE '%.csv';
Copy

디렉터리 테이블을 사용하여 비정형 데이터에 대한 뷰 만들기

디렉터리 테이블을 다른 Snowflake 테이블과 조인하여 파일 URL과 파일에 대한 메타데이터를 결합하는 비정형 데이터 뷰를 생성할 수 있습니다.

다음 다이어그램에서는 별도의 데이터 테이블과 함께 디렉터리 테이블이 활성화된 스테이지를 사용하여 스테이지의 비정형 파일에 대한 포괄적인 뷰를 생성하는 방법을 보여줍니다.

디렉터리 테이블을 다른 Snowflake 테이블과 결합하여 비정형 데이터에 대한 포괄적인 뷰 만들기

예: PDF 파일과 파일 데이터의 뷰 만들기

다음 예에서는 file_url 키를 사용하여 my_pdf_stage 라는 스테이지의 디렉터리 테이블을 report_metadata 라는 테이블과 조인하여 reports_information 이라는 뷰를 만듭니다. 스테이지에는 PDF 보고서가 포함되고, report_metadata 테이블에는 authorpublish_date 와 같은 각 PDF 보고서에 대한 정형 정보가 포함됩니다. 결과 뷰를 통해 비정형 PDF와 그와 관련된 정형 메타데이터에 대한 정보를 얻을 수 있습니다.

CREATE VIEW reports_information AS
  SELECT
    file_url as report_link,
    author,
    publish_date,
    approved_date,
    geography,
    num_of_pages
  FROM directory(@my_pdf_stage) s
  JOIN report_metadata m
  ON s.file_url = m.file_url
Copy