[NoSQL] NoSQL 개념
NoSQL은 'Not Only SQL'의 약어로, RDB로 처리하기에 효과적이지 않은 부분을 대신해 처리하기 위해 탄생했다.
대용량의 로그 처리와 같이 write가 많이 일어나는 작업에 적합하다.
NoSQL은 크게 3가지로 분류할 수 있다.
- Key-Value Store
Key값으로 Value를 즉시 찾을 수 있도록 Hash 데이터 구조를 사용한다. ( Java의 HashMap같은 구조 ? )
Memcached, Redis와 같은 Cache 솔루션이 여기에 속한다. - Column Oriented Store
MySQL과 같은 RDB는 행 단위로 저장하는 Row Oriented Store다.
그에 반면, 열(column) 단위로 정보를 저장해놓는 구조를 말한다.
HBase, Cassandra와 같은 제품이 여기에 속한다. - Document Oriented Store
데이터를 JSON 형태로 저장하는 구조. 그래서 스키마를 바꾸기 쉽다.
MongoDB, Elasticsearch와 같은 제품이 여기에 속한다.
참고로 위의 분류에서 예를 든 제품말고도, 해당하는 구현체들은 실제로 훨씬 더 많다.