Hive 如何使用Java API访问配置单元

Hive 如何使用Java API访问配置单元,hive,Hive,-是否有比Hive JDBC驱动程序更高级的ORM接口,我们可以使用它来运行查询和分析结果否。ORM中的“R”代表“关系数据库”。Hive是一个NOSQL数据库,而不是关系数据库。与许多其他NOSQL数据库相比,Hive的一个巨大优势是,您可以使用(几乎)普通SQL和(几乎)全功能标准JDBC接口访问它。但是,如果您正在考虑一起使用ORM和Hive,那么您可能从错误的角度处理问题 编辑6/4/13:这里引用维基百科的一句话:在关系模型中,每个表架构必须标识一个主列,用于标识一个称为主键的行。表可

-是否有比Hive JDBC驱动程序更高级的ORM接口,我们可以使用它来运行查询和分析结果

否。ORM中的“R”代表“关系数据库”。Hive是一个NOSQL数据库,而不是关系数据库。与许多其他NOSQL数据库相比,Hive的一个巨大优势是,您可以使用(几乎)普通SQL和(几乎)全功能标准JDBC接口访问它。但是,如果您正在考虑一起使用ORM和Hive,那么您可能从错误的角度处理问题

编辑6/4/13:这里引用维基百科的一句话:在关系模型中,每个表架构必须标识一个主列,用于标识一个称为主键的行。表可以通过使用指向主键的外键进行关联

配置单元既不支持外键也不支持主键,因此它不是关系数据库


我要感谢downvoter给了我一个机会,让我再次检查导致我发表原始声明的理由。

Hive是Hadoop之上的一个生态系统组件。它不是RDBMS或NOSQL数据库,它只是在HDFS(文件系统)之上编写MapReduce编程的方法

创建配置单元的目的是使具有sql知识的开发人员能够轻松地运行MapReduce,只需编写sql类型的语句。MapReduce可以表示为sql,其中配置单元引擎使用驱动程序将它们转换为MapReduce

Hive使用metastore对存储及其结构进行划分。
Metastore是简单的RDBMS,与任何其他RDBMS一样,我们可以连接到它并在此基础上生成sql语句。一旦我们在Metastore上生成HQL语句,Metastore就可以告诉underline Hive engine执行HQL语句,并将结果作为resultset返回。

尝试编程到JDBC接口是非常原始的,我更喜欢用稍微高一点的抽象来编程,因为我已经习惯了JPA层的编程。因此我的问题是,您试图在蜂箱中存储什么样的数据?当处理非常大、非常平的桌子时,蜂巢处于最佳状态。如果您的数据模型足够复杂,可以从ORM中获益,那么您可能使用了错误的工具。我很难理解Hive是如何成为NoSQL数据库的,因为与它交互的主要方式是通过SQL。事实上,我要说的是,配置单元的全部意义在于成为一个SQL数据库。也许不是关系型的(正如Olaf指出的),Hive实际上是一个运行在Hadoop集群之上的仓库。即使我试着从数据库的角度来考虑,Hive也不是一个完整的数据库。Hadoop和HDFS的设计约束和局限性限制了Hive的功能。最大的限制是配置单元不提供记录级别的更新、插入或删除。配置单元也不提供事务。除了仓储功能之外,Hive还提供了一种SQL方言,称为Hive查询语言,用于查询存储在Hadoop集群中的数据。所以,人们有时会感到困惑,认为它是一个数据库。@Olaf:IMHO,Hive不是一个数据库,既不是SQL也不是NoSQL。根据我的理解,数据库的配置单元概念本质上只是表的目录或名称空间,以避免表名冲突,并将生产表组织到逻辑组中。仅此而已。所以,Hive实际上不符合数据库的条件。但是,这正是我所想的。观点可能会有所不同。顺便说一句,不客气:)嘿,你有没有在抽象的阶梯上找到一个接口来使用hive?