개요
이번 강의는 과거에서 현대까지의 데이터 스택(Stack)의 발전 과정을 설명해주셨다. 과거의 기술적 한계와 현대 데이터 엔지니어링의 방향성을 안내하면서, 과거의 발전이 오늘날의 데이터 기술에 어떻게 영향을 미쳤는지 스토리텔링해주셨다. 왠지 DBT가 얼마나 중요한지, 왜 배워야 하는지를 강조하고 싶으셔서 이 파트를 넣으신 것 같은 느낌적인 느낌.
과거의 데이터 스택
이전에도 설명해주셨지만, 1967년 그 쯤에는 MB당 보관비용(Storage Cost)가 1백만 달러로 매우 높은 가격을 지불해야 했다. 당시 데이터 통합(Data Integration) 과정이 발전하면서 ETL(Extract, Transform, Load) 방식이 공식적으로 도입되었었고, 비용적인 문제 때문에 데이터 변환이 데이터 로딩 이전에 이루어졌다.
데이터 웨어하우스에 데이터를 로드하기 전에 변환과 정규화 과정이 필요했다. 아무래도 높은 스토리지 비용이 있었기 떄문에, 자연스럽게 로드되는 데이터양 자체를 줄이는 것이 중요했던 것 같다. (가져오기 전에 애초에 데이터를 정리해서 끌어와야지 새롭게 발생되는 스토리지 양이 적어지기 때문에)
ETL 관련 기술 발전
시간이 지나면서, 스토리지와 트랜지스터 가격이 하락하고, 인터넷(네트워크) 속도도 급격하게 상승하였다. 그로 인해, 데이터 처리 방식에 대한 재고, 발전이 있었다. 이 과정에서 SMP, MPP의 개념이 나왔는데, 이건 데이터 엔지니어링 관점에서 큰 개념이기 때문에 꼭 짚고 넘어가면 좋겠다.
- SMP (Symmetric Multi-Processing) 시스템:
- 구성: 단일 컴퓨터 내에서 여러 프로세서가 자원을 공유하며, CPU 코어 내에서 병렬 처리가 이루어짐
- 장점: 처리 속도가 빨라지고, 저장소와 컴퓨팅이 밀접하게 결합되어 효율적인 데이터 처리가 가능
- 한계: 수직적 확장만 가능하고, 데이터 분산 저장이 어려움. 데이터 백업 필요.
- MPP (Massively Parallel Processing) 시스템:
- 구성: 마스터 노드와 여러 독립적인 컴퓨트 노드로 구성. 각 노드는 독립적으로 메모리와 저장소를 갖추며, 마스터 노드는 작업을 조정하는 역할.
- 장점: 수평적 확장이 가능하여, 더 많은 노드를 추가하여 처리 성능을 향상시킬 수 있음. 데이터가 여러 노드에 분산 저장됨.
- 설계: ‘공유 저장소(Shared Storage)’와 ‘공유 없음(Shared Nothing)’ 구조가 있으며, 대부분의 MPP 시스템은 ‘공유 없음’ 구조를 채택.
이렇게 MPP 등이 발전하면서, 스케일링과 저장소를 분리하는 트렌드가 발생되어, 엔지니어링 스택의 변화가 발생하게 되었다. 현대 데이터 웨어하우스에서는 스토리지와 컴퓨팅이 분리되고, 컴퓨팅 리소스는 필요에 따라 동적으로 확장할 수 있으며, 데이터는 저비용의 클라우드 스토리지에 안전하게 저장.
-
- 예: Amazon S3, Azure Blob Storage 등 저비용 스토리지 제공
- 장점: 데이터가 계속 저장될 수 있으며, 컴퓨팅 리소스는 필요할 때만 활성화할 수 있어 비용 효율적
컬럼(column) 지향 데이터베이스
컬럼(Column) 지향 데이터베이스는 데이터가 필드별로 저장되며, 쿼리 성능이 향상되는 장점이 있다. 데이터가 열 단위로 저장되어 특정 필드만 로드해도 되므로 입력 및 출력 작업이 줄어들고 쿼리 시간이 빨라져서 Row 지향 데이터베이스보다는 Column 지향 데이터베이스를 보통 채택하는 추세였다.
- 장점: 대규모 데이터 분석 시 쿼리 성능이 향상
- 반면, 행(row) 지향 데이터베이스: 데이터를 행 단위로 저장하며, OLTP(온라인 거래 처리) 작업에 적합
현대 데이터 스택의 구조
큰 그림에서는 ETL이 ELT로 전환된 것이 데이터 엔지니어링 관점에서 가장 큰 스택 변화이다. 전통적인 ETL(Extract, Transform, Load) 프로세스에서 데이터 로딩 후 변환(ELT, Extract, Load, Transform)으로의 전환이 이루어졌고, 이는 데이터 웨어하우스 내에서 변환을 수행하게 해준다. 이와 관련하여 다양한 Tool이 새롭게 개발되었는데, 이 중 대표적으로는 DBT가 있다.
- Tools:
- DBT (Data Build Tool): 데이터 변환을 위한 도구로, 데이터 모델링과 파이프라인 관리를 용이하게 해줌
- Fivetran, Stitchdata: 데이터 추출 및 로딩 도구
- Looker, Tableau: BI(Business Intelligence) 도구로 데이터 시각화와 분석을 지원
데이터 엔지니어링의 진화
소프트웨어 엔지니어링 원칙이 적용되고 있다. 현대 데이터 스택은 데이터 엔지니어링과 분석 엔지니어링의 모범 사례를 소프트웨어 엔지니어링의 원칙에 따라 설계하고 있다. 이는 데이터 통합 흐름의 각 계층을 프로덕션화하여 효율성을 높이고 있다.
포스팅 자료 출처
본 포스팅은 유데미(Udemy) 사이트의 "The Complete dbt (Data Build Tool) Bootcamp: Zero to Hero" 강의의 내용을 발췌하여 작성했습니다. (광고 X)
'Data Science > DBT' 카테고리의 다른 글
Airbnb 데이터 모델 프로젝트 준비하기 (Windows, DBT 프로젝트) (7) | 2024.09.01 |
---|---|
느린 변경 차원; Slowly Changing Dimension(SCD) (0) | 2024.08.11 |
데이터레이크(Data Lake)와 데이터레이크하우스(Data Lakehouse) (0) | 2024.08.11 |
데이터 웨어하우스 이해하기 (온프레미스 vs 클라우드 DW) (0) | 2024.08.05 |
ETL vs ELT, 왜 지금은 ELT를 선호하는가. (0) | 2024.08.05 |
댓글