ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • DataBase에 대해
    <견고한 데이터 엔지니어링> 2023. 10. 9. 19:15
    728x90

    Database

     

    • 데이터베이스 관리 시스템(DBMS)
    • 조회
    • 쿼리 옵티마이저
    • 확장과 분산
    • 모델링 패턴
    • CRUD
    • 일관성

     

    관계형 vs 비관계형

     

    관계형

    • 가장 일반적인 애플리케이션 백엔드 중 하나
    • 데이터는 관계 테이블에 저장되며, 각 관계에는 여러 필드(열)가 포함
    • 테이블 내의 각 관계는 동일한 스키마(string, integer, float 등의 정적 유형이 할당된 일련의 열)를 가진다
    • 행은 일반적으로 연속된 바이트 시퀀스로 디스크로 저장
    • 테이블은 일반적으로 테이블의 각 행에 대한 고유 필드인 기본 키에 의해 인덱싱
    • 다른 테이블의 기본 키 값과 연결된 값이 있는 필드인 다양한 외래 키를 가질 수도 있다.
    • 일반적으로 ACID 준수
    • 정규화된 스키마, ACID 컴플라이언스 및 높은 트랜잭션 비율 지원을 결합한 관계형 데이터베이스 시스템은 빠르게 변화하는 애플리케이션 상태를 저장하는 데 이상적

     

    비관계형

     

    • 관계형 패러다임을 포기한 모든 종류의 데이터베이스
    • 관계형 제약 조건을 해제하면 성능, 확장성, 스키마 유연성을 높일 수 있음
    • 일반적으로 강력한 일관성, 조인 또는 고정 스키마와 같은 RDBMS 특성을 포기

     

    키-값 쌍 저장소

     

    • 각 레코드를 고유하게 식별하는 키를 사용해 레코드를 검색하는 비관계형 데이터베이스
    • 많은 프로그래밍 언어로 제공되는 해시 맵이나 사전 데이터 구조와 비숫하지만 잠재적으로 확장성이 뛰어남
    • 높은 내구성과 지속성이 요구되는 애플리케이션을 지원할 수 있음

     

    도큐먼트 저장소

    • 특화된 키-값 쌍 저장소
    • 도큐먼트 : 중첩된 객체, 각 도큐먼트를 실질적인 목적을 위한 JSON 객체로 간주할 수 있다.
    • 도큐먼트는 컬렉션에 저장되고 키로 검색
    • 컬렉션 : 관계형 데이터베이스의 테이블과 거의 동일

     

    RDBMS 도큐먼트 데이터베이스
    테이블 컬렉션
    도큐먼트, 항목, 엔티티
    • 도큐먼트 저장소는 조인을 지원하지 않음
    • 일반적으로 JSON의 모든 유연성을 수용하며 스키마나 유형을 강제하지 않는다.
    • 애플리케이션의 성장에 따라 쉽게 변화가 가능, 그러나 관리와 쿼리에 있어서 절대적인 악몽이 될 수 있음
    • 일반적으로 ACID를 준수하지 않음
    • 도큐먼트 저장소 분석 실행을 위해선 엔지니어가 풀 스캔을 실행해 컬렉션에서 모든 데이터를 추출하거나 CDC 전략을 사용해 이벤트를 대상 스트림으로 보내야 한다.

     

    와이드-컬럼 데이터베이스

     

    • 빠른 트랜잭션 속도와 매우 짧은 지연시간으로 대량의 데이터를 저장하는 데 최적화
    • 매우 빠른 쓰기 속도와 방대한 양의 데이터로 확장 가능
    • 와이드 : PB급 데이터, 초당 수백만 건의 요청 및 10ms 미만의 지연 시간 지원 가능
    • 와이드 컬럼 데이터베이스의 운영 특성을 파악해 적절한 구성을 설정하고, 스키마를 설계하며, 적절한 행 키를 선택해 성능을 최적화하고 일반적으로 발생하는 운영문제를 방지
    • 이 데이터베이스는 대량의 데이터에 대한 신속한 스캔을 지원하지만 복잡한 쿼리를 지원하지 않으며 조회용 인덱스는 오직 1개

     

    그래프 데이터베이스

     

    • 수학적 그래프 구조로 데이터를 명시적으로 저장
    • Neo4j 이외 아마존, 오라클에서는 그들만의 그래프 데이터베이스 제품을 제공
    • 요소  연결성을 분석   그래프 데이터베이스는 매우 적합
    • 요소 간의 복잡한 순회를 이해해야 할 시 그래프 데이터베이스가 적합
    • 노드(사용자)와 에지(사용자 간 연결) 저장
    • 노드와 에지에 모두에 대한 풍부한 데이터 모델을 지원
    • SPARQL, RDF, GraohQL, Cyper 등의 특수 쿼리 언어 사용

     

    그래프 데이터베이스는 운영상의 관점에서 유용하며, 최신 애플리케이션에 중요한 일련의 복잡한 사회적 관계를 지원하여 데이터 과학과 ML의 관점에서도 매력적이며, 잠재적으로 인간의 상호 작용과 행동에 관한 깊은 통찰력을 제공할 수 있다.

    "원천 시스템 그래프 데이터를 기존에 선호하는 패러다임 중 하나로 매핑"

    "원천 시스템 자체 내에서 그래프 데이터 분석"

    "그래프별 전용 분석 도구 채택"

    그래프 데이터는 관계형 데이터베이스의 행으로 다시 인코딩할 수 있으며, 분석 사용 사례에 따라 적합한 솔루션이 될 수 있다. 트랜잭션 그래프 데이터베이스도 분석용으로 설계되어 있지만 대규모 쿼리가 운영 시스템에 과부하를 줄 수 있다. 최신의 클라우드 기반 그래프 데이터베이스는 대량의 데이터에 대한 읽기 중심의 그래프 분석을 지원한다.

    검색 데이터베이스

    • 데이터의 복잡하면서도 직관적인 의미의 구조적 특성을 검색하는 데 사용하는 비관계형 데이터베이스
    • 텍스트 검색 / 로그 분석 이라는 두 가지 주요 사용 사례 존재
    • 빠른 검색으로 인기가 있음

     

    시계열

    • 시간별로 정리된 일련의 값
    • 정기적으로 혹든 산발적으로 시간에 따라 기록되는 모든 이벤트는 시계열 데이터
    • 시계열 데이터의 검색과 통계 처리에 최적화
    • 워크로드는 쓰기 작업이 많은 편이며 그 결과 시계열 데이터베이스는 메모리 버퍼링을 사용해 빠른 쓰기와 읽기를 지원하는 경우가 많음
    • 온도/ 공기 품질 센서. -> 측정 데이터(정기적)
    • 모션 센서가 움직임 감지. -> 이벤트 기반 데이터(불규칙)
    • 타임스탬프와 작은 필드 집합이 포함
    • 시간에 따라 데이터가 달라지므로 타임스탬프에 따라 정렬

     

    728x90
Designed by Tistory.