Couchbase가 지원할 수 있는 문서 데이터베이스 사용 사례의 유형을 크게 확장한 획기적인 4.0 릴리스를 기반으로 하는 Couchbase Server 4.1은 쿼리 기능과 성능을 대폭 개선하여 개발자와 기업 모두에게 도움이 될 것입니다.
Couchbase Server 4.0이 출시된 지 3개월 만에 출시되는 4.1에는 확장성과 쿼리 성능을 향상시킬 수 있는 200개 이상의 개선 사항이 포함되어 있다는 것은 엔지니어링 팀의 노력의 결과입니다. 4.1 릴리스에서는 다음과 같은 기능을 신속하게 개선하고자 했습니다. N1QL이미 많은 고객들이 N1QL을 사용하여 Couchbase에서 새로운 사용 사례를 구축하고 있습니다.
4.1 릴리스의 주요 특징은 다음과 같습니다.
N1QL: 배치 및 OLTP 애플리케이션을 위한 N1QL의 완벽한 SQL CRUD 지원
다음과 같은 일반적인 SQL 문 삽입, 업데이트, 삭제, MERGE 그리고 UPSERT 은 이제 Couchbase Server 4.1에서 완전히 지원됩니다. 이제 SQL로 테이블을 조작하는 것과 같은 방식으로 N1QL로 JSON 문서를 조작하고 엔터프라이즈 웹, 모바일 및 IoT 애플리케이션의 모든 쿼리 요구 사항을 지원할 수 있습니다.
N1QL INSERT 문은 싱글톤 및 다중 문서 삽입을 모두 허용합니다. 업데이트 및 삭제는 특정 기준에 따라 문서 집합을 조작할 수 있습니다. 이 두 문은 모두 사용 가능한 인덱스를 사용하여 문서를 효율적으로 식별하고 업데이트합니다. UPSERT 및 MERGE 문은 주어진 기준에 따라 두 문서 집합을 병합합니다. 이러한 모든 기존 SQL 문은 JSON 문서를 지원하도록 조정되었습니다.
SQL 문은 Couchbase SDK, REST API 및 Simba의 JDBC 및 ODBC 드라이버에서 완벽하게 지원됩니다.
커버링 인덱스
정의에 따르면 커버링 인덱스는 특정 쿼리에 필요한 최소한의 모든 필드를 포함하는 인덱스입니다. 이것이 애플리케이션에 의미하는 바는 커버링 인덱스가 쿼리를 더 빠르게 실행하는 데 도움이 된다는 것입니다. 표준 인덱스를 사용하면 쿼리 실행 흐름이 처음에 인덱스 서비스에서 데이터를 스캔하지만, 쿼리를 완료하기 위해 데이터 서비스를 스캔하는 데 추가 시간을 소비해야 합니다. 커버링 인덱스를 사용하면 데이터 액세스를 위해 해당 커버링 인덱스의 스캔만 필요합니다. 그 결과 쿼리 대기 시간이 단축되고 애플리케이션의 성능이 빨라집니다.
N1QL 쿼리는 사용 가능한 인덱스를 사용해 쿼리를 효율적으로 실행합니다. 사용 사례에 따라 쿼리 지연 시간과 처리량이 2~3배 이상 개선되었습니다. 쿼리가 선택한 인덱스의 주요 속성만 참조하면 되는 경우, 쿼리에 대한 답을 얻기 위해 전체 문서를 가져오는 것을 피할 수 있기 때문입니다. 그러면 쿼리는 더 적은 리소스를 사용하고 더 빠르게 실행됩니다. 또한, N1QL 쿼리 엔진은 인덱스 키가 ORDER BY 절의 키 속성과 일치할 때 데이터 정렬을 피하기 위해 인덱스 순서를 활용합니다.
N1QL 최적화 도구는 쿼리에 대한 답변에 인덱스만 사용할 수 있는지 자동으로 인식합니다. 커버링 인덱스를 사용하면 일반적으로 많은 수의 행을 처리하는 쿼리에서 성능이 크게 향상됩니다. 예를 들어, 다음과 같이 집계를 수행하는 쿼리의 경우
CREATE INDEX idxstatecountry ON 맥주 샘플(주, 국가) GSI 사용
SELECT 국가, 최대(state)
FROM 맥주 샘플 사용 인덱스(idxstatecountry)
WHERE 상태는 'C%'
국가별 그룹
ORDER BY를 정렬에 사용하는 경우 인덱스가 이미 정렬되어 있기 때문에 커버링 인덱스도 도움이 될 수 있으며, 쿼리 엔진은 정렬된 커버링 인덱스를 직접 사용하여 결과를 생성할 수 있습니다.
준비된 명세서
준비된 문을 사용하면 반복적인 쿼리 구문 분석 및 준비를 피함으로써 동일하거나 유사한 쿼리를 높은 효율로 여러 번 실행할 수 있습니다. 많은 애플리케이션에서 매개변수만 달리하여 미리 정의된 쿼리를 반복적으로 실행해야 합니다. 이러한 반복 쿼리를 애드혹 문으로 수행하려면 매번 쿼리 구문 분석, 계획 및 실행이 필요합니다. 실행 계획이 고정되어 있고 쿼리가 실행될 때마다 특정 변수만 대체되는 준비된 문 템플릿을 사용하면 이러한 자주 반복되는 쿼리의 실행 계획을 구문 분석하고 컴파일하는 데 필요한 오버헤드를 제거할 수 있습니다. 그 결과 지연 시간이 단축되고 CPU 주기가 줄어들어 애플리케이션의 성능이 빨라집니다.
이미 여러 고객이 이전에 맵 축소 및 보기에 의존하던 쿼리를 N1QL로 대체하고, 이전에 Couchbase가 지원하던 것보다 더 복잡한 쿼리를 필요로 하는 새로운 애플리케이션을 구축하는 것을 보았습니다.
추가 지원 플랫폼
카우치베이스 서버 4.1은 Windows 10 및 OSX 엘 캐피탄 플랫폼 모두에서 실행되도록 인증되었습니다.
지금 시작하기
4.1 GA가 출시되었으며, 시작하는 데 도움이 되는 몇 가지 리소스를 소개합니다.
- 카우치베이스 서버 4.1의 새로운 기능 문서
- Couchbase Server 4.1 다운로드
- 카우치베이스 서버 문서
- 4.1 릴리스 노트
- SQL 커넥터가 포함된 Couchbase ODBC 및 JDBC 드라이버
개발자 프리뷰 비트를 사용해 주시고, 지속적으로 테스트해 주신 멋진 커뮤니티 여러분께 감사드립니다. 피드백 제공특히 N1QL에 대해 자세히 알아보세요. 4.1을 사용해 보시고 언제나처럼 피드백을 보내주시기 바랍니다.
Couchbase 4.1로 애플리케이션을 구축해 보세요!