3 분 소요

키워드🔑
데이터 저장 시스템, 분산 파일 시스템, 데이터베이스 클러스터, NoSQL, BASE, CAP 이론

03. 데이터 수집 및 저장 계획

2. 데이터 적재 및 저장

2) 데이터 저장


(1) 빅데이터 저장 기술

  • 빅데이터 저장 시스템: 대용량 데이터 집합을 저장, 관리하는 시스템
    • 대용량 저장공간, 빠른 처리성능, 확장성, 신뢰성, 가용성 등을 보장해야 함
  • 비대칭성(Asymmetric) 클러스터 파일 시스템: 메타데이터를 별도의 전용서버로 관리함 (접근 경로가 분리되어 있음)


(2) 빅데이터 저장기술 분류

  • 분산 파일 시스템
  • 데이터베이스 클러스터
  • NoSQL
  • 병령 DBMS
  • 네트워크 구성 저장 시스템
  • 클라우드 파일 저장 시스템


(3) 빅데이터 저장 기술 - 분산 파일 시스템
📌 컴퓨터 네트워크를 통해 고융하는 여러 호스트 컴퓨터의 파일에 접근할 수 있게 하는 시스템

  • 구글 파일 시스템(GFS): 구글 대규모 클러스터 서비스 플랫폼의 기반이 되는 파일 시스템
    • 고정된 크기 64MB의 청크들을 파일로 나눔 → 각 청크와 여러 복제본을 청크 서버에 분산 저장
    • 구성요소: 클라이언트, 마스터, 청크서버
    • 구조: 클라이언트가 마스터에게 파일 요정 → 마스터는 청크 서버에 요청 → 청크 서버는 클라이언트에게 청크 데이터 전송
  • 하둡 분산 파일 시스템(HDFS): 대용량 파일을 분산된 서버에 저정 → 데이터를 빠르게 처리할 수 있게 하는 시스템
    • 저사양 서버를 다수 이용하여 스토리지 구성 → 비용 관점에서 효율적
    • 블록 구조의 파일 시스템: 파일을 특정 크기의 블록(하둡 2.0에서 128MD)으로 나누어 분산 서버에 저장함
    • 구성: 하나의 네임노드 + 하나 이상의 보조 네임노드 + 다수의 데이터노드
    • 구성요소
      • 네임노드: 마스터 역할, 모든 메타데이터 관리, 데이터노드들로부터 하트비트를 받아 상태 체크
      • 보조 네임노드: 상태 모니터링 보조함
      • 데이터노드: 슬레이브 역할, 데이터 입출력 요청, 데이터 유실방지를 위해 블록을 3중 복제
  • 러스터(Lustre): 객체 기반의 클러스터 파일 시스템
    • 구성요소: 고속 네트워크로 연결된 클라이언트 파일 시스템, 메타데이터 서버, 객체 저장 서버
    • 계층화된 모듈 구조로 TCP/IP, 인피니밴드와 같은 네트워크를 지원함

💡
노드(Node)란, 컴퓨터 과학에 쓰이는 기초적인 단위이며,
대형 네트워크에선 장치나 데이터 지점(포인트)를 의미한다.
예를 들면 개인용 컴퓨터, 휴대전화, 프린터, 서버 같은 장치들을 말한다.



(4) 빅데이터 저장기술 - 데이터베이스 클러스터

  • 하나의 데이터베이스를 여러 개의 서버 상에 분산하여 구축
  • 성능, 가용성 향상을 위해 데이터베이스 파티셔닝 또는 클러스터링을 이용함
    • 데이터베이스 파티셔닝: 데이터베이스를 여러 부분으로 분할하는 것
  • 데이터베이스 클러스터 구분: 리소스 공유 관점에서 공유 디스크, 무공유 디스크로 구분함
    • 공유 디스크 클러스터: 모든 데이터에 접근 가능, 모든 노드가 데이터 수정 가능, 높은 수준의 고가용성 제공
    • 무공유 디스크 클러스터: 데이터 파일을 로컬 디스크에 저장, 파일을 노드 간 공유하지 않음
  • 데이터베이스 클러스터 종류: Oracle RAC / IBM DB2 ICE / SQL Server / MySQL
    • Oracle RAC: 공유 클러스터, 고가용성, 쉬운 확장
    • IBM DB2 ICE: 무공유 클러스터, 한 노드에 장애 발생 시 복구할 수 있도록 공유 디스크 방식 사용
    • SQL Server: 연합 데이터베이스 형태, 여러 노드로 확장할 수 있는 기능 제공
    • MySQL: 비 공유형, 메모리 기반 데이터베이스의 클러스터링을 지원함


