주요 컨텐츠로 이동

Delta Sharing을 통한 글로벌 데이터 협업 설계

클라우드, 플랫폼, 지역 간에 데이터를 안전하고 효율적으로 공유
Matei Zaharia
빌랄 오베이닷
Tianyi Huang
지젤 고이코체아
이 포스트 공유하기

(번역: Youngkyong Ko) Original Post

오늘날의 상호 연결된 디지털 환경에서 조직과 플랫폼 간의 데이터 공유와 협업은 현대 비즈니스 운영에 있어 매우 중요합니다. 혁신적인 개방형 데이터 공유 프로토콜인 Delta Sharing은 조직이 공급업체나 데이터 형식에 제약받지 않고, 보안과 확장성을 최우선으로 다양한 플랫폼에서 데이터를 안전하게 공유하고 액세스할 수 있도록 지원합니다.

이 블로그는 특정 데이터 공유 시나리오에 맞춘 아키텍처 지침을 살펴봄으로써 Delta Sharing 내의 데이터 복제 옵션을 제시하는 데 중점을 두고 있습니다. 많은 Delta Sharing 고객과의 경험에서 얻은 인사이트를 바탕으로 구체적인 데이터 복제 대안을 제공하여 데이터 송신(egress) 비용을 절감하고 성능을 개선하는 것이 목표입니다. 실시간 공유는 여전히 많은 지역 간 데이터 공유 시나리오에 적합하지만, 때로는 전체 데이터 세트를 복제하고 로컬 지역 복제본에 대한 데이터 새로 고침 프로세스를 구축하는 것이 더 비용 효율적인 경우도 있습니다. Delta Sharing은 Cloudflare R2 스토리지, 변경 데이터 피드(CDF) Delta Sharing, Delta Deep Cloning 기능을 활용하여 이를 용이하게 합니다. 이러한 기능의 결과, Delta Sharing은 데이터 공유 요구 사항을 충족하는 데 있어 사용자의 역량을 강화하고 탁월한 유연성을 제공한다는 점에서 고객들로부터 높은 평가를 받고 있습니다.

Delta Sharing은 개방적이고 유연하며 비용 효율적입니다

데이터브릭스와 Linux 재단은 데이터, 분석, AI 전반에 걸쳐 데이터 공유에 대한 최초의 오픈 소스 접근 방식을 제공하기 위해 Delta Sharing을 개발했습니다. 고객은 강력한 보안과 거버넌스를 통해 플랫폼, 클라우드, 지역 간에 라이브 데이터를 공유할 수 있습니다. 자체 호스팅을 통해 오픈 소스 프로젝트를 사용하든, 데이터브릭스에서 완전히 관리되는 Delta Sharing을 사용하든, 둘 다 글로벌 데이터 전송을 위한 플랫폼에 구애받지 않는 유연하고 비용 효율적인 솔루션을 제공합니다. 데이터브릭스 고객은 관리 오버헤드를 최소화하고 데이터브릭스 Unity Catalog와 기본적으로 통합되는 관리형 환경 내에서 추가적인 혜택을 누릴 수 있습니다. 이러한 통합을 통해 조직 내부 및 조직 간 데이터 공유를 위한 간편한 환경을 제공합니다.

데이터브릭스에서의 Delta Sharing2022년 8월 정식 출시 이후 다양한 협업 시나리오에서 폭넓게 채택되고 있습니다.

이 블로그에서는 Delta Sharing이 중요한 비즈니스 시나리오를 활성화하고 개선하는 데 중추적인 역할을 한 두 가지 일반적인 아키텍처 패턴을 살펴봅니다:

  1. 기업 내 지역 간 데이터 공유
  2. Data Aggregator (Hub and Spoke) 모델

이 블로그에서는 Delta Sharing 배포 아키텍처가 유연하며 새로운 데이터 공유 요구사항을 충족하기 위해 원활하게 확장할 수 있음을 보여드릴 것입니다.

기업 내 지역 간 데이터 공유

