2015.09.23

'빅데이터와 궁합 잘 맞는' 최신 데이터베이스 11선

Peter Wayner | InfoWorld

전세계적으로 지금 만큼 데이터베이스가 다양하고 흥미로웠던 적은 없었다.


이미지 출처 : Thinkstock

몇 년 전만 하더라도 데이터베이스 업무는 좋은 말로 IT에서 가장 지루한 작업이었다. 데이터는 주요 SQL 데이터베이스 중 하나에 입력되었고 나중에 입력된 그대로 출력되었다. 데이터베이스 작성자는 우수한 성능을 제공하는데 성공했기 때문에 모두가 당연한 것으로 받아들였다.

그러다 저장하고자 했던 것의 속성이 바뀌었다. 모두가 소셜 네트워크에서 데이터를 공유하기 시작했기 때문에 데이터베이스는 은행 계좌와 항공권의 수준을 넘어서야 했다. 갑자기 저장할 데이터가 크게 증가했으며 이 새로운 데이터의 대부분은 기존의 테이블에 맞지 않았다. 데이터베이스 관리자와 작성자의 역할이 바뀌었고 데이터베이스를 좀 더 흥미로운 기술로 발전시키는데 도움이 되는 일련의 광범위한 흥미로운 솔루션이 등장했다.

카산드라(Cassandra), 몽고DB(MongoDB), 카우치DB(CouchDB), 리아크(Riak), 네오포지(Neo4j) 등 현재까지 과거 수 년 동안의 혁신이 여러 조직에서 자리를 잡아가기 시작했다. 여기에 새로운 세대가 등장해 빠르게 가세하고 있다. 다양한 방식으로 쿼리가 가능하도록 더 많은 머신에 더 유연한 형태로 더 많은 데이터를 저장하도록 개발된 11종의 최신 데이터베이스에 관해 살펴보도록 하자.

파우나DB(FaunaDB)
트위터 출신의 기술자들이 수십 억 개의 트윗을 처리하던 경험을 살려 무엇인가 새로운 것을 구축하길 원했으며, 분산형 데이터베이스가 적합하다고 판단했다. ‘파우나DB 입력, JSON 입력, 분산형 노드(Node) 콜렉션에서 답 출력에 이르는 일련의 과정에서 파우나DB의 쿼리 언어는 소셜 네트워크와 데이터베이스의 다른 그래프 구조를 검색하면서 여러 노드로부터 데이터를 결합하는 복잡한 질문을 묻는 기능을 제공한다.

단순히 실험에 관심이 있거나 자체 DB 구축의 어려움을 원치 않는 사람들을 위해 파우나DB는 클라우드 서비스형 데이터베이스 버전으로도 제공된다. 좀더 강한 제어 기능을 원하는 경우 자체적으로 기업용 버전을 설치할 수 있다.

아랑고DB(ArangoDB)
손을 번쩍 들고 "우리가 문서 스타일의 데이터베이스의 유연성을 그래프 데이터베이스의 특수한 힘과 결합할 수 있으면서 표 데이터의 유연성을 유지할 수 있다면 성공한 것이다"고 가장 먼저 말할 수 있는 기회는 이미 사라졌다.

못 믿을 수도 있겠지만 이런 필요를 충족시키는 데이터베이스가 이미 존재한다. 아랑고DB는 데이터를 문서나 그래프 데이터베이스로 저장할 수 있다. 그리고 쿼리 처리를 더욱 빠르게 하는 집약성을 통해 데이터베이스에서 구동하는 조인(Join)으로 반복되는 쿼리를 작성할 수 있다. 그리고 쿼리 언어는 RESTful API를 통해 마이크로서비스(Microservice)를 노출하는 자바스크립트로 둘러 싸인다. 이것은 많은 사람들이 만족할 수 밖에 없는 보통 사람들의 접근 방식이다.

오리엔트DB(OrientDB)
그래프의 힘과 문서 데이터베이스를 합치려고 시도하는 것은 비단 아랑고DB에만 있게 게 아니다. 오리엔트DB도 유사하지만 그 자체를 ‘2세대 그래프 데이터베이스’로 패키지화 했다. 즉, 그래프의 노드는 임의의 키 값 쌍을 기다리는 문서가 된다.

이 때문에 오리엔트DB는 처음에 그래프 데이터베이스처럼 느껴지지만 키 값 저장 기능만을 사용하지 못할 이유가 없다. 또 쿼리를 기다리는 RESTful API도 포함되어 있다.

Crate.io
루씬(Lucene) 같은 검색 엔진의 힘에 SQL만큼 구조와 쿼리가 간단한 것을 바랬던 적이 있는가? 그런 적이 있다면 Crate.io가 해답이 될 수 있다.

루씬은 정형화되지 않은 대규모 텍스트 블록에서 키워드를 찾기 위한 검색 엔진으로 시작했지만 항상 각 문서에 키와 해당하는 값을 저장하는 기능을 제공했으며, 일각에서는 이를 NoSQL 혁명의 일환으로 보았다. Crate.io는 루씬 및 더 크고 확장 가능한 분산형 엘라스티서치(Elasticsearch)와 함께 시작되었지만 SQL 문법으로 쿼리 언어를 추가했다. Crate.io를 개발한 사람들은 Crate.io를 더욱 강력하게 만들어줄 JOIN을 추가하기 위해 노력하고 있으며 JOIN를 사용하게 될 것이다.

기존 SQL 사고 방식을 좋아하는 사람들은 Crate.io가 SQL 기반 시스템을 더욱 쉽게 사용할 수 있도록 새롭고 확장 가능한 기술을 통합한다는 점을 좋아할 것이다.




