[Coursera|DE] Data Repositories

Joo·2024년 8월 2일

Data Engineering

목록 보기
4/7
post-thumbnail

대표적인 데이터 리포지토리인 (비관계형)데이터 베이스, 데이터 웨어하우스, 데이터 레이크, 빅데이터 저장소에 대해 알아보자.

※ RDBMS는 예전에 다룬 적이 있으므로 비관계형 데이터베이스인 NoSQL 위주로!

1. 비관계형 데이터 베이스 (NoSQL)

"Not Only SQL"의 약자로, 고정된 스키마의 전통적인 행/열/테이블 데이터베이스 디자인을 사용하지 않으며, 일반적으로 SQL을 사용하지 않지만 일부는 SQL 또는 SQL과 유사한 인터페이스를 지원한다.

NoSQL은 스키마 없는 자유 형식으로 데이터를 저장할 수 있으며, 정형 데이터, 반정형 데이터, 비정형 데이터를 모든 레코드에 저장할 수 있다.

NoSQL DB의 네 가지 일반적인 유형

키-값 저장소, 문서 기반, 열 기반, 그래프 기반

키-값 저장소

  • 데이터는 Key-Value 쌍으로 저장됨
  • Key는 데이터의 속성을 나타내며 고유 식별자임
  • 대표적으로 Redis, Memcached, DynamoDB
  • 용도 : 사용자 세션 데이터 저장, 실시간 추천, 타겟 광고, 인메모리 데이터 캐싱
  • 단점 : 특정 데이터 값을 쿼리하거나 데이터 값 간의 관계가 필요하거나 여러 고유 키가 필요할 때는 적합하지 않음

문서 기반

  • 각 레코드와 연관된 데이터가 단일 문서 내에 저장됨
  • 유연한 인덱싱, 강력한 ad-hoc 쿼리, 문서 컬렉션에 대한 분석을 지원함
  • 대표적으로 MongoDB, DocumentDB, CouchDB, Cloudant
  • 용도 : 전자상거래 플랫폼, 의료 기록 저장, CRM 플랫폼, 분석 플랫폼
  • 단점 : 복잡한 검색 쿼리와 다중 작업 트랜잭션을 실행하는 데는 적합하지 않음

열 기반

  • 데이터는 열의 셀로 그룹화되어 저장됨
  • 열 그룹은 열 가족이라 불리며, 관련 열이 함께 액세스됨
  • 대표적으로 Cassandra, HBase
  • 용도 : 대량의 쓰기 요청이 필요한 시스템, 시계열 데이터, 날씨 데이터, IoT 데이터
  • 단점 : 복잡한 쿼리나 쿼리 패턴을 자주 변경할 경우 적합하지 않음

그래프 기반

  • 그래프 모델을 사용하여 데이터를 표현하고 저장함
  • 노드는 데이터를 포함하고, 화살표는 관계를 나타냄
  • 대표적으로 Neo4J, CosmosDB
  • 용도 : 소셜 네트워크, 실시간 제품 추천, 네트워크 다이어그램, 사기 탐지, 접근 관리
  • 단점 : 대량의 트랜잭션을 처리하는 데는 적합하지 않음

NoSQL의 장점

  • 대용량의 정형 데이터, 반정형 데이터, 비정형 데이터 처리 가능
  • 여러 데이터 센터에 걸쳐 분산 시스템으로 실행될 수 있으며, 클라우드 컴퓨팅 인프라를 활용할 수 있음
  • 새로운 노드를 추가하면 추가 용량과 성능을 제공하는 효율적이고 비용 효율적인 스케일 아웃 아키텍처를 제공

관계형 데이터베이스와 비관계형 데이터베이스의 주요 차이점

  • RDBMS
    • 모든 삽입 데이터가 타입과 구성이 명확하게 정의된 스키마를 가짐
    • 유지 비용이 많이 듦
    • ACID 준수를 지원해 트랜잭션의 신뢰성과 충돌 복구를 보장함
  • NoSQL
    • 스키마에 구애받지 않고 비정형 및 반정형 데이터를 저장하고 조작할 수 있음
    • 저비용의 상용 하드웨어를 위해 설계되어, 유지 비용이 상대적으로 저렴함


2. 데이터 웨어하우스

