본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.
Big Data Storage Technology; 빅데이터 저장 기술
수집한 대용량 데이터를 저장소에 옮겨 넣고(적재) 분산 환경에 보관하는(저장) 기술

데이터가 한 서버에 담기지 않을 만큼 커지면 여러 서버에 나눠 저장하고, 일부 서버가 고장 나도 데이터를 잃지 않게 복제해야 한다. 관계형 DB만으로는 이 요구를 맞추기 어려워 분산 파일 시스템과 NoSQL이 쓰인다.

도구 설명
Flume Source → Channel → Sink 구조로 로그·이벤트를 모아 HDFS 등에 적재하는 아파치 프로젝트
Kafka 토픽(topic)과 파티션 단위로 메시지를 저장·중계하는 분산 발행/구독 플랫폼. 생산자와 소비자를 분리한다
Sqoop RDBMS와 HDFS 사이에서 대량 데이터를 가져오고(import) 내보낸다(export). 2021년 아파치 프로젝트 활동이 종료됐다
Logstash Elastic Stack의 수집·가공 파이프라인. 입력 → 필터 → 출력 구조로 엘라스틱서치 등에 적재한다
벌크 로딩(Bulk Loading) 한 건씩 넣지 않고 대량 데이터를 한 번에 적재한다. 로그·인덱스 처리를 줄여 속도를 높인다

분산 파일 시스템

편집 원본 편집
  • GFS(Google File System) : 구글이 설계한 분산 파일 시스템. 마스터 1개와 여러 청크 서버로 구성되고, 파일을 고정 크기 청크(64MB)로 나눠 복제 저장한다
  • HDFS : GFS를 모델로 한 하둡의 파일 시스템. 메타데이터를 관리하는 네임노드와 실제 블록을 저장하는 데이터노드로 구성된다. 기본 블록 크기는 128MB, 기본 복제 수는 3이다

관계형 스키마와 조인을 포기하는 대신 수평 확장(scale-out)과 유연한 스키마를 택한 DB이다.

유형 저장 구조 예
키-값(Key-Value) 키 하나에 값 하나. 가장 단순하고 빠르다 Redis, DynamoDB, Riak
컬럼(Column-family) 행 키 아래 컬럼 패밀리 단위로 저장한다 HBase, Cassandra
문서(Document) JSON·BSON 같은 문서 단위로 저장한다 MongoDB, CouchDB
그래프(Graph) 노드와 관계(엣지)로 저장한다 Neo4j

그래프 DB는 그래프 데이터베이스를 참고한다.

분산 시스템은 다음 세 가지를 동시에 모두 만족할 수 없다. 네트워크 분할(P)은 피할 수 없으므로 실제로는 분할이 생겼을 때 C와 A 중 무엇을 택할지의 문제가 된다.

  • Consistency(일관성) : 모든 노드가 같은 시점에 같은 데이터를 보여 준다
  • Availability(가용성) : 모든 요청이 성공이든 실패든 응답을 받는다
  • Partition tolerance(분할 내성) : 노드 사이 통신이 끊겨도 시스템이 동작한다

자세한 내용은 CAP 이론, 확장 개념은 PACELC 이론을 참고한다.

RDB의 ACID와 대비되는 NoSQL의 성질이다(BASE).

  • Basically Available : 부분 장애가 있어도 기본적으로 응답한다
  • Soft state : 외부 입력이 없어도 상태가 바뀔 수 있다
  • Eventually consistent : 시간이 지나면 결국 일관된 상태가 된다

데이터 웨어하우스·데이터 레이크·데이터 마트

편집 원본 편집
구분 데이터 웨어하우스 데이터 레이크 데이터 마트
목적 전사 통합 분석 원본 보관, 탐색·머신러닝 특정 부서·주제 분석
데이터 정제된 정형 데이터 정형·반정형·비정형 원본 웨어하우스의 부분 집합
스키마 쓰기 시 정의(Schema-on-Write) 읽기 시 정의(Schema-on-Read) 쓰기 시 정의
주 사용자 경영진, 분석가 데이터 과학자 현업 부서

클라우드 스토리지

편집 원본 편집
  • 객체 스토리지 : 파일을 메타데이터와 함께 객체로 저장한다. 예) Amazon S3, Azure Blob Storage. 데이터 레이크의 저장소로 많이 쓰인다
  • 블록 스토리지 : 가상 디스크처럼 블록 단위로 제공한다. DB 저장소에 쓴다
  • 파일 스토리지 : 계층형 디렉터리로 여러 서버가 공유한다
  • NoSQL 4유형과 제품 짝짓기(HBase·Cassandra = 컬럼, MongoDB = 문서, Redis = 키-값, Neo4j = 그래프)
  • CAP의 세 요소와 "셋을 동시에 만족할 수 없다"는 내용, BASE와 ACID 대비
  • HDFS 네임노드·데이터노드 역할, 데이터 웨어하우스와 데이터 레이크의 차이