(5) 빅데이터 저장기술 - NoSQL

  • NoSQL: 전통적인 RDBMS와 다른 DBMS를 지칭하기 위한 용어
    • 데이터를 저장하는 데에 고정된 테이블 스키마가 필요없고
    • 조인 연산을 사용할 수 없으며
    • 수평적으로 확장이 가능하다
  • NoSQL 일반적 특성
    • 관계형 모델을 사용하지 않음
    • 대규모 데이터를 처리하기 위한 기술
    • 확장성 / 가용성 / 높은 성능 제공
    • Schema-less: 자유롭게 필드 추가 가능
  • NoSQL의 특성 “BASE”
    • Basically Available: 언제든지 접근 가능 (항상 가용성)
    • Soft-state: 노드의 상태는 “외부”에서 전송된 정보를 통해 결정되는 속성 → 특정 시점에는 데이터 일관성이 보장되지 않음
    • Eventually consistently: 일정 시간이 지나면 데이터 일관성이 유지됨
  • NoSQL의 유형: 저장되는 데이터 구조에 따라 Key-Value / Column Family Data / Document / Graph Store
    • Key-Value Store: 유니크한 Key에 하나의 Value를 가진 형태
    • Column Family Data Store: Key안에 (Column, Value) 조합의 여러 필드를 가진 형태
    • Document Store: Value의 데이터 타입이 Document 타입
    • Graph Store: 시맨틱 웹과 온톨로지 분야에서 활용되는 그래프로 데이터를 표현
  • CAP 이론: Consistency / Availability / Partition Tolerance
    • 분산 컴퓨팅 환경은 일관성 / 유효성 / 분산 가능성 3가지 특성을 가지는데, 이중 2가지만 만족할 수 있다
    • NoSQL은 CAP이론을 기반으로 함
    • 일관성: 모든 사용자에게 같은 시간에는 같은 데이터를 보여줘야 한다
    • 유효성: 모든 클라이언트가 읽기/쓰기가 가능해야 한다
    • 분산 가능: 물리적 네트워크 분산환경에서 시스템이 원활하게 동작해야 한다
  • NoSQL 제품 종류: 구글 BigTable, 아파치 HBase, 아마존 SimpleDB, 마이크로소프트 SSDS 등


(6) 빅데이터 저장 고려사항

  • 요구사항 분석 절차: 요구사항 수집(도출) → 분석 → 명세 → 검증
    • 사용자가 요구사항을 분석하여 → 빅데이터 저장을 위한 제품 검토
  • 기존 시스템 기술 검토 절차 수립
    • 데이터가 대부분 테이블로 정의될 수 있는 형태 & 기존에 RDBMS 도입된 형태 → 기존 시스템 그대로 활용
    • 기존에 HDFS만 활용함 & SQL-like 분석환경 구축하고자 함 → HBase 추가 도입 권장
  • 데이터 저장의 안정성, 신뢰성 확보 방안 수립: 용량 산정, 데이터 파악, 시스템 구축 방안
  • 유형별 데이터 저장방식 수립
데이터 유형 요구 데이터 종류 저장 시스템
정형 RDB/스프레드시트 RDB
반정형 HTML/XML/JSON/웹 문서/웹 로그/센서 데이터 RDB, NoSQL
비정형 소셜 데이터/문서/이미지/오디오/비디오/IoT NoSQL, HDFS
  • 저장방식 결정
    • 저장방식 선정시 고려요소: 저장기술의 기능성, 분석방식 및 환경, 분석 대상 데이터 유형, 기존 시스템과의 연계

댓글남기기