Computer Engineering/DataPlatform

Data Platform이란? / 데이터플랫폼이란

jordan.bae 2023. 6. 21. 23:36

데이터 엔지니어의 가장 중요한 역할 중 하나는 데이터플랫폼을 구축하는 일이라고 생각합니다.
데이터 플랫폼은 기존의 데이터웨어하우스 중심의 시스템에서 벗어나 다양한 데이터를 다루고, 확장 가능하고 더 데이터를 잘 활용할 수 있는 종합적인 플랫폼을 의미합니다.
참고: 데이터 웨어하우스와 데이터플랫폼의 차이

이 글은 데이터 플랫폼의 구성에 대해서 계속 공부하면서 업데이트해나갈 예정입니다. 그리고 각각의 구성요소들을 다른 글에서 계속해서 업데이트를 해나가려고 합니다. 데이터 플랫폼은 다양한 구성요소가 있고, 각각의 구성요소 또한 다양한 서비스와 기술스택으로 구성할 수 있어서 경험을 하고 공부를 하면서 계속 글을 업데이트할 예정입니다.
 

데이터플랫폼이란?

출처: Monte Carlos

Data Platform은 다양한 대규모의 데이터를 수집, 저장, 관리, 분석하고 거버넌스 할 수 있는 종합적인 시스템을 의미합니다. 그렇기 때문에 다양한 계층과 소프트웨어로 구성되어 있습니다. 기존의 전통적인 단일 웨어하우스와 다른 점은 각각의 레이어를 분리하고 보다 다양한 데이터 및 확장가능하도록 구성했다는 점입니다.

기본적인 데이터플랫폼의 구성요소는 아래와 같이 이루어져 있습니다.
(DBT에서 만든 이미지라서 DBT만 독립되어 있는 부분은 참고해주세요...ㅎㅎ)

Modern Data Stack

 

Ingestion Layer

Ingestion Layer는 다양한 소스로 부터 Streaming 그리고 Batch 형태로 데이터를 수집하는 Layer입니다. 다양한 데이터 파이프라인으로 수집된 데이터는 Storage Layer에 저장되게 됩니다.

Ingestion시에 데이터 적재를 하는 메커니즘에는 전통적인 ETL과 ELT가 있습니다. Data Platform에서는 다양한 형태로 데이터를 활용할 수 있는 ELT방식을 권장합니다. (관련해서 ETL과 ELT의 차이, ELT가 더 가치있는 이유 그리고 EtLT  를 읽어보시는 걸 추천드립니다.)
데이터 수집의 방법에 따라 대표적인 기술스택 및 서비스는 아래와 같습니다.


- Streaming: Apache Kafka, Amazon Kinesis, GCP Pub/Sub, Spark
- Batch: Singer, Airflow, Pandas, Spark, Fivetran, Stitch

 

Storage/Processing Layer

Storage layer에는 다양한 종류의 데이터가 저장됩니다. 주로 다양한 데이터를 지원하고, 컴퓨팅 엔진과의 분리를 위해서 Object Storage가 사용됩니다. (ex. AWS S3, Hadoop, GCP Cloud Storage 등). 하지만, 비즈니스 요구사항이나 회사의 규모에 따라서 Datawarehouse (BigQuery, Snowflake)나 Databricks와 같은 DataLakeHouse가 사용되기도 합니다.) 또, 필요에 따라 Object Storage와 Datawarehouse를 혼합해서도 사용할 수 있습니다.

 

Transformation/Modeling

Data Transformation과 Modeling은 비슷해 보이지만 다른 작업입니다.

Data Transfomration은 주로 원시 데이터로 부터 다양한 목적을 위해 가공하는 것을 의미합니다. Transformation 주 목적은 아래와 같습니다.
 
- Analytics 용도
- Machine Learning 용도
- Regulatory compliance (규제 컴플라이언스)

Modeling은 주로 BI layer에서 Dimension과 Facts로 나눠서 분석할 수 있는 형태로 테이블을 구성하는 것을 의미합니다. (차원 모델링이란?)

데이터 Transformation/Modeling은 아래와 같은 기술스택 또는 서비스를 많이 사용합니다.
- Airflow 기반의 커스텀 로직
- dbt

 

Data Utilization 

결국 데이터를 힘들게 수집하고 가공하는 이유는 데이터를 잘 활용하기 위합니다. 데이터를 주로 활용하는 용도는 아래와 같습니다.
- BI / Analytics
- Machine Learning
- API Service

 

Data Observability

데이터 플랫폼 내에서 데이터의 품질, 성능 및 동작을 모니터링하고 추적하며 이해하는 데 초점을 맞춥니다. 이는 데이터 파이프라인, 데이터 변환 및 데이터 워크플로우의 지속적인 모니터링과 분석을 포함하여 데이터의 정확성, 완전성, 일관성 및 적시성을 보장하기 위해 이루어집니다. 데이터 옵저버빌리티는 데이터 프로파일링, 이상 탐지, 데이터 유효성 검증 및 데이터 품질 지표와 같은 다양한 기술을 사용하여 데이터의 문제 또는 이상을 식별하고 처리합니다. 데이터 옵저버빌리티의 목적은 시스템을 통해 흐르는 데이터가 신뢰할 수 있고 기대되는 기준을 충족하는지를 보장하는 것입니다.

주요 Data Observability 서비스들은 아래와 같은 기능들을 제공합니다.

- Missing Data

- schema change alert

- Data Freshness

- Usage Analytics

- Job Monitoring

- ETC..

Data Observability SaaS에는 아래와 같은 서비스가 있습니다.

- metaplane 
- anomalo
- datafold

 

Data Discovery

데이터 디스커버리는 데이터 플랫폼 내에서 또는 다양한 데이터 소스 간에 관련 데이터를 탐색하고 찾는 과정을 말합니다. 이는 사용 가능한 데이터 자산, 구조, 관계 및 메타데이터를 이해하는 것을 포함합니다. 데이터 디스커버리는 분석, 보고 또는 기타 목적에 필요한 데이터를 사용자가 찾을 수 있도록 돕는 것을 목표로 합니다. 주로 검색 기능, 데이터 카탈로그, 데이터 라인지 추적 및 메타데이터 관리와 관련됩니다
 

Reference

 

데이터 플랫폼 설계와 구축 - YES24

엔터프라이즈 데이터 플랫폼 설계 유용한 개념과 사례를 알아보자! 잘 설계된 데이터 플랫폼의 파이프라인, 스토리지 시스템과 API는 온프레미스 데이터 센터에서 발생하는 복잡한 유지보수 문

www.yes24.com

 

반응형