NoSQL 개요

click fraud protection

NoSQL이라는 약어는 1998년에 만들어졌습니다. 많은 사람들은 NoSQL이 SQL을 찌르기 위해 만들어진 경멸적인 용어라고 생각합니다. 실제로 이 용어는 SQL 뿐만이 아닙니다. 아이디어는 두 기술이 공존할 수 있고 각각의 위치가 있다는 것입니다. 많은 Web 2.0 리더들이 NoSQL 기술을 채택함에 따라 NoSQL 운동은 지난 몇 년 동안 뉴스에 나왔습니다. Facebook, Twitter, Digg, Amazon, LinkedIn, Google과 같은 회사는 모두 어떤 방식으로든 NoSQL을 사용합니다. CIO나 동료에게 설명할 수 있도록 NoSQL을 분석해 보겠습니다.

MySQL 데이터베이스.

필요에서 나온 NoSQL

정보 저장소: 전 세계에 저장된 디지털 데이터는 엑사바이트 단위로 측정됩니다. 엑사바이트는 10억 기가바이트(GB)의 데이터와 같습니다. 에 따르면 인터넷닷컴, 2006년에 추가된 저장 데이터의 양은 161엑사바이트였습니다. 불과 4년 후인 2010년에는 저장 데이터 양이 500% 이상 증가한 거의 1,000엑사바이트에 이를 것입니다. 다시 말해, 세상에는 많은 데이터가 저장되고 있으며 계속해서 증가할 것입니다.

상호 연결된 데이터: 데이터는 계속해서 더 많이 연결됩니다. 하이퍼링크에서 촉진되는 웹의 생성, 블로그에는 핑백이 있으며 모든 주요 소셜 네트워크 시스템에는 모든 것을 하나로 묶는 태그가 있습니다. 주요 시스템은 상호 연결되도록 구축됩니다.

복잡한 데이터 구조: NoSQL은 계층적 중첩 데이터 구조를 쉽게 처리할 수 있습니다. SQL에서 동일한 작업을 수행하려면 모든 종류의 키가 있는 여러 관계형 테이블이 필요합니다. 또한 성능과 데이터 복잡성 사이에는 관계가 있습니다. 소셜 네트워킹 애플리케이션에 필요한 방대한 양의 데이터를 저장하고 기존 RDBMS에서 성능이 저하될 수 있습니다. 시맨틱 웹.

NoSQL이란 무엇입니까?

NoSQL을 정의하는 한 가지 방법은 NoSQL이 아닌 것을 고려하는 것입니다. SQL이 아니며 관계형이 아닙니다. 이름에서 알 수 있듯이 RDBMS를 대체하는 것이 아니라 보완합니다. NoSQL은 대규모 데이터 요구 사항을 위한 분산 데이터 저장소용으로 설계되었습니다. 500,000,000명의 사용자가 있는 Facebook이나 매일 테라비트의 데이터를 축적하는 Twitter를 생각해 보십시오.

NoSQL 데이터베이스에는 고정된 스키마와 조인이 없습니다. RDBMS는 더 빠르고 더 빠른 하드웨어를 얻고 메모리를 추가하여 "확장"됩니다. 반면에 NoSQL은 "확장"을 활용할 수 있습니다. 스케일 아웃은 많은 상품 시스템에 부하를 분산시키는 것을 의미합니다. 이것은 대용량 데이터 세트를 위한 저렴한 솔루션이 되는 NoSQL의 구성 요소입니다.

NoSQL 카테고리

