다음을 통해 공유


Azure Cosmos DB 개발 가이드

Azure Cosmos DB용 Azure Spring Data는 Azure Cosmos DB for NoSQLSpring Data 지원을 제공합니다. Azure Cosmos DB 개발자가 SQL, MongoDB, Cassandra, Graph 및 Table과 같은 다양한 표준 API를 사용하여 데이터를 사용할 수 있도록 하는 전역 분산 데이터베이스 서비스입니다.

이 가이드에서는 Azure Spring Data Azure Cosmos DB SDK, 지원되는 기능, 문제 해결 및 알려진 문제의 개념을 안내합니다. 아래 개념 및 코드 샘플에 대한 자세한 내용은 Azure Cosmos DB SDK에 대한 Spring Data 추가 정보참조하세요.

버전 지원 정책

Spring Boot 버전 지원

이 프로젝트는 여러 Spring Boot 버전을 지원합니다. 자세한 내용은 Spring Boot 지원 정책참조하세요. Maven 사용자는 spring-boot-starter-parent 프로젝트에서 상속하여 Spring에서 종속성 버전을 관리할 수 있도록 종속성 관리 섹션을 가져올 수 있습니다. 자세한 내용은 Spring Boot 버전 지원참조하세요.

Spring Data 버전 지원

이 프로젝트는 다양한 Spring-data-commons 버전을 지원합니다. 자세한 내용은 Spring Data 버전 지원참조하세요.

Azure Spring Data의 Cosmos DB 버전 중 어느 것을 사용할지

Azure Spring Data Azure Cosmos DB 라이브러리는 여러 버전의 Spring Boot/Spring Cloud를 지원합니다. Spring Boot용/Spring Cloud용 버전과 함께 사용할 Azure Spring Data Azure Cosmos DB 버전에 대한 자세한 내용은 "Azure Cosmos DB용 Azure Spring Data 버전은 어떤 것을 사용해야 하나요?"를 참조하세요..

시작

패키지를 포함하세요

Maven을 사용하는 경우 다음 종속성을 추가합니다.

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-spring-data-cosmos</artifactId>
    <version>LATEST</version>
</dependency>

필수 구성 요소

  • JDK(Java Development Kit)버전 8 이상.
  • 활성 Azure 계정입니다. 계정이 없는 경우 체험 계정등록할 수 있습니다. 또는 개발 및 테스트에 Azure Cosmos DB 에뮬레이터 사용할 수 있습니다. 에뮬레이터의 https 인증서는 자체 서명된 것이므로, 해당 인증서를 Java 신뢰할 수 있는 인증서 저장소로 가져와야 합니다. 자세한 내용은 여기를 참조하세요
  • (선택 사항) SLF4J는 로깅 외관입니다.
  • (선택 사항) SLF4J 바인딩 사용하여 특정 로깅 프레임워크를 SLF4J와 연결합니다.
  • (선택 사항) Maven

SLF4J는 로깅을 사용하려는 경우에만 필요하며 SLF4J 바인딩을 다운로드하여 SLF4J API를 선택한 로깅 구현과 연결합니다. 자세한 내용은 SLF4J 사용자 설명서를 참고하세요.

구성 클래스 설정 및 사용자 지정

구성 클래스를 설정하려면 AbstractCosmosConfiguration확장해야 합니다. 자세한 내용은 설정 구성 클래스참조하세요.

Azure Spring Data Azure Cosmos DB SDK에서 사용하는 기본 CosmosAsyncClient을 사용자 지정하려면 DirectConnectionConfig 또는 GatewayConnectionConfig 또는 둘 다를 제공하고 이를 CosmosClientBuilder에 제공할 수 있습니다. 전체 샘플을 보려면 구성 사용자 지정 섹션방문하세요.

엔터티 설정

Azure Cosmos DB에서 간단한 엔터티를 항목으로 정의할 수 있습니다. @Container 주석을 추가하고 컨테이너와 관련된 속성을 지정하여 엔터티를 정의할 수 있습니다. 자세한 내용은 엔터티 정의을 참조하세요.

컨테이너 주석은 컨테이너 이름, RU(요청 단위), TL(time to Live), 자동 크기 조정 처리량, 중첩 파티션 키 지원및 기타 컨테이너 속성을 사용하여 컨테이너를 만드는 지정을 지원합니다.

리포지토리 설정

Azure Spring Data Azure Cosmos DB는 다음과 같은 기본 CRUD 기능을 제공하는 ReactiveCrudRepository(비동기 API) 및 CrudRepository(동기화 API)를 지원합니다.

  • 구해내다
  • 모두 찾기
  • ID로 단일 항목 찾기
  • 모두 삭제
  • ID로 삭제
  • 엔터티 삭제

CosmosRepository(동기화 API 지원용) 또는 ReactiveCosmosRepository(비동기 API 지원용)을 확장하여 애플리케이션에 대한 Spring Data 리포지토리를 설정할 수 있습니다. 자세한 내용은 리포지토리 만들기참조하세요.

Azure Spring Data Azure Cosmos DB는 @Query사용하여 리포지토리에 주석이 추가된 쿼리 지정을 지원합니다. 자세한 내용은 QueryAnnotation: 리포지토리에서 주석이 추가된 쿼리 사용에 관한 항목을 참조하십시오.

Spring Data 애노테이션

Spring Data @Id 주석

도메인 클래스의 필드를 id매핑하는 방법에는 여러 가지가 있습니다. 자세한 내용은 spring 데이터 ID 주석 코드 섹션를 참조하십시오.

