将复杂数据存储为NoSQL数据库中的关键?

时间:2018-06-12 21:41:06

标签: database hash nosql

我的数据有多个维度,每个维度都是字符串。例如,Personpositionidemail等描述......

我想使用一段多维数据作为我的NoSQL数据库的关键。我不需要进行任何复杂的查询,只需定期进行全表扫描(表格会很小)。将这些数据格式化为关键的一些方法/最佳实践是什么?

我考虑过冒号分隔(即position:id:email),但它具有难以阅读和低灵活性。我也考虑过散列这个以冒号分隔的字符串。这种类型的东西有一个很好的哈希函数吗?还是其他任何完全的建议?

提前致谢!

1 个答案:

答案 0 :(得分:1)

在键值存储/ NoSQL数据库中,在一维键下存储多维数据是一项艰巨的任务。确实存在像MD-HBaseGeoMESA这样的项目;他们将多维数据放入n维空间,并使用space-filling curve将数据的位置编码为一维密钥。但是,大多数项目仅限于二维空间数据,并且无法处理字符串属性。

无耻的插件:我已经启动了一个名为BBoxDB的新开源项目。 BBoxDB是一个分布式存储管理器,能够处理多维数据。在BBoxDB中,边界框用于描述多维数据在n维空间中的位置。您可以将Person实体的字符串属性映射到n维空间中的一个点,并将该点用作数据的边界框。然后,BBoxDB可以对您的数据运行查询(例如,全表扫描或限于某些维度的扫描)。该项目尚处于初期阶段,但也许对您来说很有趣。