【问题标题】:Data Modeling for couchbase沙发底座的数据建模
【发布时间】:2019-12-08 06:22:44
【问题描述】:

我有一个用于测试网站/页面的爬虫。下面是我用 RDBMS 做的模型:

class Site{
   Uri Uri {set;get;}
   Collection<Test> Test{set;get;}
}

class Test{
   Collection<Page> Pages {set;get;}
}

class Page{
   // Page info
}

我的查询会是每个站点和整体有多少页面加载失败、多少返回 404 等。

所以我对 couchbase 的关注是文档大小,20 MB,我抓取的一些网站有 10K 页。如果我爬了几次让我们说 10 次,Site 对象将超过这个限制,它最终会。

在这里进行建模的正确方法是什么?

【问题讨论】:

    标签: database-design web-crawler couchbase couchbase-view


    【解决方案1】:

    如果没有更多信息,就没有正确的建模方法。我能想到几种方法,它们可能对你有用,也可能对你没用,但这是我的第一个。

    1. 每个站点都可以是它自己的对象,即 10k。为每个站点使用一个计数器对象,并将该计数器用作版本号,以用作基于计数器的每个文档上的对象 ID 的一部分。所以对象 ID 可能看起来像“::” 然后当您需要最新版本时,您只需获取计数器对象的值,然后获取您需要的对象 ID。非常简单,非常快速。

    有关在 Couchbase 中使用键进行高级对象建模的更多信息,我可以推荐this blog postthis blog post,这可能会给您一些好主意。这两个示例并不完全相关,但它们应该可以帮助您思考如何对数据进行建模,以及为什么您可能会做出某些决定来帮助您充分利用 Couchbase 的功能。就像我说的,确实没有一个特别正确的方法。这将取决于您的数据、用例和您需要从 Couchbase 中获得的性能。有比其他更好的方法。

    【讨论】:

      猜你喜欢
      • 2015-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多