데이터브릭스의 데이터를 외부에 공유하는 방법

GarionNachal·2025년 4월 11일
0

databricks

목록 보기
12/24
post-thumbnail

데이터의 가치는 그것이 적재적소에 활용될 때 극대화됩니다. 그러나 현대 비즈니스 환경에서는 조직 내부뿐만 아니라 외부 파트너, 고객, 협력업체와의 데이터 공유가 점점 중요해지고 있습니다. 데이터브릭스(Databricks)는 이러한 필요성을 인식하고 안전하고 효율적인 데이터 공유 솔루션을 제공합니다. 이 글에서는 데이터브릭스에서 데이터를 외부와 공유하는 다양한 방법을 살펴보겠습니다.

델타 공유(Delta Sharing): 오픈 데이터 공유의 혁신

데이터브릭스와 Linux 재단은 데이터, 분석 및 AI 전반의 데이터 공유를 위해 최초의 오픈 소스 접근 방식을 제공하기 위해 Delta Sharing을 개발했습니다. 이 혁신적인 프로토콜을 통해 조직은 데이터 플랫폼, 클라우드 제공업체, 지역에 관계없이 안전하게 데이터를 공유할 수 있습니다.

델타 공유의 주요 특징

  1. 개방형 프로토콜: 델타 공유는 오픈 소스 프로토콜로, 데이터브릭스 사용자가 아닌 외부 조직과도 데이터를 공유할 수 있습니다.
  2. 실시간 데이터 공유: 데이터를 복제하거나 복사하지 않고 원본 데이터에 대한 직접 접근을 제공합니다.
  3. 강력한 보안: 중앙 집중식 거버넌스와 세분화된 접근 제어를 통해 데이터 보안을 보장합니다.
  4. 다양한 포맷 지원: Delta Lake와 Apache Parquet 형식을 지원하여 다양한 데이터 플랫폼과 호환됩니다.

데이터 공유 방식의 세 가지 유형

데이터브릭스에서 외부와 데이터를 공유하는 방법은 크게 세 가지로 나눌 수 있습니다:

1. Databricks-to-Databricks 공유

이 방식은 Unity Catalog가 활성화된 데이터브릭스 작업 영역 간에 데이터를 공유할 때 사용합니다.

주요 특징:

  • 데이터뿐만 아니라 노트북, 뷰, 볼륨, AI 모델까지 공유 가능
  • 토큰 관리 필요 없음 (보안 연결이 자동으로 관리됨)
  • Unity Catalog와 통합되어 강력한 거버넌스 제공
  • 서로 다른 클라우드 환경(AWS, Azure, GCP) 간에도 공유 가능
  • 한 계정 내 다른 메타스토어 간에도 데이터 공유 가능

적합한 사용 사례:

  • 다른 사업부나 부서와 데이터 공유
  • 데이터브릭스를 사용하는 외부 파트너와 협업
  • 데이터 메시 구축 (서로 다른 지역/클라우드 간 데이터 공유)

2. 오픈 공유 프로토콜

데이터브릭스 사용자가 아닌 외부 조직과 데이터를 공유할 때 사용하는 방식입니다.

주요 특징:

  • 모든 컴퓨팅 플랫폼의 사용자와 데이터 공유 가능
  • 두 가지 인증 방식 지원:
    • 장기 전달자 토큰(Bearer Token)
    • OIDC(Open ID Connect) 페더레이션
  • Power BI, pandas, Apache Spark 등 다양한 도구에서 접근 가능

적합한 사용 사례:

  • 데이터브릭스를 사용하지 않는 고객에게 데이터 제공
  • 다양한 분석 도구를 사용하는 외부 분석가와 협업
  • 데이터 마켓플레이스 구축

3. 오픈 소스 델타 공유 서버

자체 델타 공유 서버를 구축하여 데이터브릭스 외부에서 완전히 독립적으로 운영하는 방식입니다.

주요 특징:

  • 완전한 제어와 커스터마이징 가능
  • 데이터브릭스 플랫폼에 의존하지 않음
  • 모든 환경에 배포 가능

적합한 사용 사례:

  • 높은 수준의 커스터마이징이 필요한 엔터프라이즈 환경
  • 독립적인 데이터 공유 인프라가 필요한 경우
  • 오픈 소스 기반 데이터 전략을 추구하는 조직

