이 페이지에서는 Azure Databricks 사용 여부에 관계없이 조직 외부 사용자와 Azure Databricks의 데이터 및 AI 자산을 공유할 수 있는 보안 데이터 공유 플랫폼인 Azure Databricks의 델타 공유를 소개합니다. 델타 공유는 데이터 제품을 교환하기 위한 공개 포럼인 Databricks Marketplace와 여러 당사자가 중요한 엔터프라이즈 데이터에 대해 함께 작업할 수 있는 안전하고 개인 정보 보호 환경인 클린 룸의 기초이기도 합니다.
델타 공유는 다른 플랫폼의 델타 테이블을 공유하는 데 사용할 수 있는 오픈 소스 프로젝트 로도 사용할 수 있습니다.
Delta Sharing은 어떻게 작동하나요?
델타 공유 는 사용하는 컴퓨팅 플랫폼에 관계없이 다른 조직과 안전한 데이터 공유를 위해 Databricks에서 개발한 개방형 프로토콜 입니다.
델타 공유를 사용하여 데이터를 공유하는 몇 가지 방법이 있습니다.
Databricks-Databricks 공유 프로토콜은 Unity 카탈로그가 활성화된 작업 영역에서 데이터와 AI 자산을 Unity 카탈로그가 활성화된 Databricks 작업 영역에 대한 액세스 권한이 있는 사용자와 공유할 수 있게 합니다.
이 방법은 Azure Databricks에 기본 제공되는 델타 공유 서버를 사용합니다. Notebook 공유, Unity 카탈로그 볼륨 공유, Unity 카탈로그 AI 모델 공유, Unity 카탈로그 데이터 거버넌스, 감사 및 공급자와 받는 사람 모두에 대한 사용 추적을 포함하여 다른 프로토콜에서 지원되지 않는 일부 델타 공유 기능을 지원합니다. Unity 카탈로그와 통합하면 공급자와 받는 사람 모두에 대한 설정 및 거버넌스가 간소화되고 성능이 향상됩니다.
Delta Sharing Databricks-to-Databricks 프로토콜을 사용하여 데이터를 공유하는 방법을 참조하십시오 (공급자의 경우).
Databricks 오픈 공유 프로토콜을 사용하면 Unity 카탈로그 지원 Databricks 작업 영역에서 관리하는 테이블 형식 데이터를 모든 컴퓨팅 플랫폼의 사용자와 공유할 수 있습니다.
이 방법은 Azure Databricks에 기본 제공되는 델타 공유 서버를 사용하며, Unity 카탈로그를 사용하여 데이터를 관리하고 Databricks를 사용하지 않거나 Unity 카탈로그 지원 Databricks 작업 영역에 액세스할 수 없는 사용자와 공유하려는 경우에 유용합니다. 공급자 쪽에서 Unity 카탈로그와 통합하면 공급자에 대한 설정 및 거버넌스가 간소화됩니다.
Databricks 여부와 관계없이 모든 플랫폼에서 모든 플랫폼으로 공유할 수 있는 오픈 소스 델타 공유 서버의 고객 관리형 구현입니다.
Azure Databricks 설명서에는 자체 델타 공유 서버 설정에 대한 지침이 포함되지 않습니다. github.com/delta-io/delta-sharing을 참조하세요.
Azure Databricks용 SAP BDC(Business Data Cloud) 커넥터를 사용하면 Unity 카탈로그 사용 작업 영역과 SAP BDC 계정 간에 데이터를 공유할 수 있습니다.
이 방법은 SAP BDC 데이터 제품에 대한 실시간 제로 복사 액세스를 위해 델타 공유를 활용하는 SAP BDC 커넥터를 사용합니다.
Azure Databricks용 SAP BDC 커넥터란?을 참조하세요.
공유, 공급자 및 받는 사람
Azure Databricks에서 델타 공유의 기본 개념은 공유, 공급자 및 받는 사람입니다.
공유란?
델타 공유에서 공유 는 공급자가 하나 이상의 받는 사람과 공유하려는 테이블 및 테이블 파티션의 읽기 전용 컬렉션입니다. 받는 사람이 Unity 카탈로그가 활성화된 Databricks 작업 공간을 사용하는 경우, 노트북 파일, 보기(행 및 열 수준에서 접근을 제한하는 동적 보기 포함), Unity 카탈로그 볼륨 및 Unity 카탈로그 모델을 공유에 포함할 수 있습니다.
언제든지 공유에서 테이블, 스트리밍 테이블, 관리되는 Iceberg 테이블, 뷰, 구체화된 뷰, 볼륨, 모델 및 Notebook 파일을 추가하거나 제거할 수 있으며 언제든지 공유에 대한 데이터 받는 사람 액세스를 할당하거나 취소할 수 있습니다.
Unity 카탈로그 사용 Azure Databricks 작업 영역에서 공유는 Unity 카탈로그에 등록된 보안 개체입니다. Unity 카탈로그 메타스토어에서 공유를 제거하면 해당 공유의 모든 받는 사람이 공유에 액세스할 수 없게 됩니다.
델타 공유에 대한 공유 만들기 및 관리를 참조하세요.
공급자란?
공급자는 받는 사람과 데이터를 공유하는 엔터티입니다. 공급자이고 기본 제공 Databricks Delta Sharing 서버를 활용하고 Unity 카탈로그를 사용하여 공유 및 받는 사람을 관리하려는 경우 Unity 카탈로그에 대해 사용하도록 설정된 하나 이상의 Azure Databricks 작업 영역이 필요합니다. 기존 작업 영역을 모두 Unity 카탈로그로 마이그레이션할 필요는 없습니다. 델타 공유 요구 사항에 맞게 새 Unity 카탈로그 사용 작업 영역을 만들면 됩니다.
받는 사람이 Unity 카탈로그가 활성화된 Databricks 작업 영역에 있는 경우, 공급자는 해당 조직을 나타내고 그 조직을 일정한 공유 집합과 연결하는 Unity 카탈로그 보안 가능한 객체이기도 합니다.
수신자란?
받는 사람은 공급자로부터 지분을 받는 엔터티입니다. Unity 카탈로그에서 공유는 조직을 나타내고 해당 조직이 하나 이상의 공유에 액세스할 수 있도록 하는 자격 증명 또는 보안 공유 식별자와 연결하는 보안 개체입니다.
데이터 공급자(공유자)는 지정된 Unity 카탈로그 메타스토어에 대해 여러 받는 사람을 정의할 수 있지만, 여러 메타스토어의 데이터를 특정 사용자 또는 사용자 그룹과 공유하려면 각 메타스토어에 대해 받는 사람을 별도로 정의해야 합니다. 수신자는 여러 공유에 액세스할 수 있습니다.
공급자가 Unity 카탈로그 메타스토어에서 받는 사람을 삭제하면 해당 받는 사람은 이전에 액세스할 수 있었던 모든 공유에 대한 액세스 권한을 잃게 됩니다.
델타 공유(Databricks-to-Databricks 공유)에 대한 데이터 수신자 만들기 및 관리를 참조하세요.
개방형 공유와 Databricks 간 공유의 차이점
이 섹션에서는 Unity 카탈로그에 사용하도록 설정된 Databricks 작업 영역에서 공유하기 위한 두 가지 프로토콜에 대해 설명합니다.
Note
이 섹션에서는 공급자가 Unity 카탈로그 사용 Azure Databricks 작업 영역에 있다고 가정합니다. 비 Databricks 플랫폼 또는 비 Unity 카탈로그 작업 영역에서 공유하도록 오픈 소스 델타 공유 서버를 설정하는 방법에 대한 자세한 내용은 github.com/delta-io/delta-sharing 참조하세요.
공급자가 Azure Databricks에서 델타 공유를 사용하는 방법은 데이터를 공유하는 사용자에 따라 달라집니다.
- 공유 열기 를 사용하면 Azure Databricks에 대한 액세스 권한이 있는지 여부에 관계없이 모든 사용자와 데이터를 공유할 수 있습니다.
- Databricks-to-Databricks 공유를 통해 작업 영역이 사용자의 것과 다른 Unity 카탈로그 메타스토어에 연결된 Azure Databricks 사용자와 데이터를 공유할 수 있습니다. Databricks-to-Databricks는 오픈 공유에서 사용할 수 없는 노트북, 볼륨, 및 모델 공유도 지원합니다.
개방형 Delta Sharing이란?
Databricks 사용 여부에 관계없이 Azure Databricks 작업 영역 외부의 사용자와 데이터를 공유하려는 경우 개방형 Delta Sharing을 사용하여 데이터를 안전하게 공유할 수 있습니다. 데이터 공급자는 다음 방법 중 하나를 사용하여 공유 받는 사람과 인증을 관리합니다.
- 수명이 긴 전달자 토큰을 생성하고 받는 사람과 안전하게 공유합니다. 그들이 액세스 권한을 부여받은 공유에 포함된 테이블에 대한 읽기 권한을 인증하고 얻기 위해 토큰을 사용합니다.
- OIDC(Open ID Connect) 페더레이션을 사용하여 받는 사람의 IdP가 Databricks에 전달하는 JWT 토큰에 대한 대가로 수명이 짧은 Databricks OAuth 토큰을 받는 사람에게 부여합니다.
받는 사람은 다음을 비롯한 여러 컴퓨팅 도구 및 플랫폼을 사용하여 공유 데이터에 액세스할 수 있습니다.
- Azure Databricks
- Apache Spark
- Pandas
- Power BI
델타 공유 커넥터의 전체 목록과 사용 방법에 대한 자세한 내용은 델타 공유 설명서를 참조하세요.
또한 델타 공유 개방형 공유 프로토콜(공급자용)을 사용하여 데이터 공유를 참조하세요.
Databricks 간의 Delta Sharing이 무엇인가요?
Unity 카탈로그가 활성화된 Databricks 작업 공간을 가진 사용자와 데이터를 공유하려면, Databricks-to-Databricks Delta Sharing을 사용할 수 있습니다. Databricks 간 공유 기능을 사용하면 AWS, Azure 또는 GCP에 있는 다른 Databricks 계정과 데이터를 공유할 수 있습니다. 또한 사용자 고유의 Databricks 계정에서 다양한 Unity 카탈로그 메타스토어 간에 데이터를 안전하게 공유하는 좋은 방법입니다. 이 시나리오에서는 Unity 카탈로그 자체를 사용하여 작업 영역 간 데이터에 대한 액세스를 관리할 수 있으므로 델타 공유를 사용하여 동일한 Unity 카탈로그 메타스토어에 연결된 작업 영역 간에 데이터를 공유할 필요가 없습니다.
Databricks-Databricks 공유의 한 가지 장점은 공유 받는 사람이 공유에 액세스하기 위해 토큰이 필요하지 않으며 공급자가 받는 사람 토큰을 관리할 필요가 없다는 것입니다. 모든 ID 확인, 인증 및 감사를 포함한 공유 연결의 보안은 Delta Sharing 및 Databricks 플랫폼을 통해 전적으로 관리됩니다. 또 다른 장점은 Databricks Notebook 파일, Unity 카탈로그 볼륨 및 Unity 카탈로그 모델을 공유하는 기능입니다.
또한 Delta Sharing Databricks-to-Databricks 프로토콜(공급자용)을 사용하여 데이터 공유를 참조하십시오.
공급자 관리자는 델타 공유를 어떻게 설정합니까?
이 섹션에서는 공급자가 델타 공유를 사용하도록 설정하고 Unity 카탈로그 사용 Azure Databricks 작업 영역에서 공유를 시작하는 방법에 대해 간략하게 설명합니다. 오픈 소스 델타 공유는 github.com/delta-io/delta-sharing 참조하세요.
동일한 계정의 Unity 카탈로그 메타스토어 간 Databricks 간 공유는 항상 활성화됩니다. 하지만 다른 계정의 Databricks 작업 영역이나 Databricks를 사용하지 않는 클라이언트와 Delta Sharing을 사용하여 데이터를 공유하려는 경우, Azure Databricks 계정 관리자 혹은 메타스토어 관리자는 다음과 같은 고수준의 설정 단계를 수행해야 합니다.
공유하려는 데이터를 관리하는 Unity 카탈로그 메타스토어에 델타 공유를 사용하도록 설정합니다.
Note
델타 공유를 사용하여 계정의 다른 Unity 카탈로그 메타스토어에 있는 사용자와만 데이터를 공유하려는 경우 메타스토어에서 델타 공유를 사용하도록 설정할 필요가 없습니다. 단일 Azure Databricks 계정 내에서 메타스토어 간 공유는 기본적으로 사용하도록 설정됩니다.
Unity 카탈로그 메타스토어에 등록된 데이터 자산을 포함하는 공유를 만듭니다.
Databricks가 아닌 받는 사람(열린 공유라고 함)과 공유하는 경우 델타 형식의 테이블을 포함할 수 있습니다. Databricks 간 공유를 사용할 계획이 있는 경우, 공유에 보기, Unity 카탈로그 볼륨, Unity 카탈로그 모델, 그리고 노트북 파일을 추가할 수도 있습니다.
델타 공유에 대한 공유 만들기 및 관리를 참조하세요.
수신자를 만듭니다.
델타 공유(Databricks-to-Databricks 공유)에 대한 데이터 수신자 만들기 및 관리를 참조하세요.
받는 사람이 Databricks 사용자가 아니거나 Unity 카탈로그에 사용하도록 설정된 Databricks 작업 영역에 액세스할 수 없는 경우 열려 있는 공유
사용해야 합니다. 해당 받는 사람에 대한 전달자 토큰 기반 자격 증명을 생성하거나 OIDC 페더레이션을 사용할 수 있습니다. 받는 사람이 Unity 카탈로그에 대해 사용하도록 설정된 Databricks 작업 영역에 액세스할 수 있는 경우 Databricks-to-Databricks 공유를 사용할 수 있으며 토큰 기반 자격 증명은 필요하지 않습니다. 받는 사람에게 공유 식별자를 요청하고 이를 사용하여 보안 연결을 설정합니다.
Tip
자신을 테스트 수신자로 사용하여 설정 프로세스를 진행해 보세요.
받는 사람에게 하나 이상의 공유에 대한 액세스 권한을 부여합니다.
델타 공유 데이터 공유에 대한 액세스 관리(공급자용)를 참조하세요.
Note
이 단계는 관리자가 아닌 사용자가
USE SHARE,USE RECIPIENT및SET SHARE PERMISSION권한을 사용하여 수행할 수도 있습니다. Unity 카탈로그 권한 및 보안 개체를 참조하세요.공유에 연결하는 데 필요한 정보를 수신자에게 보냅니다(개방형 공유만 해당).
전달자 토큰을 사용하여 열린 공유의 경우 보안 채널을 사용하여 받는 사람에게 토큰 기반 자격 증명을 다운로드할 수 있는 활성화 링크를 보냅니다. 받는 사람에게 연결 정보를 보내는 방법을 참조하세요.
OIDC 토큰 페더레이션을 사용하여 열린 공유의 경우 생성된 포털 URL을 보냅니다. OIDC(Open ID Connect) 페더레이션을 사용하여 델타 공유 공유에 대한 인증을 사용하도록 설정(공개 공유)을 참조하세요.
Databricks-Databricks 공유의 경우 공유에 대한 액세스 권한을 부여하는 즉시 공유에 포함된 데이터를 받는 사람의 Databricks 작업 영역에서 사용할 수 있게 됩니다.
이제 수신자는 공유 데이터에 액세스할 수 있습니다.
받는 사람이 공유 데이터에 액세스하려면 어떻게 해야 합니까?
받는 사람은 읽기 전용 형식으로 공유 데이터 자산에 액세스합니다. Notebook 파일은 읽기 전용이지만, 다른 Notebook과 마찬가지로 복제 및 수정하고 수신자의 작업 영역에서 실행하는 것이 가능합니다.
보안 액세스는 공유 모델에 따라 달라집니다.
열린 공유(받는 사람이 Unity 카탈로그에 대해 Databricks 작업 영역을 사용하도록 설정하지 않음)에는 다음 두 가지 옵션이 있습니다.
- 전달자 토큰 흐름에서 받는 사람은 Apache Spark, pandas, Power BI, Databricks 등 원하는 도구의 데이터에 액세스할 때마다 자격 증명을 제공합니다. Delta Sharing의 오픈 공유에서 수신자를 위한 전달자 토큰을 사용하여 공유된 데이터 읽기를 참조하세요.
- OIDC 토큰 페더레이션 흐름에서 받는 사람 또는 받는 사람의 클라이언트 앱은 자체 IdP를 사용하여 데이터에 액세스합니다. 사용자-머신 흐름(열린 공유)에서 Open ID Connect (OIDC) 페더레이션을 사용하여 델타 공유를 받기를 참조하세요 및 머신-머신 흐름(열린 공유)에서 Python 클라이언트와 Open ID Connect (OIDC) 페더레이션을 사용하여 델타 공유를 받기를 참조하세요.
Databricks에서 Databricks로(받는 사람의 작업 영역이 Unity 카탈로그에 대해 활성화된 경우): 수신자는 Databricks를 사용하여 데이터에 접근합니다. Unity 카탈로그를 사용하여 Databricks 계정의 다른 사용자에게 액세스 권한을 부여하고 거부할 수 있습니다. Databricks 간 Delta Sharing을 사용하여 공유된 데이터 읽기(수신자용)를 참조하세요.
데이터 공급자가 자신의 Databricks 계정에서 데이터 테이블 또는 볼륨을 업데이트할 때마다 업데이트가 받는 사람의 시스템에 거의 실시간으로 표시됩니다. 델타 공유를 사용하여 공유된 데이터에 액세스하는 방법을 알아보려면 델타 공유(받는 사람용)를 사용하여 공유된 Access 데이터를 참조하세요.
공유 데이터를 공유하고 액세스하는 사용자를 어떻게 추적하나요?
Unity 카탈로그 사용 Azure Databricks 작업 영역의 데이터 공급자는 Azure Databricks 감사 로깅 및 시스템 테이블을 사용하여 공유 및 받는 사람의 생성 및 수정을 모니터링하고 공유에 대한 받는 사람 활동을 모니터링할 수 있습니다. 데이터 공유 감사 및 모니터링을 참조하십시오.
Databricks 작업 영역에서 공유 데이터를 사용하는 데이터 수신자는 Databricks 감사 로깅 및 시스템 테이블을 사용하여 누가 어떤 데이터에 액세스하고 있는지 이해할 수 있습니다. 데이터 공유 감사 및 모니터링을 참조하십시오.
볼륨 공유
데이터브릭스-투-데이터브릭스 공유 흐름을 사용하여 볼륨을 공유할 수 있습니다. 공유에 볼륨 추가(공급자용) 및 Databricks-to-Databricks Delta Sharing(받는 사람용)를 사용하여 공유된 데이터 읽기(받는 사람용)를 참조하세요.
모델 공유
Databricks-to-Databricks 공유 방식을 사용하여 모델을 공유할 수 있습니다. 공유에 모델 추가(공급자용) 및 Databricks-to-Databricks Delta Sharing(받는 사람용)를 사용하여 공유된 데이터 읽기(받는 사람용)를 참조하세요.
노트북 공유
델타 공유를 사용하여 Databricks-to-Databricks 공유 흐름을 통해 노트북 파일을 공유할 수 있습니다. 공유에 전자 필기장 파일 추가(공급자용) 및 공유 전자 필기장 읽기(받는 사람용)를 참조하세요.
보기를 공유할 때 행 및 열 수준에서 액세스 제한
받는 사람 속성에 따라 특정 테이블 데이터에 대한 액세스를 제한하는 동적 보기를 공유할 수 있습니다. 행과 열을 필터링하려면 공유에 동적 보기 추가를 참조하세요.
델타 공유 및 스트리밍
델타 공유는 Apache Spark 구조적 스트리밍을 지원합니다. 공급자는 테이블을 기록 또는 스트리밍 테이블과 공유할 수 있으므로 받는 사람이 이를 구조적 스트리밍 원본으로 사용하여 짧은 대기 시간으로 공유 데이터를 증분 방식으로 처리할 수 있습니다. 수신자는 기록과 함께 공유된 테이블에서 Delta Lake 시간 여행 쿼리를 수행할 수 있습니다.
기록과 테이블을 공유하는 방법을 알아보려면 공유에 테이블 추가를 참조하세요. 공유 테이블을 스트리밍 원본으로 사용하는 방법을 알아보려면 Apache Spark 구조적 스트리밍을 사용하여 테이블 쿼리 (Databricks-to-Databricks 공유의 수신자) 또는 Spark 구조적 스트리밍을 사용하여 공유 테이블에 액세스 (열린 공유 데이터 수신자의 경우)를 참조하세요.
스트리밍 테이블을 공유하는 방법을 알아보려면 공유에 스트리밍 테이블 추가를 참조하세요.
Delta Lake 기능 지원 매트릭스
델타 공유는 테이블을 공유할 때 대부분의 Delta Lake 기능을 지원합니다. 이 지원 매트릭스는 다음을 나열합니다.
- 특정 버전의 Databricks Runtime, 오픈 소스 Delta Sharing Spark 커넥터 또는 오픈 소스 Delta Sharing Python 커넥터가 필요한 델타 기능입니다.
- 부분적으로 지원되는 기능.
| Feature | Provider | Databricks 수신자 | 오픈 소스 수신자 |
|---|---|---|---|
| 삭제 벡터 |
|
|
|
| 컬럼 매핑 |
|
|
|
| 균일한 형식 |
|
|
|
| V2 검사점 | 제한 사항으로 지원됨 | 제한 사항으로 지원됨 | 제한 사항으로 지원됨 |
| TimestampNTZ | Supported | Databricks Runtime 14.1 이상 | Delta Sharing Spark 커넥터 3.3 이상 |
| 액체 군집화 | 제한 사항으로 지원됨 | 제한 사항으로 지원됨 | 제한 사항으로 지원됨 |
델타 공유 자주 묻는 질문
다음은 Delta Sharing에 대한 자주 묻는 질문입니다.
델타 공유를 사용하려면 Unity 카탈로그가 필요합니까?
아니요, 데이터를 공유하려면 공급자로서 또는 공유된 데이터를 사용하려면 수신자로서 Unity 카탈로그가 필요하지 않습니다. 그러나 Unity 카탈로그는 비테이블 형식 자산 및 AI 자산에 대한 지원, 기본 제공 거버넌스, 단순성 및 쿼리 성능과 같은 여러 이점을 제공하는 장점이 있습니다.
공급자는 다음 두 가지 방법으로 데이터를 공유할 수 있습니다.
Unity 카탈로그 관리에서 공유할 자산을 배치하고 기본 제공 Azure Databricks Delta Sharing 서버를 사용하여 공유합니다.
모든 자산을 Unity 카탈로그로 마이그레이션할 필요는 없습니다. 공유하려는 자산을 관리하려면 Unity 카탈로그에 사용할 수 있는 Azure Databricks 작업 영역이 하나만 필요합니다. 일부 계정에서는 Unity 카탈로그에 대해 새 작업 영역이 자동으로 활성화됩니다. Unity 카탈로그의 자동 사용 기능을 참조하세요.
Azure Databricks 계정을 반드시 사용하지 않고 데이터를 공유하도록 열린 델타 공유 서버를 구현합니다.
받는 사람은 다음 두 가지 방법으로 데이터를 사용할 수 있습니다.
Databricks 작업 영역이 없는 경우 Power BI, pandas 및 오픈 소스 Apache Spark를 비롯한 많은 데이터 플랫폼에서 사용할 수 있는 오픈 소스 Delta Sharing 커넥터를 사용합니다. 전달자 토큰(수신자용)을 사용하여 Delta Sharing 오픈 공유로 공유된 데이터를 읽기 및 Delta Sharing 오픈 소스 프로젝트를 참조하세요.
Databricks 작업 영역에서. 받는 사람 작업 영역을 Unity 카탈로그에 사용하도록 설정할 필요는 없지만 거버넌스, 단순성 및 성능의 장점이 있습니다.
이러한 이점을 원하는 받는 사람 조직은 모든 자산을 Unity 카탈로그로 마이그레이션할 필요가 없습니다. Unity 카탈로그가 사용자와 공유되는 자산을 관리하도록 설정된 Azure Databricks 작업 영역이 하나만 필요합니다. 일부 계정에서는 Unity 카탈로그에 대해 새 작업 영역이 자동으로 활성화됩니다. Unity 카탈로그의 자동 사용 기능을 참조하세요.
전달자 토큰을 사용하여 델타 공유로 데이터를 공유하는 방법(받는 사람용)을 참조하세요 및 Databricks-to-Databricks 델타 공유를 사용하여 데이터를 공유하는 방법(받는 사람용)을 참조하세요.
Delta Sharing를 사용하려면 Databricks 고객이 되어야 하나요?
아니요, Delta Sharing는 개방형 프로토콜입니다. Databricks 이외의 데이터를 데이터 플랫폼을 사용하는 받는 사람과 공유할 수 있습니다. 공급자는 모든 컴퓨팅 플랫폼에서 공유하도록 열린 델타 공유 서버를 구성할 수 있습니다. 받는 사람은 Power BI, pandas 및 오픈 소스 Spark를 비롯한 많은 데이터 제품에 대해 오픈 소스 델타 공유 커넥터를 사용하여 공유 데이터를 사용할 수 있습니다.
그러나 Azure Databricks에서 델타 공유를 사용하는 경우, 특히 Unity 카탈로그 사용 작업 영역에서 공유하면 많은 이점이 있습니다.
자세한 내용은 이 FAQ의 첫 번째 질문을 참조하세요.
델타 공유 비용을 발생시키고 확인하려면 어떻게 해야 하나요?
델타 공유 비용은 뷰, 구체화된 뷰 및 스트리밍 테이블을 공유하고 액세스할 때 발생합니다. 다음은 공유를 위한 잠재적 비용의 원인입니다.
- Azure Databricks에서 청구하는 컴퓨팅 비용입니다.
- 스토리지 공급업체에서 청구하는 스토리지 및 네트워크 전송(송신) 비용입니다.
- 외산 스키마와 테이블을 공유하는 경우 외산 컴퓨팅 원본 비용입니다.
컴퓨팅이 수행되고 컴퓨팅 비용을 지불하는 메서드는 다음과 같은 몇 가지 요인에 따라 달라집니다.
- 수신 컴퓨팅 유형
- 공유가 동일한 Azure Databricks 계정 내에서 또는 계정 간에 발생하는지 여부
다음 표에서는 델타 공유를 사용하여 뷰 를 공유하고 액세스하는 청구 방법을 설명합니다.
| 수신자 컴퓨팅 | 계정 관계 | 누가 지불 | 청구에 사용되는 SKU | Access 메서드 |
|---|---|---|---|---|
| Databricks Serverless | Any | Recipient* | 받는 사람의 서버리스 컴퓨팅 | 받는 사람이 기본 데이터에 대한 직접 액세스를 받습니다. |
| Databricks 클래식 | 동일한 계정 | Recipient* | 수신자의 클래식 | 받는 사람이 기본 데이터에 대한 직접 액세스를 받습니다. |
| Databricks 클래식 | 다른 계정 | Recipient | 공급자의 대화형 서버리스 | 공급자가 필터링을 수행합니다. |
| 델타 공유 커넥터 열기 | Any | Provider | 공급자의 대화형 서버리스 | 공급자가 필터링을 수행합니다. |
* 다른 계정에서 서버리스 컴퓨팅을 사용하거나 동일한 계정의 받는 사람과 함께 받는 사람과 델타 공유를 사용하는 경우 증분 요금이 부과되지 않습니다. 즉, 데이터 자산을 구체화하는 데 추가 비용이 발생하지 않습니다.
외장 테이블(베타) 필터링을 공유하는 경우 항상 공급자 쪽에서 수행되고 저장됩니다. 공급자는 데이터 구체화에 사용되는 기본 스토리지로 인한 추가 요금이 표시될 수 있습니다. 베타 중에는 필터링 컴퓨팅 비용이 없습니다.
청구 속성도 청구 가능 사용량 시스템 테이블 참조 및 델타 공유 구체화 기록 시스템 테이블 참조를 사용하여 쿼리할 수 있습니다. 받는 사람이 속성에 대해 지불하는 경우 시스템 테이블에서 연결된 레코드를 볼 수 있는 사람은 받는 사람뿐입니다. 예제 쿼리는 샘플 쿼리를 참조하세요.
Delta Sharing에는 송신 비용이 발생하나요?
지역 내 Delta Sharing은 송신 비용이 발생하지 않습니다. 다른 데이터 공유 플랫폼과 달리 Delta Sharing에는 데이터 복제가 필요하지 않습니다. 이 모델에는 많은 장점이 있지만 이는 클라우드 또는 지역에서 데이터를 공유할 때 클라우드 공급업체가 데이터 송신 요금을 부과할 수도 있음을 의미합니다. Azure Databricks는 송신 요금이 발생하지 않는 Cloudflare R2에서의 공유를 지원하며, 송신 요금을 모니터링하고 방지하기 위한 다른 도구 및 권장 사항도 제공합니다. 공급자를 위한 델타 공유 송신 비용 모니터링하고 관리하기를 참조하세요.
받는 사람이 공유 뷰, 구체화된 뷰 및 스트리밍 테이블의 기본 데이터에 직접 액세스할 수 있나요?
공유 뷰, 스트리밍 테이블 및 구체화된 뷰의 경우 다음 중 하나가 true인 경우 데이터 수신자가 직접 액세스할 수 있습니다.
- 받는 사람은 동일한 Azure Databricks 계정에서 서버리스 컴퓨팅 또는 전용이 아닌 클래식 컴퓨팅을 사용합니다.
- 받는 사람은 다른 Azure Databricks 계정에서 서버리스 컴퓨팅을 사용합니다.
그렇지 않으면 데이터가 구체화되고 공급자 쪽에서 필터링됩니다.
데이터 구체화는 공유 데이터 자산의 부모 스토리지 위치 아래에 저장됩니다.
구체화된 자산을 공유할 때 컴퓨팅은 필요한 필터를 적용하고 공급자의 스토리지에 캐시된 임시 구체화를 만들어 요청을 처리합니다. 이 필터링된 데이터는 미리 서명된 단기 URL을 사용하여 받는 사람에게 전달되므로 공급자-받는 사람 액세스 제어를 유지하면서 보안 액세스를 보장합니다.
공급자가 수신자의 액세스를 철회할 수 있나요?
예, 수신자 액세스는 주문형 및 지정된 세분성 수준에서 철회할 수 있습니다. 특정 공유 및 특정 IP 주소에 대한 받는 사람 액세스를 거부하고, 받는 사람에 대한 테이블 형식 데이터를 필터링하고, 받는 사람 토큰을 해지하고, 받는 사람을 완전히 삭제할 수 있습니다. 공유에 대한 받는 사람 액세스 취소 및 델타 공유(Databricks-to-Databricks 공유)에 대한 데이터 받는 사람 만들기 및 관리를 참조하세요.
미리 서명된 URL을 사용하는 것이 안전하지 않나요?
Delta Sharing는 미리 서명된 URL을 사용하여 개체 스토리지의 파일에 대한 임시 액세스를 제공합니다. 공유 데이터에 대한 액세스 권한이 이미 있는 받는 사람에게만 제공됩니다. 수명이 짧고 받는 사람이 이미 부여한 수준 이상으로 액세스 수준을 확장하지 않기 때문에 안전합니다.
Delta Sharing 개방형 공유 프로토콜에서 사용되는 토큰은 안전한가요?
Delta Sharing를 사용하면 사용 가능한 다른 데이터 공유 플랫폼과 달리 플랫폼 간 공유를 사용할 수 있으므로 공유 프로토콜에는 개방형 토큰이 필요합니다. 공급자는 토큰 수명을 구성하고, 네트워킹 컨트롤을 설정하고, 요청 시 액세스를 취소하여 토큰 보안을 보장할 수 있습니다. 또한 토큰은 수신자에게 이미 부여된 액세스 수준을 초과하여 확장하지 않습니다. 토큰에 대한 보안 고려 사항을 참조하세요.
토큰을 사용하여 받는 사람 공유에 대한 액세스를 관리하지 않으려면 Databricks-to-Databricks 공유를 사용하거나 Databricks 계정 팀에 연락하여 대안을 찾아야 합니다.
Lakeflow Connect와 델타 공유의 차이점은 무엇인가요?
델타 공유를 사용하면 플랫폼, 클라우드 및 지역에서 라이브 데이터를 안전하게 공유할 수 있습니다. Databricks는 높은 데이터 볼륨, 짧은 대기 시간 쿼리 및 타사 API 제한을 수용하도록 크기가 조정되므로 관리형 커넥터를 사용하여 수집을 권장합니다. 그러나 데이터를 이동하지 않고 쿼리하고 싶을 수도 있습니다.
관리되는 커넥터와 델타 공유 중에서 선택할 수 있는 경우 다음 시나리오에 대해 델타 공유를 선택합니다.
- 데이터 중복을 제한합니다.
- 가능한 가장 최신 데이터를 쿼리합니다.
제한 사항
테이블 형식 및 기능 지원
형식 요구 사항:
- 테이블 형식 데이터는 델타 또는 관리되는 Iceberg 테이블 형식이어야 합니다. "Parquet" 테이블을 "Delta"로 쉽게 변환할 수 있으며, 반대로도 변환할 수 있습니다. CONVERT TO DELTA참조하세요.
- 델타 공유는 UniForm 테이블만 델타 테이블로 읽을 수 있습니다.
지원되지 않는 테이블:
- 공급자는 파티션 필터링과 함께 액체 클러스터링을 사용하는 테이블을 공유할 수 없습니다.
- 공급자는 V2 검사점과 R2 테이블을 공유할 수 없습니다.
- 공급자는 데이터 정렬을 사용하도록 설정된 테이블을 공유할 수 없습니다.
- 공급자는 행 필터 또는 열 마스크와 테이블을 공유할 수 없습니다.
- 공급자는 테이블을 공유할
SHALLOW CLONE수 없습니다. Azure Databricks는 절대 경로를 참조하는 델타 로그에 대한 사전 서명 URL을 지원하지 않습니다. - 외래 키 제약 조건은 공유 테이블에서 사용할 수 없습니다.
Databricks-Databricks 간 공유만
다음 자산은 Databricks-to-Databricks 공유 흐름을 사용하여만 공유할 수 있습니다.
- 전자 필기장 공유. 공유에 전자 필기장 파일 추가하기 및 Databricks-to-Databricks Delta Sharing을 사용하여 공유된 데이터 읽기(수신자용)를 참조하세요.
- 볼륨 공유. 공유에 볼륨 추가(공급자용) 및 Databricks-to-Databricks 델타 공유를 사용하여 공유된 데이터 읽기(받는 사람)를 참조하세요.
- 모델 공유. 공유에 모델 추가(공급자용) 및 Databricks-to-Databricks 델타 공유를 사용하여 공유된 데이터 읽기(받는 사람용)를 참조하세요.
Views
스트리밍
- 델타 공유는 스트리밍 원본이 실행되는 동안 또는 스트리밍을 다시 시작하는 동안 변경을
responseFormat지원하지 않습니다.
리소스 및 기술 제한
- 공유 테이블에 허용되는 메타데이터의 파일 수에는 제한이 있습니다. 자세한 내용은 리소스 한도 초과 오류를 참조하세요.
-
information_schema스키마 이름은 Unity 카탈로그에서 예약되어 있으므로 Unity 카탈로그 메타스토어로 가져올 수 없습니다.
Delta Lake 기능 지원 매트릭스도 참조하세요.
리소스 할당량
Azure Databricks는 모든 델타 공유 보안 개체에 리소스 할당량을 적용합니다. 이러한 할당량은 리소스 제한에 나열됩니다. 이러한 리소스 제한을 초과할 것으로 예상되는 경우, Azure Databricks 계정 팀에게 문의하세요.
Unity 카탈로그 리소스 할당량 API를 사용하여 할당량 사용량을 모니터링할 수 있습니다. Unity 카탈로그 리소스 할당량 사용량 모니터링을 참조하세요.
다음 단계
- 델타 공유에 Databricks 계정 사용
- 공유 항목 만들기
- 받는 사람 추가하기
- 개방형 공유 및 Databricks-to-Databricks 공유 모델에 대해 자세히 알아보기
- 받는 사람이 공유 데이터에 액세스하는 방법 알아보기