2012-08-31 57 views
3

我是Couchbase和NoSql的新手,所以我想知道是否將Couchbase用作NLog日誌記錄的目標是可行的。我寫了一個快速而骯髒的Couchbase/NLog目標,該目標會將信息記錄在指定的存儲桶中。所以寫給CB的工作已經完成。Couchbase for NLog

我看到的問題是從桶中讀取/讀取數據。我不知道關鍵的名字......他們只是隨機的指導。我只想要轉儲數據,CB 1.8不支持從.NET客戶端獲取所有密鑰。

因此,如果我想讓查看器應用程序查看存儲桶中的數據,我該從哪裏開始?

+0

不幸的是,這不是一個選項。您必須具有密鑰名稱才能將值從緩存中取出。 – Drahkar

+1

Couchbase 2.0支持map/reduce視圖,您可以輕鬆使用這些視圖來查詢結果。檢出Couchbase實驗室ELMAH提供商Couchbase - https://github.com/couchbaselabs/elmah-couchbase。它完成了類似的事情。如果有什麼我可以幫忙的,讓我知道。 Couchbase的NLog目標將非常棒! –

回答

1

使用map reduce視圖,您可以通過使用下面的doc.key獲取所有密鑰的列表,或者如果您需要密鑰(id)和完整文檔,然後只發出doc。這隻適用於couchbase 2.0及以上版本。

function (doc, meta) { 
if(meta.type == 'json') { 
    emit(doc.key, null);  
} 
} 

您可以使用cbbackup工具轉儲所有的數據訪問http://www.couchbase.com/docs//couchbase-manual-2.0/couchbase-backup-restore-backup-cbbackup.html

Couchbase還支持將數據複製到在管理控制檯中使用XDCR彈性搜索節點/集羣。訪問http://docs.couchbase.com/couchbase-elastic-search/

2

您必須將每個密鑰及其元數據存儲在RAM中。我懷疑你想爲日誌做到這一點。

您可能想要改爲存儲在ElasticSearch中。有一個名爲Nest的.net客戶端,或者你可以只做json帖子。 Elasticsearch在文檔和RAM之間沒有1:1的關係。

+0

我完全同意elasticsearch,但是couchbase可能會過期文檔,所以如果您的保留時間很短,您可以輕鬆管理合理數量的日誌。 – Hans

0

藉助Couchbase Server 3.x,您現在可以從RAM中彈出元數據和文檔數據。此功能允許Couchbase Server 3存儲極其龐大的數據集,並使您能夠增量索引RAM中的更新,即使在大型或高速數據集中也是如此。

另外,正如其他人所指出的,Couchbase服務器具有Lucidworks Solr,ElasticSearch,Splunk等插件。

給Couchbase 3.0試一試,看看你自己!

http://www.couchbase.com/nosql-databases/downloads