nosql not only sql database
DESCRIPTION
NoSQL Not only SQL Database. 진용준 , 박군제 | 마이황 / UNTOC | 2012.05.11. NoSQL Not only SQL Database. 작성자 진용준 , 박군제 소속팀 / 상위부서 기부천사 / UNTO 작성년월일 2012.05.11 문서분류 대외비. Chapter 1. DataBase Trend ?. 문서의 제목. Trend?. NoSQL :. 인터넷과 하드웨어의 발전 -> 검색 서비스 , 소셜 네트워크 서비스 , - PowerPoint PPT PresentationTRANSCRIPT
진용준 , 박군제 | 마이황 / UNTOC | 2012.05.11
NoSQLNot only SQL Database
작성자 진용준 , 박군제
소속팀 / 상위부서 기부천사 / UNTO작성년월일 2012.05.11문서분류 대외비
NoSQLNot only SQL Database
Chapter 1
문서의 제목
DataBase Trend ?
인터넷과 하드웨어의 발전
-> 검색 서비스 , 소셜 네트워크 서비스 , Dataware Housing 같은 Service 의 출현 .
Trend?
4
NoSQL:
기존의
데이터에 대한 강한 수준의 정합성이나
견고성 보다는
손쉬운 확장성 , 고가용성이 더 중요 .
BASE 속성을 가짐 .
Trend?
5
NoSQL:
BAsically Available.
Soft state.
Eventually consistent.
BASE 속성 ?
6
NoSQL:
Chapter 2
문서의 제목
NoSQL
정형화된 Table 로 구성된데이터 항목들의 집합체 .
사용자와 Relational Database 를연결시켜 주는 검색 언어를 SQL 이라고 함 .
Relational DataBase 에서는ACID 속성에 집중 .
Relational Data-base?
8
RDBMS:
Atomicity( 원자성 )
Consistency( 일관성 )
Isolation ( 고립성 )
Durability ( 지속성 )
ACID 속성 ?
9
RDBMS:
SQL(Structured Query Language) 을 사용하지 않는다 .
ACID 를 보장하지 않는다 .
분산 , 내고장성 (fault tolerance) 구조 이다 .
NoSQL?
10
NoSQL:
Chapter 3
WHY NoSQL ?
왜 비 관계형 이어야 하는가 ?
Why?
12
NoSQL:
RDB 는 확장하기가 어렵다 .
Replication - 복제에 의한 확장M-S 구조 Read 는 빠르지만 Write 에서는 병목현상 발생 .
Partitioning(sharding) - 분할에 의한 확장RDB 의 가치는 관계 ! 파티션은 이 관계를 깬다 .
Why?
13
NoSQL:
14
?
Chapter 4
CAP Theorem ?
16
CAP Theorem?
17
NoSQL:
Consistency ( 일관성 )
: 모든 사용자는 항상 동시에같은 데이터를 조회
CAP Theorem?
18
NoSQL:
Availability( 유효성 )
: 모든 사용자는 항상 Read/Write 할 수 있다 . 장애시에 다른 노드들이 작동 .
CAP Theorem?
19
NoSQL:
Partition Tolerance( 파티션 허용 )
: 물리적 네트워크 분할에도 시스템은 잘 작동해야한다 .
CAP Theorem?
20
NoSQL:
Consistency ( 일관성 )
Availability( 유효성 )
Partition Tolerance( 파티션 허용 )
RDBMS = C + A (Critical Transaction 보장 )
NoSQL = C + P or A + P( 성능 보장형 , 비동기 SNS)
CAP Theorem?
21
NoSQL:
22
Meta-Data 방식
P2P 방식
Data 의 분산방식 ?
23
NoSQL:
Master 서버에 Data 의 배치정보 저장 .
Master 서버를 경유하여 실제 Data 를 처리할 서버로 접속 .
정보를 중앙에서 관리 MapReduce 도 쉽다 .
Meta-Data 방식 ?
24
NoSQL:
Hash 함수를 이용해서 특정 키를 서비스하는 서버를 찾는 방식
장애가 지역적인 Key 영역에서 나타남
분석 작업시 Meta 보다 어렵다 .
P2P 방식 ?
25
NoSQL:
Chapter 5
Google Bigtable 을 통한NoSQL 알기 ?
A Bigtable is a sparse, distributed, persistent multidimensional sorted map.
Bigtable?
27
NoSQL:
A Bigtable is a sparse, distributed, persistent multidimensional sorted map.
Bigtable?
28
NoSQL:
Map 이다 .
유일한 Key 와 그것에 관련된 하나의
Value 를 가진 자료형 .
NoSQL?
29
NoSQL:
{ "zzzzz" : "woot", "xyz" : "hello", "aaaab" : "world", "1" : "x", "aaaaa" : "y"}
Map?
30
NoSQL:
A Bigtable is a sparse, distributed, persistent multidimensional sorted map.
Bigtable?
31
NoSQL:
Sorted 이다 .
일부 NoSQL (Hbase, BigTable) 이 가지고 있는 기능 .
Sorted?
32
NoSQL:
A Bigtable is a sparse, distributed, persistent multidimensional sorted map.
Bigtable?
33
NoSQL:
다차원 적이다 .
다차원 적인 Map 을 제공한다 .
Map 의 Map 을 지원 .
Multidimen-sional?
34
NoSQL:
{ "1" : { "A" : "x", "B" : "z" }, "aaaaa" : { "A" : "y", "B" : "w" },"aaaab" : { "A" : "world", "B" : "ocean" }
Multidimen-sional?
35
NoSQL:
, "xyz" : { "A" : "hello", "B" : "there" }, "zzzzz" : { "A" : "woot", "B" : "1337" }}
A Bigtable is a sparse, distributed, persistent multidimensional sorted map.
Bigtable?
36
NoSQL:
영구적이다 .
당연히 데이터는 어느 정도 이상은영구적이어야 한다 .
다만 메모리 기반의 noSQL 의 경우이 특성이 조금 떨어진다 .
Persis-tent?
37
NoSQL:
A Bigtable is a sparse, distributed, persistent multidimensional sorted map.
Bigtable?
38
NoSQL:
분산 기반이다 .
기존의 RDB 가 확장성에 대한제약이 심했기 때문에 설계 초기부터분산에 기반을 두게됨 .
ditrubuted?
39
NoSQL:
A Bigtable is a sparse, distributed, persistent multidimensional sorted map.
Bigtable?
40
NoSQL:
드물다 . ( 구조가 )
기존의 RDB 가 명확한 스키마 기반이었다면
유연성을 제공하는 스키마 .
Sparse?
41
NoSQL:
관계형 데이터 모델이 아닌 키 - 값 데이터 모델
데이터는 분산된 노드에 파티션복제되어 저장
정합성보다는 단절내성
NoSQL 특징
42
NoSQL:
UPDATE 와 DELETE
JOIN
ACID Transaction
고정 스키마
RDB 가 버려야 할 것들
43
NoSQL:
확장성
NoSQL 에 기대 되는 특성
44
NoSQL:
배포 , 모델링 , 쿼리의 유연성
데이터의 지속성
원자성 높은 성능
결과적 일관성 Availability
Chapter 6
문서의 제목
다이나모 Dynamo:Amazon, BigData Service
키 - 값 쌍을 저장할 수 있는 분산 데이터 관리 시스템
Dynamo?
•고 가용성이 필요한 경우
•설계원칙
데이터 방식
분산 배치
-P2P 분산 기법 , DHT 알고리즘 이용
Data 의 신뢰성
- 일관성의 문제46
Dynamo:
설계원칙
•Incremental scalabil-ity•Symmetry•Decentralization•Heterogeneity
47
Dynamo :
p2p 분산 기법 이용
분산 배치
•hash(k) 와 hash(node id) 의 값을 동일한
주소 공간으로 맵핑해 관리하는 DHT 기법
사용
•DHT 기법을 이용해 데이터를 partitioning한다
48
Dynamo:
DHT 알고리즘
•장점 : 룩업에 성능이 좋다 . 명령이 자동으로 이뤄질 수 있게 구성 . •단점 : 복잡한 쿼리의 사용이 힘들다 .
49
Dynamo:
N1N2
N3
Hash(N3) > N1 <= hash(N1)Hash(N1) > N2 <= hash(N1)Hash(N3) > N1 <= hash(N1)
< 키 공간 분할 >
키 공간분할 (keyspace partition)오버레이 네트워크 (overlay network)
데이터 를 여러 노드에 복제
낙관적 정책을 사용
데이터 신뢰성
•장점 : 가용성을 보장•단점 : 일관성에 문제 발생
50
Dynamo:
51
Dynamo:
1. 시스템 내부적으로 처리
2. 애플리케이션 처리
해결책
Chapter 7
문서의 제목
카산드라 Cassandra:Facebook, BigData 의 위력
Cassandra?
•p2p 네트워크 환경에서 구조화된 데이터
저장소를 제공하는 시스템 .• 페이스북에서 개발해 아파치 오픈소스로
공개 .
53
Cassan-dra:
빅테이블데이터 모델 + =컴팩션
처리 기법
혼합구성한시스템
카산드라+ 다이나모
일관적 해싱
카산드라 시스템 구성
54
Cassan-dra:
로컬데이터클라이언트
로드밸런서
처리결과
클러스터 내임의의 서버가요청을 받음
키의 코디네이터 서버를 찾음
노드 1
노드 4(
코디네이터 )
노드 2
노드 3
카산드라 클러스터
데이터 모델
55
Cassan-dra:
•클러스터
•키 스페이스
•칼럼 패밀리
•칼럼
•슈퍼 칼럼
데이터 분산
56
Cassan-dra:
•Partitioner -RandomPartitioner -OrderPreservingParirioner -CollatingOrderPreservingPartitioner
•InitialToken
데이터 저장
57
Cassan-dra:
•데이터 복사 -RackUnware -RackAware -DataCenterShard
Chapter 8
문서의 제목
MongoDB:BigData 시대 최고의 NoSQL DB
문서기반 데이터 저장소- 키 - 값 기반 저장소처럼 질의가 어렵다는 점과 관계형 데이터베이스의 확장성 문제를 해결
MongoDB?
•싱글머신
•마스터 - 슬레이브
•복제 - 셋
•샤드
59
Mon-goDB:
데이터 모델과 인덱스
60
Mon-goDB:
•문서
•컬렉션
•데이터베이스
일반적으로 정적으로 스키마를 정의 할 필요가 없는 스키마 프리 특징
INDEX?•문서의 모든 필드에 대해 인덱스를 생성 가능
•필드를 검색 조건으로 할 경우 검색속도가
빠르다<< 인덱스 추가 >>db.<collection name>.ensureIndex( { <field name>, <1(desc), -1(asc) > } )예 : db.blog.ensureIndex( { author, 1 } )<< 위치 기반 검색 >>db.places.find( { loc : { $near : [50,30] } } ).limit(1)
61
Mon-goDB:
데이터 복제와 샤딩
62
Mon-goDB:
•마스터 - 슬레이브 복제
•복제 - 셋
안정성 , 확장성을 지원 .
샤딩
63
Mon-goDB:
•Mongod•Mongod(configsvr)•Mongos
여러 노드에 데이터를 저장시키는 분산 전략으로특정 서버가 특정 데이터의 영역을 담당하는 방식으로 데이터 분산
ShardeChunk
ShardeChunk
ShardeChunk
ShardeChunk
Config server
Mongos Client