2016-12-24 8 views
1

Предположим, у вас есть журнал, как сбор документов в CouchDB, так как в этом табличном представлении JSON документов и атрибутов (каждая строка представляет собой документ в формате JSON, каждый столбец является атрибутом):CouchDb/CouchBase: Можете ли вы получить схему SCD Kimball через представление MapReduce?

PRODUCT_ID START_DATE PRICE 
0000000001 2016-01-01 100.00 
0000000002 2016-01-01 100.00 
0000000003 2016-01-01 100.00 
0000000001 2016-01-02 100.00 
0000000002 2016-01-02 200.00 
0000000003 2016-01-02 100.00 
0000000001 2016-01-03 100.00 
0000000002 2016-01-03 200.00 
0000000003 2016-01-03 100.00 

Можно через представление MapReduce, чтобы создать схему, реализующую концепцию Slowly Changing Dimension ?

.: например

PRODUCT_ID START_DATE PRICE END_DATE 
0000000001 2016-01-01 100.00 2999-12-31 
0000000002 2016-01-01 100.00 2016-01-02 
0000000003 2016-01-01 100.00 2999-12-31 
0000000002 2016-01-02 200.00 2999-12-31 

Я использую Cloudant, который имеет несколько усовершенствований по сравнению с базовой CouchDB.

переферия (гораздо шире) вопрос: Data warehousing principles and NoSQL

ответ

0

В CouchDB, то /database/_all_docs вид сортируется по идентификатору. Если вы можете терпеть наличие результатов просмотра в двух последовательных строках за каждый желаемый результат, это просто значение по умолчанию в CouchDB.

Должно быть достаточно легко объединить две строки в одну для вашего приложения.

Если вам нужно больше расчет на значения DOC, вы можете создать собственный вид, который работает таким же образом, используя emit(doc._id) в качестве ключа: http://docs.couchdb.org/en/2.0.0/couchapp/views/intro.html