Couchbase는 통합 캐시 및 스토리지 기술을 결합한 고유한 NoSQL 데이터베이스를 제공합니다. 많은 고객과 잠재 고객이 바이너리 데이터 및/또는 JSON 문서를 저장하는 데 사용하고 있습니다. 프로덕션 시스템의 적절한 크기를 결정하려면 평균 문서 크기를 파악해야 하는 경우가 많습니다. Couchbase 크기 조정에 대해 자세히 알아보려면 Perry의 이 훌륭한 블로그 세트를 참조하세요:
- http://www.couchbase.com/blog/how-many-nodes-part-1-introduction-sizing-couchbase-server-20-cluster
- http://www.couchbase.com/blog/how-many-nodes-part-2-sizing-couchbase-server-20-cluster
이 블로그 항목에서는 뷰를 사용하여 평균 문서 크기(바이너리 데이터 및 JSON 문서의 경우)를 계산하는 간단한 방법을 자세히 설명합니다.
이는 개발 또는 스테이징 시스템에서만 사용하도록 되어 있습니다. not 를 사용하면 모든 문서를 인덱싱하는 동안 오버헤드가 발생하므로 실제 프로덕션 시스템에서는 사용하지 않습니다.
뷰는 자바스크립트로 작성하는 함수로, Couchbase 서버에 저장된 문서의 정보를 추출, 필터링, 집계 및 찾을 수 있습니다.
뷰를 만드는 첫 번째 단계는 다음을 제공하는 것입니다. 지도 함수를 사용하여 특정 정보에 대한 항목을 필터링하고 일부 정보를 추출할 수 있습니다. 맵 함수의 결과는 키/값 쌍의 정렬된 목록이며, 이를 색인. 맵 함수의 결과는 Couchbase 서버에 의해 디스크에 유지되며 문서가 변경되면 점진적으로 업데이트됩니다.
또한 선택적으로 다음과 같이 감소 함수를 사용하여 정보를 합산, 집계하거나 계산을 수행할 수 있습니다.
보기에 대한 자세한 내용은 개발 가이드에서 확인할 수 있습니다:
http://www.couchbase.com/docs/couchbase-devguide-2.1.0/understanding-views.html
이제 뷰를 만드는 데 필요한 사항을 살펴보겠습니다:
지도뷰에 대한 맵 함수의 다음 코드는 키가 문서의 키이고 값이 문서의 길이인 간단한 키 값 쌍 인덱스를 생성합니다:
함수 (문서, 메타) {
if (meta.type == "json") {
var size = JSON.stringify(doc).length;
emit(meta.id, size);
}
if (meta.type == "base64") {
var size = decodeBase64(doc).length;
emit(meta.id, size);
}
}
이 함수는 JSON 문서(JSON.stringify 사용) 및 바이너리 문서(decodeBase64 사용)에 대해 작동합니다.
이 기능은 필요에 따라 특정 문서의 평균 크기를 계산할 수 있도록 확장될 수 있습니다.
감소마지막으로, 축소 함수를 만듭니다(Couchbase의 Aaron에게 감사드립니다(https://twitter.com/apage43) )를 사용하여 값을 집계하고 값의 수로 나누어 평균 문서 크기를 계산하는 뷰를 만들었습니다. 이 함수는 맵 및 축소 구문을 따르기 때문에 처음에는 약간 복잡해 보이지만 카운트, 합계 및 평균을 출력합니다(기본 제공 함수에서는 평균을 제공하지 않기 때문에 이 함수를 매우 쉽게 사용할 수 있도록 만들고 싶었습니다).
함수 (키, 값, 재환원) {
if(!rereduce) {
var total = 0,
count = 0;
for (v in values) {
total+= values[v];
count++;
}
} else {
var count = 0;
합계 = 0;
for (v in values) {
total += values[v]['total'];
count += values[v]['count'];
}
}
var 평균 = 총계 / 카운트;
반환 {카운트: 카운트,
합계: 합계,
평균: 평균};
}
출력은 카우치베이스 보기 편집기에서 다음과 같이 표시됩니다:
쿼리를 실행하기 전에 reduce를 true로 지정해야 합니다:
뷰를 만들고 저장한 후 결과 표시를 클릭하면 다음과 같이 평균 문서 크기가 한 줄로 표시됩니다:
짜잔!
의견과 질문을 alexis@couchbase.com 으로 보내주세요.
키 크기와 키 수를 기준으로 램 요구량을 알려주는 계산기를 찾으려고 하는데요? 몇 주 전에 사용했던 기억이 나는데 더 이상 찾을 수 없나요? 아직 가지고 계신가요?
멋지네요. 정말 도움이 되었습니다.
고마워요!
이 보기는 Couchbase 5.1에서 작동하지 않습니다. 도움이 필요하신가요?
실제로 카우치베이스 5.1에서 뷰를 만들 수 없습니다. 뷰를 저장하려고 할 때 실패합니다.