인덱스 관리의 개발자 프리뷰가 포함된 Couchbase.NET SDK v2.2.7이 출시되었습니다!

인덱스 관리의 개발자 프리뷰가 포함된 Couchbase.NET SDK v2.2.7이 출시되었습니다!

오늘 공식 Couchbase .NET SDK 버전 2.2.7을 출시합니다! 이번 릴리스에는 특히 인덱스 관리 지원이 포함되어 있으며, v2.2.6에서 개발자 프리뷰로 출시되었던 하위 문서 API에 추가되었으며, 버그 수정 및 향후 .NET Core 지원에 대한 개선 사항이 포함되어 있습니다.

인덱스 관리

글로벌 보조 인덱스(GSI)는 카우치베이스 서버의 N1QL 쿼리 아키텍처의 중요한 부분으로, 빠르고 대기 시간이 짧은 쿼리를 가능하게 해줍니다. JSON 요소, N1QL 표현식에 인덱스를 배치하고 WHERE 절을 통해 필터를 사용할 수 있습니다. .NET SDK v2.2.7에서는 기본 및 보조 인덱스를 매우 쉽게 생성할 수 있도록 Couchbase Server 인덱싱 서비스에 대한 추상화를 구축했습니다. 이 추상화는 Couchbase 버킷 생성 및 관리 지원을 포함하는 BucketManager 클래스를 확장하고 확장합니다.

버킷 관리자는 클러스터 인스턴스에서 버킷 개체를 열고 사용자 환경에 맞는 올바른 구성을 전달하면 생성됩니다.

기본 인덱스 생성 및 삭제

명명된 기본 인덱스와 명명되지 않은 기본 인덱스는 BucketManager 인스턴스가 있으면 CreatePrimaryIndex 및 CreateNamedPrimaryIndex 메서드를 호출하여 만들 수 있습니다:

항상 열어둔 버킷의 컨텍스트에서 작업한다는 점에 유의하세요. 따라서 이러한 인덱스는 앞서 연 "맥주 샘플" 버킷에서 생성됩니다. 또한 이 두 가지 메서드 모두 "defer"라는 부울 필드를 사용하지만, 사실 보시다시피 모든 생성 메서드에는 "defer" 매개변수가 포함되어 있습니다. "defer"가 참이면 인덱스가 생성되지만 BuildDeferredIndexes 메서드가 호출될 때까지 인덱스가 구축되지 않습니다. 나중에 지연된 인덱스에 대해 자세히 알아보겠습니다!

명명된 또는 명명되지 않은 기본 인덱스를 삭제하는 것은 메서드 이름을 제외하면 인덱스를 만드는 것과 거의 동일합니다:

인덱스가 존재하지 않으면 result.Success는 거짓이 됩니다.

보조 인덱스 만들기 및 삭제하기

보조 인덱스 생성 및 삭제는 하나 이상의 필드에 대해서도 인덱싱할 수 있다는 점을 제외하면 기본 인덱스와 유사합니다.

이 경우 인덱스 생성이 지연되도록 "true"를 전달하고 있습니다. 또한 인덱스가 이미 존재하거나 존재하지 않는데 삭제하려고 하면 result.Success는 false가 됩니다.

하위 문서 API 업데이트

이번 릴리스에는 2.2.6에서 개발자 프리뷰로 출시된 SubDocument API에 대한 내부 변경 사항도 포함되어 있습니다. 성능과 관련된 두 가지 주요 개선 사항이 추가되었습니다:

  1. 단일 변이 또는 조회 연산이 실행되는 경우 SDK는 유선을 통해 몇 바이트를 절약하는 다중 연산이 아닌 단일 연산을 사용합니다.
  2. 응답 본문의 역직렬화는 이제 Content를 호출할 때까지 연기됩니다.

하위 문서 경로 탐색을 위한 람다 표현식

이러한 변경 사항 외에도 다음 커뮤니티의 기여를 통해 또 다른 새로운 기능이 릴리스에 추가되었습니다. 커뮤니티: 하위 문서 경로에 대한 람다 표현식 탐색. 이 기능을 사용하면 문자열 경로를 전달하는 대신 익숙한 유형 안전 인텔리센스 지원 구문을 linq에서 사용할 수 있습니다.

다음과 같은 문서가 있다고 가정합니다:

그런 다음 다음과 같이 "geo.accuracy" 경로에서 값을 검색합니다:

물론 문서에서 각 개별 요소를 검색하기 위해 여러 개의 'Get'을 연결할 수도 있습니다.

v2.2.7 릴리스 노트

버그

  • [NCBC-1099] - 오류, 경고 및 메트릭 클래스에 DataContract 속성 추가

개선 사항

  • [NCBC-1103] - 하위 문서에 대한 비동기 작업 지원
  • [NCBC-994] - 개발 환경 및 프로젝트를 VS2015로 업그레이드
  • [NCBC-1089] - 성공하지 못한 모든 코드 경로를 기다립니다.
  • [NCBC-1095] - NodeUnavailableException에서 다시 시도하지 마십시오.

새로운 기능

  • [NCBC-1067] - 인덱스 관리를 지원하도록 BucketManager 확장
  • [NCBC-1093] - 하위 문서 API 지원 포함 - 파트2 단일 명령 DP2

v2.2.7을 다운로드하는 방법

이 문서 공유하기
받은 편지함에서 카우치베이스 블로그 업데이트 받기
이 필드는 필수 입력 사항입니다.

작성자

게시자 Jeff Morris, 수석 소프트웨어 엔지니어, Couchbase

Jeff Morris는 Couchbase의 수석 소프트웨어 엔지니어입니다. Couchbase에 입사하기 전에는 6년 동안 Source Interlink에서 엔터프라이즈 웹 아키텍트로 근무했습니다. Jeff는 Couchbase SDK 개발과 N1QL(쿼리 언어)과 통합하는 방법을 담당하고 있습니다.

댓글 남기기

카우치베이스 카펠라를 시작할 준비가 되셨나요?

구축 시작

개발자 포털에서 NoSQL을 살펴보고, 리소스를 찾아보고, 튜토리얼을 시작하세요.

카펠라 무료 사용

클릭 몇 번으로 Couchbase를 직접 체험해 보세요. Capella DBaaS는 가장 쉽고 빠르게 시작할 수 있는 방법입니다.

연락하기

카우치베이스 제품에 대해 자세히 알고 싶으신가요? 저희가 도와드리겠습니다.