Azure Cosmos DB for NoSQL이란?

완료됨

Azure Cosmos DB for NoSQL을 통해 몇 가지 정의 및 빠른 둘러보기를 시작하겠습니다. 이 개요는 Azure Cosmos DB가 작업에 적절한지를 확인하는 데 도움이 됩니다.

NoSQL 데이터베이스란 무엇인가요?

개발자는 최신 앱의 고유 챌린지를 해결할 수 있는 새로운 종류의 데이터베이스가 필요합니다. NoSQL 데이터베이스는 다음과 같은 요구 사항을 해결하도록 설계되었습니다.

  • 대용량 데이터.
  • 다양한 원본 및 양식이 있는 데이터.
  • 다양한 형식의 데이터를 저장하는 동적 데이터 스키마.
  • 고속 및/또는 실시간 데이터 사용.

특정한 형식 정의가 아닌 공유하는 일반적인 특징으로 NoSQL 데이터베이스를 정의합니다. 이러한 특징은 다음과 같습니다.

  • 비관계형 데이터 저장소.
  • 스케일 아웃하도록 설계되었습니다.
  • 특정 스키마를 적용하지 않습니다.

일반적으로 NoSQL 데이터베이스는 관계형 제약 조건을 적용하거나 데이터에 잠금을 적용하지 않아 쓰기 속도가 빠릅니다. 또한 분할을 통해 수평으로 스케일링하도록 설계되어 규모와 관계없이 고성능을 유지할 수 있습니다.

NoSQL 데이터 모델이 많지만 NoSQL 데이터베이스에서 데이터를 모델링할 때 일반적으로 사용되는 4개의 광범위한 데이터 모델 패밀리가 있습니다.

키-값, 문서, 그래프, 열 패밀리 저장소를 포함한 다양한 NoSQL 모델을 보여주는 다이어그램

앞으로는 Azure Cosmos DB for NoSQL에서 지원하는 데이터 모델, 문서 데이터 모델에 집중합니다.

문서 데이터 모델에서 NoSQL 데이터베이스를 사용하는 이유는 무엇인가요?

문서 데이터 모델은 데이터를 개별 문서 엔터티로 나눕니다. 문서는 모든 정형 데이터 형식일 수 있지만, JSON은 데이터 서식으로 흔히 사용됩니다. Azure Cosmos DB for NoSQL은 기본적으로 JSON을 지원합니다.

부모 엔터티, 자식 엔터티 및 이러한 엔터티를 연결하는 선을 포함하는 계층적 문서 데이터 모델을 보여주는 일러스트레이션.

문서는 원자성 엔터티이며 동일한 데이터베이스의 다른 문서에 저장된 내용과 관계없이 자체 데이터 폼을 가질 수 있습니다. 이러한 유연성 때문에 새 애플리케이션을 신속하게 빌드하기 쉽도록 미리 정의된 스키마가 필요하지 않습니다. 또한 이러한 유연성을 통해 다양한 형식의 데이터를 함께 저장할 수 있고 애플리케이션의 수명 동안 모델이 발전할 수 있는 시나리오를 구현할 수 있습니다.

JSON 문서란?

JavaScript Object Notation, 즉 JSON은 간단한 데이터 서식입니다. JSON은 JavaScript 언어로 된 개체의 리터럴 표기법과 원활하게 호환되도록 빌드되었습니다. 많은 프레임워크, 브라우저, 데이터베이스도 JavaScript를 기본적으로 지원하므로 JSON은 데이터를 전송하고 저장하는 데 널리 사용되는 서식입니다.

다음은 JSON 문서의 예입니다.

{
  "device": {
    "type": "mobile"
  },
  "sentTime": "2019-11-12T13:08:42",
  "spoolRefs": [
    "6a86682c-be5a-4a4a-bacd-96c4d1c7ece6",
    "79e78fe2-93aa-4688-89db-a7278b034aa6"
  ]
}

이와 같이 JSON은 콘텐츠를 명확하게 노출하는 비교적 읽기 가능한 데이터 서식입니다. JSON은 JavaScript 애플리케이션에서 비교적 쉽게 구문 분석하고 사용할 수 있습니다.

Azure Cosmos DB for NoSQL이란?

Azure Cosmos DB for NoSQL은 다양한 데이터에 대한 풍부한 쿼리를 제공하는 신속한 NoSQL 데이터베이스 서비스입니다. 이것은 구성 가능하고 안정적인 성능을 제공하고, 전 세계적으로 배포되며, 신속한 개발을 가능하게 합니다.

선으로 연결된 4개의 전역 분산 노드가 있는 세계 지도의 일러스트레이션.

NoSQL API는 문서 작업을 위한 핵심 또는 네이티브 API입니다. NoSQL API는 JSON 문서를 활용한 빠르고 유연한 개발, 친숙한 구문이 있는 쿼리 언어, 인기 있는 프로그래밍 언어용 클라이언트 라이브러리를 지원합니다. Azure Cosmos DB는 Mongo, Gremlin 및 Cassandra와 같은 다른 API를 제공합니다. 이러한 API는 네이티브 NoSQL API의 동일한 기본 인프라에 여전히 매핑되며 각 데이터베이스 에코시스템과의 호환성을 제공합니다.

Azure Cosmos DB for NoSQL에는 다음과 같은 몇 가지 이점이 있습니다.

  • 전 세계 어디서나 즉각적이고 무한한 탄력성, 빠른 읽기, 다중 마스터 쓰기를 사용하여 모든 규모에서 속도 보장(버스트 시에도 해당)
  • 인기 있는 언어용 SDK, MongoDB, Cassandra, Gremlin용 API와 함께 네이티브 NoSQL을 사용하고 비 ETL(추출, 변환, 로드) 분석을 사용하여 빠르고 유연한 앱 개발
  • 비즈니스 연속성 보장, 99.999% 가용성, 엔터프라이즈급 보안을 갖추어 중요 업무용 애플리케이션에 사용 가능
  • 애플리케이션 요구 사항에 대응하는 즉각적인 자동 스케일링을 사용하여 비용 효율적인 완전 관리형 서버리스 데이터베이스

이러한 기능 덕분에 Azure Cosmos DB는 최신 애플리케이션 개발에 적합합니다. Azure Cosmos DB for NoSQL은 다음과 같은 애플리케이션에 특히 적합합니다.

  • 예기치 않은 트래픽 급증 및 급감 경험
  • 많은 데이터 생성
  • 실시간 사용자 환경을 제공해야 함
  • 비즈니스 연속성을 위해 사용됨

Azure Cosmos DB for NoSQL은 유연한 스키마를 사용하여 네이티브 JSON 문서를 임의로 저장할 수 있습니다. 데이터는 자동으로 인덱싱되며 JSON 데이터용으로 설계된 버전의 SQL 쿼리 언어를 사용하여 쿼리에 사용할 수 있습니다. .NET, Python, Java, Node.js 같은 인기 있는 프레임워크용 SDK를 사용하여 NoSQL API에 액세스할 수 있습니다.