데이터 공유 구현 단계별 가이드

Databricks-to-Databricks 공유 설정 방법

  1. 데이터 수신자로부터 공유 식별자 요청

    • 수신자는 Unity Catalog 메타스토어의 고유 공유 식별자(UUID)를 제공해야 합니다
    • 이 식별자는 보안 연결을 위한 핵심 요소입니다
  2. 공유(Share) 생성

    CopyCREATE SHARE my_shared_data
    COMMENT 'Data shared with partner organization';
    
  3. 공유에 데이터 추가

    Copy-- 테이블 추가
    ALTER SHARE my_shared_data ADD TABLE catalog_name.schema_name.table_name;
    
    -- 뷰 추가
    ALTER SHARE my_shared_data ADD VIEW catalog_name.schema_name.view_name;
    
    -- 노트북 추가
    ALTER SHARE my_shared_data ADD NOTEBOOK '/path/to/notebook';
    
    -- 볼륨 추가
    ALTER SHARE my_shared_data ADD VOLUME catalog_name.schema_name.volume_name;
    
  4. 수신자 생성

    CopyCREATE RECIPIENT partner_recipient
    USING SHARE IDENTIFIER 'provided-uuid-from-recipient'
    COMMENT 'Partner organization';
    
  5. 수신자에게 공유 접근 권한 부여

    CopyGRANT SELECT ON SHARE my_shared_data TO RECIPIENT partner_recipient;
    

오픈 공유 프로토콜 설정 방법

  1. 메타스토어에서 델타 공유 활성화

    • 계정 관리자 또는 메타스토어 관리자 권한 필요
  2. 공유 생성 및 데이터 추가

    • Databricks-to-Databricks 공유와 동일한 방식
  3. 수신자 생성 (토큰 기반)

    CopyCREATE RECIPIENT external_recipient
    COMMENT 'External organization';
    
  4. 토큰 발급 및 관리

    CopyCREATE RECIPIENT TOKEN FOR external_recipient
    EXPIRES_IN 90 DAYS;
    
  5. 수신자 액세스 권한 부여

    CopyGRANT SELECT ON SHARE my_shared_data TO RECIPIENT external_recipient;
    
  6. 활성화 링크 전송

    • 보안 채널을 통해 수신자에게 토큰 정보 전달

고급 데이터 공유 기능

1. 데이터 클린룸 (Clean Rooms)

데이터 클린룸은 개인정보를 안전하게 보호하면서 여러 당사자가 민감한 데이터에 대해 협업할 수 있는 환경을 제공합니다.

주요 특징:

  • 데이터를 이동하지 않고 안전한 환경에서 분석
  • 사전 정의된 규칙에 따라 데이터 사용 제한
  • 다양한 언어(SQL, Python, R, Scala)로 분석 수행 가능

2. 행 및 열 수준의 접근 제어

동적 뷰를 활용하여 수신자가 볼 수 있는 데이터를 행과 열 수준에서 제한할 수 있습니다.

Copy-- 동적 뷰 생성 예시
CREATE VIEW catalog.schema.filtered_customer_data AS
SELECT customer_id, first_name, last_name, city
FROM catalog.schema.customer_data
WHERE region = 'EMEA';

-- 공유에 동적 뷰 추가
ALTER SHARE my_shared_data ADD VIEW catalog.schema.filtered_customer_data;

3. 데이터 마켓플레이스 활용

Databricks Marketplace를 통해 데이터 제품(데이터셋, AI 모델, 대시보드, 노트북 등)을 쉽게 발견하고 액세스할 수 있습니다.

  • 모든 데이터 제품을 하나의 플랫폼에서 관리
  • 제품 평가 및 탐색 기능 제공
  • 데이터브릭스 사용자가 아니더라도 접근 가능

데이터 공유의 보안 및 성능 고려사항

