RethinkDB 能否有效处理大量稀疏性?

Posted

技术标签:

【中文标题】RethinkDB 能否有效处理大量稀疏性?【英文标题】:Can RethinkDB efficiently handle lots of sparseness? 【发布时间】:2015-12-21 12:17:40 【问题描述】:

用例:作为数据基础设施的一部分,我正在考虑在同一个 RethinkDB 表中存储许多 * 各种 schema.org 类型的实体。

鉴于 schema.org 固有的类型层次结构,一些属性由所有类型共享,一些属性仅适用于一种类型,以及介于两者之间的所有类型。

例如:Person,Organization,LocalBusiness,共享属性如namedescriptionpostalAddress等,而有些是仅供Person使用的,如firstName

将此映射到 RethinkDB 表将导致许多实体的许多属性(Rethink-speak 中的字段)为空。作为一种猜测,我会说一个字段平均大约 90% 的时间是空的。大约有 150 个字段存在。

RethinkDB 能否有效处理如此稀疏的布局?这是我意识到的一个广泛的问题,但我正在寻找以下细节:

如果我要在这些字段中的一些(不是全部)上建立索引,空值会占用这些索引中的空间吗? 如果这些字段都被允许为多值,性能损失(cpu 和 mem)会是多少?即:数组?

*) 一两百万开始

【问题讨论】:

【参考方案1】:

RethinkDB 可以很好地处理稀疏数据。索引目前始终是稀疏索引,因此您的索引不会被没有索引字段的文档弄乱。

【讨论】:

以上是关于RethinkDB 能否有效处理大量稀疏性?的主要内容,如果未能解决你的问题,请参考以下文章

稀疏表示和字典学习

bittorrent 对等节点能否处理播种大量空闲种子

稀疏 CSR 阵列的核外处理

提高 rethinkdb 中大量记录的查询性能

SVD解决词分布式表示稀疏性

大型稀疏矩阵的 Moore-Penrose 广义逆