我们正在尝试将现有的RDBMS迁移到NOSQL数据库。由于我们在数据仓库中有代理键的概念,我们如何根据NOSQL数据库处理这些概念呢? 在将现有RDBMS迁移到NOSQL数据库时,NOSQL数据库有哪些良好实践? 我们正在寻找Accumulo,Cassandra或Hbase实施。 请帮忙
答案 0 :(得分:1)
我可以讲一些关于Cassandra的话,这与任何其他键值存储有关。它的模式建模是基于查询的。因此,您需要先考虑您的查询,然后根据查询创建表和键。
当然会有数据冗余和非规范化。
例如,您可能在RDBMS中有一个包含自然键和代理键的表。但是,如果您习惯使用代理键进行搜索,那么对于NOSQL,它将变为2个具有NaturalKey->Value
和SurrogateKey->Value
关系的表格。
NOSQL只有一个键(尽管它可以包含多个列),所以代理键和自然键之间没有技术差异,因为它们都是“键”。
你唯一有用的东西是您需要在Cassandra使用UUID代理键而不是计数器(看起来与自动增量字段非常相似)。
代理键在数据仓库中以稍微不同的方式使用:它们用于将事实表与维度表连接,但键值DB在RDBMS方面没有连接。
您可以找到有关Cassandra数据建模和使用的更多信息here,here和here。