2015.09.23

'빅데이터와 궁합 잘 맞는' 최신 데이터베이스 11선

Peter Wayner | InfoWorld

전세계적으로 지금 만큼 데이터베이스가 다양하고 흥미로웠던 적은 없었다.


이미지 출처 : Thinkstock

몇 년 전만 하더라도 데이터베이스 업무는 좋은 말로 IT에서 가장 지루한 작업이었다. 데이터는 주요 SQL 데이터베이스 중 하나에 입력되었고 나중에 입력된 그대로 출력되었다. 데이터베이스 작성자는 우수한 성능을 제공하는데 성공했기 때문에 모두가 당연한 것으로 받아들였다.

그러다 저장하고자 했던 것의 속성이 바뀌었다. 모두가 소셜 네트워크에서 데이터를 공유하기 시작했기 때문에 데이터베이스는 은행 계좌와 항공권의 수준을 넘어서야 했다. 갑자기 저장할 데이터가 크게 증가했으며 이 새로운 데이터의 대부분은 기존의 테이블에 맞지 않았다. 데이터베이스 관리자와 작성자의 역할이 바뀌었고 데이터베이스를 좀 더 흥미로운 기술로 발전시키는데 도움이 되는 일련의 광범위한 흥미로운 솔루션이 등장했다.

카산드라(Cassandra), 몽고DB(MongoDB), 카우치DB(CouchDB), 리아크(Riak), 네오포지(Neo4j) 등 현재까지 과거 수 년 동안의 혁신이 여러 조직에서 자리를 잡아가기 시작했다. 여기에 새로운 세대가 등장해 빠르게 가세하고 있다. 다양한 방식으로 쿼리가 가능하도록 더 많은 머신에 더 유연한 형태로 더 많은 데이터를 저장하도록 개발된 11종의 최신 데이터베이스에 관해 살펴보도록 하자.

파우나DB(FaunaDB)
트위터 출신의 기술자들이 수십 억 개의 트윗을 처리하던 경험을 살려 무엇인가 새로운 것을 구축하길 원했으며, 분산형 데이터베이스가 적합하다고 판단했다. ‘파우나DB 입력, JSON 입력, 분산형 노드(Node) 콜렉션에서 답 출력에 이르는 일련의 과정에서 파우나DB의 쿼리 언어는 소셜 네트워크와 데이터베이스의 다른 그래프 구조를 검색하면서 여러 노드로부터 데이터를 결합하는 복잡한 질문을 묻는 기능을 제공한다.

단순히 실험에 관심이 있거나 자체 DB 구축의 어려움을 원치 않는 사람들을 위해 파우나DB는 클라우드 서비스형 데이터베이스 버전으로도 제공된다. 좀더 강한 제어 기능을 원하는 경우 자체적으로 기업용 버전을 설치할 수 있다.

아랑고DB(ArangoDB)
손을 번쩍 들고 "우리가 문서 스타일의 데이터베이스의 유연성을 그래프 데이터베이스의 특수한 힘과 결합할 수 있으면서 표 데이터의 유연성을 유지할 수 있다면 성공한 것이다"고 가장 먼저 말할 수 있는 기회는 이미 사라졌다.

못 믿을 수도 있겠지만 이런 필요를 충족시키는 데이터베이스가 이미 존재한다. 아랑고DB는 데이터를 문서나 그래프 데이터베이스로 저장할 수 있다. 그리고 쿼리 처리를 더욱 빠르게 하는 집약성을 통해 데이터베이스에서 구동하는 조인(Join)으로 반복되는 쿼리를 작성할 수 있다. 그리고 쿼리 언어는 RESTful API를 통해 마이크로서비스(Microservice)를 노출하는 자바스크립트로 둘러 싸인다. 이것은 많은 사람들이 만족할 수 밖에 없는 보통 사람들의 접근 방식이다.

오리엔트DB(OrientDB)
그래프의 힘과 문서 데이터베이스를 합치려고 시도하는 것은 비단 아랑고DB에만 있게 게 아니다. 오리엔트DB도 유사하지만 그 자체를 ‘2세대 그래프 데이터베이스’로 패키지화 했다. 즉, 그래프의 노드는 임의의 키 값 쌍을 기다리는 문서가 된다.

이 때문에 오리엔트DB는 처음에 그래프 데이터베이스처럼 느껴지지만 키 값 저장 기능만을 사용하지 못할 이유가 없다. 또 쿼리를 기다리는 RESTful API도 포함되어 있다.

Crate.io
루씬(Lucene) 같은 검색 엔진의 힘에 SQL만큼 구조와 쿼리가 간단한 것을 바랬던 적이 있는가? 그런 적이 있다면 Crate.io가 해답이 될 수 있다.

루씬은 정형화되지 않은 대규모 텍스트 블록에서 키워드를 찾기 위한 검색 엔진으로 시작했지만 항상 각 문서에 키와 해당하는 값을 저장하는 기능을 제공했으며, 일각에서는 이를 NoSQL 혁명의 일환으로 보았다. Crate.io는 루씬 및 더 크고 확장 가능한 분산형 엘라스티서치(Elasticsearch)와 함께 시작되었지만 SQL 문법으로 쿼리 언어를 추가했다. Crate.io를 개발한 사람들은 Crate.io를 더욱 강력하게 만들어줄 JOIN을 추가하기 위해 노력하고 있으며 JOIN를 사용하게 될 것이다.

기존 SQL 사고 방식을 좋아하는 사람들은 Crate.io가 SQL 기반 시스템을 더욱 쉽게 사용할 수 있도록 새롭고 확장 가능한 기술을 통합한다는 점을 좋아할 것이다.


X