nosql not only sql database

64
진진진 , 진진진 | 진진진 / UNTOC | 2012.05.11 NoSQL Not only SQL Database

Upload: jamuna

Post on 24-Feb-2016

95 views

Category:

Documents


0 download

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 Presentation

TRANSCRIPT

Page 1: NoSQL Not only SQL Database

진용준 , 박군제 | 마이황 / UNTOC | 2012.05.11

NoSQLNot only SQL Database

Page 2: NoSQL Not only SQL Database

작성자 진용준 , 박군제

소속팀 / 상위부서 기부천사 / UNTO작성년월일 2012.05.11문서분류 대외비

NoSQLNot only SQL Database

Page 3: NoSQL Not only SQL Database

Chapter 1

문서의 제목

DataBase Trend ?

Page 4: NoSQL Not only SQL Database

인터넷과 하드웨어의 발전

-> 검색 서비스 , 소셜 네트워크 서비스 , Dataware Housing 같은 Service 의 출현 .

Trend?

4

NoSQL:

Page 5: NoSQL Not only SQL Database

기존의

데이터에 대한 강한 수준의 정합성이나

견고성 보다는

손쉬운 확장성 , 고가용성이 더 중요 .

BASE 속성을 가짐 .

Trend?

5

NoSQL:

Page 6: NoSQL Not only SQL Database

BAsically Available.

Soft state.

Eventually consistent.

BASE 속성 ?

6

NoSQL:

Page 7: NoSQL Not only SQL Database

Chapter 2

문서의 제목

NoSQL

Page 8: NoSQL Not only SQL Database

정형화된 Table 로 구성된데이터 항목들의 집합체 .

사용자와 Relational Database 를연결시켜 주는 검색 언어를 SQL 이라고 함 .

Relational DataBase 에서는ACID 속성에 집중 .

Relational Data-base?

8

RDBMS:

Page 9: NoSQL Not only SQL Database

Atomicity( 원자성 )

Consistency( 일관성 )

Isolation ( 고립성 )

Durability ( 지속성 )

ACID 속성 ?

9

RDBMS:

Page 10: NoSQL Not only SQL Database

SQL(Structured Query Language) 을 사용하지 않는다 .

ACID 를 보장하지 않는다 .

분산 , 내고장성 (fault tolerance) 구조 이다 .

NoSQL?

10

NoSQL:

Page 11: NoSQL Not only SQL Database

Chapter 3

WHY NoSQL ?

Page 12: NoSQL Not only SQL Database

왜 비 관계형 이어야 하는가 ?

Why?

12

NoSQL:

RDB 는 확장하기가 어렵다 .

Page 13: NoSQL Not only SQL Database

Replication - 복제에 의한 확장M-S 구조 Read 는 빠르지만 Write 에서는 병목현상 발생 .

Partitioning(sharding) - 분할에 의한 확장RDB 의 가치는 관계 ! 파티션은 이 관계를 깬다 .

Why?

13

NoSQL:

Page 14: NoSQL Not only SQL Database

14

?

Page 15: NoSQL Not only SQL Database

Chapter 4

CAP Theorem ?

Page 16: NoSQL Not only SQL Database

16

Page 17: NoSQL Not only SQL Database

CAP Theorem?

17

NoSQL:

Consistency ( 일관성 )

: 모든 사용자는 항상 동시에같은 데이터를 조회

Page 18: NoSQL Not only SQL Database

CAP Theorem?

18

NoSQL:

Availability( 유효성 )

: 모든 사용자는 항상 Read/Write 할 수 있다 . 장애시에 다른 노드들이 작동 .

Page 19: NoSQL Not only SQL Database

CAP Theorem?

19

NoSQL:

Partition Tolerance( 파티션 허용 )

: 물리적 네트워크 분할에도 시스템은 잘 작동해야한다 .

Page 20: NoSQL Not only SQL Database

CAP Theorem?

20

NoSQL:

Consistency ( 일관성 )

Availability( 유효성 )

Partition Tolerance( 파티션 허용 )

Page 21: NoSQL Not only SQL Database

RDBMS = C + A (Critical Transaction 보장 )

NoSQL = C + P or A + P( 성능 보장형 , 비동기 SNS)

CAP Theorem?

21

NoSQL:

Page 22: NoSQL Not only SQL Database

22

Page 23: NoSQL Not only SQL Database

Meta-Data 방식

P2P 방식

Data 의 분산방식 ?

23

NoSQL:

Page 24: NoSQL Not only SQL Database

Master 서버에 Data 의 배치정보 저장 .

