Couchbase 데이터 플랫폼이 발전함에 따라, N1QL 및 GSI 인덱싱과 같은 서비스가 Couchbase VIEWS가 처리하던 사용 사례 등을 처리하게 되었습니다. 이 둘을 비교하는 것은 당연한 일입니다. 다음은 두 서비스를 비교한 표입니다. 이 글은 두 가지 모두에 익숙한 개발자와 아키텍트를 위한 것이지 입문서가 아닙니다. 여기에 있는 링크를 사용하여 자세한 내용을 알아보고 각 기능을 사용해 보세요.
주제 |
카우치베이스 맵-뷰 줄이기 |
카우치베이스 N1QL+GSI |
접근 방식 | 백그라운드에서 데이터에 대해 작동하는 사용자 정의 map() 및 reduce() 함수를 기반으로 합니다. map() 및 reduce()는 자바스크립트로 작성되었기 때문에 해당 함수 내에서 복잡한 로직을 코딩할 수 있습니다. | 선언적 N1QL 쿼리(JSON용 SQL)를 기반으로 합니다. 적절한 인덱스를 사용해 실행을 최적화하고 쿼리-인덱스-데이터 서비스를 오케스트레이션하여 동적으로 실행합니다. N1QL은 JSON에 대해 쉽게 쓰고 읽을 수 있는 쿼리를 가능하게 합니다. SQL에서 영감을 받았기 때문에 유연하고 구성이 가능합니다. JSON용으로 확장되었기 때문에 풍부한 JSON 데이터에서 작동합니다. 4값 부울 논리(true, false, NULL, MISSING)를 사용합니다. |
자세한 정보 | 카우치베이스 문서: http://bit.ly/2jQrY11 |
|
쿼리하기 | 쿼리 기준
|
쿼리 문
쿼리 작업:
|
인덱싱 | 보기에 대한 간단한 색인. |
|
파티셔닝 | 데이터 파티셔닝에 맞춰 조정됩니다. | 독립 서비스.
N1QL 및 GSI는 데이터 서비스 및 서로 독립적으로 확장됩니다. |
규모 | 데이터 서비스로 확장 | 다차원 스케일링(MDS)을 통한 독립적인 스케일링 |
문서 키로 가져오기 | 데이터는 문서 키에 분할되어 있으므로 노드에서 직접 문서를 가져옵니다. | USE KEYS 절을 통해 쿼리를 지정합니다.
데이터는 문서 키에 분할되어 있으므로 노드에서 직접 문서를 가져옵니다. |
인덱스 키로 가져오기 | 분산-수집 | 단일 노드에서 각 인덱스 스캔; 여러 노드에 있는 데이터.
쿼리 노드에서 포스트 처리 |
범위 스캔 | 분산-수집 | 단일 노드에서 인덱스 스캔.
쿼리 노드에서 포스트 처리 |
그룹화, 집계 | 보기 API에 내장 | N1QL에 내장 |
캐싱 | 파일 시스템 | 인덱스 버퍼 풀
데이터 캐시 |
스토리지 | 카우치스토어 | 플라즈마 스토리지 엔진(5.0 이상)
메모리 최적화 지수(4.5 이상) ForestDB(커뮤니티) |
가용성 | 복제본 기반 | 5.0: 복제본
4.x: 등가 인덱스 |
쿼리 지연 시간
(간단한 쿼리) |
10밀리초 ~ 100밀리초 | 5밀리초 이상 |
쿼리 처리량
(간단한 쿼리) |
초당 3K ~ 4K 쿼리 | 초당 40,000건의 쿼리 |
확장성 | 보통(데이터 서비스에 연동된 확장) | 높음(인덱스 및 쿼리 서비스의 독립적 확장: MDS) |
적용 가능성 | 지연 시간이 짧거나 중간 정도인 대규모 집계에 가장 적합한 집계입니다. 데이터에 대한 맵 축소 작업은 데이터가 수정될 때 백그라운드에서 수행됩니다. | 속성 기반 조회, 범위 스캔, 복잡한 선택-조인-프로젝트 배열에 적합
연산. 그룹화, 집계 및 정렬을 지원하며, 이러한 작업은 쿼리 실행의 일부로 동적으로 수행됩니다. |
애플리케이션 요구 사항 | 잘 정의된 메트릭에 대한 보고서
대규모 집계 지연 시간 민감 |
보조 키 조회
범위 스캔 운영 집계 필터링된 쿼리 복잡한 술어, 조인, 집계, 앱 검색, 페이지 매김, 보조 키 기반 업데이트가 포함된 임시 쿼리. |
공간 | 공간 뷰를 통해 지원 | 직접적으로는 아닙니다.
https://dzone.com/articles/speed-up-spatial-search-in-couchbase-n1ql |
일관성 | Stale = UPDATE_AFTER
부실 = 확인 부실 = 거짓 |
무제한(부실 = OK)
AT_PLUS(자신의 쓰기 읽기) REQUEST_PLUS(지금까지 인덱스 업데이트 후 읽기(). Stale = False). |
도구 | 웹 콘솔 | 웹 콘솔, 개발자 워크벤치, 쿼리 모니터링, 쿼리 프로파일링, 시각적 설명, INFER. |