책 소개
제목 : 빅데이터 기초 개념, 동인, 기법
저자 : Thomas Erl, Wajid Khattak, Paul Buhler
https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=117002656
5장. 빅데이터 저장에 대한 개념
1. 클러스터 (Cluster)
- 밀접하게 결합된 서버 또는 노드들의 모음
- 네트워크를 통해 서로 연결 되어 하나의 장치로 작동한다.
2. 파일 시스템 및 분산 파일 시스템
- 파일 시스템(File System) : 플래시 드라이브, DVD 및 하드 드라이브와 같은 저장 장치에 데이터를 저장하고 구성하는 방법
- 분산 파일 시스템(DFS, Distributed File System) : 클러스터 노드에 분산된 대용량 파일을 저장할 수 있는 파일 시스템
(e.g. 구글 파일 시스템(GFS), 하둡 분산 파일 시스템(HDFS) 등)
3. NoSQL 데이터베이스
- 반정형, 비정형 데이터 수용 가능
- 높은 확장성과 결합 포용성을 가진 비관계형 데이터베이스
- 애플리케이션 내 호출이 가능한 API 기반 쿼리 인터페이스 제공
4. 샤딩 (Sharding)
- 대규모의 데이터 세트를 샤드(Shard)라 불리는 더 작고 관리하기 쉬운 데이터 세트로 수평 분할하는 프로세스
- 샤드는 서버, 머신과 같은 여러 노드에 분산되어 저장된다.
- 샤딩을 사용하면 여러 노드에 처리 작업량을 분산시켜 수평 확장성 확보 가능
5. 복제 (Replication)
- 여러 노드에 레플리카(Replica)라고 하는 데이터 세트의 복사보 저장
- 동일한 데이터가 다양한 노드에 복제 되므로 복제는 확장성과 가용성을 제공한다.
- 복제 구현 방법
- 마스터 슬레이브
- 노드들은 마스터-슬레이브 구성으로 정렬
- 쓰기는 마스터 노드에서만. 읽기는 모든 슬레이브 노드에서 가능
- 읽기 작업의 비일관성 가능
- 피어 투 피어
- 모든 노드가 동일 수준에서 작동
- 여러 피어 간 동일한 데이터를 동시에 업데이트 함으로써 비일관성 문제 발생 가능
- 비일관성 문제 해결법
- 비관적 동시성 (Pessimistic Concurrency) : 비일관성 사전 방지. 데이터를 한 번에 하나만 업데이트 가능
- 낙관적 동시성 (Optimistic Concurrency) : 비일관성 사후 대응. 비일관성이 발생해도 결국 모든 업데이트가 전파 되고 나면 일관성이 유지될 것
- 마스터 슬레이브
CAP 정리 (Brewer's Theorem)
- 분산 데이터베이스 시스템과 관련된 세 가지의 제약 조건
- 클러스터에서 수행되는 분산 데이터베이스 시스템은 다음 3가지 속성 중 2가지만 제공 가능
- 일관성 (Consistency) : 노드에 무관하게 읽기 작업은 동일 데이터 생성
- 가용성 (Avaliability) : 읽기/쓰기 요청은 성공/실패의 형태로 확인 가능
- 분할 포용성 (Partition Tolerance) : 데이터베이스 시스템은 클러스터를 여러 개의 샤일로(silo)로 분할시키는 통신 중단이 있어도, 읽기/쓰기 요청 처리
ACID
- 트랜젝션 관리와 관련된 데이터베이스 설계 원리
- 각 약자의 의미
- 원자성 (Atomicity)
- 일관성 (Consistency)
- 고립성 (Isolation)
- 지속성 (Durability)
- 일관성 유지를 위해 비관적 동시성 활용
BASE
- CAP 이론을 기반으로 분산 기술을 사용하는 데이터베이스 시스템 설계 원리
- 각 약자의 의미
- 이용 가능한 (Basically Available)
- 소프트 상태 (Soft state)
- 궁극적 일관성 (Eventual Consistency)
- 일관성보다 가용성이 좋아진다.
- 일관성이 부족하면 문제 되는 트랜젝션 시스템에는 사용 X (e.g. 은행 계좌 관리)
'TechBooks' 카테고리의 다른 글
[Programming] 객체지향의 사실과 오해 #4장 (0) | 2020.07.05 |
---|---|
[BigData] 빅데이터 기초 개념,동인,기법 #6장 (0) | 2020.07.04 |
[Programming] 객체지향의 사실과 오해 #3장 (0) | 2020.07.03 |
[BigData] 빅데이터 기초 개념,동인,기법 #3장, 4장 (0) | 2020.07.01 |
[Programming] 객체지향의 사실과 오해 #2장 (0) | 2020.06.30 |
댓글