보안 측면

  1. 토큰 보안
    • 토큰 수명 제한 설정 (예: 90일)
    • 네트워크 제어 구현 (IP 주소 제한)
    • 필요 시 즉시 액세스 취소 가능
  2. 미리 서명된 URL의 안전성
    • 단기간만 유효한 임시 액세스 제공
    • 이미 부여된 액세스 수준 이상으로 확장되지 않음
  3. 감사 및 모니터링
    • Unity Catalog를 통한 중앙 집중식 감사
    • 시스템 테이블을 활용한 사용량 모니터링
    • 감사 로그를 통한 접근 패턴 분석

성능 최적화

  1. 기록 공유를 통한 성능 향상

    CopyALTER SHARE my_shared_data ALTER TABLE catalog.schema.table_name WITH HISTORY;
    
    • 클라우드 스토리지의 임시 보안 자격 증명 활용
    • 원본 테이블에 직접 접근하는 것과 유사한 성능 제공
  2. 송신 비용 관리

    • Cloudflare R2 활용으로 송신 비용 절감
    • 지역 내 공유 시 송신 비용 발생하지 않음
    • 데이터 송신 비용 모니터링 도구 제공

실제 사용 사례

사례 1: 금융 데이터 분석 협업

한 금융 기관은 외부 분석 회사와 협력하여 트랜잭션 데이터를 분석하고자 했습니다. 개인정보 보호가 중요했기 때문에, 데이터브릭스 클린룸을 설정하고 델타 공유를 통해 익명화된 데이터를 공유했습니다. 분석 회사는 Power BI를 사용하여 데이터에 접근하고 분석 결과를 제공했습니다.

사례 2: 다국적 기업의 데이터 메시 구축

여러 국가에 지사를 둔 다국적 기업은 각 지역 데이터를 중앙에 복제하지 않고도 통합 분석을 수행하고자 했습니다. 델타 공유를 사용하여 각 지역의 데이터브릭스 인스턴스 간에 데이터 메시를 구축했습니다. 이를 통해 데이터 복제 비용을 줄이고, 항상 최신 데이터에 접근할 수 있게 되었습니다.

사례 3: 데이터 제품 판매

한 데이터 분석 회사는 산업별 벤치마크 데이터를 제공하는 사업을 운영합니다. 델타 공유와 데이터브릭스 마켓플레이스를 활용하여 이러한 데이터 제품을 쉽게 패키징하고 고객에게 제공했습니다. 고객은 원하는 분석 도구를 사용하여 데이터에 접근할 수 있었습니다.

델타 공유의 제한사항

델타 공유 사용 시 알아야 할 몇 가지 제한사항이 있습니다:

  1. 테이블 형식 데이터는 Delta 테이블 형식이어야 합니다
  2. 테이블 제약 조건(기본 및 외래 키)은 공유 테이블에서 사용할 수 없습니다
  3. 노트북, 볼륨, 모델 공유는 Databricks-to-Databricks 공유에서만 지원됩니다
  4. 공유 테이블에 허용되는 메타데이터 파일 수에는 제한이 있습니다
  5. 일부 고급 Delta Lake 기능(액체 클러스터링, V2 체크포인트 등)은 제한된 방식으로만 지원됩니다

결론

데이터브릭스의 델타 공유는 안전하고 효율적인 데이터 공유를 위한 혁신적인 솔루션을 제공합니다. 조직 내부뿐만 아니라 외부 파트너, 고객과의 데이터 공유가 점점 중요해지는 현대 비즈니스 환경에서, 델타 공유는 다음과 같은 핵심 이점을 제공합니다:

  • 유연성: 다양한 데이터 공유 시나리오를 지원하는 여러 방식 제공
  • 보안성: 강력한 인증 및 접근 제어를 통한 데이터 보안 보장
  • 효율성: 데이터 복제 없이 실시간 데이터 접근 제공으로 비용 절감
  • 개방성: 다양한 플랫폼 및 도구와의 호환성 제공

데이터브릭스의 데이터 공유 기능을 활용하면 조직은 데이터의 가치를 극대화하고 협업을 촉진하며 데이터 기반 혁신을 가속화할 수 있습니다. 복잡한 데이터 복제나 ETL 프로세스 없이도 안전하게 데이터를 공유하는 새로운 방식을 경험해 보세요.

자세한 내용은 데이터브릭스 공식 문서를 참조하세요.

profile
AI를 꿈꾸는 BackEnd개발자

0개의 댓글