ID 자동 생성

Azure Spring Data Azure Cosmos DB는 @GeneratedValue 주석을 사용하여 ID의 자동 생성을 지원합니다. 자세한 내용은 ID 자동 생성 섹션참조하세요.

SpEL 식 및 사용자 지정 컨테이너 이름

기본적으로 컨테이너 이름은 사용자 도메인 클래스의 클래스 이름이 됩니다. 사용자 지정하려면 도메인 클래스에 @Container(containerName="myCustomContainerName") 주석을 추가합니다. 자세한 내용은 SpEL 식 및 사용자 지정 컨테이너 이름 섹션참조하세요.

사용자 정의 색인 정책

기본적으로 IndexingPolicy Azure 서비스에 의해 설정됩니다. 사용자 지정하려면 도메인 클래스에 주석 @CosmosIndexingPolicy 추가합니다. 자세한 내용은 인덱싱 정책 섹션참조하세요.

고유 키 정책

Azure Spring Data Azure Cosmos DB는 도메인 클래스에 주석 UniqueKeyPolicy을 추가하여 컨테이너에 @CosmosUniqueKeyPolicy을 설정하는 것을 지원합니다. 자세한 내용은고유 키 정책 섹션을 참조하세요.

Azure Cosmos DB 파티션

Azure Cosmos DB 파티션지원합니다.

도메인 클래스의 필드를 파티션 키 필드로 지정하려면 @PartitionKey주석을 추가하기만 하면 됩니다.

CRUD 작업을 수행할 때 파티션 값을 지정합니다.

자세한 내용은 여기 섹션테스트를 참조하세요.

낙관적 잠금

Azure-spring-data-cosmos는 특정 컨테이너에 대해 낙관적 잠금을 지원합니다. 즉, 그 사이에 다른 프로세스에서 항목이 수정된 경우 항목별로 수행하는 upserts/deletes는 예외와 함께 실패합니다. 자세한 내용은 낙관적 잠금 섹션참조하세요.

Spring Data 사용자 지정 쿼리, 페이징 가능 및 정렬

Azure-spring-data-cosmos Spring Data 사용자 지정 쿼리지원합니다(예: findByAFieldAndBField같은 찾기 작업). 또한 Spring Data Pageable, Slice 및 Sort지원합니다. 자세한 내용은 쿼리, 페이징 및 정렬 가능 섹션를 참조하세요.

Spring Data Cosmos를 통해 Azure Cosmos DB Java SDK 사용

Azure-spring-data-cosmos Azure Cosmos DB Java SDK사용을 지원합니다. 사용자는 CosmosClient 통해 CosmosAsyncClient 또는 ApplicationContext 빈을 얻고 Azure Cosmos DB Java SDK에서 지원하는 모든 작업을 실행할 수 있습니다. 자세한 내용은 Spring Data Cosmos 섹션통해 Azure Cosmos 클라이언트를 사용하는 참조하세요.

Spring Data REST

Spring Data REST지원합니다. 자세한 내용은 Azure Spring Data Azure Cosmos DB REST API 섹션참조하세요.

감사

Azure-spring-data-cosmos는 표준 spring-data 주석을 사용하여 데이터베이스 엔터티의 감사를 위한 필드를 지원합니다. 자세한 내용은 Spring Data Azure Cosmos DB 감사 섹션참조하세요.

다중 데이터베이스 구성

Azure-spring-data-cosmos "여러 데이터베이스 계정" 및 "여러 데이터베이스가 있는 단일 계정"을 비롯한 다중 데이터베이스 구성을 지원합니다. 전체 코드 조각은다중 데이터베이스 구성 섹션을 참조하세요.

문제 해결

일반

버그가 발생하면 문제를여기에 제출하십시오.

새 기능 또는 변경 내용을 제안하려면 버그와 동일한 방식으로 문제를 제출합니다.

클라이언트 로깅을 활성화합니다

Azure-spring-data-cosmos log4j 및 logback과 같은 인기 있는 로깅 프레임워크에 대한 로그인을 지원하는 로깅 외관으로 SLF4j를 사용합니다. 자세한 내용은 클라이언트 로깅 활성화 섹션을 참조하세요.

예제

전체 샘플 프로젝트는 샘플 프로젝트참조하세요.

다중 데이터베이스 계정

전체 샘플 프로젝트는 다중 데이터베이스 샘플 프로젝트참조하세요.

다중 데이터베이스를 사용하는 단일 계정

전체 샘플 프로젝트는 단일 계정을 사용한 다중 데이터베이스 샘플 프로젝트 을 참조하세요.

다음 단계

기여

이 프로젝트는 기여와 제안을 환영합니다. 대부분의 기여는 사용자가 기여를 사용할 권리를 부여할 권리가 있음을 선언하는 CLA(기여자 사용권 계약)에 동의해야 합니다.

끌어오기 요청을 제출하면 CLA 봇은 CLA를 제공하고 PR을 적절하게 데코레이트해야 하는지 여부를 자동으로 결정합니다(예: 레이블, 주석). 봇에서 제공하는 지침을 따르기만 하면 됩니다. CLA를 사용하여 모든 리포지토리에서 한 번만 이 작업을 수행해야 합니다.

이 프로젝트는 Microsoft 오픈 소스 행동 강령채택했습니다. 자세한 내용은 행동 강령 FAQ 참조하거나 다른 질문이나 의견을 opencode@microsoft.com 문의하세요.

노출수