이 사용 사례에서는 별도의 지역에 QA 팀이 있거나 전 세계의 비즈니스 활동 데이터에 관심이 있는 리포팅 팀이 있는 등, 여러 지역에 걸쳐 일부 데이터를 공유해야 하는 비즈니스 요구가 있는 기업 내에서 Delta Sharing의 일반적인 배포 패턴을 설명합니다. 일반적으로 기업 내 테이블 공유에는 다음이 포함됩니다:

  • 큰 테이블 공유: 액세스 패턴이 다른 여러 수신자와 실시간으로 대용량 테이블을 공유해야 하는 경우가 있습니다. 수신자들은 종종 서로 다른 조회 조건를 사용하여 다양한 쿼리를 실행합니다. 클릭스트림 데이터와 사용자 활동 데이터를 좋은 예로 들 수 있는데, 위와 같은 경우 이들 데이터에는 원격 액세스가 더 적합할 것입니다.
  • 로컬 복제: 수신자의 지역에 이러한 테이블에 자주 액세스하는 사용자가 많은 경우, 성능을 향상시키고 송신 비용을 더 잘 관리하려면 일부 데이터를 복제하여 데이터의 로컬 복사본을 만들어야 합니다.

이 시나리오에서는 데이터 제공자와 데이터 수신자의 비즈니스 유닛이 데이터브릭스에서 동일한 Unity Catalog 계정을 공유하지만, 서로 다른 메타스토어를 가지고 있습니다.

Intra-Global Data and AI Model Sharing

위의 다이어그램은 Delta Sharing 솔루션의 개략적인 아키텍처를 보여 주며, Delta Sharing 프로세스의 주요 단계를 강조합니다:

  1. 공유 생성: 라이브 테이블이 수신자와 공유되어 수신자가 즉시 데이터에 액세스할 수 있습니다.
  2. 온디맨드 데이터 복제: 온디맨드 데이터 복제를 구현하려면 데이터의 지역 복제본을 생성하여 성능을 개선하고, 지역 간 네트워크 액세스의 필요성을 줄이며, 관련 송신 수수료를 최소화해야 합니다. 이는 데이터 복제를 위해 다음과 같은 접근 방식을 활용함으로써 달성할 수 있습니다:

A. 공유 테이블에 변경 데이터 전송

이 옵션을 사용하려면 테이블 히스토리를 공유하고 변경 데이터 피드(CDF)를 활성화해야 합니다. 변경 데이터 피드는 Create/Alter Table 명령에서 테이블 속성 delta.enableChangeDataFeed = true를 설정하여 명시적으로 활성화할 수 있습니다.

또한 공유에 테이블을 추가할 때 아래 예시와 같이 CDF 옵션과 함께 추가되는지 확인하세요.

ALTER SHARE flights_data_share
ADD TABLE db_flights.flights
AS db_flights.flights_with_cdf
WITH CHANGE DATA FEED;

데이터가 추가되거나 업데이트되면 다음 예제에서와 같이 변경 사항에 액세스할 수 있습니다.

-- View changes as of version 1
SELECT * FROM table_changes('db_flights.flights', 1)

수신자 측에서는 이 노트북에서와 비슷한 방식으로 변경 사항에 액세스하여 데이터의 로컬 복사본에 병합할 수 있습니다. 공유 테이블에서 로컬 복제본으로 변경 내용을 전파하는 작업은 데이터브릭스 워크플로 작업을 사용해 오케스트레이션할 수 있습니다.

B. Cloudflare R2 with Databricks

R2는 고객이 예측할 수 없는 데이터 송신 요금에 대한 걱정 없이 공유의 잠재력을 충분히 실현할 수 있기 때문에 모든 Delta Sharing 시나리오에 탁월한 옵션입니다. 이 블로그의 뒷부분에서 자세히 설명합니다.

C. Delta Deep Clone

