빅데이터 관련 개념 정리

데이터 저장 기술

은행털이 2024. 4. 19. 23:18

빅데이터 저장 시스템

  • 대용량의 데이터 집합을 저장하고 관리하는 시스템
  • 대용량의 공간, 빠른 처리 성능, 확장성, 신뢰성, 가용성 등을 보장해야 함
  • 메타데이터를 별도의 전용 서버로 관리하는 비대칭형 클러스터 파일 시스템이 개발되고 있으며, 이 시스템은 메타데이터에 접근하는 경로와 데이터에 접근하는 경로가 분리된 구조를 가짐

 

1. 빅데이터 저장 제품 검토

빅데이터 저장을 위한 제품을 선택, 검토하기 위해 사용자 요구사항을 분석

단계 설명 예시
1. 요구사항 수집 - 문서나 인터뷰를 통해 수집하거나 기존 시스템 분석을 통해 요구사항을 수집 포커스 그룹 인터뷰 설문, 워크숍
2. 요구사항 분석 - 기능, 비기능 데이터 및 기타 요구사항 분석 데이터 유형이나 업데이트 주기
3. 요구사항 명세 - 요구사항을 문서화하여 정리하는과정
- 메타데이터, 변경 이력, 요구사항 목록으로 구성
사용자 요구 명세서
4. 요구사항 검증 - 요구사항 명세서를 배포하고 검토 회의를 통해 검증 요구사항 리뷰 및 검토 회의

 

 

1-1. 기존 시스템 기술 검토 절차 수립

기존의 데이터 웨어하우스의 데이터 유형에 따라 기술을 추가로 도입하거나 도입하지 않거나를 결정하는 과정

방안 설명
용량 산정 - 저장 시스템의 신뢰성을 확보하기 위해 저장 계획 수립단계에서 용량 산정이 필요
- 조직의 빅데이터 활용 목적에 부합하는, 현재와 향후 증가의 추세를 반영하여 적절한 저장 용량을 산정하는 것은 필수
데이터 파악 - 저장 대상이 되는 데이터의 유형, 크기, 저장 방식 및 기간 등을 파악
시스템 구축 방안 - 프라이빗 클라우드, 퍼블릭 클라우드와 같이 안정성 및 신뢰성을 고려한 시스템 구축 방안을 계획

 

 

1-2. 유형별 데이터 저장방식 수립

요구사항 분석 단계에서 요구사항에 따른 데이터를 유형별로 분류하고 수집주기 등의 특성을 분석하여 데이터 유형별로 저장 관리하기 용이한 저장 시스템을 선택

고려요소 설명
고려 요소 설명 - 데이터 모델이 무엇인지 고려
- 확장성 고려
- 트랜잭션, 일관성이 중요한 분야는 RDBMS 선택
분석 방식 및 환경 - 온라인 상시, 실시간 또는 배치기반 방식 중 고려
- 파일 시스템 형식, NoSQL, 데이터 웨어하우스 등 어떻게 구성할지를 고려
분산 대상 데이터 유형 - 기업 내/외부 데이터 고려
- 데이터의 발생량/속도 고려

 

 

2. 빅데이터 저장 기술 분류

접근 방식 설명 제품
분산 파일 시스템 컴퓨터 네트워크에 공유하는 여러 호스트 컴퓨터의 파일에 접근할 수 있는 파일 시스템 GFS, HDFS, 러스터
데이터베이스 클러스터 RDBMS 관리 시스템으로 하나의 데이터베이스를 여러 개의 서버상에 구축하는 시스템 오라클RAC, IBM DB2 ICE, MSSQL, MYSQL
NoSQL 데이터 모델을 단순화 해 RDB모델과 SQL을 사용하지 않는 모든 DBMS 또는 데이터 저장 장치 구글 BigTable, HBase, 아마존SimpleDB, 마이클로소프트 SSDS, Cloudata, Cassandra
병렬 DBMS 다수의 프로세서를 활용하여 여러 디스크의 질의, 갱신, 입출력 등 DB처리를 동시에 수행하는 시스템 VoltDB, SAP, HANA, Vertica, Greenplum, Netezza
네트워크 구성 저장 시스템 서로 다른 종류의 데이터 저장 장치를 하나의 서버에 연결하여 총괄적으로 관리하는 시스템 SAN, NAS
클라우드 파일 저장 시스템 클라우드 컴퓨팅 호나경에서 가상화 기술을 이용한 분산 파일 시스템 Amazon S3, OpenStack Swift

 

 

2-1. CAP Theorem

이 세가지의 특성에 따라 타깃 데이터베이스를 선택할 수 있음

  • Consistency(일관성) : 같은 시점에 모두에게 같은 데이터를 보여줘야 함
  • Availability(가용성) : 일부 노드가 다운되어도 시스템은 정상동작 해야 함
  • Partition-Tolerance(지속성) : 네트워크 전송 중 일부가 손실되어도 시스템은 정상 동작 해야 함

 

 

