민간 자격증/빅데이터전문가

3. 빅데이터 저장소

Zoo_10th 2024. 7. 4.

1. 빅데이터 저장소 개요

1-1. CAP 이론

빅데이터의 저장소를 다루기에 앞서, 일반적인 저장소에서 다루는 CAP 이론의 세 가지 요소인 일관성(consistency), 가용성(availability), 지속성(partition tolerance)에 대한 이해가 필수이다. 기존의 RDBMS는 지속성의 관점에서 충족하지 못하였으나, 최근 빅데이터 시대가 대두되며 지속성을 만족하는 빅데이터 저장소가 필수가 되어가고 있다.

1) 일관성Consistency

 - 모든 노드는 동일 시점에 동일 데이터 출력이 보장

2) 가용성Availability

 - 노드가 이용 불가능해도 다른 노드 정상 작동 보장

3) 지속성Partition Tolerance

 - 데이터 손실이 발생해도 시스템 정상 작동 보장

 - RDBMS의 한계

1-2. RDBMS의 대안

하둡
Hadoop
 - 하둡 분산파일시스템(HDFS)
 - 대용량 데이터 처리에 용이
NoSQL  - 비관계형 데이터 저장소
 - 데이터의 손실에 대처 가능
레디스
Redis
 - NoSQL의 일종, 키-값 구조 저장소
 - 인메모리 저장소 구조
우지
Oozie
 - 자바 서블릿 컨테이너 기반 작업 엔진
 - DAG 표현 기반 작업(job) 제어

2. 빅데이터 저장소 설계

2-1. 하둡 분산 파일 시스템 (HDFS)

1) 구성 요소

 - 네임노드 서버 : 파일의 위치(iNode), 메타정보 관리, 클라이언트 요청

 - 보조 네임노드 서버 : 네임노드 서버의 백업 역할, 파일 시스템 복구

 - 데이터 노드 서버 : 고정된 크기의 블록 단위로 데이터를 나누어 저장

2-2. NoSQL (Not-Only-SQL)

1) 데이터 모델과 특징

키밸류
KeyValue
특정 값을 고유키와 대응하여 스키마 없이 데이터를 저장하는 유형
순차적 키밸류
Ordered KeyValue
키밸류 쌍을 순차적으로 저장, 연속성을 부여함으로써 영역 스캔 효율↑
빅테이블
Bigtable
테이블 형식(Tabular), 2~3단계까지 재귀적 구조 형성 가능
도큐먼트
Document
객체 데이터베이스(ODBMS)의 파생형. 데이터 구조 깊이에 제한 없음
그래프
Graph
가변적인 데이터 노드 간 연결 구조제약없는 관계 형성 가능

하둡 시스템은 마스터-슬레이브와 라운드 테이블의 특성을 가지고 있다.

하둡은 마스터 노드와 슬레이브 노드가 존재하여, 메타 정보와 실제 데이터의 저장이 분리 되어 있다.

2) 시스템 구성

시스템 구성 마스터-슬레이브
Master-Slave
 - 마스터 노드가 슬레이브/데이터의 메타 정보 관리
 - 서버 추가/삭제 작업에 용이
 - 마스터에 부하 증가↑
라운드 테이블
Round Table
 - 해시테이블(HashTable) 기반 구조
 - 마스터 노드 없음 → 트래픽 분산 용이
 - 멤버 노드 추가/삭제 시 데이터 이동 →트래픽 증가

3. 빅데이터 저장소 관리

3-1.HDFS(하둡Hadoop)

3-1. 하둡 명령어

1) ls : 파일(폴더) 조회

   * 파일(폴더)를 조회하는 명령

hadoop fs - ls /

2) put : 파일 올리기

  * 로컬 파일을 HDFS에 저장하는 명령

hadoop fs -put l_mydata.txt h_myData.txt

3) get : 파일 가져오기

  * HDFS의 파일을 로컬로 가져오는 명령

hadoop fs -get h_mydata.txt l_myData.txt

4) cp : 파일 복사하기

  * HDFS의 파일을 HDFS 상에서 복사

hadoop fs -cp l_mydata.txt myData2.txt

5) rm : 파일 삭제하기

  * HDFS의 파일을 삭제하기

hadoop fs -rm myData2.txt

6) chmod : 권한 변경

  * HDFS 상의 파일의 권한을 변경

hadoop fs -chmod 700 myData.txt

7) chown : 소유권 변경

  * HDFS 상의 파일의 소유권을 변경

hadoop fs -chown gildong myData.txt

3-2. MongoDB (몽고DB)

빅데이터 저장소의 또 하나의 큰 흐름으로 NoSQL을 들 수 있다. 이러한 NoSQL의 철학을 그대로 구현한 저장소 플랫폼 중 하나가 바로 MongoDB이다. 

1)  MongoDB 특징

문서 지향 데이터베이스의 특징으로, 문서와 배열의 개념을 도입하고 있다. 또한 복잡한 계층 관계를 단순한 하나의 레코드로 표현 가능하며, NoSQL 데이터베이스의 철학을 따르고 있다.

MongoDB는 더블 링크드 리스트 구조를 가지고 있어, 데이터의 순방향 및 역방향 탐색이 가능하다는 특성을 가지고 있다.

MongoDB 특징 문서 지향 데이터베이스  - 문서(document)와 배열(array)의 개념 도입
 - 복잡한 계층 관계를 하나의 레코드로 표현 가능
 - NoSQL 데이터베이스
더블 링크드 리스트 구조  - 데이터의 순방향-역방향 탐색 가능

2) MongoDB 주요 개념

MongoDB
주요 개념
데이터베이스
Database
 - 컬렉션의 논리적/물리적인 집합
컬렉션
Collection
 - 구조적/개념적으로 유사한 도큐먼트의 집합
익스텐트
Extent
 - 데이터 저장을 위한 논리 단위
도큐먼트
Document
 - 정렬된 키(key)-값(value)의 집합

3) MongoDB 명령어

(1) use

  * 데이터베이스를 생성(사용)하는 명령

use mydatabase

(2) dropDatabase( )

  * 현재 사용하는 데이터베이스를 삭제

db.dropDatabase()

(3) createCollection( )

  * 컬렉션을 생성(사용)하는 명령

db.createCollection("test")

(4) drop( )

  * 컬렉션을 삭제하는 명령

db.test.drop()

(5) insert( )

  * 도큐먼트를 추가하는 명령

db.test.insert(
...{"title" : "Big Data", "author" : "gildong"}
...{"title" : "IOT", "author" : "gildong"});

(6)  remove( )

  * 도큐먼트를 제거하는 명령

db.test.remove({"title" : "Big Data"})
728x90

'민간 자격증 > 빅데이터전문가' 카테고리의 다른 글

4. 빅데이터 분석 도구 R (1)  (0) 2024.07.05
2. 빅데이터의 수집  (0) 2024.07.02
1. 빅데이터의 개념  (0) 2024.07.01

댓글