현재 NoSQL 세계는 4가지 기본 범주로 나뉩니다.

  1. 키-값 저장소 기본적으로 아마존의 다이나모 페이퍼 2007년에 작성된 글입니다. 주요 아이디어는 고유 키와 특정 데이터 항목에 대한 포인터가 있는 해시 테이블의 존재입니다. 이러한 매핑에는 일반적으로 성능을 최대화하기 위한 캐시 메커니즘이 수반됩니다.
    1. 컬럼 패밀리 스토어 많은 컴퓨터에 분산된 매우 많은 양의 데이터를 저장하고 처리하기 위해 만들어졌습니다. 여전히 키가 있지만 여러 열을 가리킵니다. BigTable(Google의 Column Family NoSQL 모델)의 경우 행은 이 키로 정렬되고 저장된 데이터와 함께 행 키로 식별됩니다. 열은 열 패밀리별로 정렬됩니다.
  2. 문서 데이터베이스 영감을 받았다 로터스 노트 키-값 저장소와 유사합니다. 모델은 기본적으로 다른 키-값 컬렉션의 컬렉션인 버전이 지정된 문서입니다. 반구조화된 문서는 JSON과 같은 형식으로 저장됩니다.
  3. 그래프 데이터베이스s는 노드, 노트 간의 관계 및 노드 속성으로 구축됩니다. 행과 열의 테이블과 SQL의 경직된 구조 대신에 여러 시스템에 걸쳐 확장할 수 있는 유연한 그래프 모델이 사용됩니다.

주요 NoSQL 플레이어

NoSQL의 주요 참여자는 주로 이를 채택한 조직 덕분에 나타났습니다. 가장 큰 NoSQL 기술에는 다음이 포함됩니다.

  • 발전기: Dynamo는 Amazon.com에서 만들었으며 가장 유명한 키-값 NoSQL 데이터베이스입니다. Amazon은 전자 상거래 비즈니스를 위한 확장성이 뛰어난 분산 플랫폼이 필요했기 때문에 Dynamo를 개발했습니다. Amazon S3는 Dynamo를 스토리지 메커니즘으로 사용합니다.
  • 카산드라:카산드라 Facebook에서 오픈 소스로 제공하는 열 기반 NoSQL 데이터베이스입니다.
  • 빅테이블: BigTable은 Google의 독점 열 지향 데이터베이스입니다. Google은 BigTable의 사용을 허용하지만 Google App Engine에만 해당됩니다.
  • 단순DB: SimpleDB는 또 다른 Amazon 데이터베이스입니다. Amazon EC2 및 S3에 사용되며 사용량에 따라 요금을 부과하는 Amazon Web Services의 일부입니다.
  • 카우치DB:카우치DB MongoDB와 함께 오픈 소스 문서 지향 NoSQL 데이터베이스입니다.
  • 네오포제이:네오포제이 오픈 소스 그래프 데이터베이스입니다.

NoSQL 쿼리

NoSQL 데이터베이스를 쿼리하는 방법에 대한 질문은 대부분의 개발자가 관심을 갖는 것입니다. 결국, 거대한 데이터베이스에 저장된 데이터는 검색하여 최종 사용자나 웹 서비스에 보여줄 수 없다면 아무 소용이 없습니다. NoSQL 데이터베이스는 SQL과 같은 고급 선언적 쿼리 언어를 제공하지 않습니다. 대신 이러한 데이터베이스를 쿼리하는 것은 데이터 모델에 따라 다릅니다.

많은 NoSQL 플랫폼은 데이터에 대한 RESTful 인터페이스를 허용합니다. 기타 제안 쿼리 API. 여러 NoSQL 데이터베이스 쿼리를 시도하는 몇 가지 쿼리 도구가 개발되었습니다. 이러한 도구는 일반적으로 단일 NoSQL 범주에서 작동합니다. 한 가지 예는 SPARQL입니다. SPARQL은 그래프 데이터베이스용으로 설계된 선언적 쿼리 사양입니다. 다음은 특정 블로거의 URL을 검색하는 SPARQL 쿼리의 예입니다(제공: IBM):

프리픽스 덩어리: 
SELECT ?URL
에서
어디 {
?기고자 foaf: 이름 "Jon Foobar" .
?기고자 foaf: 웹로그 ?url .
}

NoSQL의 미래

방대한 데이터 스토리지가 필요한 조직은 NoSQL을 심각하게 고려하고 있습니다. 분명히 이 개념은 소규모 조직에서 그다지 주목을 받지 못하고 있습니다. Information Week에서 실시한 설문 조사에 따르면 비즈니스 IT 전문가의 44%가 NoSQL에 대해 들어본 적이 없습니다. 또한 응답자의 1%만이 NoSQL이 전략적 방향의 일부라고 보고했습니다. 분명히 NoSQL은 연결된 세상에서 그 자리를 차지하고 있지만 많은 사람들이 생각할 수 있는 대중적 매력을 얻으려면 계속 발전해야 합니다.