728x90

불과 몇년전까지만해도 NoSQL보다는 RDBMS를 많이 사용했었는데 현재는 NoSQL이 대세이다.

물론 NoSQL이 RDBMS를 대체할 수는 없을것이다.

다만 예전에는 간단한 영역도 RDBMS를 썼다면 이제는 속도가 중용한부분,간단한부분에서는 NoSQL로 대체된다.


NoSQL의 종류는 많고 폭이 넓은 편이다. 현재 NoSQL은 크게 4종류로 분류가 된다.

그 중에서 로그성 데이터들(누가 들어왔다, 혹은 컴퓨터 어떻게 어떻게 사용했다 등의기록) Key-Value형 DB를 사용한다.

Key-Value형 데이터는 말그대로 모든 데이터는 Key-Value쌍으로 되어있다.

따라서 스키마를 안쓴다기 보단 스키마가 필요가 없다. 모든게 Key-Value니까.


이제 왜 쓰는지 바로 알 수 있을것이다. Key-Value는 데이터를 저장하는데, 그리고 꺼내쓰는데의 성능은 어떠한 DB도 이긴다.

RDBMS로 비슷하게 흉내낼수 있지만 아래에서 여러트랜잭션(작업)을 거치는 RDBMS가 이길리 만무하다.

그리고 같은 NoSQL종류들중 Columm Family DB나 Document DB역시 이길 수 없다.

왜냐하면 데이터를 우겨넣고 빼내는데 이놈만한게 없으니까. 또한 쓰는것 역시 모든 DB들 중에서 가장 간단하다.

대신 뭔가 가공을 해야한다면 성능이 떨어진다. 이건 DB마다 다른데 대부분은 가공을 할 수 없는 구조로 되어있다.


이 Key-Value형 DB들도 여러종류가 있는데 기업들은 Amazone DynamoDB를 많이 사용한다.

이 DB는 흠잡을게.... 유료다. 더 이상 설명이 필요없는 가장큰 단점이다.

그리고 redis라는 걸출한 DB도 있지만 얘는 용도가 좀 다르다.

왜냐하면 인메모리 전용 DB라서 로컬에 저장이 안되기 때문이다.

따라서 redis는 순수하게 DB라기 보단 스트리밍, 캐싱 등에 사용되는 DB라고 볼 수 있다.

그래서 선택할수 있는 로그성DB로 사용하는 Key-Value형중에서는 LevelDB가 좋은 선택권이 된다.

또한 이 LevelDB는 google에서 만들어서 안정성도 입증되었다.

그러면 LevelDB를 설치해보자.



LevelDB는 DB자체를 설치하지 않는다. DB를 그자리에서 만들어 쓰기 때문이다.

따라서 DB를 만드는 소스를 각각의 언어에 맞게 선택해 줄 필요가 있다.

아직 까지 공식지원은 3가지 언어로 C++,NodeJS와Python 3가지를 지원한다.

그리고 C++로 쓰는건 좀 더럽게 되어있다. 즉 빌드해야한다는 이야기.

여기서는 NodeJS에서 설치하자.



공식홈페이지에서조차 npm으로 설치해라고 되어있다. 즉 설치하기 무진장쉽다.


LevelDB 설치

npm install level -save

npm install levelup -save

npm install leveldown -save



설치할 수 있는 옵션은 총 3가지인데 level과 levelup과 leveldown이다.

3가지의 차이는 level은 levelup과 leveldown을 합친것이고

levelup은 순수 nodejs용이고 leveldown은 c++포팅버전이다.

그런데 사실 사용할때는 그냥 level로 사용하는게 가장 편리하므로 level로 사용하자.


'Database > NoSQL' 카테고리의 다른 글

[LevelDB]NodeJS에서 LevelDB사용하기  (0) 2017.11.27

+ Recent posts