2011-03-04 3 views
3

CouchDB는 수많은 다른 시나리오에서 사용할 수있는 a cool pattern을 사용합니다. 나는 map/reduce 결과의 지속 된 B-tree 인덱스에 대해 이야기하고 있습니다. 아이디어는 집계 된 데이터를 사전 계산하여 B-tree 인덱스의 다른 레벨에 저장하는 것입니다. 그런 다음 인덱스를 사용하여 모든 데이터를 항상 재구성하지 않고도 효율적으로 집계를 쿼리 할 수 ​​있습니다. 그런 다음 리프 수준 값이 변경되면 트리를 통과하는 오름차순 경로 만 다시 계산해야합니다.CouchDB가 집계 된 데이터를 인덱싱하는 데 사용하는이 기술의 일반적인 이름

예를 들어 데이터의 가격이 시간 경과에 따라 다르면 인덱스는 SUM, COUNT를 일, 월 및 년 수준으로 저장할 수 있습니다. 그런 다음 평균 가격을 연초에 쿼리하려는 경우 시작일부터 모든 전체 월에 대한 모든 SUM 및 COUNT를 더하고 마지막 달에 사용할 수있는 모든 요일을 합산 한 다음 합계 SUM을 나눕니다 총 COUNT 개. 과거 가격을 변경해야하는 경우 변경 사항이 색인을 통해 전파되어야하지만 해당 일 및 월 및 연도 값만 업데이트해야하며 그 다음 다른 날짜 및 다른 달의 값은 계산.

이 접근법의 일반적인 이름은 무엇입니까? 인기있는 RDBMS에 비슷한 것이 있습니까? 이것을 실제로 사용하는 경험이 있습니까?

답변

5

Materialized view

는 "A보기. 그들은 원격으로 위치 데이터의 로컬 복사본 쿼리의 결과를 포함하는 데이터베이스 개체입니다되는, 또는 테이블의 데이터의 집계를 기반으로 요약 테이블을 만드는 데 사용됩니다 구체화. 구체화 원격 테이블을 기반으로 데이터를 저장하는 뷰는 스냅 샷이라고도합니다. "

이것은 주로 RDBMS의 컨텍스트에서 결과를 저장하는 방법을 설명하는 위키 백과 문서입니다.

개인적으로 나는 "색인 된보기"이라는 용어를 선호합니다. 실제로 위키 피 디아 문서가 "indexed view" on Google을 검색하여 발견되었습니다.

관련 문제