데이터 적재
데이터 적재 도구
데이터 수집도구를 이용한 데이터 적재
- 플루언티드(fluentd)
- 플럼 (flume)
- 스크라이브 (scribe)
- 로그스태시 (logstash)
데이터 저장
빅데이터 저장시스템
- 파일 시스템
- 데이터베이스 저장방식
분산 파일 시스템
- 하둡 분산파일 시스템
- 아파치 진영에서 시작
- HDFS는 대용량 파일을 클러스터에 여러 블록으로 분산해서 저장. 블록들은 마지막 블록을 제외하고 모두 크기가 동일 (기본 64mb)
- 마스터 하나와 슬레이브 여러개로 구성
- 마스터 : 네임노드라고도 하며 슬레이브를 관리하는 메타데이터와 모니터링 시스템을 운영
- 슬레이브 : 데이터노드라고도 하며 데이터 블록을 분산처리.
- 상용 소프트웨어에 비해서는 기술 지원이 쉽지는 않다.
- 데이터 복제기법을 데이터 손상 방지로 사용.
- 구글 파일 시스템
- 마스터, 청크서버, 클라이언트로 구성
- 마스터 : GFS 전체 상태를 관리하고 통제
- 청크서버 : 물리적인 하드디스크의 실제 입출력 처리
- 클라이언트 : 파일을 읽고 쓰는 동작을 요청.
NOSQL
전통적인 관계형 DB보다 유연한 데이터의 저장 및 검색 지원
대규모 데이터를 처리하기 위한 확장성, 가용성 및 높은 성능 지원
CAP 이론
분산 컴퓨팅의 특징 : 일관성(consistency), 가용성(availability), 지속성(partition tolerance)
- 일관성 : 분산 환경에서 모든 노드가 같은 시점에 같은 데이터를 보여줘야 한다.
- 가용성 : 일부 노드가 다운되어도 다른 노드에 영향을 주지 않아야 한다.
- 지속성 : 데이터 전송 중에 일부 데이터를 손실하더라도 시스템은 정상 동작해야 한다.
CAP 이론의 적용
- RDBMS : 일관성과 가용성 선택
- NoSQL : 일관성/가용성 둘 중 하나 포기. 지속성 보장
NoSQL의 특징
- 스키마가 없다
- 탄력성
- 질의 기능
- 캐싱
NoSQL의 데이터 모델
- key-value
- 간단한 모델에 기반을 두고 있다.
- 확장성이 뛰어나고, 질의 응답시간이 빠르다.
- 범위 질의는 사용이 어렵다.
- 응용 프로그램 모델링이 복잡.
- Dynamo, Redis
- column-oriented
- 여러개의 노드로 분할해 저장.
- 연관된 데이터 위주로 읽는데 유리한 구조
- 하나의 레코드 변경시 여러 곳을 수정해야 함
- 동일 도메인의 열 값이 연속되므로 압축 효율이 좋다.
- 범위 질의에 유리하다.
- Bigtable, Cassandra
- Document-based
- 문서의 내부 구조에 기반한 복잡한 데이터 저장 지원
- 레코드 간의 관계 설명이 가능하다.
- 개념적으로 RDBMS와 유사하다.
- MongoDB