기업 내 공유를 위한 또 다른 특별한 옵션으로, 동일한 데이터브릭스 클라우드 계정 내에서 공유할 때 Delta Deep Clone을 사용할 수 있습니다. Deep Cloning은 소스 테이블 데이터와 기존 테이블의 메타데이터를 모두 복제 대상에 복사하는 델타의 기능입니다. 또한 deep clone 명령에는 새 데이터를 식별하고 그에 따라 새로 고치는 기능도 있습니다. 구문은 다음과 같습니다:

CREATE TABLE [IF NOT EXISTS] table_name DEEP CLONE source_table_name
   [TBLPROPERTIES clause] [LOCATION path]

위 명령은 수신자 측에서 실행되며, 여기서 source_table_name은 공유 테이블이고 table_name은 사용자가 액세스할 수 있는 데이터의 로컬 복사본입니다.

다음 명령을 사용하여 최근 업데이트가 포함된 데이터의 증분 새로 고침을 위해 간단한 Databricks 워크플로 작업을 예약할 수 있습니다:

CREATE OR REPLACE TABLE table_name DEEP CLONE source_table_name

동일한 사용 사례를 쉽게 확장하여 데이터브릭스 플랫폼 또는 다른 플랫폼에서 외부 파트너 및 고객과 데이터를 공유할 수 있습니다. 이는 데이터브릭스를 사용하지 않는 파트너와 외부 고객이 Excel, Power BI, Pandas 및 기타 호환 소프트웨어(예: Oracle)를 통해 이 데이터에 액세스하고자 할 때 흔히 사용할 수 있는 또다른 확장 패턴입니다.

Data Aggregator 모델 (Hub and Spoke 모델)

또 다른 일반적인 시나리오 패턴은 기업이 고객과 데이터를 공유하는 데 중점을 두는 경우 (특히 데이터 애그리게이터 기업과 관련된 경우) 또는 고객을 대신하여 데이터를 수집하는 것이 주 비즈니스 기능인 경우에 발생합니다. 데이터 애그리게이터는 다양한 소스에서 데이터를 수집하고 통합된 일관된 데이터 집합으로 병합하는 일을 전문으로 하는 기업입니다. 이러한 데이터 공유는 비즈니스 의사 결정, 시장 분석, 연구, 전반적인 비즈니스 운영 지원과 같은 다양한 비즈니스 요구 사항을 충족하는 데 중요한 역할을 합니다.

이 패턴의 데이터 공유 모델은 다음을 수행합니다:

  1. AWS, Azure, GCP 등 다양한 클라우드에 분산되어 있는 수신자를 연결합니다.
  2. Python 코드부터 Excel 스프레드시트까지 복잡한 다양한 플랫폼에서 데이터 소비를 지원합니다.
  3. 수신자 수, 공유 수량, 데이터 볼륨에 따라 확장할 수 있습니다.

일반적으로 데이터 제공업체가 각 클라우드에 데이터브릭스 워크스페이스을 설정하고 위에서 설명한 대로 세 클라우드 모두에서 공유 테이블에 CDF를 사용하여 데이터를 복제하여 성능을 향상하고 데이터 송신 비용을 절감하는 방식으로 이를 달성할 수 있습니다. 그런 다음 각 클라우드 리전 내에서 적절한 고객 및 파트너와 데이터를 공유할 수 있습니다.

그러나 현재 비공개 프리뷰 버전으로 제공 중인 Cloudflare with Databricks를 통해 R2를 활용하면 보다 효율적이고 간단한 새 접근 방식을 사용할 수 있습니다.

Cloudflare R2와 데이터브릭스의 통합을 통해, 조직은 라이브 데이터를 안전하고 간단하며 경제적으로 공유하고 협업할 수 있습니다. Cloudflare와 데이터브릭스 공동 고객은 멀티 클라우드 분석 및 AI 이니셔티브의 잠재력을 최대한 활용하는 데 방해가 되는 복잡성과 동적 비용을 제거할 수 있습니다. 특히, 송신 수수료가 전혀 없으며 복잡한 데이터 전송이나 여러 지역에 걸쳐 데이터 세트를 복제할 필요가 없습니다.

