1. Databricks와 Lakehouse Platform
3. Databricks Unity Catalog
4. Databricks Data Engineering Workload
5. Databricks Data Warehousing Workload
6. Databricks Data Science and ML Workload
이번장은 Databricks 세 번째 소개 시간으로 Databricks Lakehouse의 Delta Lake와 더불어 또 다른 근간을 이루고 있는 Databricks Unity Catalog에 대해서 이야기해 보고자 합니다.
Unity Catalog는 어떠한 클라우드에서나 레이크하우스에 저장된 파일, 테이블, 머신 러닝 모델, 대시보드등 모든 데이터 및 AI 자산을 관리하는 통합 거버넌스 솔루션입니다.
[ Data and AI governance가 가지고 있는 주요한 도전 과제들 ]
1) Diversity of data and AI assets: 데이터 사용이 증가하고 데이터 환경이 복잡해짐에 따라 대부분의 회사들은 모든 유형의 데이터 관련 자산을 관리하고 거버닝하는데 어려움 겪고 있습니다.
더 이상 파일이나 테이블형식으로 데이터가 저장되지 않습니다. 오늘날 데이터 자산은 대시보드, 머신러닝 모델, 비정형데이터(비디오, 이미지)를 포함하는 다양한 형태를 띠고 있으며 data governace 솔루션으로 단순히 관리하기가 어렵습니다.
2) Two disparate and incompatible data platforms: 오늘날의 조직들은 데이터 분석에 대부분 두가지 플랫폼을 사용 하고 있습니다. BI를 위한 data warehouse와 AI를 위한 data lake입니다.
Data 관점에서 보면 통합된 view가 없기 때문에 데이터가 저장된 위치를 파악하고, 어떤 데이터에 액세스할 수 있는지 파악하기 어렵고, 거버넌스 모델이 서로 다른 두 플랫폼에서 데이터 액세스 정책을 일관성 있게 정의하고 관리하기가 어려운 상황입니다.
3) Rising multicloud adoption: 점점 더 많은 조직들이 멀티 클라우드 전략을 활용하여 비용을 최적화하고 vendor lock-in을 방지하며, 컴플라이언스 및 개인정보 보호 규정을 충족합니다.
비표준화된 거버넌스, 클라우드 별 거버넌스 모델을 사용 할 경우 클라우드 전반의 데이터 거버넌스는 복잡해질 겁니다. 사용자는 각 Native 클라우드별로 IAM (Identity and Access Management)과 같은 보안 및 거버넌스를 준비해야합니다.
4) Disjointed tools for data governance on the lakehouse: 오늘날 data 팀은 데이터 검색, 카탈로그 작성, auditing, 액세스 제어등 데이터 거버넌스 요구사항에 맞게 각각 다양한 툴과 서비스를 사용해야 합니다. 이는 이는 비효율적인 운영과 성능 저하를 야기 시킬 수 있습니다.
그래서 하나의 security 및 governance 접근 방법이 필요합니다.
– Lakehouse 시스템은 데이터 레이크 스토리지 위에서 관리 인터페이스를 추가하여, 데이터 웨어하우스와 유사한 표준 인터페이스를 사용하여 모든 데이터 액세스 제어, 데이터 품질, 컴플라이언스를 균일하게 관리하는 방법을 제공하고 있습니다.
– 레이크하우스 시스템은 세분화된(행, 컬럼, 뷰수준까지) 액세스 컨트롤 지원합니다.
– SQL, query auditing, attribute-based-access control, data versioning 및 데이터 품질 제약조건, 모니터링을 통해서 access control 지원 가능합니다.
– SQL GRANT 명령처럼 일반적인 데이터베이스 관리자에게 익숙한 표준 인터페이스를 사용하여 모든 데이터를 균일한 방식으로 처리 가능합니다.
– 단일 관리 인터페이스를 통해서 레이크하우스 시스템의 모든 데이터를 중앙 집중화함으로써 여러 개의 개별 시스템을 관리할 때 발생하는 관리 부담과 오류 가능성을 줄일 수 있습니다.
[ Unity Catalog란 ?]
– 모든 클라우드에서 파일, 테이블, 대쉬보드, 머신 러닝 모델을 포함한 모든 데이터, 분석, AI 자산을 위한 통합 거버넌스 솔루션입니다.
– ANSI-SQL기반으로 한 공통 거버넌스 모델을 통해 데이터 팀이 세부 액세스 제어를 정의하고 시행할 수 있도록 지원함으로 거버넌스를 단순화합니다.
– attribute-based access control을 사용하면, 데이터 관리자는 Tag(Attribute)를 사용하여 행과 열에 대한 세밀한 액세스 제어를 활성화할 수 있습니다.
– 데이터 팀은 내장된 데이터 검색기능을 사용하여 관련된 데이터 사용사례에 대한 데이터를 신속하게 찾고 참조할 수 있습니다.
– Unity Catalog는 조직 간 또는 조직 내에서 데이터를 공유하고 기존 데이터 거버넌스 툴과 원활하게 통합할 수 있습니다.
[ Unity Catalog Key benefits ]
1. 모든 클라우드의 모든 데이터 자산에 대한 카탈로그, 보안 및 audit access
– Unity Catalog는 중앙집중식 메타데이터를 제공하여 데이터팀이 파일, 테이블, 대시보드에서 머신 러닝 모델까지 하나의 장소에서 모든 데이터 자산에 대한 a single source of truth를 생성할 수 있도록 지원합니다.- account level에서 공통의 메타데이터 layer 관리하여 서로 다른 작업공간이 공통 인터페이스를 통해서 Unity Catalog 메타데이터에 액세스 하고 data silos 제거하여 협업을 용이하게 합니다.
– Unity Catalog에서 데이터 접근제어 권한 또한 Account level에서 관리하여 사용자나, 그룹관리가 각각의 모든 workspace(작업공간)에 일괄적으로 적용 가능 합니다.
2. 빌트인 데이터 Lineage
– 데이터가 어떻게 흐르고 조직내에서 어떻게 사용이 되는지 End-to-End 시각화
– Databricks 클러스터 또는 SQL Warehouse에서 자동으로 데이터 리니지 캡처
– 테이블 및 컬럼 레벨의 자동화된 Lineage 확인 가능
– Unity Catalog의 일반적인 Permission 모델 사용
– 테이블, 대시보드, workflow, 노트북, Feature Table, 파일, DLT 전반에 걸친 데이터 소비과정 확인
– 모든 워크로드에 대한 자동화된 데이터 계보를 통해서 데이터 팀은 data pipeline or 최종 어플리케이션에서 발생하는 어떠한 에러의 근본 원인 추적해서 확인이 가능합니다.
– 데이터팀은 영향도 분석을 통해서 데이터 변경사항에 대한 종속성을 확인하고 잠재적인 영향도를 인지 후 확인이 가능합니다.
– 데이터팀이 데이터에 대한 이해도를 올려주는 기능을 합니다.
3. Built-in 데이터 Search and Discovery
– Unity Catalog 내 저장되어 있는 data asset을 UI 화면 상으로 검색
– Data science / ML / SQL 메뉴상 동일하게 적용
– Tag를 적용하고 적용된 Tag 전체를 검색
– BI, 분석, 머신러닝과 같은 모든 사용 사례에 참고할수 있어 가치 창출 시간을 단축하고 생산성을 높일 수 있습니다.
[ Lakehouse Federation 이란 ? ]
– 데이터 사용자들은 데이터 파편화, 데이터 통합에 소요되는 시간과 비용, 여러 시스템에 걸친 데이터 거버넌스 관리의 어려움 때문에 원하는 데이터에 빠르게 액세스하는 데 많은 어려움을 겪고 있습니다
– 레이크하우스 페더레이션은 통합 거버넌스를 통해 확장성과 성능이 뛰어난 데이터 메시 아키텍처를 구축할 수 있도록 지원합니다.
– Unity Catalog의 레이크하우스 페더레이션 기능을 사용하면 데이터를 이동하거나 복사하지 않고도 간단하고 통합적인 방식으로 MySQL, PostgreSQL, Amazon Redshift, Snowflake, Azure SQL Database, Azure Synapse, Google BigQuery 등의 데이터 플랫폼에서 데이터를 검색, 쿼리 및 관리할 수 있습니다
– 행 및 열 수준 액세스 제어, 태그와 같은 검색 기능, 데이터 리니지와 같은 Unity Catalog의 고급 보안 기능을 이러한 외부 데이터 소스에서 사용할 수 있어 일관된 거버넌스를 보장합니다.
Unity Catalog의 레이크하우스 페더레이션을 통한 가능한 작업들
1. 데이터 자산에 대한 통합 뷰 구축: 정형 및 비정형 데이터를 포함한 모든 데이터를 한곳에서 자동으로 분류 및 검색하고, 조직의 모든 사람이 데이터의 위치에 관계없이 모든 데이터에 안전하게 액세스하고 탐색할 수 있습니다.
2. 단일 엔진으로 모든 데이터를 효율적으로 쿼리하고 결합: 단일 엔진으로 모든 데이터에 대한 ad-hoc 분석과 프로토타이핑, 가장 완전한 데이터에 대한 분석 및 AI 활용을 별도의 데이터 수집 과정 없이 더 빠르게 수행할 수 있습니다. 향상된 쿼리 계획과 캐싱을 통해 단일 쿼리로 여러 플랫폼의 데이터에 액세스하고 결합할 때에도 최적의 쿼리 성능을 보장합니다.
3. 여러 데이터 소스에 걸쳐 데이터 보호: 단일한 권한 모델을 사용해 액세스 규칙을 설정 및 적용하고 데이터 소스 전반에서 모든 데이터를 안전하게 보호할 수 있습니다. 행 및 열 수준 보안, 태그 기반 정책, 중앙 집중식 감사와 같은 규칙을 플랫폼 전체에 일관되게 적용하고, 데이터 사용량을 추적하고, 내장된 데이터 리니지 및 감사 기능으로 규정 준수 요구 사항을 충족할 수 있습니다.
[ Open data sharing and collaboration ]
– 기업이 고객, 파트너, 공급업체 및 내부 비즈니스 라인과 쉽고 안전하게 데이터를 교환하여 더 나은 협업과 가치 창출 하기를 원하면서 디지털 경제에서 데이터 공유가 갈수록 중요시되고 있습니다.
– 지금까지는 표준기반의 데이터 공유 프로토콜이 부족하여 데이터 공유 솔루션인 단일 벤더 또는 상용 제품에 묶여 vendor lock-in 위험이 발생했습니다. 데이터 공유에 대한 개방적인 접근 방식이 필요해지는 시점입니다.
– 오픈소스 데이터 공유 및 Databricks는 기존 데이터 공유 솔루션의 한계를 극복하기 위해서 OSS 커뮤니티의 다양한 기부금으로 Delta Sharing을 개발하여 리눅스 재단에 기부함
[ Databricks Delta Sharing이란 ? ]
– 데이터브릭스 델타 셰어링은 레이크하우스에서 어떤 컴퓨팅 플랫폼으로도 실시간 데이터를 안전하게 공유할 수 있는 개방형 솔루션을 제공합니다. 수신자는 데이터브릭스 플랫폼이나 동일한 클라우드에 있거나 클라우드에 있을 필요가 전혀 없습니다.
– 데이터 공급자는 실시간 데이터를 복제하거나 다른 시스템으로 이동하지 않고 공유할 수 있습니다.
– 수신자는 항상 최신 버전의 데이터에 액세스할 수 있으며, BI, 분석 및 기계학습을 원하는 도구를 사용하여 공유 데이터를 신속하게 조회할 수 있어 가치창출 시간을 단축할 수 있습니다.
– 데이터 공급자는 하나의 플랫폼에서 공유 데이터의 사용량을 중앙에서 관리, govern, audit, 추적할 수 있습니다.
– Unity Catalog는 세계 최초로 데이터 공유를 위한 개방형 프로토콜인 Delta Sharing을 기본적으로 지원하므로 조직은 복제없이 실시간 대규모 데이터를 공유하고 엔터프라이즈급 보안을 통해 원하는 보구에서 쉽고 빠르게 데이터에 액세스할 수 있습니다.
[ Databricks Delta Sharing Key benefits ]
1) Open cross-platform sharing: 델타레이크에 있는 데이터 및 아파치 parquet형식의 데이터를 서로 다른 밴더간에 쉽게 공유가 가능. 소비자는 동일한 클라우드 or 클라우드 환경이 아니어도 or 데이터브릭스 플랫폼이 아니어도 공유가 가능함. Power BI, Tableau, Spark, Pandas 및 Java와 같은 네이티브 통합을 통해서 수신자는 자신이 선택한 도구에서 직접 공유 데이터를 소비할 수 있음. 수신자는 공유된 데이터를 사용하기 위한 별다른 환경구성을 할 필요가 없음. 바로 데이터에 액세스 하고 원하는 도구를 사용하여 조회가 가능.
2) Sharing live data without copying it: 다른 시스템으로 데이터를 복제하거나 이동하지 않고도 실시간 즉시 쿼리 및 조회가 가능.
3) Centralized administration and governance: 데이터에 대한 액세스를 중안에서 관리, 추적, 감사할 수 있음. 상세한 사용자 액세스 감사로그를 통해서 누가 데이터에 액세스하는 알 수 있도록 보관되며, 테이블, 파티션 및 버전 수준까지 공유데이터 사용 현황을 모니터링함.
4) An open Marketplace for data solutions: Databricks Marketplace는 데이터 세트, 노트북, 대시보드 및 머신러닝 모델과 같은 데이터 제품을 교환할 수 있는 개방형 마켓플레이스를 제공. Delta Sharing을 기반으로 소비자가 Databricks 플랫폼에 있지 않아도 데이터 제품에 액세스할 수 있음.
[ How it works ]
– Delta Sharing은 데이터에서 더 많은 정보를 얻고자 하는 조직을 위해 단순하고, 확장성이 뛰어나며, 비용 효율적으로 설계되었습니다.
– 기본적으로 Unity Catalog와 통합되어 고객이 세분화된 거버넌스 및 보안 제어 기능을 추가할 수 있으므로 내부에서 데이터를 쉽고 안전하게 공유할 수 있습니다.
– 데이터 공급자는 클라우드 데이터 레이크에 저장된 기존 테이블 또는 일부 (예: 특정 테이블 버전 또는 파티션)를 델타 레이크 형식으로 공유합니다.
– 공급자는 공유할 데이터를 결정하고 Delta Sharing Server를 실행해서 Delta Sharing Protocol을 통해서 수신자의 액세스를 관리하고 있습니다.
– 공유 및 수신자를 관리하기 위해서 SQL 명령이나 Unity Catalog CLI, 사용자 인터페이스를 통해서 작업 가능합니다.
– 데이터 수신자는 프로토콜을 지원하는 Delta Sharing Client만 있으면 됩니다.
– Databricks는 pandas, Apache Spark, Java, Python 을 위한 오픈소스 커넥터를 출시 했으며 그 외 많은 파트너들과 현재 협업 중입니다.
[The Delta Sharing 데이터 교환 절차]
1. 수신자의 클라이언트는 공유서버에 인증(authentication)후 특정 테이블에 쿼리 요청.
2. 서버는 클라이언트가 데이터에 액세스할 수 있는지 확인 후 요청을 기록한 다음 어떤 데이터를 보낸지 결정. (테이블을 구성하는 클라우드 저장 시스템의 데이터 개체의 합위집합이 될 것임)
3. 데이터를 전송하기 위해 서버는 클라이언트가 클라우드 공급자로부터 직접 이러한 Parquet파일을 읽을 수 있도록 일정기간동안 지정된 URL 생성 후 공유서버를 통해 스트리밍 없이 방대한 대역폭에서 병렬로 전송 할 수 있음.
이번 시간에는 하나의 통합된 환경에서 Security와 Governance는 담당하고 있는 Unity Catalog에 대해서 알아보았고 다음시간에는 데이터 과학자, 데이터 분석가, 비즈니스 인텔리전스 개발자, 그리고 조직 내의 다른 전문가가 데이터를 사용할 수 있도록 만드는 일련의 작업을 제공하는 Databricks Engineering Workload에 대해서 알아보겠습니다.
[참고 문헌]
[1] Michael Armbrust, Ali Ghodsi, Reynold Xin, Matei Zaharia,Lakehouse: https://www.databricks.com/research/lakehouse-a-new-generation-of-open-platforms-that-unify-data-warehousing-and-advanced-analytics
[2] Bill Inmon, Ranjeet Srivastava, Rise of the Data Lakehouse
[3] Databricks, The Big Book of Data Engineering
[4] Databricks, The Data Team’s Guide to the Databric
[5] Databricks Documentation, https://docs.databricks.com/en/index.html
[6] Databricks Homepage, https://www.databricks.com
[7] Databricks Blog, https://www.databricks.com/kr/blog/introducing-lakehouse-federation-capabilities-unity-catalog