이 문서는 Unity Catalog 섹션의 일부입니다.
External Location이란?
Unity Catalog에서 External Location(External Location) 은 클라우드 스토리지의 특정 경로를 Unity Catalog에 등록하여 거버넌스 하에 관리 할 수 있게 해주는 객체입니다. 외부 테이블(External Table)이나 외부 볼륨(External Volume)을 생성하려면, 해당 데이터가 저장된 클라우드 경로가 External Location으로 등록되어 있어야 합니다.💡 왜 필요한가요? 기업은 이미 S3, ADLS, GCS 등 클라우드 스토리지에 대량의 데이터를 보유하고 있습니다. 이 데이터를 Unity Catalog로 이동하지 않고도, 경로를 등록하여 접근 권한과 감사를 적용할 수 있습니다.
External Location과 Storage Credential의 관계
External Location은 단독으로 동작하지 않습니다. 클라우드 스토리지에 접근하려면 인증 정보(Storage Credential) 가 필요합니다.💡 Storage Credential 에 대한 자세한 내용은 Storage Credential 문서를 참고하세요.
External Location 생성
CREATE EXTERNAL LOCATION 문법
클라우드별 URL 형식
실전 예시
External Location에서 외부 테이블 생성
External Location이 등록되면, 해당 경로 아래에 외부 테이블을 생성할 수 있습니다.
주의: LOCATION에 지정하는 경로는 반드시 등록된 External Location 하위 경로여야 합니다. 등록되지 않은 경로를 지정하면 오류가 발생합니다.
권한 관리
External Location에 대한 권한
권한 부여 예시
External Location 관리
정보 조회
수정 및 삭제
External Location 설계 모범 사례
연결 확인 (Validate)
External Location이 올바르게 설정되었는지 검증할 수 있습니다.External Location 설계 패턴 — 세분화 전략
엔터프라이즈 환경에서 External Location을 어떻게 설계하느냐에 따라 거버넌스 수준, 관리 복잡도, 성능이 달라집니다.세분화 수준별 비교
권장 설계 패턴
Storage Credential: aws_dev_credential (별도 IAM Role)
| | dev_sandbox |
URL: s3://datalake-dev/
→ GRANT: all_developers (ALL PRIVILEGES)
중첩 시 주의사항
⚠️ Gotcha: Location B(s3://bucket/data/finance/)를 삭제하면, 해당 경로의 테이블들은 Location A(s3://bucket/data/)의 권한을 상속받게 됩니다. Location A에 더 넓은 권한이 부여되어 있다면, 의도하지 않은 접근이 가능해질 수 있습니다. Location 삭제 전에 반드시 영향 범위를 확인하세요.
크로스 계정 접근 — AWS IAM Role Chaining
대규모 기업에서는 여러 AWS 계정에 데이터가 분산되어 있는 경우가 많습니다. Unity Catalog에서 크로스 계정 데이터에 접근하려면 IAM Role Chaining 을 설정해야 합니다.아키텍처
설정 절차
⚠️ 보안 주의: Role Chaining에서 AssumeRole의 세션 기간은 최대 1시간입니다. 대용량 데이터 처리 시 세션 만료로 실패할 수 있으므로, 장시간 작업에는 직접 IAM Role을 사용하거나 세션 갱신 메커니즘을 고려하세요.
성능 고려사항 — S3 Prefix 최적화
External Location의 경로 설계는 S3의 성능 특성과도 관련이 있습니다.S3 Prefix 파티셔닝과 성능
AWS S3는 prefix 단위로 초당 5,500 GET / 3,500 PUT 요청 을 처리합니다. 하나의 prefix에 대량의 파일이 집중되면 스로틀링이 발생할 수 있습니다.External Location과 파일 리스팅 성능
Auto Loader의 디렉토리 리스팅 모드를 사용할 때, External Location의 경로가 너무 넓으면 파일 리스팅에 시간이 많이 소요됩니다.💡 실무 팁: Auto Loader를 사용하는 경우, External Location을 가능한 한 데이터 소스 경로와 가깝게 설정하세요. 그리고 Auto Loader의 파일 알림 모드(Notification Mode)를 사용하면 디렉토리 리스팅 자체를 건너뛸 수 있어 대규모 경로에서도 성능 문제가 없습니다.
와일드카드 경로와 제한사항
Unity Catalog의 External Location은 와일드카드를 지원하지 않습니다. 각 Location은 정확한 경로 prefix여야 합니다.마이그레이션 패턴 — HMS에서 UC로
기존 Hive Metastore(HMS) 기반 외부 테이블을 Unity Catalog로 마이그레이션할 때, External Location 설정이 핵심입니다.마이그레이션 절차
💡 주의: HMS의 외부 테이블과 UC의 외부 테이블이 동일한 S3 경로 를 참조할 수 있습니다. 이 경우 두 테이블 모두에서 동일 데이터를 읽을 수 있지만, 권한 모델이 다르므로 마이그레이션 완료 후 HMS 테이블을 삭제하는 것을 권장합니다.