적용 대상: NoSQL
먼저 Azure 구독에 등록해야 합니다. Azure 구독에 등록하면 사용자의 Azure 구독에 API for NoSQL 컨테이너를 추가할 수 있습니다.
소프트웨어 개발 키트(SDK)는 .NET, Python, Node.js, JavaScript, Go, Java용으로 제공됩니다. 또한 개발자는 REST API를 사용하여 더 많은 플랫폼 및 언어의 Azure Cosmos DB 리소스를 조작할 수 있습니다.
API for NoSQL에 대한 다음 빠른 시작 코드 샘플 및 템플릿을 확인하세요.
예, API for NoSQL을 통해 애플리케이션은 스키마 정의 또는 힌트 없이 임의의 JSON 문서를 항목으로 저장할 수 있습니다. Azure Cosmos DB for NoSQL 쿼리 언어를 사용하면 쿼리에 데이터를 즉시 사용할 수 있습니다.
예, API for NoSQL은 SDK의 배치나 JavaScript 저장 프로시저 및 트리거를 사용하여 표현된 문서 간 트랜잭션을 지원합니다. 동시에 실행되는 다른 코드 및 사용자 요청과 "모두 분리되거나 전혀 분리되지 않으므로" 트랜잭션은 범위가 각 컨테이너 내의 단일 파티션으로 지정되고 ACID 시맨틱으로 실행됩니다. 예외가 발생하면 전체 트랜잭션이 롤백됩니다.
다음 도구 중 하나를 사용하여 데이터베이스를 만들 수 있습니다.
- Azure Portal
- NoSQL 클라이언트(데이터 평면) SDK용 API
- NoSQL 관리(컨트롤 플레인) SDK용 API
- Azure Resource Manager
- REST API
예! Azure Cosmos DB는 서비스 및 해당 리소스(컨트롤 플레인)를 관리하고 데이터, 작업 및 쿼리(데이터 평면)를 실행하는 Microsoft Entra 인증을 지원합니다. 컨트롤 플레인 인증은 Azure의 역할 기반 액세스 제어 기능을 사용하여 수행됩니다. 미리 구성된 기본 제공 역할](../../role-based-access-control/built-in-roles.md)을 사용할 수도 있고 사용자 지정 역할을 만들 수도 있습니다. Azure 역할 기반 액세스 제어를 사용하면 계정, 데이터베이스, 컨테이너 및 메타데이터를 관리할 수 있습니다. 컨트롤 플레인에는 이러한 예제를 포함하지만 이에 국한되지 않는 작업이 포함됩니다.
- 데이터베이스 만들기, 바꾸기 또는 삭제 - 컨테이너 만들기, 바꾸기 또는 삭제 - 데이터베이스 처리량 읽기 또는 바꾸기 - 컨테이너 처리량 데이터 평면 인증 읽기 또는 바꾸기는 NoSQL 네이티브 역할 기반 액세스 제어 구현을 위한 사용자 지정 API를 사용합니다. 이 네이티브 구현을 사용하면 미리 구성된 역할이나 사용자 지정 역할을 사용할 수도 있습니다. 네이티브 역할 기반 액세스 제어를 사용하면 쿼리를 실행하거나, 항목을 관리하거나, 다른 일반적인 작업을 수행할 수 있습니다. 데이터 평면에는 이러한 예제를 포함하지만 이에 국한되지 않는 작업이 포함됩니다.
- 항목 만들기, 바꾸기, 업데이트 또는 삭제 - 항목 패치 - 쿼리 실행
SQL(구조적 쿼리 언어)은 일반적으로 관계형 데이터를 쿼리하는 데 사용되는 언어입니다. API for NoSQL에는 SQL에서 파생된 사용자 지정 NoSQL 쿼리 언어가 있습니다. NoSQL 쿼리 언어에는 일반적으로 SQL Server와 연결된 SQL 쿼리 언어의 하위 집합과 다양한 NoSQL 관련 향상된 기능이 포함되어 있습니다. NoSQL 쿼리 언어는 JavaScript 기반 UDF(사용자 정의 함수)를 통해 다양한 계층 구조 및 관계형 연산자를 제공합니다. JSON 문법은 레이블이 지정된 노드가 있는 트리로 JSON 문서 모델링을 허용합니다. 이 내용은 Azure Cosmos DB 자동 인덱싱 기술 및 Azure Cosmos DB의 SQL 쿼리 언어 모두에 사용됩니다. 이 쿼리 언어를 사용하는 방법에 대한 자세한 내용은 NoSQL 쿼리를 참조하세요.
API for NoSQL은 쿼리 언어를 통한 COUNT
, MAX
, AVG
, SUM
등의 집계 함수를 통해 집계를 지원합니다.
API for NoSQL은 HTTP 엔터티 태그 또는 ETags를 통해 OCC(낙관적 동시성 제어)를 지원합니다. 모든 API for NoSQL 리소스에는 ETag가 있고 ETag는 문서가 업데이트될 때마다 서버에서 설정됩니다. ETag 헤더 및 현재 값은 모든 응답 메시지에 포함됩니다. ETag는 If-Match
헤더와 함께 사용하여 서버가 리소스를 업데이트해야 하는지를 결정하도록 할 수 있습니다. If-Match 값은 검사해야 할 ETag 값입니다. ETag 값이 서버 ETag 값과 일치하는 경우 리소스가 업데이트됩니다. ETag가 최신 상태가 아닌 경우 서버에서는 "HTTP 412 사전 조건 실패" 응답 코드와 함께 작업을 거부합니다. 그러면 클라이언트는 리소스를 다시 페치하여 리소스에 대한 현재 ETag 값을 가져옵니다. 또한 ETag를 If-None-Match
헤더와 함께 사용하면 리소스를 다시 가져오는 데 필요한지 여부를 판별할 수 있습니다.
대부분의 API for NoSQL SDK에는 낙관적 동시성 제어를 관리하는 클래스가 포함되어 있습니다.
API for NoSQL를 위한 .NET SDK 또는 Java SDK의 대량 가져오기 기능을 사용하여 큰 데이터 집합을 가져옵니다. 이 기능은 프로비전된 처리량을 최적화하여 큰 데이터 집합을 가져옵니다.
또는 Python 또는 Scala를 사용하여 대규모로 데이터를 가져오기 위해 Apache Spark를 사용합니다.
예, Azure Cosmos DB for NoSQL은 RESTful 서비스이므로 리소스 링크가 제한되며 캐시될 수 있습니다. API for NoSQL 클라이언트는 문서 또는 컨테이너와 같은 모든 리소스 읽기에 대해 “If-None-Match” 헤더를 지정한 다음, 서버 버전이 변경되면 로컬 복사본을 업데이트할 수 있습니다.
예. Azure Cosmos DB 에뮬레이터는 신뢰도 있는 Azure Cosmos DB 서비스의 에뮬레이션을 제공합니다. 다양한 API에서 Azure Cosmos DB와 동일한 기능을 지원합니다. 이 기능에는 항목 만들기, 항목 쿼리, 컨테이너 프로비전 및 컨테이너 크기 조정에 대한 지원이 포함됩니다. 에뮬레이터의 엔드포인트를 사용하여 애플리케이션을 개발하고 테스트할 수 있습니다. 그런 다음 에뮬레이터에서 라이브 서비스로 연결 문자열을 변경하여 애플리케이션을 전역 규모로 Azure에 배포할 수 있습니다.
이 데이터 탐색기 제한은 JavaScript의 제한 사항입니다. JavaScript는 IEEE(Institute of Electrical and Electronics Engineers) 754에 명시된 배정밀도 부동 소수점 형식의 숫자를 사용합니다. 이 데이터 형식은 -(253 - 1)과 253-1 사이의 숫자(즉, 9007199254740991)만 안전하게 보관할 수 있습니다.
RBAC(역할 기반 액세스 제어)는 기업 내 개별 사용자의 역할에 따라 컴퓨터 또는 네트워크 리소스에 대한 액세스를 규제하는 방법입니다. Azure Cosmos DB에서 RBAC는 사용자 및 애플리케이션에 대한 데이터 평면 액세스 권한을 부여하는 데 사용됩니다. 역할 기반 액세스 제어의 다양한 용어에 대한 자세한 내용은 보안 용어집을 참조하세요.
Azure Cosmos DB RBAC(네이티브 역할 기반 액세스 제어) 기능을 사용하여 사용자 및 애플리케이션에 대한 데이터 평면 액세스 권한을 부여합니다. 자세한 내용은 데이터 평면 역할 기반 액세스 권한 부여를 참조 하세요.
현재는 NoSQL API만 지원됩니다.
역할 관리에 대한 Azure Portal 지원은 아직 사용할 수 없습니다.
.NET V3, Java V4, JavaScript V3 및 Python V4.3+ SDK는 현재 지원됩니다.
예.
예. 자세한 내용은 키 기반 인증 사용 안 함을 참조하세요.