Computer Engineering/Data Lake, Warehouse

데이터 레이크 + 데이터 웨어하우스 = 데이터 플랫폼

jordan.bae 2022. 12. 18. 00:12

근래의 데이터 플랫폼은 다양한 계층(Ingestion, Lake, Data Warehouse, Procssing)을 조합 해 놓은 서비스를 의미한다. 이전에는 단주로 Datawarehouse위주로만 이루어져 있었다면 이제 조금 더 계층이 나뉘어졌다.

단일 데이터 웨어하우스 시스템

단일 데이터웨어하우스 시스템

Data lake와 Processing Layer를 추가한 데이터 플랫폼

단일 데이터 웨어하우스 시스템만 구축하는 경우와 중간에 data lake를 추가해서 데이터 플랫폼을 구축하는 경우의 차이
- 스키마의 변경을 처리하는 방법. lake에서는 데이터를 파일로 가지고 있기 때문에 서로 다른 schema 데이터를 가지고 있을 수 있다. 즉, Process Layer에서 해당 변경을 처리하는 로직을 가지고 있다면 스키마의 변경에 유연하게 대처할 수 있다. (DW는 고정된 Schema를 가지고 있기 때문에 바로 source의 data를 ingestion하는 경우는 문제가 발생한다.
- PII 데이터에 대한 처리 Json데이터를 flaten해주는 enrich작업들을 process layer에서 진행이 가능한데 이는 Python, Scala, Java같은 Language가 SQL에 비해 유연하고 관리하기 쉽기 때문에 강점을 가지고 있다. 특히, 복잡한 로직이 들어가는 경우일 수록..!
- 데이터 웨어하우스보다 다양한 형태의 데이터를 저장할 수 있다.
- 데이터 레이크 레이어의 파일 사이즈나 패스를 관리해야하는 관리요소들이 존재한다.
예외) Fivetran, Segment같은 Ingestion SaaS를 사용하는 경우 해당 부분을 컨트롤 할 수 있다. 즉, 해당 서비스에서 위의 layer를 모두 가져가기 때문에 source -> ingestion SaaS -> DW 가 가능해진다.


다르게 생각해보면 데이터 레이크를 delta lake같은 소프트웨어를 이용해 datawarehouse의 storage로 사용할 수도 있다. 하지만, 파일의 크기나 partition을 관리한다던지 하는 관리 요소가 발생하고, 개인적인 경험으로 s3(delta lake) + redshift spectrum이 BigQuery보다 느렸다. (native datawarehouse가 더 빠름) 즉, 사용자들에게 친화적이지 않다.


데이터 플랫폼은 여러 시스템들의 장점들을 활용해서 다양하고 큰 규모의 데이터를 효율적으로 처리하기 위해서 각 layer로 나뉘어져 있는 시스템이다.


Reference

- 개인 경험
- https://ichi.pro/ko/awsui-deiteo-leikeu-haujing-136847715915919
- 데이터 플랫폼 설계와 구축 책

반응형