680 likes | 1.02k Views
NoSQL Not only SQL Database. 진용준 , 박군제 | 마이황 / UNTOC | 2012.05.11. NoSQL Not only SQL Database. 작성자 진용준 , 박군제 소속팀 / 상위부서 기부천사 / UNTO 작성년월일 2012.05.11 문서분류 대외비. Chapter 1. DataBase Trend ?. 문서의 제목. Trend?. NoSQL :. 인터넷과 하드웨어의 발전 -> 검색 서비스 , 소셜 네트워크 서비스 ,
E N D
NoSQLNot only SQL Database 진용준, 박군제| 마이황/ UNTOC| 2012.05.11
NoSQLNot only SQL Database 작성자 진용준, 박군제 소속팀 / 상위부서 기부천사 / UNTO 작성년월일2012.05.11 문서분류 대외비
Chapter 1 DataBase Trend ? 문서의 제목
Trend? NoSQL: 인터넷과 하드웨어의 발전 -> 검색 서비스, 소셜 네트워크 서비스, Dataware Housing 같은 Service의 출현. • 4
Trend? 기존의 데이터에 대한 강한 수준의 정합성이나 견고성 보다는 손쉬운 확장성,고가용성이 더 중요. BASE속성을 가짐. NoSQL: • 5
BASE 속성? NoSQL: BAsically Available. Soft state. Eventually consistent. • 6
Chapter 2 NoSQL 문서의 제목
Relational Database? RDBMS: 정형화된 Table로 구성된 데이터 항목들의 집합체. 사용자와 Relational Database를 연결시켜 주는 검색 언어를 SQL이라고 함. Relational DataBase에서는 ACID속성에 집중. • 8
ACID 속성? RDBMS: Atomicity(원자성) Consistency(일관성) Isolation (고립성) Durability (지속성) • 9
NoSQL? NoSQL: SQL(Structured Query Language) 을 사용하지 않는다. ACID를 보장하지 않는다. 분산, 내고장성(fault tolerance)구조 이다. • 10
Chapter 3 WHY NoSQL ?
Why? NoSQL: 왜 비 관계형 이어야 하는가? RDB는 확장하기가 어렵다. • 12
Why? NoSQL: Replication - 복제에 의한 확장 M-S 구조 Read는 빠르지만 Write에서는 병목현상 발생. Partitioning(sharding) - 분할에 의한 확장 RDB의 가치는 관계! 파티션은 이 관계를 깬다. • 13
Chapter 4 CAP Theorem ?
CAP Theorem? NoSQL: Consistency (일관성) : 모든 사용자는 항상 동시에 같은 데이터를 조회 • 17
CAP Theorem? NoSQL: Availability(유효성) : 모든 사용자는 항상 Read/Write 할 수 있다. 장애시에 다른 노드들이 작동. • 18
CAP Theorem? NoSQL: Partition Tolerance(파티션 허용) :물리적 네트워크 분할에도 시스템은 잘 작동해야한다. • 19
CAP Theorem? NoSQL: Consistency (일관성) Availability(유효성) Partition Tolerance(파티션 허용) • 20
CAP Theorem? NoSQL: RDBMS = C + A (Critical Transaction 보장) NoSQL = C + P or A + P (성능 보장형, 비동기SNS) • 21
Data의 분산방식? NoSQL: Meta-Data 방식 P2P 방식 • 23
Meta-Data 방식? NoSQL: Master 서버에 Data의 배치정보 저장. Master 서버를 경유하여 실제 Data를 처리할 서버로 접속. 정보를 중앙에서 관리 MapReduce도 쉽다. • 24
P2P방식? NoSQL: Hash 함수를 이용해서 특정 키를 서비스하는 서버를 찾는 방식 장애가 지역적인 Key 영역에서 나타남 분석 작업시Meta 보다 어렵다. • 25
Chapter 5 Google Bigtable을 통한NoSQL알기 ?
Bigtable? NoSQL: A Bigtable is a sparse, distributed, persistent multidimensional sorted map. • 27
Bigtable? NoSQL: A Bigtable is a sparse, distributed, persistent multidimensional sorted map. • 28
NoSQL? NoSQL: Map이다. 유일한 Key 와 그것에 관련된 하나의 Value를 가진 자료형. • 29
Map? NoSQL: {"zzzzz" : "woot","xyz" : "hello","aaaab" : "world","1" : "x","aaaaa" : "y"} • 30
Bigtable? NoSQL: A Bigtable is a sparse, distributed, persistent multidimensional sorted map. • 31
Sorted? NoSQL: Sorted 이다. 일부 NoSQL (Hbase, BigTable)이 가지고 있는 기능. • 32
Bigtable? NoSQL: A Bigtable is a sparse, distributed, persistent multidimensional sorted map. • 33
Multidimensional? NoSQL: 다차원 적이다. 다차원 적인 Map을 제공한다 . Map의 Map을 지원. • 34
Multidimensional? {"1" : {"A" : "x","B" : "z"},"aaaaa" : { "A" : "y","B" : "w"}, "aaaab" : { "A" : "world", "B" : "ocean" } NoSQL: ,"xyz" : {"A" : "hello","B" : "there"},"zzzzz" : {"A" : "woot","B" : "1337"}} • 35
Bigtable? NoSQL: A Bigtable is a sparse, distributed, persistent multidimensionalsorted map. • 36
Persistent? NoSQL: 영구적이다. 당연히 데이터는 어느 정도 이상은 영구적이어야 한다. 다만 메모리 기반의 noSQL의 경우 이 특성이 조금 떨어진다. • 37
Bigtable? NoSQL: A Bigtable is a sparse, distributed, persistent multidimensionalsorted map. • 38
ditrubuted? NoSQL: 분산 기반이다. 기존의 RDB가 확장성에 대한 제약이 심했기 때문에 설계 초기부터 분산에 기반을 두게됨. • 39
Bigtable? NoSQL: A Bigtable is a sparse, distributed, persistent multidimensionalsorted map. • 40
Sparse? NoSQL: 드물다. ( 구조가) 기존의 RDB가 명확한 스키마 기반이었다면 유연성을 제공하는 스키마. • 41
NoSQL특징 NoSQL: 관계형 데이터 모델이 아닌 키-값 데이터 모델 데이터는 분산된 노드에 파티션 복제되어 저장 정합성보다는 단절내성 • 42
RDB가 버려야 할 것들 NoSQL: UPDATE 와 DELETE JOIN ACID Transaction 고정 스키마 • 43
NoSQL에 기대 되는 특성 원자성 NoSQL: 확장성 높은 성능 Availability 결과적 일관성 배포, 모델링, 쿼리의 유연성 데이터의 지속성 • 44
Chapter 6 다이나모Dynamo:Amazon, BigData Service 문서의 제목
Dynamo? 키-값 쌍을 저장할 수 있는 분산 데이터 관리 시스템 Dynamo: • 고 가용성이 필요한 경우 • 설계원칙 데이터 방식 분산 배치 -P2P 분산 기법,DHT 알고리즘 이용 Data의 신뢰성 -일관성의 문제 • 46
설계원칙 Dynamo: • Incremental scalability • Symmetry • Decentralization • Heterogeneity • 47
분산 배치 p2p 분산 기법 이용 Dynamo: • hash(k)와 hash(node id)의 값을 동일한 주소 공간으로 맵핑해 관리하는 DHT기법 사용 • DHT 기법을 이용해 데이터를 partitioning한다 • 48
DHT 알고리즘 키 공간분할(keyspace partition) 오버레이 네트워크(overlay network) Dynamo: • 장점 : 룩업에 성능이 좋다. • 명령이 자동으로 이뤄질 수 있게 구성. • 단점 : 복잡한 쿼리의 사용이 힘들다. N2 Hash(N3) > N1 <= hash(N1) Hash(N1) > N2 <= hash(N1) Hash(N3) > N1 <= hash(N1) <키 공간 분할> N1 N3 • 49
데이터 신뢰성 Dynamo: 데이터 를 여러 노드에 복제 낙관적 정책을 사용 • 장점 : 가용성을 보장 • 단점 : 일관성에 문제 발생 • 50