Master 서버를 경유하여 실제 Data 를 처리할 서버로 접속 .

정보를 중앙에서 관리 MapReduce 도 쉽다 .

Meta-Data 방식 ?

24

NoSQL:

Page 25: NoSQL Not only SQL Database

Hash 함수를 이용해서 특정 키를 서비스하는 서버를 찾는 방식

장애가 지역적인 Key 영역에서 나타남

분석 작업시 Meta 보다 어렵다 .

P2P 방식 ?

25

NoSQL:

Page 26: NoSQL Not only SQL Database

Chapter 5

Google Bigtable 을 통한NoSQL 알기 ?

Page 27: NoSQL Not only SQL Database

A Bigtable is a sparse, distributed, persistent multidimensional sorted map.

Bigtable?

27

NoSQL:

Page 28: NoSQL Not only SQL Database

A Bigtable is a sparse, distributed, persistent multidimensional sorted map.

Bigtable?

28

NoSQL:

Page 29: NoSQL Not only SQL Database

Map 이다 .

유일한 Key 와 그것에 관련된 하나의

Value 를 가진 자료형 .

NoSQL?

29

NoSQL:

Page 30: NoSQL Not only SQL Database

{ "zzzzz" : "woot", "xyz" : "hello", "aaaab" : "world", "1" : "x", "aaaaa" : "y"}

Map?

30

NoSQL:

Page 31: NoSQL Not only SQL Database

A Bigtable is a sparse, distributed, persistent multidimensional sorted map.

Bigtable?

31

NoSQL:

Page 32: NoSQL Not only SQL Database

Sorted 이다 .

일부 NoSQL (Hbase, BigTable) 이 가지고 있는 기능 .

Sorted?

32

NoSQL:

Page 33: NoSQL Not only SQL Database

A Bigtable is a sparse, distributed, persistent multidimensional sorted map.

Bigtable?

33

NoSQL:

Page 34: NoSQL Not only SQL Database

다차원 적이다 .

다차원 적인 Map 을 제공한다 .

Map 의 Map 을 지원 .

Multidimen-sional?

34

NoSQL:

Page 35: NoSQL Not only SQL Database

{ "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" }}

Page 36: NoSQL Not only SQL Database

A Bigtable is a sparse, distributed, persistent multidimensional sorted map.

Bigtable?

36

NoSQL:

Page 37: NoSQL Not only SQL Database

영구적이다 .

당연히 데이터는 어느 정도 이상은영구적이어야 한다 .

다만 메모리 기반의 noSQL 의 경우이 특성이 조금 떨어진다 .

Persis-tent?

37

NoSQL:

Page 38: NoSQL Not only SQL Database

A Bigtable is a sparse, distributed, persistent multidimensional sorted map.

Bigtable?

38

NoSQL:

Page 39: NoSQL Not only SQL Database

분산 기반이다 .

기존의 RDB 가 확장성에 대한제약이 심했기 때문에 설계 초기부터분산에 기반을 두게됨 .

ditrubuted?

39

NoSQL:

Page 40: NoSQL Not only SQL Database

A Bigtable is a sparse, distributed, persistent multidimensional sorted map.

Bigtable?

40

NoSQL:

Page 41: NoSQL Not only SQL Database

드물다 . ( 구조가 )

기존의 RDB 가 명확한 스키마 기반이었다면

유연성을 제공하는 스키마 .

Sparse?

41

NoSQL:

Page 42: NoSQL Not only SQL Database

관계형 데이터 모델이 아닌 키 - 값 데이터 모델

데이터는 분산된 노드에 파티션복제되어 저장

정합성보다는 단절내성

NoSQL 특징

42

NoSQL:

Page 43: NoSQL Not only SQL Database

UPDATE 와 DELETE

JOIN

ACID Transaction

고정 스키마

RDB 가 버려야 할 것들

43

NoSQL:

Page 44: NoSQL Not only SQL Database

확장성

NoSQL 에 기대 되는 특성

44

NoSQL:

배포 , 모델링 , 쿼리의 유연성

데이터의 지속성

원자성 높은 성능

결과적 일관성 Availability

Page 45: NoSQL Not only SQL Database

Chapter 6

문서의 제목

다이나모 Dynamo:Amazon, BigData Service

Page 46: NoSQL Not only SQL Database

키 - 값 쌍을 저장할 수 있는 분산 데이터 관리 시스템

Dynamo?

•고 가용성이 필요한 경우

•설계원칙

데이터 방식

분산 배치

-P2P 분산 기법 , DHT 알고리즘 이용

Data 의 신뢰성

