디렉터리 테이블 관리

디렉터리 테이블 관리

이 주제는 디렉터리 테이블이 있는 외부 또는 내부 스테이지를 만들고 관리하는 지침을 제공해요.

출처: Documentation

본문

디렉터리 테이블이 있는 스테이지 만들기

이 섹션은 스테이징된 파일에 대한 메타데이터를 저장하는 디렉터리 테이블을 겹쳐 쌓는 스테이지를 (CREATE STAGE를 사용해) 만드는 지침을 제공해요.

내부 스테이지의 디렉터리 테이블은 수동 메타데이터 새로 고침이 필요해요. 외부 스테이지에 디렉터리 테이블을 포함하고 메타데이터를 수동으로 새로 고치도록 선택할 수도 있어요. 자동 메타데이터 새로 고침에 대한 자세한 내용은 자동 메타데이터 새로 고침을 참고해요.

디렉터리 테이블이 있는 스테이지를 만드는 문법은 표준 외부 또는 내부 스테이지를 만드는 것과 거의 동일해요. 선택적인 DIRECTORY 매개 변수를 TRUE로 설정해요.

전체 문법과 매개 변수 설명은 CREATE STAGE를 참고해요. 기존 스테이지에 디렉터리 테이블을 추가하려면 ALTER STAGE … SET DIRECTORY 명령을 사용해요.

참고 — 디렉터리 테이블이 있는 스테이지를 만든 후에는 ALTER STAGE … REFRESH를 실행해 디렉터리 테이블 메타데이터를 수동으로 새로 고쳐야 해요.

예제

myformat이라는 파일 형식을 참조하는 디렉터리 테이블을 포함하는 mystage라는 내부 스테이지를 만들어요.

CREATE STAGE mystage
  DIRECTORY = (ENABLE = TRUE)
  FILE_FORMAT = myformat;

my_storage_int 스토리지 통합을 통해 클라우드 스토리지 위치에 대한 보안 액세스가 제공되는, load라는 버킷 또는 컨테이너(경로 files)를 참조하는 디렉터리 테이블을 포함하는 mystage라는 외부 스테이지를 만들어요.

참고 — URL 값의 스토리지 위치는 슬래시(/)로 끝나야 해요.

Amazon S3

CREATE STAGE mystage
  URL='s3://load/files/'
  STORAGE_INTEGRATION = my_storage_int
  DIRECTORY = (ENABLE = TRUE);

Google Cloud Storage

CREATE STAGE mystage
  URL='gcs://load/files/'
  STORAGE_INTEGRATION = my_storage_int
  DIRECTORY = (ENABLE = TRUE);

Microsoft Azure

CREATE STAGE mystage
  URL='azure://myaccount.blob.core.windows.net/load/files/'
  STORAGE_INTEGRATION = my_storage_int
  DIRECTORY = (ENABLE = TRUE);

디렉터리 테이블 메타데이터 새로 고침

자동 새로 고침

클라우드 스토리지 서비스의 이벤트 메시징 서비스를 사용해 디렉터리 테이블의 메타데이터를 자동으로 새로 고칠 수 있어요. 자동 새로 고침 구성에 대한 자세한 내용은 자동 디렉터리 테이블 메타데이터 새로 고침을 참고해요.

수동 새로 고침

참고

  • 외부 스테이지의 수동 새로 고침은 동시 자동 새로 고침을 차단해요. 자동 새로 고침은 수동 새로 고침이 완료된 후 재개돼요.
  • 수동 새로 고침은 스테이지에서 목록 작업을 수행하므로, 크거나 빠르게 성장하는 스테이지에서는 느리거나 비용이 높을 수 있어요. 대신 이벤트 기반 자동 새로 고침을 사용해요.

디렉터리 테이블의 메타데이터를 수동으로 새로 고치려면 ALTER STAGE 명령을 사용해요.

최상의 성능을 위해 ALTER STAGE와 함께 선택적인 SUBPATH를 사용해요. 이렇게 하면 나열하고 확인해야 할 파일 수가 줄어들어요. 데이터를 경로별로 구성하는 방법은 데이터 파일 스테이징 모범 사례를 참고해요.

예를 들어:

ALTER STAGE my_stage REFRESH SUBPATH = '2024/01/31';

이 명령은 다음 열을 반환해요.

열 설명
file 스테이징된 원본 파일의 이름과 파일에 대한 상대 경로.
status 상태: REGISTERED_NEW, REGISTERED_UPDATE, REGISTER_SKIPPED, REGISTER_FAILED, UNREGISTERED 또는 UNREGISTER_FAILED.
description 파일 등록 상태에 대한 자세한 설명.

더 알아보기