이 옵션을 사용하려면 다음 단계가 필요합니다:

  • Cloudflare R2를 외부 저장 위치로 추가합니다(S3/ADLS/등에 단일 원천 데이터를 유지하면서).
  • Cloudflare R2에서 새 테이블을 생성하고 데이터를 점진적으로 동기화합니다.
  • 기존과 같은 방법으로 R2 테이블에 Delta Sharing을 생성합니다.

위에서 설명한 것처럼, 이러한 접근 방식들은 각각 고유한 장점과 특정 요구 사항이 있는 온디맨드 데이터 복제 방법이며, 다양한 사용 사례에 맞추어 사용할 수 있습니다.

Global Data Aggregator Delta Sharing Model

지역 간 공유를 위한 데이터 복제 방법 비교

앞의 세 가지 메커니즘을 통해 Delta Sharing 사용자는 로컬 복사본을 생성하여 특히 클라우드와 지역 간 송신 수수료를 최소화할 수 있습니다. 아래 표는 이러한 옵션을 구분하기 위한 간략한 요약입니다.

Data Replication ToolKey highlightsRecommendation
Change data feed on a shared table
  • It works within and across accounts
  • CDF needs to be enabled on the table
  • Requires coding to propagate the CDC changes on the destination table
  • The process can be orchestrated via Databricks workflows
Use for external Sharing with partners/clients across regions
Cloudflare R2 with Databricks
  • Cloudflare account required
  • Ideal for large-scale data sharing across multiple regions and cloud platforms
  • Utilize delta deep clone or R2 super slurper for efficient data creation and refreshing in R2
Strongly recommended for large scale Delta Sharing in terms of number of shares and 2+ regions
Delta Deep Clone
  • It works within the same account
  • Minimum coding
  • Incremental refresh via Databricks workflows
Recommended when sharing internally across regions

Delta Sharing은 개방적이고 유연하며 비용 효율적이며, 데이터브릭스에서는 노트북, 볼륨, AI 모델 등 광범위한 데이터 자산을 지원합니다. 또한 몇 가지 최적화를 통해 Delta Sharing 프로토콜의 성능이 크게 향상되었습니다. 데이터브릭스는 향상된 모니터링, 확장성, 사용 편의성, 관찰 가능성 등 Delta Sharing 기능에 대해 지속적으로 투자하고 있으며, 이를 통해 사용자 경험을 향상시키고 Delta Sharing이 미래를 위한 데이터 협업의 최전선에 서도록 할 것을 약속합니다.

다음 단계

이 블로그에서는 많은 Delta Sharing 고객들과의 경험을 바탕으로 아키텍처 지침을 제공해 드렸습니다. 주로 비용 관리와 성능에 중점을 두었습니다. 실시간 공유는 많은 지역 간 데이터 공유 시나리오에 적합하지만, 전체 데이터 세트를 복제하고 로컬 복제본에 대한 데이터 새로 고침 프로세스를 구축하는 것이 더 비용 효율적인 것으로 입증된 사례들을 살펴봤습니다. Delta Sharing은 R2 및 CDF Delta Sharing 기능을 활용하여 이를 용이하게 함으로써 사용자에게 향상된 유연성을 제공합니다.

기업 내 지역 간 데이터 공유 사용 사례에서 Delta Sharing은 다양한 액세스 패턴을 가진 대규모 테이블 공유에 탁월한 성능을 발휘합니다. CDF 공유를 이용한 로컬 복제는 최적의 성능과 비용 관리를 보장합니다. 또한, Cloudflare with Databricks를 통한 R2는 여러 지역과 클라우드에 걸쳐 대규모 Delta Sharing을 위한 효율적인 옵션을 제공합니다.

Delta Sharing을 데이터 협업 전략에 통합하는 방법에 대해 자세히 알아보려면 최신 리소스를 확인하세요:

Databricks 무료로 시작하기

관련 포스트

모든 플랫폼 블로그 포스트 보기