한국교육검정원의 빅데이터전문가과정 중 빅데이터 처리과정 중 '저장'부분의 내용입니다. 공부를 계속할수록 슬슬 낯선 용어와 이론들이 나오기 시작합니다. 어려울수록 복습만이 답이죠. 차근차근 학습해보아요😄
1. 빅데이터 저장소 개요
1) CAP 이론
일관성 Consistency
: 모든 노드는 동일한 시점에 동일 데이터 출력이 보장
가용성 Availablity
: 노드가 이용 불가능해도 다른 노드 정상 작동 보장
지속성 Partition Tolerance
: 데이터 손실이 발생해도 시스템 정상 작동 보장
- RDBMS의 한계
2) RDBMS의 대안
ⓐ 하둡Hadoop
: 하둡 분산파일 시스템HDFS
- 대용량 데이터 처리에 용이
ⓑ NoSQL
: 비관계형 데이터 저장소
- 데이터의 손실에 대처 가능
ⓒ 레디스 Redis (NoSQL의 일종)
: NoSQL의 일정, 키-값 구조 저장소
- 인메모리 저장소 구조
ⓓ 우지 Oozie
: 자바 서블릿 컨테이너 기반 작업 엔진
- DAG표현 기반 작업job 제어
2. 빅데이터 저장소 설계
1) 하둡 분산 파일 시스템 HDFS 의 구성요소
ⓐ 네임노드 서버
: 파일의 위치iNode, 메타정보 관리, 클라이언트 요청
ⓑ 보조 네임노드 서버
: 네임노드 서버의 백업 역할, 파일 시스템 복구
ⓒ 데이터 노드 서버
: 고정된 크기의 블록 단위로 데이터를 나누어 저장

2) NoSQL(Not-Only-SQL) 의 분류
■ 데이터 모델별 분류
ⓐ 키벨류 KeyValue
: 특정 값을 고유키와 대응하여 스키마 없이 데이터를 저장하는 유형
ⓑ 순차적 키벨류 Ordered KeyValue
: 키밸류 쌍을 순차적으로 저장
- 연속성을 부여함으로써 영역 스캔 효율 증가
ⓒ 빅테이블BigTable
: 테이블형식Tabular
- 2~3단계까지 재귀적 구조 형성 가능
ⓓ 도큐먼트Document
: 객체 데이터베이스ODBMS의 파생형
- 데이터 구조 깊이에 제한 없음
ⓔ 그래프Graph
: 가변적인 데이터 노드 간 연결 구조
- 제약없는 관계 형성 가능
■ 시스템 구성
ⓐ 마스터-슬레이브Master-Slave
: 마스터 노드가 슬레이브/데이터의 메타 정보 관리
- 서버 추가/삭제 작업에 용이
- 마스터 부가 증가 가능
ⓑ 라운드 테이블Round Table
: 해시테이블hash Table기반 구조
- 마스터 노드 없음 → 트래픽 분산 용이
- 멤버 노드 추가/삭제 시 데이터 이동 필요 → 트래픽 증가
3) MongoDB 몽고DB
■ MongoDB의 특징
: 문서 지향 데이터베이스
- 문서document와 배열array의 개념 도입
- 복잡한 계층 관계를 하나의 레코드로 표현 가능
- NoSQL 데이터 베이스
: 더블 링크드 리스크 구조
- 데이터의 순방향-역방향 탐색 가능
■ MongoDB의 주요 개념
ⓐ 데이터베이스 Database
: 컬렉션의 논리적/물리적인 집합
ⓑ 컬렉션
: 구조적/개념적으로 유사한 도큐먼트의 집합
ⓒ 익스텐트
: 데이터 저장을 위한 논리 단위
ⓓ 도큐먼트
: 정렬된 키Key-값Value의 집합
3. 빅데이터 저장소 관리
1) 하둡 명령어
ls : 파일(폴더) 조회
> hadoop fs -ls /
Found 1 items
drwxr-xr-x - hadoop supergroup 0 2019-02-22 06:08 /user
put :로컬 파일을 HDFS에 저장
get : HDFS의 파일을 로컬로 가져오는 것
> hadoop fs -put 1_myData.txt h_myData.txt
> hadoop fs -get h_mydata.txt 1_myData.txt
cp : copy, HDFS안에서 파일 복사
rm :remove , HDFS 내에서 파일 삭제
> hadoop fs -cp myData.txt myData2.txt
> hadoop fs -rm myData2.txt
chmod : Change mode권한변경, HDFS상의 파일의 권한 변경
chown : Change own소유권 변경, HDFS상의 파일의 소유권을 변경
> hadoop fs -chmod 700 myData.txt
Found 1 items
> hadoop fs -chown bjhan myData.txt
2) MongoDB 명령
use : 데이터베이스를 생성(사용)하는 명령
dropDatabase() : 현재 사용하는 데이터베이스를 삭제
> use mydatabase
switched to db mydatabase
> db.dropDatabase()
createCollection() : 컬렉션을 생성(사용)하는 명형
drop() : 컬렉션 삭제
> db.createCollection('test')
{'ok' :1}
> db.test.drop()
true
insert() : 도큐먼트를 추가
> db.test.insert(
... {'title':'big data', 'author':'djhan'}
... {'title':'IoT', 'author':'bjhon'}
remove() : 도쿠먼트 제거
> db.test.remove({'title':'Big Data'})
'시간 관리 및 생산성 도구 > 빅데이터' 카테고리의 다른 글
[이론]6. 데이터 분석도구 R의 이해와 기본문법 (0) | 2022.08.24 |
---|---|
데이터 분석도구 R, R Studio 설치하기 (0) | 2022.08.24 |
[이론]4. 데이터의 분류와 수집: 방법론, 도구 (0) | 2022.08.23 |
[이론]3. 빅데이터의 사례와 전망 (0) | 2022.08.23 |
[이론]1. 빅데이터의 정의와 역사, 특성 (0) | 2022.08.22 |
댓글