CS/Database

[데이터베이스] 13. NoSQL and Big Data Storage Systems (Ch. 24, 25)

공영재 2023. 12. 10. 20:33

Reference - Fundamentals of Database Systems 7th edition

 

 

 

NoSQL

 

= Not only SQL
기존 sql은 table 안에서 연산을 했는데, 이와 다르게 일관성이 결여된 경우 사용한다. 데이터의 유실에 덜 민감해야 한다.

NoSQL은 분산데이터베이스의 장점을 많이 따르며, 정형화된 형태가 아닌 다른 형태로 저장된다.

예를 들면 social media, web links, user profiles, tweets 등이 포함된다.

 

BigTable(google), DynamoDB(amazon : key-value), Cassandra(facebook) 등이 있다.

 

NoSQL의 특징

- 확장성, 가용성, 일부 일관성, replication models( 1. master-slave(=master db에서만 갱신, 다른 node는 copy만), 2. master-master), sharding of files(=수평 분할, record 손상 x), 고성능

- Schema가 요구되지 않고, query language가 덜 필요하다. 키 기반으로 검색하는 경우가 많다. timestamp로 버전관리.

- document-based, key-value based, graph-based 등의 종류가 있다.

 

Relational database와 다르게 consistency를 강제하지 않고, 유연하게 시스템이 동작하도록 한다.

이를 위한 기반이 되는 CAP theorem이 있다.

Consistency, Availability, Partition tolerance 중 2가지만 만족하면 된다는 의미다.

 

MongoDB 특징  1. Key-document(json) 저장. 2. schema가 없다. 3. two-phase commit, 4. multiple copies on different nodes 5. master-slave

 

Big data

 

big data = TB, PB, XB 단위. Volume이 크고, 데이터가 나오는 Velocity가 빠르고, Variety - 다양하다.

Hadoop : 오픈소스 Distributed File System. Mapreduce programming paradigm을 사용.

map : 문제를 분할해서 node에 mapping, reduce = 위 결과를 합침

namenode에서 모든 job이 시작되고 메타데이터가 기술되어있다. High availability를 가진다.

Hadoop Ecosystem - mapreduce를 보완하기위한 소프트웨어 오픈소스.

pig and hive, Oozie, Sqoop, HBase등의 ecosystem이 있다.

 

loading