여러 소스에서 통합된 데이터를 저장하고 분석하기 위해 사용한다.
주로 비즈니스 인텔리전스와 데이터 분석에 중점을 둔다.

  • 데이터 유형 : 주로 정형 데이터
    • 데이터가 정리되고 변환된, 즉 구조화된 상태로 저장됨
  • 접근 방식 : ETL(Extract, Transform, Load) 과정을 통해 데이터 통합, OLAP(Online Analytical Processing) 서버를 통해 데이터 분석
    • 선변환, 후저장
  • 대규모 데이터를 저장하고 분석하기 위해 설계되었으며, 과거 데이터를 포함한 이력 데이터를 유지함
  • 주로 BI 애플리케이션, 보고서 작성, 고급 분석 작업 등에 사용됨
  • 데이터의 일관성이 높고, 분석 쿼리의 처리 속도가 빠르며, 데이터 품질 관리, 보안, 접근 제어등의 보안 강점이 있음
  • 그러나 DW 구축 및 유지비용이 높을 수 있으며, 일관된 형식으로 인해 유연성이 떨어질 수도 있고, 데이터 처리 시간이 길어 실시간 데이터 처리가 어려울 수 있음
  • 클라우드 기반 데이터 웨어하우스는 비용 절감, 무제한 스토리지, 빠른 재해 복구 등의 장점을 제공함

(참고) 데이터 마트

특정 비즈니스 기능이나 사용자 그룹을 위해 구축된 데이터 웨어하우스의 하위 섹션이다.
데이터 웨어하우스는 조직 전체의 데이터를 통합해 저장하고 분석하기 위한 중앙 저장소라면, 데이터 마트는 이를 특정 주제나 기능에 맞게 작은 단우로 나눈 것으로 볼 수 있다.

  • 특정 사용자 그룹 및 주제에 초점을 두었기 때문에(예, 매출, 고객 정보, 재무 관련 데이터 등), 데이터 웨어하우스에 비해 처리 속도가 더 빠름
  • 특정 그룹이나 부서에 필요한 데이터만을 포함하기 때문에, 민감한 데이터 접근을 더 잘 통제할 수 있음
  • 그러나 여러 데이터 마트가 존재할 경우, 동일한 데이터를 다르게 해석하거나 처리하는 문제가 발생할 수 있음 (데이터 일관성 문제)
  • 또한 데이터 중복 문제가 발생할 수 있으며, 유지관리 비용이 더욱 증가할 수 있음
  • 세 가지의 데이터 마트가 있음
    • 종속적 데이터 마트 : DW에서 데이터를 가져와 이를 변환하고 저장함 (데이터 마트가 데이터를 가공하는 역할 수행)
    • 독립적 데이터 마트 : DW와 독립적으로 운영되며, 다양한 원본 시스템(CRM, ERP 등)에서 직접 데이터를 가져와 저장하고 분석함
    • 혼합형 데이터 마트 : 종속적, 독립적 방법을 모두 사용해 데이터 통합 수행


3. 데이터 레이크

정형데이터 뿐만 아니라 반정형, 비정형 데이터를 원시 상태로 저장한다.
다양한 데이터 분석 및 ML, 데이터 사이언스를 위해 사용한다.

  • 데이터 유형 : 정형 데이터, 반정형 데이터(JSON, XML, CSV 등), 비정형 데이터(문서, 이메일, PDF 등) 저장
  • 접근 방식 : 데이터가 원시 상태로 저장되므로, 특정 스키마나 구조를 정의할 필요없이 데이터를 수집함 (필요에 따라 데이터를 변환해 분석 - ELT)
    • 선저장, 후변환
  • 주로 빅데이터 분석, 머신러닝, 데이터 사이언스, 실시간 데이터 분석 등에 사용됨
  • 스토리지 용량에 따라 확장 가능하며, 데이터를 다양한 방법으로 재사용할 수 있음
  • 비용이 적게 들고, 확장성이 좋고, 구조 미리 정의할 필요가 없어 유연성이 높으며, 실시간 데이터 처리에 좋음
    • DW에 비해 비용적 장점이 있고, 확장성이 뛰어나며, 클라우드 기반 확장이 더욱 용이함
  • 그러나 데이터 품질 관리가 어려워 데이터 레이크가 데이터 늪(Data Swamp)이 될 수 있음
  • 데이터 거버넌스 및 보안이 중요함