- 일관성의 문제46

Dynamo:

Page 47: NoSQL Not only SQL Database

설계원칙

•Incremental scalabil-ity•Symmetry•Decentralization•Heterogeneity

47

Dynamo :

Page 48: NoSQL Not only SQL Database

p2p 분산 기법 이용

분산 배치

•hash(k) 와 hash(node id) 의 값을 동일한

주소 공간으로 맵핑해 관리하는 DHT 기법

사용

•DHT 기법을 이용해 데이터를 partitioning한다

48

Dynamo:

Page 49: NoSQL Not only SQL Database

DHT 알고리즘

•장점 : 룩업에 성능이 좋다 . 명령이 자동으로 이뤄질 수 있게 구성 . •단점 : 복잡한 쿼리의 사용이 힘들다 .

49

Dynamo:

N1N2

N3

Hash(N3) > N1 <= hash(N1)Hash(N1) > N2 <= hash(N1)Hash(N3) > N1 <= hash(N1)

< 키 공간 분할 >

키 공간분할 (keyspace partition)오버레이 네트워크 (overlay network)

Page 50: NoSQL Not only SQL Database

데이터 를 여러 노드에 복제

낙관적 정책을 사용

데이터 신뢰성

•장점 : 가용성을 보장•단점 : 일관성에 문제 발생

50

Dynamo:

Page 51: NoSQL Not only SQL Database

51

Dynamo:

1. 시스템 내부적으로 처리

2. 애플리케이션 처리

해결책

Page 52: NoSQL Not only SQL Database

Chapter 7

문서의 제목

카산드라 Cassandra:Facebook, BigData 의 위력

Page 53: NoSQL Not only SQL Database

Cassandra?

•p2p 네트워크 환경에서 구조화된 데이터

저장소를 제공하는 시스템 .• 페이스북에서 개발해 아파치 오픈소스로

공개 .

53

Cassan-dra:

빅테이블데이터 모델 + =컴팩션

처리 기법

혼합구성한시스템

카산드라+ 다이나모

일관적 해싱

Page 54: NoSQL Not only SQL Database

카산드라 시스템 구성

54

Cassan-dra:

로컬데이터클라이언트

로드밸런서

처리결과

클러스터 내임의의 서버가요청을 받음

키의 코디네이터 서버를 찾음

노드 1

노드 4(

코디네이터 )

노드 2

노드 3

카산드라 클러스터

Page 55: NoSQL Not only SQL Database

데이터 모델

55

Cassan-dra:

•클러스터

•키 스페이스

•칼럼 패밀리

•칼럼

•슈퍼 칼럼

Page 56: NoSQL Not only SQL Database

데이터 분산

56

Cassan-dra:

•Partitioner -RandomPartitioner -OrderPreservingParirioner -CollatingOrderPreservingPartitioner

•InitialToken

Page 57: NoSQL Not only SQL Database

데이터 저장

57

Cassan-dra:

•데이터 복사 -RackUnware -RackAware -DataCenterShard

Page 58: NoSQL Not only SQL Database

Chapter 8

문서의 제목

MongoDB:BigData 시대 최고의 NoSQL DB

Page 59: NoSQL Not only SQL Database

문서기반 데이터 저장소- 키 - 값 기반 저장소처럼 질의가 어렵다는 점과 관계형 데이터베이스의 확장성 문제를 해결

MongoDB?

•싱글머신

•마스터 - 슬레이브

•복제 - 셋

•샤드

59

Mon-goDB:

Page 60: NoSQL Not only SQL Database

데이터 모델과 인덱스

60

Mon-goDB:

•문서

•컬렉션

•데이터베이스

일반적으로 정적으로 스키마를 정의 할 필요가 없는 스키마 프리 특징

Page 61: NoSQL Not only SQL Database

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:

Page 62: NoSQL Not only SQL Database

데이터 복제와 샤딩

62

Mon-goDB:

•마스터 - 슬레이브 복제

•복제 - 셋

안정성 , 확장성을 지원 .

Page 63: NoSQL Not only SQL Database

샤딩

63

Mon-goDB:

•Mongod•Mongod(configsvr)•Mongos

여러 노드에 데이터를 저장시키는 분산 전략으로특정 서버가 특정 데이터의 영역을 담당하는 방식으로 데이터 분산

ShardeChunk

ShardeChunk

ShardeChunk

ShardeChunk

Config server

Mongos Client

Page 64: NoSQL Not only SQL Database

이 문서는 나눔글꼴로 작성되었습니다 . 설치하기

Q & A

감사합니다 .