COUCHDB 예제

CouchDB의 증분 감소 기능의 가장자리를 추진에 관심이 있다면, Sawzall에 구글의 종이를 봐, 비슷한 제약 조건 시스템에서 수행할 수 있는 더 이국적인 감소의 몇 가지 예를 제공 하는. 이 섹션의 예제에서는 쿼리가 인덱스를 사용하는 방법과 성능이 가장 좋은 쿼리 유형을 보여 줍니다. 쿼리를 작성할 때 다음 을 기억하십시오. 문서는 데이터베이스에 저장되는 방식인 “_id”로 정렬됩니다. 이제 뷰를 정의합니다. 우리는 당신에게 몇 가지 코드를 표시하는 동안 설명없이 우리와 함께 곰 : NoSQL [뿐만 아니라 SQL] 관계형 모델을 사용하지 않는 문서 저장소를 향해 움직임이다. 기본적인 패러다임 변화는 데이터를 저장하는 방식입니다. 예를 들어, RDBMS에서 송장에 대한 데이터를 저장해야 하는 경우 이 정보를 테이블로 변환한 다음 서버 측 언어를 사용하여 이 데이터를 실제 개체로 다시 변환해야 합니다. 반면에 NoSQL에서는 송장을 저장하기만 하면 됩니다.

NoSQL은 스키마가 없으므로 테이블을 디자인하고 구조를 미리 만들 필요가 없으므로 새 값을 저장하기만 하면 됩니다. 이불은 실제로 couchDB와 상호 작용하기 위해 jQuery 플러그인을 사용하고 있습니다. 당신은 http://127.0.0.1:5984/_utils/script/jquery.couch.js 그 플러그인을 볼 수 있습니다 (마음에 포트가 다를 수 있습니다). 이것은 당신에게 CouchDB와 상호 작용의 좋은 예를 제공합니다. 이 보기는 예제 앱에서 주석을 계산하는 데 사용하는 축소 보기이며 맵을 사용하여 주석을 출력하는 데 는 1개 이상보다 더 유용합니다. 그것은지도와 함께 놀고 기능을 줄이기 위해 약간의 시간을 보내고 지불합니다. Fauxton은 이에 대해 괜찮지만 모든 쿼리 매개 변수에 대한 전체 액세스 권한을 부여하지는 않습니다. 선택한 언어로 보기에 대한 테스트 코드를 작성하는 것은 CouchDB의 증분 MapReduce 시스템의 뉘앙스와 기능을 탐색할 수 있는 좋은 방법입니다.

좀 더 멋지게 만들고 향후 예제를 준비하기 위해 날짜 필드의 형식을 변경하겠습니다. 문자열 대신 개별 멤버가 의미를 줄이는 타임스탬프의 일부인 배열을 사용합니다. 이것은 멋진 소리, 하지만 그것은 오히려 쉽게. 대신: 위의 쿼리에 추가 필드를 추가해도 인덱스는 계속 사용됩니다. 그러나 쿼리는 추가 필드에 대해 인덱싱된 데이터를 검색해야 하므로 응답 시간이 길어집니다. 예를 들어 아래 쿼리는 여전히 인덱스를 사용하지만 이전 예제보다 반환하는 데 시간이 더 오래 걸릴 수 있습니다. 이제 Fauxton의 대부분의 기능을 보았으므로 다음 몇 가지 문서에서 예제 응용 프로그램을 빌드할 때 데이터를 자세히 알아보고 검사할 수 있습니다. CouchDB를 관리하는 Fauxton의 순수한 자바 스크립트 접근 방식은 CouchDB의 HTTP API 및 통합 웹 서버만 사용하여 완전한 기능을 갖춘 웹 응용 프로그램을 빌드할 수 있는 방법을 보여줍니다. 뷰 결과는 문서를 보관하는 구조와 마찬가지로 B 트리에 저장됩니다.

뷰 B-트리는 자체 파일에 저장되므로 고성능 CouchDB 사용을 위해 자신의 디스크에서 뷰를 유지할 수 있습니다. B-트리는 키별로 행을 매우 빠르게 조회할 뿐만 아니라 키 범위의 행을 효율적으로 스트리밍할 수 있습니다. 이 예제에서는 단일 보기가 “지난 주 블로그 게시물 을 모두 제공” 또는 “지난 달” 또는 “올해”와 같은 시간과 관련된 모든 질문에 답할 수 있습니다. 꽤 깔끔한. 구슬이 BYFN 피어 peer0.org1.example.com 설치되지 않은 경우 구슬이 설치된 다른 피어의 이름으로 대체해야 할 수 있습니다. 예를 들어 foo라는 필드에 대해 foo-index라는 간단한 인덱스를 지정합니다. 매개 변수 그룹 =true를 사용하면 group_level = 999인 것처럼 작동하므로 현재 예제의 경우 정확히 중복된 키가 없으므로 각 키에 대해 숫자 1을 지정합니다.

Sorry, comments are closed for this post.