4. 배치 처리와 스트리밍 처리

  • 배치 처리(Batch Processing) : 일정한 시간 간격으로 데이터를 일괄 처리하는 방식
    • 대규모 데이터 처리에 유리하며, 주로 데이터 분석, 보고서 작성, 일괄 트랜잭션 처리 등에 사용됨
    • Stich, Blendo와 같은 툴을 사용할 수 있음
  • 스트리밍 처리(Stream Processing, Real-time Processing) : 데이터가 발생하는 즉시 실시간으로 처리하는 방식
    • 실시간 데이터 분석, 이벤트 감지, 실시간 알림 시스템 등에 사용됨
    • Apache Kafka, Apache Storm, Apache Samze와 같은 툴을 사용할 수 있음
데이터 저장소처리 방식
RDB주로 배치 처리에 적합하지만, 일부 실시간 처리 기능 지원 가능
DW배치 처리에 최적화되어 있으며, 일부 최신 DW는 스트리밍 처리도 지원
DM주로 배치 처리에 사용됨
DL배치 처리와 스트리밍 처리 모두에 적합함



5. ETL, ELT와 데이터 파이프라인

ETL (Extract, Transform, Load)

데이터를 추출, 변환, 로드하여 데이터 웨어하우스나 데이터 마트에 통합하는 과정이다. (즉, 선처리 후저장)
데이터가 분석에 적합한 형식으로 변환되어 저장될 수 있도록 하기 위해 자동화된 방식으로 수행된다.

  • 추출(Extract) : 다양한 소스 시스템(예, db, 파일, API 등)에서 데이터 추출
    • 배치 처리나 스트리밍 처리를 통해 추출 가능
  • 변환(Transform) : 추출한 데이터를 클렌징, 정제, 변환해 일관된 형식으로 만듦 (데이터 정규화, 집계, 계산, 중복 제거, 데이터 사제, 데이터 강화 등 포함)
  • 로드(Load) : 변환한 데이터를 데이터 웨어하우스나 데이터 마트에 로드
    • 초기 로딩 - 전체 데이터를 저장소에 처음으로 로드하는 과정
    • 증분 로딩 - 주기적으로 업데이트나 수정된 데이터만 로드하는 과정
    • 전체 갱신 - 기존 데이터를 지우고 새로 로드하는 과정
  • 데이터 분석에 적절한 형식으로 최적화할 수 있으며, 품질도 일관적으로 유지할 수 있음
  • 그러나, 데이터 로딩 전 변환이 이루어져서 처리 시간이 오래 걸릴 수 있으며, 고정된 스키마(형식)을 이용하므로 새로운 분석 수행 시 유연성이 떨어질 수 있음

ELT (Extract, Load, Transform)

데이터를 먼저 추출하여 목적지(주로 DL)에 로드한 후, 필요한 경우에 변환하는 과정이다. (즉, 선저장 후처리)
클라우드 기반 기술의 발전에 따라 새로이 발전한 방식이다.

  • 추출(Extract) : 원본 시스템에서 데이터를 추출해 그대로 목적지로 이동
  • 로드(Load) : 데이터를 원본 형태 그대로 목적지(주로 DL)에 로드
  • 변환(Transform) : 데이터 로드 후, 필요에 따라 변환 작업 수행
    • 분석 목적에 따라 데이터가 변환되며, 원본 데이터를 그대로 유지할 수 있어 다양한 분석에 유연하게 대처 가능
  • 데이터 로딩 및 처리 속도가 빠르고, 대규모 비정형 데이터 프로세싱에 적합함
  • 그러나 데이터 품질 관리가 까다로울 수 있고, 변환 작업이 저장소 내에서 이루어지기 때문에 리소스를 많이 소모할 수 있음

데이터 파이프라인

데이터를 원본 시스템에서 저장소로 이동시키는 전체 과정을 의미하는 포괄적인 용어다.
앞서 설명한 ETL과 ELT 모두 데이터 파이프라인의 일부로 간주될 수 있다.
Apache Beam, Airflow, Google DataFlow가 대표적인 데이터 파이프라인 구축 툴이다.
또한 배치 처리 및 스트리밍 처리 모두 지원 가능하다.

데이터 통합(데이터 오케스트레이션)에 대해서도 읽어보자! (https://blog.naver.com/prodiscovery/222691848697)텍스트

profile
적당히 공부한 거 정리하는 곳

0개의 댓글