3. 데이터베이스 클러스터

하나의 데이터베이스를 여러 개의 서버상에 분산하여 구축하는 것

  • 데이터베이스 클러스터 : 하나의 데이터베이스를 여러 개의 서버에 구축
  • 데이터베이스 파티셔닝 : 데이터베이스를 여러 부분으로 분할하는 것
    - 각 파티션은 여러 노드로 분할 배치되어 여러 사용자가 각 노드에서 트랜잭션을 수행함
    - 데이터베이스 시스템을 구성하는 형태에 따라 단일 서버 파티셔닝, 다중 서버 파티셔닝으로 구분

파티셔닝의 효과

  • 병렬처리 : 파티션 사이의 병렬처리를 통해 빠른 데이터 검색및 처리 성능을 얻음
  • 고가용성 : 특정 파티션에 장애가 발생하더라도 서비스가 중단되지 않음.
  • 성능 향상 : 성능의 선형적인 증가 효과

 

3-1. 데이터베이스 클러스터 구성 형태

구분 설명
공유 디스크 클러스터 - 높은 수준의 고가용성을 제공하며 클러스터 노드 중 하나만 살아있어도 서비스 가능
- 데이터 파일을 공유하여 모든 데이터에 접근 가능하게 하는 방식
- 데이터 공유를 위해 SAN과 같은 네트워크 장비 필요
- 모든 노드가 데이터를 수정할 수 있어, 동기화 작업을 위한 채널이 필요함
무공유 클러스터 - 무공유 클러스터에서 데이터베이스는 자신이 관리하는 데이터 파일으 자신의 로컬 디스크에 저장하며 이 파일들은 노드간에 공유되지 않음
- 노드 확장에 제한은 없지만, 각 노드에 장애가 발생할 경우를 대비해 별도의 FTA를 구성해야 함

 

 

3-2. 데이터베이스 클러스터 종류

종류 설명
Oracle RAC - Oracle RAC는 공유 클러스터에 해당되므로 클러스터의 모든 노드에서 실행되고 데이터들이 공유 스토리지에 저장
- 고가용성과 확장이 쉬움
IBM DB2 ICE - DB2는 CPU, 메모리, 디스크를 독립적으로 운영하는 무공유방식의 클러스터링 지원
- 독립적으로 운영되지만 노드에 장애가 발생하면 복구할 수 있돌록 공유 디스크 방식을 사용해서 가용성도 보장함
SQL Server - SQL Server는 연합 데이터베이스 형태로 여러 노드로 확장할 수 있는 기능을 제공함
- 가용성을 확보할 수 있도록 Failover를 제공하지만 오라클과 같은 Active-Active가 아닌 Active-Standby 방식을 사용함
MySQL - 비공유형으로 메모리 기반 데이터베이스의 클러스터링 지원
- 데이터는 동기화 방식으로 복제되며 이를 위해 데이터 노드간에는 별도의 네트워크를 구성

 

 

 

4. NoSQL의 기술적 특성

특성 내용
스키마가 없음 - 데이터를 모델링하는 고정된 스키마 없이 키 값을 이용하여 다양한 형태의 데이터 저장 및 접근 가능
- 데이터 저장 방식은 Column, Value, Document, Graph 등의 기반으로 구분
탄력성 - 시스템 일부에 장애가 발생해도 클라이언트가 시스템에 접근이 가능
- 시스템의 다운이 없도록 하는 동시에 대용량 데이터의 생성 및 갱신 가능
- 시스템 규모와 성능 확장이 용이하고 입출력의 부하를 분산시키는데도 용이함
질의 - 수십에서 수천 대 규모로 구성된 시스템에서도 효율적으로 데이터 검색 및 처리를 할 수 있는 질의 언어, 처리 기술, API를 제공
캐싱 - 대규모 질의에도 고성능 응답속도를 제공할 수 있는 메모리 기반 캐싱 기술을 적용

 

 

5. NoSQL의 유형 분류

데이터 모델 설명 제품 예
key - value 저장 구조 - 가장 간단한 데이터 모델
- 범위 질의는 사용이 어려움(지원하는 모델도 있음)
- 응용 프로그램 모델링이 복잡함
아마존 Dynamo DB
아마존 S3
문서 저장 구조 - 문서에 따른 스키마(메타데이터)가 있음
- 레코드 간의 관계 설명이 가능
- 개념적으로 RDBMS와 비슷함
SimpleDB
CouchDB
MongoDB
열 기반 저장 구조 - 연관된 데이터 위주로 읽는 데 유리한 구조
- 하나의 레코드를 변경하려면 여러 곳을 수정해야 함
- 동일 도메인의 열 값이 연속되므로 압축 효율이 좋음
- 범위 질의에 유리
Cassandra
그래프 저장 구조 - 온톨로지와 시맨틱 웹 분야에서 활용되는 그래프로 데이터 표현 Neo4j
아마존 Neptune

 

 

 

