디렉터리 테이블 관리하기¶
이 항목에서는 디렉터리 테이블로 외부 또는 내부 스테이지를 만들고 관리하기 위한 지침을 제공합니다.
디렉터리 테이블 메타데이터 자동 새로 고치기¶
클라우드 저장소 서비스에 대해 이벤트 메시징 서비스를 사용하여 디렉터리 테이블에 대한 메타데이터를 자동으로 새로 고칠 수 있습니다.
새로 고침 작업은 외부 스테이지 및 경로에 있는 최신 관련 파일 세트과 메타데이터를 동기화합니다. 즉,
경로의 새 파일이 테이블 메타데이터에 추가됩니다.
경로의 파일에 대한 변경 사항은 테이블 메타데이터에서 업데이트됩니다.
경로에 더 이상 없는 파일은 테이블 메타데이터에서 제거됩니다.
자동으로 새로 고쳐진 디렉터리 테이블을 사용하여 스테이지를 만드는 지침은 자동화된 디렉터리 테이블 메타데이터 새로 고침 를 참조하십시오.
참고
외부 클라우드 저장소를 참조하는 내부 스테이지의 디렉터리 테이블에 대해 메타데이터 자동 새로 고침을 사용할 수 없습니다. 이러한 유형의 스테이지에 대해 디렉터리 테이블 메타데이터를 수동으로 새로 고쳐야 합니다. 지침은 이 항목의 디렉터리 테이블 수동 새로 고치기 섹션을 참조하십시오.
누락된 파일을 등록하려면 데이터 파일 스테이징을 위한 모범 사례 를 따르고 ALTER STAGE … REFRESH 문을 주기적으로 실행하는 것이 좋습니다. 만족스러운 성능을 얻으려면 ALTER STAGE와 함께 선택적 경로 접두사를 사용하는 것도 좋습니다. 그러면 나열하고 이미 등록되었는지 확인해야 하는 파일의 개수가 감소합니다(예: 볼륨에 따라 bucket_name/YYYY/MM/DD/
또는 bucket_name/YYYY/MM/DD/HH/
까지도 포함).
디렉터리 테이블로 스테이지 만들기¶
이 섹션에서는 스테이징된 파일에 대한 메타데이터를 저장하기 위해 (CREATE STAGE 를 사용하여)디렉터리 테이블을 계층화하는 스테이지를 만드는 지침을 제공합니다.
내부 스테이지의 디렉터리 테이블에 수동 메타데이터 새로 고침 이 필요합니다. 외부 스테이지에 디렉터리 테이블을 포함하고 메타데이터를 수동으로 새로 고치도록 선택할 수도 있습니다. 자동화된 메타데이터 새로 고침에 대한 자세한 내용은 이 항목의 디렉터리 테이블 메타데이터 자동 새로 고침 을 참조하십시오.
디렉터리 테이블로 스테이지를 만드는 구문은 표준 외부 또는 내부 스테이지를 만드는 것과 거의 똑같습니다. 선택적 DIRECTORY 매개 변수를 TRUE로 설정합니다.
전체 구문과 매개 변수에 대한 설명은 CREATE STAGE 섹션을 참조하십시오. 기존 스테이지에 디렉터리 테이블을 추가하려면 ALTER STAGE … SET DIRECTORY 명령을 사용하십시오.
참고
디렉터리 테이블로 스테이지를 만든 후, ALTER STAGE … REFRESH를 실행하여 디렉터리 테이블 메타데이터를 수동으로 새로 고쳐야 합니다.
예¶
디렉터리 테이블을 포함하는 mystage
로 명명된 내부 스테이지를 만듭니다. 이 스테이지는 myformat
으로 명명된 파일 형식을 참조합니다.
CREATE STAGE mystage DIRECTORY = (ENABLE = TRUE) FILE_FORMAT = myformat;
디렉터리 테이블을 포함하는 mystage
로 명명된 외부 스테이지를 만듭니다. 스테이지는 files
의 경로를 포함하고 load
로 명명된 버킷 또는 컨테이너를 참조합니다. 클라우드 저장소 위치에 대한 보안 액세스는 my_storage_int
저장소 통합을 통해 제공됩니다.
참고
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 mystage REFRESH;