데이터 메쉬(Data Mesh) 개념
데이터 메쉬는 기존의 중앙집중식 데이터 아키텍처의 한계를 극복하기 위해 제안된 분산 데이터 아키텍처 패턴입니다. 주로 대규모 조직에서 데이터 관리 및 분석의 복잡성을 해결하기 위한 방법론으로 등장했습니다. 데이터 메쉬는 다음 네 가지 주요 원칙에 기반합니다:
- 도메인 중심의 데이터 소유 및 아키텍처(Domain-Oriented Decentralized Data Ownership and Architecture): 각 도메인이 자율적으로 데이터를 소유하고 관리합니다. 예를 들어, 마케팅 팀은 고객 행동 데이터에 대해 책임을 지고, 재무 팀은 금융 데이터를 관리합니다. 이는 도메인 전문가들이 데이터의 맥락을 잘 이해하고 있어 더 효과적인 데이터 관리와 활용이 가능하도록 합니다.
- 데이터를 제품으로 간주(Data as a Product): 각 도메인은 데이터를 하나의 제품으로 간주하고, 데이터의 품질, 신뢰성, 접근성 등을 보장합니다. 이는 데이터 소비자(분석가, 데이터 과학자 등)가 필요한 데이터를 신뢰할 수 있게 만듭니다.
- 셀프 서비스 데이터 플랫폼(Self-Service Data Platform): 데이터 팀은 각 도메인이 데이터를 쉽게 처리하고 활용할 수 있도록 셀프 서비스 데이터 인프라를 제공합니다. 이는 기술적 장벽을 낮추고, 데이터 활용을 촉진합니다.
- 연합 컴퓨팅 거버넌스(Federated Computational Governance): 중앙에서 규칙과 정책을 설정하지만, 각 도메인이 자율적으로 이를 구현합니다. 이는 데이터 일관성 및 보안을 유지하면서도 유연성을 제공합니다.
장점
구분 | 내용 |
확장성(Scalability) | 데이터 메쉬는 조직이 성장하면서 자연스럽게 확장될 수 있도록 합니다. 중앙집중식 데이터 레이크나 웨어하우스는 데이터가 증가할수록 관리가 복잡해지지만, 데이터 메쉬는 도메인별로 관리하기 때문에 이러한 문제가 발생하지 않습니다. |
효율성(Efficiency) | 각 도메인이 자율적으로 데이터를 관리하기 때문에 데이터 팀의 의존도가 낮아지고, 병목현상이 줄어듭니다. 도메인 전문가들이 데이터를 직접 관리하므로 데이터의 품질과 적시성이 개선됩니다. |
유연성(Flexibility) | 각 도메인이 독립적으로 데이터를 관리하고 처리할 수 있어 변화하는 비즈니스 요구사항에 빠르게 대응할 수 있습니다. 새로운 데이터 소스나 도메인이 추가될 때도 유연하게 대응할 수 있습니다. |
책임성(Accountability) | 데이터 소유권이 명확하게 정의되므로 데이터 품질 및 관리에 대한 책임이 분명해집니다. 이는 데이터 거버넌스를 강화하고, 데이터 관리의 투명성을 높입니다. |
예시
예시: 대규모 전자상거래 회사
대규모 전자상거래 회사에서는 다양한 도메인이 존재합니다. 예를 들어, 판매, 재고, 고객 서비스, 마케팅 등이 있습니다. 기존의 중앙집중식 데이터 아키텍처에서는 모든 데이터를 한 곳에 모아 분석하기 때문에 데이터 파이프라인이 복잡해지고, 각 도메인의 요구사항을 빠르게 반영하기 어려워집니다.
도메인 중심의 데이터 소유 및 아키텍처:
마케팅 팀은 고객 행동 데이터를 소유하고 관리합니다. 이 데이터에는 고객의 검색 이력, 구매 이력 등이 포함됩니다. 마케팅 팀은 이 데이터를 바탕으로 맞춤형 광고 캠페인을 기획하고 실행합니다.
데이터를 제품으로 간주:
마케팅 팀은 고객 행동 데이터를 하나의 제품으로 간주하고, 이를 다른 팀(예: 데이터 과학팀)이 사용할 수 있도록 API 형태로 제공합니다. 데이터 과학팀은 이 데이터를 사용하여 고객 행동 예측 모델을 개발합니다.
셀프 서비스 데이터 플랫폼:
회사의 데이터 플랫폼 팀은 각 도메인이 쉽게 데이터를 저장, 처리, 분석할 수 있도록 셀프 서비스 플랫폼을 제공합니다. 마케팅 팀은 이 플랫폼을 사용하여 데이터 파이프라인을 구축하고, 데이터를 실시간으로 처리합니다.
연합 컴퓨팅 거버넌스:
중앙 데이터 거버넌스 팀은 데이터 보안 및 프라이버시 규칙을 설정하고, 각 도메인은 이를 준수하면서 데이터를 관리합니다. 예를 들어, 고객 데이터는 항상 암호화되어야 하며, 민감한 정보는 접근 권한이 있는 사람만 열람할 수 있습니다.
이러한 방식으로 데이터 메쉬를 도입하면, 대규모 전자상거래 회사는 데이터를 효과적으로 관리하고 활용할 수 있으며, 비즈니스 요구사항에 빠르게 대응할 수 있습니다.
데이터 메시(Data Mesh)와 데이터 레이크(Data Lake) 비교해보기
데이터 레이크(Data Lake)
- 중앙 집중화된 데이터 저장소: 데이터 레이크는 조직의 모든 데이터를 한 곳에 모으는 중앙 집중화된 저장소입니다. 구조화된 데이터(예: SQL 데이터베이스)와 비구조화된 데이터(예: 로그 파일, 이미지 등)를 모두 저장할 수 있습니다.
- 유연한 데이터 저장 형식: 데이터 레이크는 데이터를 원시 형식(raw format)으로 저장하여 다양한 분석 요구에 맞게 사용할 수 있습니다. 이는 스키마 온 리드(schema-on-read) 접근 방식을 사용하여 데이터를 필요할 때 스키마를 적용해 분석합니다.
- ETL 과정의 단순화: 데이터 레이크는 데이터를 다양한 소스로부터 추출(Extract)하고, 변환(Transform) 과정을 거치지 않고 바로 로드(Load)할 수 있습니다. 이는 ETL 과정을 단순화하고, 데이터를 빠르게 수집할 수 있게 합니다.
- 집중된 데이터 관리: 데이터 레이크는 중앙에서 데이터 관리와 거버넌스를 수행합니다. 모든 데이터가 한 곳에 모이기 때문에 일관된 관리와 보안 정책을 적용할 수 있습니다.
데이터 메쉬(Data Mesh)
- 분산된 데이터 아키텍처: 데이터 메쉬는 데이터 소유권과 관리를 각 도메인으로 분산시킵니다. 각 도메인(예: 마케팅, 판매, 재무 등)이 자체적으로 데이터를 소유하고 관리합니다.
- 데이터를 제품으로 간주: 데이터 메쉬에서는 각 도메인이 데이터를 제품으로 간주하여 관리합니다. 이는 데이터의 품질, 신뢰성, 접근성을 높이는 데 중점을 둡니다. 데이터는 명확한 소유권과 책임 하에 관리됩니다.
- 셀프 서비스 데이터 플랫폼: 데이터 메쉬는 각 도메인이 데이터를 쉽게 저장, 처리, 분석할 수 있도록 셀프 서비스 플랫폼을 제공합니다. 이는 기술적 장벽을 낮추고, 데이터 활용을 촉진합니다.
- 연합 컴퓨팅 거버넌스: 데이터 메쉬는 중앙에서 거버넌스 정책을 설정하되, 각 도메인이 이를 자율적으로 구현합니다. 이는 데이터 일관성 및 보안을 유지하면서도 각 도메인의 유연성을 제공합니다.
주요 차이점
구분 | 데이터 레이크 | 데이터 메시 |
아키텍처 방식 | 중앙집중식 아키텍처로 모든 데이터를 하나의 저장소에 모음 | 분산 아키텍처로 각 도메인이 데이터를 소유하고 관리 |
데이터 관리 | 중앙에서 일관된 관리와 보안 정책 적용 | 도메인별로 데이터 관리와 거버넌스를 분산하여 수행 |
데이터 접근 및 활용 | 다양한 소스로부터 데이터를 원시 형식으로 저장하고, 필요 시 스키마를 적용하여 분석 | 데이터가 제품으로 관리되며, 셀프 서비스 플랫폼을 통해 도메인 간 데이터 접근과 활용을 촉진 |
확장성 및 유연성 | 중앙 집중식으로 데이터가 증가할수록 관리 복잡성이 증가할 수 있음 | 도메인별로 관리하기 때문에 확장성과 유연성이 높음 |
예시
데이터 레이크 예시:
한 대형 소매 기업은 모든 거래 데이터, 고객 데이터, 재고 데이터를 하나의 데이터 레이크에 저장합니다. 데이터 과학자와 분석가는 이 데이터 레이크에서 필요한 데이터를 추출하여 분석 모델을 구축하고 인사이트를 도출합니다.
데이터 메쉬 예시:
같은 소매 기업에서 각 부서(예: 마케팅, 판매, 재무)는 자신들의 데이터를 관리합니다. 마케팅 부서는 고객 행동 데이터를 소유하고, 판매 부서는 거래 데이터를 소유합니다. 각 부서는 셀프 서비스 플랫폼을 사용하여 데이터를 관리하고, 다른 부서와 데이터를 공유할 때는 API를 통해 데이터를 제품처럼 제공합니다.
데이터 레이크와 데이터 메쉬는 각각의 상황과 필요에 따라 적합한 선택이 될 수 있으며, 조직의 데이터 관리 전략을 수립할 때 이러한 차이점을 고려하는 것이 중요합니다.
'빅데이터' 카테고리의 다른 글
[데이터 거버넌스] 데이터 거버넌스란 무엇인가? (0) | 2024.06.09 |
---|---|
[객체 스토리지] Object Storage(객체 스토리지)란 무엇인가? (0) | 2024.06.04 |
[Fluentbit] Fluentbit에서 지원하는 Parser 모두 알아보기! (0) | 2024.05.20 |
[Message Queue] Solace 개념 잡기! <Kafka 비교> (0) | 2024.05.13 |
[데이터] CDC (Change Data Capture)란 무엇인가?! (0) | 2024.05.13 |