6. 빅데이터의 주요 저장 및 관리 기술

  • Google File System (GFS)
    - 구글의 대규모 클러스터 서비스 플랫폼의 기반이 되는 파일 시스템
    - 파일을 고정된 크기(64MB)의 청크로 나누어 여러개의 복사본을 분산 저장함

  • Amazon S3 (Simple Storage Service)
    - 아마존의 인터넷 스토리지 서비스
    - 최소 1바이트부터 최대 5TB까지의 데이터가 포함된 객체의 읽기, 쓰기, 삭제가 가능하며 저장 객체 수의 제한이 없음

  • Hadoop Distributed File System (HDFS)
    - 아파치에서 분산 환경 컴퓨팅을 목표로 시작한 프로젝트
    - 저사양 다수의 서버를 이용해 스토리지 구성이 가능하여 비용 관점을로 효율적
    - 하나의 마스터(네임 노드)와 여러 개의 슬레이브(데이터 노드)로 클러스터 구성
    - 대용량 파일을 마지막 블록을 제외하고 64MB의 블록으로 분산하여 저장

  • DynamoDB
    - AWS에서 유, 무료로 서비스하며 사용자가 원하는 만큼 데이터베이스를 생성하여 데이터를 저장 가능
    - DB자동 분할 기능 지원
    - 모든 데이터는 SSD에 저장되며 속성, 항목, 테이블로 구성되고 속성은 Key - Value의 쌍으로 구성

  • MongoDB
    - 신뢰성과 확장성에 기반한 문서 지향 데이터베이스
    - 저장의 최소 단위가 문서이며 RDBMS의 테이블과 비슷한 컬렉션이라는 곳에서 수집, 관리함
    - 오토 샤딩(데이터 분할, 분산 저장) 가능
    - 기존 DBMS의 범위 질의, 보조인덱스, 정렬등의 연산과 맵리듀스 집계 연산 지원
    - BSON형태로 저장하며 C++로 작성

  • CouchDB
    - JavaScript로 구성된 문서 기반의 데이터베이스
    - MongoDB보다 질의, 확장성, 버전 관리등에서 성능이 더 우수하지만 Erlang 언어를 이용하여 접근성이 높지 않음

  • Cassandra
    - Key - Value 구조의 DBMS로 페이스북에서 적용하다가 구글을 이용하여 오픈소슬로 배포함
    - 토큰링 키 구간이 설정되어 있어 노드의 추가 및 제거만으로도 전체 저장 공간의 유연한 확장 가능
    - 다른 노드에 복제본을 구성하므로 특정 노드에 장애가 발생해도 서비스에 영향을 주지 않음

  • HBase (Hadoop dataBase)
    - 행, 열 그룹, 열 이름, 타임스탬프를 이용한 테이블 구조
    - HDFS 위에 설치되며 노드 관리에는 ZooKeeper를 사용함
    - 읽기 및 수정은 즉시, 맵리듀스 연산은 일괄로 처리

  • Redis(Remote Dictionary System)
    - 메모리 기반의 Key -Value 저장 공간 사용
    - 다양한 데이터 구조를 지원, 파일 싱크 기능 제공
    - 데이터 구조에는 String, Set, Stored set, Hashes, List 등이 있음

  • Riak
    - DynamoDB계열에 속하며 Key - Value 저장형식을 취하는데 Value에 JSON문서 자체가 저장되는 방식
    - 링 형태의 데이터 분산 저장 구조

  • HyperTable
    - HBase와 유사하나 C++ 언어로 개발되어 성능이 더 뛰어남
    - HQL이라는 SQL과 비슷한 명령어를 제공하여 RDBMS와 기능이 비슷함
  • ZooKeeper
    - 하둡의 분산 처리 시스템(Hadoop, Chukwa, Pig 등)을 일괄 관리하는 시스템

  • Voldemort
    - Linkedin에서 개발한 java 기반의 Key - Value 저장 형식 데이터 베이스
    - 복잡한 구조의 백엔드, 분산 대형 클러스터 환경에서 동작하며 일관성 있는 해싱으로 키와 관련된 값을 빠르게 조회 가능함

'빅데이터 관련 개념 정리' 카테고리의 다른 글

데이터 전처리  (0) 2024.04.20
탐색적 데이터 분석  (1) 2024.04.20
데이터 적재 기술  (0) 2024.04.19
데이터 품질 관리  (0) 2024.04.19
데이터 변환 기술  (1) 2024.04.19