문서용 Ruby 및 SQL(이전의 N1QL): 첫 맛보기

이제 루비를 포함하여 점점 더 많은 SDK에 N1QL 기능이 제공되고 있습니다. Ruby에서 구조화된 쿼리가 어떻게 작동하는지에 대해 간단히 소개해드리고자 합니다. 현재 라이브러리는 ODM이나 그 위에 있는 다른 높은 수준의 추상화를 제공하지 않지만, 그렇지 않으면 거의 모든 것이 가능합니다.

N1QL에 대한 실험적 지원이 다음에서 추가되었습니다. 최근 마이너 릴리스 1.3.12 API가 최종 릴리스에서 변경될 수 있습니다. 아래 예제에서는 다음을 사용하여 작업하는 방법을 보여 드리겠습니다. 새로운 여행 데이터 세트에 있는 4.0 개발자 미리 보기. 이 블로그에서는 최신 버전의 루비 클라이언트를 설치했다고 가정하고 있습니다(그렇지 않은 경우 "gem 설치 -v 1.3.12") 및 쿼리 서비스가 활성화된 로컬 Couchbase 서버가 있어야 합니다.

먼저 버킷에 대한 연결을 설정해 보겠습니다:

N1QL 쿼리의 진입점은 다음과 같습니다. Couchbase::Bucket#query 메서드는 N1QL의 문자열을 받아 해시를 반환하고 그리고 메타 키에 서버의 응답을 전달합니다. 문제가 있는 경우 라이브러리에서 Couchbase::오류::쿼리 예외에 메타데이터를 첨부하여 오류를 분석합니다.

예를 들어 전체 데이터 세트에 대한 기본 인덱스를 생성해 보겠습니다:

기본 인덱스가 정의되면 해당 키로 문서를 가져올 수 있습니다:

예제를 더 간단하게 만들기 위해 다음 함수를 사용하여 스트립할 수 있습니다. 메타 필드에서 값만 추출합니다.

이 샘플 버킷에 대한 몇 가지 질문에 답해 보겠습니다. 이전 샘플 맥주 데이터에는 약 7천 개의 문서가 포함되어 있었는데, 이 데이터에는 얼마나 많은 문서가 있는지 살펴보겠습니다:

실험을 위한 훌륭한 샌드박스입니다. 어떤 종류의 문서가 포함되어 있나요?

숙제로 샘플 데이터베이스의 구조를 더 자세히 살펴볼 수 있습니다. 지금은 좀 더 실용적인 질문에 답해 보겠습니다. 파리의 에펠탑을 보고 싶어하는 로스앤젤레스에 사는 사람이 이용할 수 있는 노선은 무엇일까요? 간단한 구현은 다음과 같이 보일 수 있습니다(LAX와 CDG의 의미를 알고 있다고 가정할 때).

이 코드를 실행하면 아래와 같이 유명한 타워를 볼 수 있는 모든 경로의 시간표가 멋지게 형식화되어 표시됩니다. 

현재 소개는 여기까지이며, 새로운 쿼리에 대한 피드백을 남겨 주세요. 특히 어떤 종류의 루비 지원이 있으면 좋겠는지 알려주세요!

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

작성자

게시자 세르게이 아브제예프, SDK 엔지니어, 카우치베이스

세르게이 아브제예프는 Couchbase의 SDK 엔지니어입니다. 세르게이 아브제예프는 Couchbase 복제 프로토콜인 DCP를 구현하는 기본 라이브러리와 Kafka 커넥터의 개발을 담당하고 있습니다. 또한 Couchbase용 PHP SDK를 유지 관리합니다.

댓글 하나

  1. 멋져 보입니다, node.js 샘플을 기대하고 있습니다 :)

댓글 남기기

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

구축 시작

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

카펠라 무료 사용

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

연락하기

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