이 페이지에서는 외부 위치에 대한 파일 이벤트를 나열, 보기, 업데이트, 권한 부여, 파일 이벤트 사용 및 삭제하는 방법을 설명합니다.
참고
Databricks는 볼륨을 사용하여 파일 액세스를 제어하는 것이 좋습니다. Unity 카탈로그 볼륨이란?을 참조하세요.
외부 위치 설명
사용 권한 및 작업 영역 액세스를 포함하여 외부 위치의 속성을 보려면 카탈로그 탐색기 또는 SQL 명령을 사용할 수 있습니다.
카탈로그 탐색기
- 사이드바에서
을 클릭합니다.카탈로그.
- 외부 데이터 > 단추를 클릭하여 외부 위치 탭으로 이동합니다.
- 외부 위치의 이름을 클릭하여 해당 속성을 봅니다.
SQL
Notebook 또는 Databricks SQL 편집기에서 다음 명령을 실행합니다.
<location-name>을 외부 위치의 이름으로 바꿉니다.
DESCRIBE EXTERNAL LOCATION <location-name>;
외부 위치에서 권한 보기
외부 위치에서 부여를 보려면 카탈로그 탐색기 또는 SQL 명령을 사용할 수 있습니다.
카탈로그 탐색기
- 사이드바에서
을 클릭합니다.카탈로그.
- 외부 데이터 > 단추를 클릭하여 외부 위치 탭으로 이동합니다.
- 외부 위치의 이름을 클릭합니다.
- 사용 권한을 클릭합니다.
SQL
외부 위치에 대한 권한 부여를 표시하려면 다음과 같은 명령을 사용합니다. 선택적으로 결과를 필터링하여 지정된 보안 주체에 대한 권한 부여만 표시할 수 있습니다.
SHOW GRANTS [<principal>] ON EXTERNAL LOCATION <location-name>;
자리 표시자 값을 바꿉니다.
-
<location-name>: 클라우드 테넌트에서 스토리지 컨테이너 또는 버킷을 읽고 쓸 수 있는 권한을 부여하는 외부 위치의 이름입니다. -
<principal>: 계정 수준 사용자의 이메일 주소 또는 계정 수준 그룹의 이름입니다. 그룹 또는 사용자 이름에 공백이나@기호가 포함된 경우 아포스트로피가 아닌 그 주위에 백틱(` `)을 사용합니다.
외부 위치에 대한 권한 부여
이 섹션에서는 Notebook 또는 SQL 쿼리에서 카탈로그 탐색기 및 SQL 명령을 사용하여 외부 위치에 대한 권한을 부여하고 취소하는 방법을 설명합니다. 대신 Databricks CLI 또는 Terraform을 사용하는 방법에 대한 자세한 내용은 Databricks Terraform 설명서 및 Databricks CLI란?을 참조하세요.
필요한 권한: 외부 위치에서 참조되는 메타스토어 및 스토리지 자격 증명에 대한 CREATE EXTERNAL LOCATION 권한 또는 외부 위치에 대한 MANAGE 권한. Metastore 관리자는 기본적으로 metastore에 대한 CREATE EXTERNAL LOCATION 권한을 가지고 있습니다.
외부 위치를 사용할 수 있는 권한을 부여하려면 다음을 수행합니다.
카탈로그 탐색기
- 사이드바에서
을 클릭합니다.카탈로그.
- 외부 데이터 > 단추를 클릭하여 외부 위치 탭으로 이동합니다.
- 속성을 열려면 외부 위치의 이름을 클릭합니다.
- 사용 권한을 클릭합니다.
- 사용자 또는 그룹에 권한을 부여하려면 각 ID를 선택한 다음 부여를 클릭합니다.
- 사용자 또는 그룹의 권한을 취소하려면 각 ID를 선택하고 취소를 클릭합니다.
SQL
Notebook 또는 SQL 쿼리 편집기에서 다음 SQL 명령을 실행합니다. 이 예제에서는 외부 위치를 참조하는 외부 테이블을 만드는 기능을 부여합니다.
GRANT CREATE EXTERNAL TABLE ON EXTERNAL LOCATION <location-name> TO <principal>;
자리 표시자 값을 바꿉니다.
-
<location-name>: 클라우드 테넌트에서 스토리지 컨테이너 또는 버킷을 읽고 쓸 수 있는 권한을 부여하는 외부 위치의 이름입니다. -
<principal>: 계정 수준 사용자의 이메일 주소 또는 계정 수준 그룹의 이름입니다. 그룹 또는 사용자 이름에 공백이나@기호가 포함된 경우, 해당 이름을 아포스트로피가 아닌 백틱으로 감싸십시오. 예를 들어재무 팀입니다.
특정 작업 영역에 외부 위치 할당
기본적으로 메타스토어의 모든 작업 영역에서 외부 위치에 액세스할 수 있습니다. 즉, 사용자에게 해당 외부 위치에 대한 권한(예: READ FILES)이 부여된 경우 메타스토어에 연결된 모든 작업 영역에서 해당 권한을 행사할 수 있습니다. 작업 영역을 사용하여 사용자 데이터 액세스를 격리하는 경우 특정 작업 영역에서만 외부 위치에 대한 액세스를 허용할 수 있습니다. 이 기능을 작업 영역 바인딩 또는 외부 위치 격리라고 합니다.
외부 위치를 특정 작업 영역에 바인딩하는 일반적인 사용 사례는 다음과 같습니다.
- 프로덕션 데이터가 포함된 외부 위치에 대한 권한이 있는
CREATE EXTERNAL TABLE데이터 엔지니어가 프로덕션 작업 영역에서만 해당 위치에 외부 테이블을 만들 수 있도록 합니다. - 중요한 데이터가 포함된 외부 위치에 대한 권한이 있는
READ FILES데이터 엔지니어가 특정 작업 영역만 사용하여 해당 데이터에 액세스할 수 있도록 합니다.
작업 영역별로 다른 유형의 데이터 액세스를 제한하는 방법에 대한 자세한 내용은 특정 작업 영역에 대한 카탈로그 액세스 제한을 참조 하세요.
중요합니다
작업 영역 바인딩은 외부 위치에 대한 권한이 행사되는 시점에 참조됩니다. 예를 들어 사용자가 작업 영역에서 문을 CREATE TABLE myCat.mySch.myTable LOCATION 'abfss://my-container-name@storage-account-name.dfs.core.windows.net/finance'myWorkspace 실행하여 외부 테이블을 만드는 경우 일반 사용자 권한 검사 외에도 다음 작업 영역 바인딩 검사가 수행됩니다.
- 외부 위치가
'abfss://my-container-name@storage-account-name.dfs.core.windows.net/finance'가myWorkspace에 바인딩되어 있나요? - 카탈로그
myCat가myWorkspace에Read & Write수준의 접근 권한으로 바인딩되어 있나요?
외부 위치가 이후 myWorkspace와의 바인딩이 해제되면 외부 테이블은 계속 작동합니다.
또한 이 기능을 사용하면 다른 작업 영역에서 외부 위치를 사용할 수 있도록 하지 않고도 중앙 작업 영역에서 카탈로그를 채우고 카탈로그 바인딩을 사용하여 다른 작업 영역에서 카탈로그를 사용할 수 있도록 할 수 있습니다.
하나 이상의 작업 영역에 외부 위치 바인딩
특정 작업 영역에 외부 위치를 할당하려면 카탈로그 탐색기 또는 Databricks CLI를 사용할 수 있습니다.
필요한 권한: Metastore 관리자, 외부 위치 소유자 또는 외부 위치에 대한 MANAGE.
참고
Metastore 관리자는 카탈로그 탐색기를 사용하여 메타스토어의 모든 외부 위치를 볼 수 있으며 외부 위치 소유자는 외부 위치가 현재 작업 영역에 할당되었는지 여부에 관계없이 메타스토어에서 소유한 모든 외부 위치를 볼 수 있습니다. 작업 영역에 할당되지 않은 외부 위치는 회색으로 표시됩니다.
카탈로그 탐색기
메타스토어에 연결된 작업 영역에 로그인합니다.
사이드바에서
을 클릭합니다.카탈로그.
외부 데이터 > 단추를 클릭하여 외부 위치 탭으로 이동합니다.
외부 위치를 선택하고 작업 영역 탭으로 이동합니다.
작업 영역 탭에서 모든 작업 영역에 액세스 권한이 있는지 확인란의 선택을 취소 합니다.
외부 위치가 이미 하나 이상의 작업 영역에 바인딩된 경우 이 확인란은 이미 선택 취소되어 있습니다.
작업 영역에 할당을 클릭하고 할당할 작업 영역을 입력하거나 찾습니다.
액세스 권한을 취소하려면 작업 영역 탭으로 이동하여 작업 영역을 선택하고 해지(Revoke)를 클릭합니다. 모든 작업 영역에서 액세스를 허용하려면 모든 작업 영역에 액세스 권한이 있는지 확인란을 선택합니다.
CLI
두 개의 Databricks CLI 명령 그룹과 작업 영역에 외부 위치를 할당하는 데 필요한 두 단계가 있습니다.
다음 예제에서는 <profile-name>를 Azure Databricks 인증 구성 프로필의 이름으로 바꿉니다. 개인 액세스 토큰을 생성한 작업 영역의 작업 영역 인스턴스 이름 및 작업 영역 ID 외에도 개인 액세스 토큰의 값을 포함해야 합니다.
개인 액세스 토큰 인증(사용되지 않음)을 참조하세요.
external-locations명령 그룹의update명령을 사용하여 외부 위치를isolation mode다음으로ISOLATED설정합니다.databricks external-locations update <my-location> \ --isolation-mode ISOLATED \ --profile <profile-name>기본값
isolation-mode은OPEN메타스토어에 연결된 모든 작업 영역에 적용됩니다.workspace-bindings명령 그룹의update-bindings명령을 사용하여 작업 영역을 외부 위치에 할당합니다.databricks workspace-bindings update-bindings external-location <my-location> \ --json '{ "add": [{"workspace_id": <workspace-id>}...], "remove": [{"workspace_id": <workspace-id>}...] }' --profile <profile-name>"add"및"remove"속성을 사용하여 작업 영역 바인딩을 추가하거나 제거합니다.참고
외부 위치에는 읽기 전용 바인딩(
BINDING_TYPE_READ_ONLY)을 사용할 수 없습니다. 따라서 외부 위치 바인딩에 대해 설정할binding_type이유가 없습니다.
외부 위치에 대한 모든 작업 영역 할당을 나열하려면 명령 그룹의 workspace-bindings 명령을 사용합니다get-bindings.
databricks workspace-bindings get-bindings external-location <my-location> \
--profile <profile-name>
REST API 참조의 작업 영역 바인딩도 참조하세요.
작업 영역에서 외부 위치 바인딩 해제
카탈로그 탐색기 또는 workspace-bindings CLI 명령 그룹을 사용하여 외부 위치에 대한 작업 영역 액세스를 취소하는 지침은 하나 이상의 작업 영역에 외부 위치 바인딩에 포함되어 있습니다.
외부 위치의 소유자 변경
외부 위치의 작성자는 초기 소유자입니다. 소유자를 다른 계정 수준 사용자 또는 그룹으로 변경하려면 카탈로그 탐색기 또는 SQL 명령을 사용할 수 있습니다.
권한이 필요한: 외부 위치 소유자 또는 MANAGE 권한이 있는 사용자.
카탈로그 탐색기
- 사이드바에서
을 클릭합니다.카탈로그.
- 외부 데이터 > 단추를 클릭하여 외부 위치 탭으로 이동합니다.
- 외부 위치의 이름을 클릭합니다.
Edit icon소유자 옆에 있는 을 클릭합니다.- 주체를 검색하고 선택하려면 입력하세요.
- 저장을 클릭합니다.
SQL
Notebook 또는 Databricks SQL 편집기에서 다음 명령을 실행합니다. 자리 표시자 값을 바꿉니다.
-
<location-name>: 자격 증명의 이름입니다. -
<principal>: 계정 수준 사용자의 이메일 주소 또는 계정 수준 그룹의 이름입니다. 그룹 또는 사용자 이름에 공백이나@기호가 포함된 경우, 해당 이름을 아포스트로피가 아닌 백틱으로 감싸십시오. 예를 들어재무 팀입니다.
ALTER EXTERNAL LOCATION <location-name> OWNER TO <principal>
외부 위치를 읽기 전용으로 표시
사용자가 외부 위치에 대한 읽기 전용 액세스 권한을 갖도록 하려면 카탈로그 탐색기를 사용하여 외부 위치를 읽기 전용으로 표시할 수 있습니다. 이 변경 내용이 모든 컴퓨팅 리소스에서 적용되는 데 최대 60분이 걸릴 수 있습니다.
외부 위치를 읽기 전용으로 만들기:
- 스토리지 자격 증명의 기반이 되는 Azure 관리 ID에서 부여한 쓰기 권한과 해당 외부 위치에 부여된 Unity 카탈로그 권한에 관계없이 사용자가 해당 외부 위치의 파일에 쓸 수 없도록 합니다.
- 사용자가 해당 외부 위치의 테이블에 데이터를 삽입하지 못하도록 합니다.
- 사용자가 해당 외부 위치에서 관리되는 테이블 또는 볼륨을 만들지 못하도록 합니다.
- 읽기 전용 외부 위치를 사용하여 카탈로그 만들기를 차단합니다.
- 시스템이 생성 시 외부 위치의 유효성을 제대로 검사할 수 있도록 합니다.
외부 위치를 만들 때 읽기 전용으로 표시할 수 있습니다.
카탈로그 탐색기를 사용하여 외부 위치를 만든 후 읽기 전용 상태를 변경할 수도 있습니다.
- 사이드바에서
을 클릭합니다.카탈로그.
- 외부 데이터 > 단추를 클릭하여 외부 위치 탭으로 이동합니다.
- 외부 위치를 선택하고
을 클릭합니다. 연결 테스트 단추 옆의 메뉴에서 편집을 선택합니다.
- 편집 대화 상자에서 고급 옵션을 클릭하고 읽기 전용으로 제한 사용 옵션을 선택합니다.
- 업데이트를 클릭합니다.
외부 위치에서 암호화 알고리즘 구성(AWS S3에만 해당)
AWS는 클라이언트에서 암호화 헤더를 설정해야 하는 S3 버킷 정책을 지원합니다. AWS 설명서에서 암호화 요구 사항을 참조하세요. S3 버킷에 요청에 암호화 헤더가 필요한 경우 Unity 카탈로그의 외부 위치에서 암호화 알고리즘을 구성해야 합니다. 이 설정은 S3 버킷의 데이터에 액세스할 때 올바른 헤더를 구성하는 데 사용됩니다. 이 기능은 델타 공유를 사용하여 공유되는 외부 테이블에 액세스하는 데 지원되지 않습니다.
사이드바에서
을 클릭합니다.카탈로그.
카탈로그 창 맨 위에서
을 클릭합니다. 기어 아이콘을 선택하고 외부 위치를 선택합니다.
외부 위치를 선택합니다. 외부 위치는 스토리지 자격 증명에 IAM 역할을 사용해야 합니다.
을 클릭합니다. 연결 테스트 단추 옆의 케밥 메뉴에서 편집을 선택합니다.
편집 대화 상자에서 고급 옵션을 클릭합니다.
암호화 알고리즘에서 암호화 키에 따라 SSE-SE 또는 SSE-KMS를 선택합니다.
SSE-KMS의 경우 암호화 KMS 키 아래에 S3 위치에 액세스할 때 클라이언트가 참조하는 KMS 키의 ARN을 붙여넣습니다.
업데이트를 클릭합니다.
외부 위치에 대한 파일 이벤트 설정
클라우드 공급자가 푸시하는 변경 알림을 수집하려는 경우 외부 위치에 대한 파일 이벤트를 사용하도록 설정하면 다음과 같은 이점이 있습니다.
- 자동 로더에 대한 파일 알림을 쉽게 설정할 수 있습니다. 자동 로더에서
cloudFiles.useManagedFileEvents를true로 설정하여 알림과 유사한 성능으로 증분 파일 검색을 사용할 수 있습니다. 파일 알림 모드에서 자동 로더 스트림 구성을 참조하세요. - 작업에 대한 파일 도착 트리거의 효율성과 용량을 향상시킵니다. 새 파일이 도착하면 작업 트리거를 참조하세요.
시작하기 전 주의 사항:
Azure Databricks가 사용자 대신 Azure Data Lake Storage 큐 또는 SQS 큐를 구성하도록 하려면 외부 위치에서 적절한 권한을 부여하는 스토리지 자격 증명을 참조해야 합니다. 지침은 다음 단계를 참조하세요.
사용자 고유의 Azure Data Lake Storage 큐 또는 SQS 큐를 만들 수도 있습니다. 그러나 Azure Databricks는 이를 권장하지 않으며 리소스를 설정하는 데 대한 지원을 제공할 수 없습니다. 이렇게 하려면 스토리지 자격 증명으로 표시되는 ID에 해당 Azure Data Lake Storage 큐에 대해 다음 권한이 있어야 합니다.
- 스토리지 큐 데이터 기여자
SQS 큐의 경우 스토리지 자격 증명으로 표시되는 ID에는 다음 권한이 있어야 합니다.
sqs:ReceiveMessagesqs:DeleteMessagesqs:PurgeQueue
1단계: Azure Databricks가 Azure Data Lake Storage 또는 AWS S3의 파일 이벤트에 액세스할 수 있도록 확인
외부 위치 보안 개체에 대한 파일 이벤트를 사용하도록 설정하려면 먼저 Azure Data Lake Storage 또는 AWS S3 계정이 Azure Databricks에서 내보내는 파일 이벤트에 대한 액세스 권한을 부여하도록 구성되어 있는지 확인해야 합니다. Azure Databricks가 Azure Data Lake Storage 또는 AWS S3에서 파일 이벤트를 구성하도록 하려면 Azure Databricks에도 적절한 액세스 권한이 있는지 확인해야 합니다.
스토리지 자격 증명을 구성할 때 이 액세스 권한을 할당하는 것이 좋습니다.
Azure Data Lake Storage 컨테이너의 경우
외부 위치에 대한 액세스를 제공하는 관리 ID 또는 서비스 주체가 제대로 구성되었는지 확인하려면 다음을 수행합니다.
스토리지 자격 증명 식별자를 가져옵니다.
- 사이드바에서
을 클릭합니다.카탈로그.
- 외부 데이터 > 단추를 클릭하여 외부 위치 탭으로 이동합니다.
- 외부 위치를 선택합니다.
- 개요 탭에서 자격 증명 이름을 클릭합니다.
- 스토리지 자격 증명 식별자를 복사합니다. 다음 단계에서 이를 사용합니다.
- 관리 ID 스토리지 자격 증명의 경우 커넥터 ID 또는 사용자 할당 관리 ID ID를 복사합니다.
- 서비스 주체 스토리지 자격 증명의 경우 애플리케이션(클라이언트) ID를 복사합니다.
- 사이드바에서
스토리지 자격 증명이 스토리지 계정에서 다음 역할에 액세스할 수 있도록 합니다.
Azure Data Lake Storage 스토리지 계정에 로그인합니다.
액세스 제어(IAM)로 이동하여 액세스 확인 단추를 클릭합니다.
관리 ID의 경우 사용자 할당 관리 ID 또는 Azure Databricks용 Access Connector를 선택합니다. 서비스 주체의 경우 사용자, 그룹 또는 서비스 주체를 선택합니다.
1단계에서 복사한 스토리지 자격 증명 식별자를 검색합니다.
스토리지 계정에 다음 역할이 있는지 확인합니다.
- Storage Blob 데이터 기여자: 데이터를 읽고 쓰는 데 필요합니다.
- 스토리지 큐 데이터 기여자: 파일 이벤트 알림을 구독하는 데 필요합니다.
- 스토리지 계정 기여자: Azure Databricks에서 파일 이벤트를 자동으로 구성하려면 필요합니다. 이 역할을 부여하지 않으면 Azure Storage 큐 를 수동으로 만들고 이벤트 구독을 직접 구성해야 합니다. 수동 구성은 셀프 서비스 프로세스이며 Databricks는 이러한 리소스 설정에 대한 지원을 제공하지 않습니다.
이러한 역할이 누락된 경우 적격 할당 탭으로 이동하여 추가합니다.
스토리지 자격 증명이 스토리지 계정을 포함하는 리소스 그룹에 필요한 역할을 했는지 확인합니다.
Azure Data Lake Storage 계정이 포함된 Azure 리소스 그룹으로 이동합니다.
액세스 제어(IAM)로 이동하여 액세스 확인 단추를 클릭합니다.
관리 ID의 경우 사용자 할당 관리 ID 또는 Azure Databricks용 Access Connector를 선택합니다. 서비스 주체의 경우 사용자, 그룹 또는 서비스 주체를 선택합니다.
1단계에서 복사한 스토리지 자격 증명 식별자를 검색합니다.
리소스 그룹에 대해 다음 역할이 있는지 확인합니다.
- EventGrid EventSubscription 기여자: Azure Databricks에서 파일 이벤트를 자동으로 구성하려면 필수입니다. 이 역할을 부여하지 않으면 이벤트 구독을 직접 수동으로 구성해야 합니다. 수동 구성은 셀프 서비스 프로세스이며 Databricks는 이러한 리소스 설정에 대한 지원을 제공하지 않습니다.
이 역할이 누락된 경우 적격 할당을 클릭하고 추가합니다.
신뢰할 수 있는 Microsoft 서비스가 이 리소스에 액세스하도록 허용하는 것이 스토리지 계정 네트워킹 규칙에서 사용하도록 설정되어 있는지 확인합니다.
S3 버킷의 경우
Databricks가 버킷의 이벤트 알림을 구성하고 구독할 수 있는지 확인하려면 다음을 수행합니다.
IAM 역할 가져오기.
사이드바에서
을 클릭합니다.카탈로그.
외부 데이터 > 단추를 클릭하여 외부 위치 탭으로 이동합니다.
외부 위치를 선택합니다.
개요 탭에서 자격 증명 이름을 클릭합니다.
스토리지 자격 증명 개요 탭에서 ARN(IAM 역할)을 복사합니다.
다음 단계에서 이를 사용합니다.
AWS 계정에 로그인합니다.
IAM으로 이동하여 1단계에서 복사한 역할을 검색합니다.
사용 권한 정책에서 IAM 역할과 연결된 IAM 정책 또는 정책을 찾아 엽니다.
정책 또는 정책을 열고 다음 속성을 포함하는 정책이 있는지 확인합니다.
Databricks에서 알림 리소스를 자동으로 만들도록 하려면 다음
File event typeAutomatic정책을 사용합니다. 이를 통해 Azure Databricks 계정은 버킷의 이벤트 알림 구성을 업데이트하고, SNS 토픽을 만들고, SQS 큐를 만들고, SQS 큐를 SNS 토픽에 구독할 수 있습니다.<BUCKET>을(를) S3 버킷의 이름으로 바꾸십시오.{ "Version": "2012-10-17", "Statement": [ { "Sid": "ManagedFileEventsSetupStatement", "Effect": "Allow", "Action": [ "s3:GetBucketNotification", "s3:PutBucketNotification", "sns:ListSubscriptionsByTopic", "sns:GetTopicAttributes", "sns:SetTopicAttributes", "sns:CreateTopic", "sns:TagResource", "sns:Publish", "sns:Subscribe", "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:GetQueueUrl", "sqs:GetQueueAttributes", "sqs:SetQueueAttributes", "sqs:TagQueue", "sqs:ChangeMessageVisibility", "sqs:PurgeQueue" ], "Resource": ["arn:aws:s3:::<BUCKET>", "arn:aws:sqs:*:*:csms-*", "arn:aws:sns:*:*:csms-*"] }, { "Sid": "ManagedFileEventsListStatement", "Effect": "Allow", "Action": ["sqs:ListQueues", "sqs:ListQueueTags", "sns:ListTopics"], "Resource": ["arn:aws:sqs:*:*:csms-*", "arn:aws:sns:*:*:csms-*"] }, { "Sid": "ManagedFileEventsTeardownStatement", "Effect": "Allow", "Action": ["sns:Unsubscribe", "sns:DeleteTopic", "sqs:DeleteQueue"], "Resource": ["arn:aws:sqs:*:*:csms-*", "arn:aws:sns:*:*:csms-*"] } ] }제공된 큐 사용
또는 알림 리소스를 직접 설정하고 Azure Databricks에 큐 엔드포인트(
File event type로 설정)를Provided제공하려면 다음 정책을 사용합니다. 이는 셀프 서비스 작업이며 Databricks는 리소스를 설정하는 지원을 제공할 수 없습니다.<QUEUE_NAME>를 SQS 큐의 이름으로 바꿉니다.{ "Version": "2012-10-17", "Statement": [ { "Sid": "ManagedFileEventsReadStatement", "Effect": "Allow", "Action": ["sqs:DeleteMessage", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:PurgeQueue"], "Resource": ["arn:aws:sqs:*:*:<QUEUE_NAME>"] } ] }제공된 큐를 사용하는 경우 큐는 외부 위치와 일치하는 버킷의 접두사에 대한 S3 이벤트 알림을 구독해야 합니다. 이벤트는 큐로 직접 라우팅되거나 SNS 또는 EventBridge를 통해 라우팅될 수 있습니다. SQS로 또는 SNS를 통해 직접 라우팅하는 경우 큐가 다음 알림을 구독하는지 확인합니다.
s3:ObjectCreated:*s3:ObjectRemoved:*s3:LifecycleExpiration:*
EventBridge를 통해 라우팅할 때 큐가 다음 알림을 구독하는지 확인합니다.
Object CreatedObject Deleted
또한 1단계: IAM 역할 만들기를 참조하세요.
이 정책이 누락된 경우 IAM 역할에 추가합니다.
2단계: 카탈로그 탐색기를 사용하여 외부 위치에 대한 파일 이벤트 사용
파일 이벤트는 모든 새 외부 위치에 대해 기본적으로 사용하도록 설정됩니다. 외부 위치에 이미 파일 이벤트가 설정된 경우 이 단계를 건너뛸 수 있습니다.
기존 위치에 대한 파일 이벤트를 사용하도록 설정하려면 다음을 수행합니다.
사이드바에서
을 클릭합니다.카탈로그.
외부 데이터 > 단추를 클릭하여 외부 위치 탭으로 이동합니다.
외부 위치를 선택합니다.
을 클릭합니다. 연결 테스트 단추 옆의 케밥 메뉴에서 편집을 선택합니다.
편집 대화 상자에서 고급 옵션을 클릭합니다.
파일 이벤트 사용을 선택합니다.
파일 이벤트 유형을 선택합니다.
자동: (권장) Azure Databricks에서 구독 및 이벤트를 설정하려면 이 옵션을 선택합니다.
제공됨: Azure Storage 큐 또는 SQS 큐를 직접 구성한 경우 이를 선택합니다.
제공된 파일 이벤트 유형을 선택한 경우 기존 스토리지 큐의 큐 URL을 입력합니다.
Azure Storage 큐:
https://<storage account>.queue.core.windows.net/<queue>AWS SQS 큐:
https://sqs.<region>.amazonaws.com/<account-ID>/<queue-name>
업데이트를 클릭합니다.
몇 초 정도 기다렸다가 주 외부 위치 편집 페이지에서 연결 테스트를 클릭하여 파일 이벤트가 성공적으로 활성화되었는지 확인합니다.
파일 이벤트 제한 사항
외부 위치의 파일 이벤트에는 다음과 같은 제한 사항이 있습니다.
파일 이벤트 캐시는 지난 7일 동안 수정된 파일에 대한 메타데이터만 보유합니다. 따라서 7일마다 한 번 이상 자동 로더를 실행하는 경우에만 증분 읽기를 지원할 수 있습니다. 자동 로더를 자주 실행하지 않으면 전체 디렉터리 목록을 수행하여 캐시 및 검사점을 새로 고칩니다.
이벤트 처리량은 초당 수집된 파일 2000개로 제한됩니다.
옵션을 사용하여
resourceTags클라우드 리소스에 태그를 지정할 수 없습니다. 대신 자동 로더 서비스가 큐 및 구독 리소스를 만든 후 클라우드 콘솔을 사용하여 리소스에 태그를 지정합니다.해당 스토리지 위치에 대해 정의된 외부 위치가 없는 경우 Unity 카탈로그 메타스토어 루트 스토리지 위치에 대한 파일 이벤트를 설정할 수 없습니다.
Unity 카탈로그에 정의된 외부 위치 개체가 없는 스토리지 위치에는 파일 이벤트를 설정할 수 없습니다. Unity 카탈로그의 일부 구현에는 외부 위치와 연결되지 않은 메타스토어 루트 스토리지 위치가 포함됩니다. 메타스토어 루트 스토리지 위치의 경우를 확인하려면 다음을 수행합니다.
계정 관리자 권한으로 계정 콘솔에 로그인합니다.
을 클릭합니다.카탈로그.
메타스토어 이름을 클릭합니다.
구성 탭으로 이동합니다.
ADLS Gen 2 경로 값이 있는 경우 메타스토어 루트에 정의된 외부 위치 개체가 없습니다.
외부 위치를 사용하도록 메타스토어 루트 스토리지를 업데이트하려면 제거 단추를 클릭합니다. 당신을 위해 외부 위치가 만들어집니다. 자세한 내용은 메타스토어 수준 스토리지 제거를 참조하세요.
- Azure Blob Storage는 지원되지 않습니다.
- 라이브러리를 사용하여 Azure Data Lake Storage에
Azure.Storage.Blobs파일을 업로드하면 파일 이벤트 수집 중에 대기 시간이 높아질 수 있습니다. 이를 방지하려면 파일 업로드에 이 라이브러리를 사용하지 마세요. - Azure Premium Storage 계정을 사용하는 경우 Azure Storage 큐는 표준 스토리지 계정에서만 지원되므로 자동 파일 이벤트 설정을 사용할 수 없습니다. 별도의 Standard Storage 계정에서 큐를 구성하고 파일 이벤트 유형으로 선택합니다
Provided.
외부 위치 수정
외부 위치의 소유자 또는 권한이 있는 MANAGE 사용자는 이름을 바꾸고, URI를 변경하고, 외부 위치의 스토리지 자격 증명을 변경할 수 있습니다.
외부 위치의 이름을 바꾸려면 다음을 수행합니다.
Notebook 또는 Databricks SQL 편집기에서 다음 명령을 실행합니다. 자리 표시자 값을 바꿉니다.
-
<location-name>: 위치의 이름입니다. -
<new-location-name>: 위치의 새 이름입니다.
ALTER EXTERNAL LOCATION <location-name> RENAME TO <new-location-name>;
클라우드 테넌트에서 외부 위치가 가리키는 URI를 변경하려면 다음을 수행합니다.
Notebook 또는 Databricks SQL 편집기에서 다음 명령을 실행합니다. 자리 표시자 값을 바꿉니다.
-
<location-name>: 외부 위치의 이름입니다. -
<url>: 위치가 클라우드 테넌트에 대한 액세스를 승인해야 하는 새 스토리지 URL입니다.
ALTER EXTERNAL LOCATION location_name SET URL '<url>' [FORCE];
FORCE 옵션은 외부 테이블이 외부 위치에 의존하는 경우에도 URL을 변경합니다.
외부 위치에서 사용하는 스토리지 자격 증명을 변경하려면 다음을 수행합니다.
Notebook 또는 Databricks SQL 편집기에서 다음 명령을 실행합니다. 자리 표시자 값을 바꿉니다.
-
<location-name>: 외부 위치의 이름입니다. -
<credential-name>: 클라우드 테넌트의 위치 URL에 대한 액세스 권한을 부여하는 스토리지 자격 증명의 이름입니다.
ALTER EXTERNAL LOCATION <location-name> SET STORAGE CREDENTIAL <credential-name>;
외부 위치 삭제
외부 위치를 삭제(삭제)하려면 해당 소유자이거나 외부 위치에 대한 MANAGE 권한이 있어야 합니다. 외부 위치를 삭제하려면 다음을 수행합니다.
Notebook 또는 Databricks SQL 편집기에서 다음 명령을 실행합니다. 괄호 안의 항목은 선택 사항입니다.
<location-name>을 외부 위치의 이름으로 바꿉니다.
DROP EXTERNAL LOCATION [IF EXISTS] <location-name>;