Java BigTable与noSQL
我可以知道在“nosql”中有一些限制,就像bigtable一样,我们应该“非规范化”我们的表/实体吗Java BigTable与noSQL,java,hibernate,google-app-engine,nosql,bigtable,Java,Hibernate,Google App Engine,Nosql,Bigtable,我可以知道在“nosql”中有一些限制,就像bigtable一样,我们应该“非规范化”我们的表/实体吗 是否有api包装器允许我们编写一次代码,并可用于google app engine bigtable和nosql?(有点像hiberanate) 是的,例如在MongoDB中,您没有联接,因为它是非关系的,所以它确实改变了我们存储和浏览数据的方式 因为MongoDB是非关系的(否 连接)、引用(“外键”) 文档之间通常是 通过附加数据解决客户端问题 对服务器的查询。两个公约 对于MongoDB
是的,例如在MongoDB中,您没有联接,因为它是非关系的,所以它确实改变了我们存储和浏览数据的方式 因为MongoDB是非关系的(否 连接)、引用(“外键”) 文档之间通常是 通过附加数据解决客户端问题 对服务器的查询。两个公约 对于MongoDB中的引用来说是常见的: 首先是简单的手册参考,以及 第二,DBRef标准,其中许多 驱动程序明确支持 似乎大家的共识是反规范化和复制,以加快读取速度,避免将分布式数据连接在一起的成本,连接和合并逻辑在应用程序级别完成 至于数据库非规范化是否绝对必要,我不确定(其他成员可能会启发我们)。但我认为,数据库的建模应该考虑到这些“局限性”,同时对如何查询数据进行良好的研究。这将使过程的阻抗最小 另请参见:
任何允许我们编写的API包装器 代码一次,可以用于谷歌 应用引擎BigTable和nosql? (有点像冬眠) JDO是数据存储不可知的,所以它可能只是在某种程度上提供了您想要的东西 最近似乎有很多项目将JDO和JPA用于“NoSQL”产品 请参见: 是否有API包装器允许我们编写一次代码,并可用于google app engine BigTable和nosql?(有点像冬眠) 虽然抽象库确实有助于可移植性,但您必须考虑您运行的特定平台。如果你打算使用谷歌应用程序引擎,你必须意识到这一点
您应该权衡使用JDO或JPA之类的东西的利弊。另请看一看,它提供了一个更本机的接口,其缺点是与应用程序引擎数据存储耦合。bigtable是nosql数据库的一个示例。当然,“nosql”并没有一个精确的定义:)你也可以再添加一个DataNucleus Cassandra插件。这个想法是,这些插件将在将来的某个阶段被合并(我引用的这个插件包括Pedro Gomes版本中的一些东西)。我不知道有任何抽象包装器库存在