몇 년 전, 디자인할 때 Perl 클라이언트 (카우치베이스에서 일하기 전)에는 모든 행이 도착할 때까지 기다릴 필요 없이 네트워크에서 도착하는 대로 뷰 결과를 처리하여 적절한 JSON 배열로 구문 분석할 수 있는 효율적인 방법을 원했습니다. 이 문제를 해결하기 위해 저는 jsonsl 라이브러리를 사용하여 JSON 행을 점진적으로 구문 분석하므로 이 라이브러리 사용자는 아직 완전한 JSON 객체가 없더라도 데이터가 도착하는 대로 데이터를 수신할 수 있습니다.

이 기능에 대한 지원은 Python과 Perl 클라이언트 모두에서 어느 정도 구현되었습니다. 이제 드디어 C 라이브러리에도 적용되었습니다. 이로써 C 클라이언트에서 제공되는 향상된 테스트 인프라의 이점을 누릴 수 있을 뿐만 아니라, C 사용자에게는 원시 HTTP API보다 훨씬 간단한 개선된 API도 제공됩니다.

보기 API 사용

다음은 사용 방법의 예입니다:

새로운 보기 기능에는 라이브러리에서 결과를 위해 문서를 가져오는 기능도 포함되어 있습니다. 단순히 LCB_CMDVIEWQUERY_F_INCLUDE_DOCS 플래그의 cmd.cmdflags 필드에 입력합니다.

N1QL API 사용

N1QL은 향후 버전의 Couchbase에 추가될 실험적 기능입니다. 개발자 미리 보기로 제공됩니다(http://docs.couchbase.com/developer/n1ql-dp3/n1ql-intro.html). 클라이언트 2.4.7 버전은 N1QL과 인터페이스할 수 있는 몇 가지 새로운 API를 제공합니다.

N1QL API를 사용하는 것은 보기 API와 매우 유사합니다. 뷰와 마찬가지로 행 기반입니다. 그러나 보기와 달리 N1QL 쿼리 매개변수의 전달은 (복잡성 때문에) 더 추상화되어 있으며 특별한 '매개변수' 개체를 만들어야 합니다.

설치

일반적인 업그레이드/설치 지침

작성자

게시자 마크 넌버그, 소프트웨어 엔지니어, 카우치베이스

마크 넌버그는 카우치베이스에서 일하는 소프트웨어 엔지니어입니다. 그는 C 클라이언트 라이브러리(libcouchbase)와 Python 클라이언트를 유지 관리합니다. 또한 이전 회사에서 사용하던 Perl 클라이언트도 개발했는데, 이것이 Couchbase에서 일하게 된 계기가 되었습니다. Couchbase에 입사하기 전에는 전자상거래 분석 회사에서 분산형 고성능 라우팅 시스템을 개발했습니다. Mark는 예루살렘 히브리 대학교에서 언어학을 전공했습니다.

댓글 남기기