프로그래밍/Data process

데이터 플랫폼 설계와 구축 - 1장(소개) 정리

Dibrary 2023. 4. 21. 09:50
반응형

안녕하세요 Dibrary입니다.

앞으로 차츰 이 책의 내용에서 주관적으로 중요하다 생각되는 개념을 정리함과 동시에 '제 생각'도 같이 정리해 둘 예정입니다.

 


클라우드 데이터 플랫폼 = 모든 유형의 데이터를, 거의 무제한의 장소에서 비용효과적인 클라우드 네이티브 방식으로 수집, 통합, 변환, 분석, 관리되는 데이터 플랫폼

무슨말인가 하면, 데이터가 들어오는 것 부터 사용하는 단계까지 모두 클라우드에서 사용하는 것을 의미한다. 

데이터 관련 기술을 처음 접하기 시작하면 대부분 로컬에 VM등을 사용해서 여러 PC환경을 갖춘 후에 실행해봐야 하는 경우가 대부분이다. 이런 거 말고 그 단계를 클라우드에 있는 걸 사용하거나 한다는 말.

 

단일 시스템 아키텍처는 유연성이 크게 떨어진다.

ETL (혹은 ELT) 각 단계별로 구성이 1개씩만 되어있다면 + Load 단계에서 LT를 모두 하는 단일 아키텍처인 경우
당연히 추가처리가 필요한 데이터가 생기면 구조변경이 어렵다.

 


스키마 온 리드 = 데이터를 읽는 시점에 데이터 스키마 확인을 한다.
스키마 온 라이트 = 데이터를 처음 저장할 때 스키마를 먼저 저장한다.

기존의 DB는 스키마를 미리 정해서 만들어 두고, 거기에 데이터를 저장할 수 있었다.

하지만 데이터가 많아지고 다양해진 지금은 어떤 형태의 데이터가 들어올지 '모른다'는게 중요하다. 물론, 데이터를 수집하는 코드 단에서 모든 경우를 처리, 변환해서 통과되는 데이터의 타입이 통일되게 만들 수 있으면 굳이 이런 단계는 필요 없었을지도 모른다.

데이터 웨어하우스(DW)는 스키마 온 라이트, 하둡은 스키마 온 리드 방식을 사용한다.

 

하둡은 유지보수가 쉽지 않으므로 운영에 굉장히 많은 인력이 필요하다.

 


클라우드를 사용함에 따른 장점
 1. 쉽게 리소스를 조절할 수 있다.  
 2. 사용량에 따른 지불이 가능하다.  
 3. 즉시 사용 가능
 4. 신규 기능 출시 속도

1번은 말 그대로 필요에 따라 리소스를 늘리거나 줄이기가 쉽다는 것이다. 클라우드를 사용해보면, 단순한 버튼 몇개 누르는 것 만으로도 원하는 자원을 추가하거나 줄일 수 있다.

2번은 경영 측면에서의 이점이다. 초기 비용을 많이 들여서 장비를 직접 구입했다가 사용하지 않게 되는것 보다 사용하는 양 만큼만 쓰고 지불이 이뤄지는게 클라우드의 장점

3번은 1번과 같은 개념이다. 버튼 몇 번의 클릭으로 리소스를 생성한 후에 길어야 5분 내에 해당 리소스를 사용할 수 있게 된다.

4번은 시간을 줄여주는 이점이다. 새 기술 혹은 업그레이드 된 버전을 도입하고자 할 때, 미리 확인해야 할 것이 꽤나 많은데 그 단계를 클라우드에서 미리 줄여버리는 이점이 된다. (뭐 그렇다고 아예 안해도 된다는 건 아니지만..)

 


데이터 레이크 = 원천 데이터 소스로부터 나온 다양한 데이터 자산을 보관해놓은 저장소 집합
데이터 웨어하우스 = 비즈니스 사용자가 사용하기 편한 형태로 구성된 저장소 집합

데이터 웨어하우스의 역할은 사용자에게 잘 정제된 데이터를 제공하는 지점 역할을 한다.
데이터 레이크는 정제되지 않은 채로 저장된 데이터를 직접 액세스하고 탐색하고 분석할 수 있는 환경을 제공한다.

말 그대로 데이터 웨어하우스(DW)는 간단한 '통계치' 등을 쉽게 볼 수 있게끔 해 놓은 데이터의 집합인 셈이다.
물론 이 통계치를 어느정도까지 사용하는지는 각 비즈니스마다 다를 것이다.

데이터 레이크는 DW로 가기 전에 만들어 놓을 수도 있고, 아니면 데이터 레이크 하나만 있고, DW를 뷰 상태로 만들어 놓을 수도 있다.

DW에서 통계치를 저장해둔 것이 아니라 목적별 '로우데이터'를 저장했다고 가정할 때, DW들의 합집합은 데이터 레이크에 포함된다.

 


수집계층은 유연성이 높아야 한다. 수집되는 데이터를 변환해서는 안 된다.

스토리지 계층은 모든 형태의 데이터를 저장할 수 있어야 하며, 언제든 확장 가능해야 한다.

처리계층에서 목적에 맞게 처리가 된다.

서비스 계층에서 사용자가 데이터를 활용할 수 있게 준비가 된다.

수집단계에서 유연성이 높아야 하는 이유는, 데이터가 어떻게 들어올지 모르기 때문이다.
배치형태로 들어올지, 실시간으로 들어올지 모르고 또 들어오는 데이터의 형태가 균일할지, 제각각일지 모르기 때문이다.

그리고, 수집단계에서 가장 중요한 것은 '무결성'. 데이터가 변질된다면 결과역시 변질된 결과를 얻게 된다.

 

스토리지 계층에서는 데이터 레이크를 구축한다고 할 때, 가능한 모든 형태의 데이터를 저장하면 좋다.

 

처리계층은 목적에 맞게끔 데이터를 보거나 다룰 수 있게 분류, 계산 등의 처리작업이 이뤄진다는 것이다.
단순히 통계치만을 보고자 할 때, 미리 기간별 통계치의 처리가 이뤄진 뷰가 만들어지면 사용자는 손쉽게 확인할 수 있어진다.

 

서비스계층은 말 그대로 사용자가 이 단계를 통해 데이터를 확인하고, 간단하게 조작해보고 할 수 있다.
물론, 사용자가 데이터과학자라 직접 로우 데이터들을 사용해서 원하는 결과를 보고자 할 때 역시 이 단계에서 데이터레이크로의 연결을 만들어 두면 된다.

 

아마 데이터 엔지니어나 데이터 파이프라인을 검색했을 때 가장 많이 볼 수 있는 형태가 이 설명이다.

그리고, 클라우드별로 각 단계별로 자신의 어떤 '도구'를 사용할 수 있는지를 알려준다.

예를 들어, 위 GCP의 경우에는 수집에 pubsub을 쓸 수 있고, 저장에 bigquery 혹은 storage, 분석에 bigquery를 쓸 수 있음을 확인할 수 있다.

728x90
반응형