2021년 11월 30일 화요일

Data Mesh – Part 1 개념 및 기존 Data Warehouse/Data Lake의 문제점

Data Warehouse를 거쳐 Data Lake를 많이 사용하는 요즘 기존의 문제점을 보완하는 Data Mesh의 개념1이 작년부터 많이 화두가 되고 있다.

Data Mesh란 기존에 Data Warehouse나 Data Lake에서 중앙집중적으로 관리되었던 분석 데이터들을 탈중앙화하여 관리를 하는 개념이다. 대부분의 기업은 크게 Operation(운영)을 위한 데이터와 Analyze(분석)을 위한 데이터를 가지고 있다. Operational 데이터는 운영을 하면서 사용하거나 생성되는 데이터로서 현재상황에 대한 정보를 가지고 있고 Analytical 데이터는 통상적으로 여러 Operation 데이터를 모아서 과거정보를 포함하는 사업의 전체적인 정보를 나타낸다. 예를 들어서 전기회사의 현재 정전상황을 나타내는 데이터는 Operational 데이터이고, 지역별 1년간의 정전 시간을 나타내는 데이터는 Anlytical 데이터이다.

Operational 데이터에서 Anlaytical 데이터로 변경을 할 때 ETL (Extract, Transform, Load)를 해서 Data Warehouse나 Data Lake로 여러 Operational 데이터를 모으게 되는데, 이 부분에서 통상적으로 한계가 나타난다. 우선 새로운 Data Source가 발생하게 되면 기존 Data들과 같은 형태로 변경을 해야하지만 이는 기존 Table을 수정/새로운 Table을 생성하는 시간과 새로운 ETL을 생성하는 시간이 발생한다. 만약 여러종류의 Data Source를 가지고 있고, 한 팀에서 이 작업을 한다면 많은 가치가 발생하지는 않을 것이다. 또한 주기적으로 새로운 종류의 Operational 데이터가 생성된다면, 이 작업은 아주 복잡한 작업이 될 것이고 결국 데이터의 양은 많으나 아무도 정확하게 어디서 무엇을 찾을 수 있는지 알 수 없게 된다. 이 상황에서 머신러닝과 같은 Data Science 작업과 권한관리를 추가하게 된다면, 필요한 데이터가 어디있는지 찾아서 권한을 요청하고 정리하는 일이 Data Scientist들이 많은 시간을 쓰는 일이 될 것이다.

Data Mesh는 이러한 문제를 해결하기 위해서 Data as-a-product 개념을 도입하여 탈중앙화를 이루고자 하는 개념이다. 간단하게 정리하면 각 사업부 (Business Domain)별로 Analytical Data를 제공하고 데이터 품질이나 응답시간에 대한 SLA를 정하고 지키는 것이다. 예를 들어서 위의 정전을 예제를 이용하면, 정전을 감지하는 팀에서 현재 정전상황 (Operational 데이터) 뿐만 아니라 몇년치 정전 데이터 (Analytical 데이터)를 전사적으로 약속한 방식 (API, SQL, 등등)으로 제공을 하는 방식이다. 이 개념은 결국 각 사업부별로 데이터 정제 및 데이터 서비스 제공을 위한 인프라 관리를 해야하는 결과를 초래하는데, 이는 중앙집중적으로 관리하던 데이터 엔지니어링 조직을 사업부별로 나누게 된다. 이렇게 각 사업부별로 Analytical 데이터를 제공하면 필요로 하는 조직에서 필요한 모든 데이터를 조회해서 필요한 Dashboard나 또다른 Analytical 데이터를 만들어서 제공하면 되는 것이다. 개념적으로 API를 이용하는 Microservice Architecture (MSA)와 유사한 점이 많다.

몇몇 미국 기업들은 Data Mesh를 일부분 시범적으로 도입하여 사용하였고, 이와 관련된 유의점들에 대해서도 공유가 되고 있다. 다음 글에서는 Data Mesh를 사용할 때에 유의점에 대해서 살펴보고자 한다.

  1. How to Move Beyond a Monolithic Data Lake to a Distributed Data Mesh

    Related Posts

    Data Mesh 관점에서 효율적인 메타데이터 관리
    오픈 포맷 데이터 성능 향상 전략 – Part 1 캐싱
    Data Mesh – Part 2 사용시의 유의점

    2 Responses

    1. Pingback : Data Mesh – Part 2 사용시의 유의점 - 클라우드 인사이트

    2. Pingback : Data Mesh 관점에서 효율적인 메타데이터 관리 - 클라우드 인사이트

    Leave a Reply