4

http://wiki.apache.org/hadoop/Hive/HiveJDBCInterface - 是否有比 Hive JDBC 驱动程序更高级别的 ORM 接口,我们可以使用它来运行查询和解析结果

4

2 回答 2

8

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

编辑 6/4/13:这是来自 Wikipedia 的引用:在关系模型中,每个表模式必须标识一个主列,用于标识称为主键的行。表可以通过使用指向主键的外键来关联。

Hive 既不支持外键也不支持主键,因此它不是关系数据库。

我要感谢投反对票的人让我有机会仔细检查导致我最初发表声明的理由。

于 2012-06-29T14:26:11.250 回答
0

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

创建 Hive 是为了让具有 sql 知识的开发人员友好,只需编写一种 sql 语句即可轻松运行 MapReduce。MapReduce 可以表示为一个 sql,其中 Hive 引擎使用 Driver 将它们转换为 MapReduce。

Hive 使用 Metastore 对存储及其结构进行划分。Metastore 是简单的 RDBMS,就像任何其他 RDBMS 一样,我们可以连接到它并在此之上创建一个 sql 语句。一旦我们在 Metastore 上创建了 HQL 语句,Metastore 就有能力告诉下划线 Hive 引擎执行 HQL 语句并返回结果作为结果集。

于 2014-04-02T10:53:34.330 回答