使用java创建一个带有connstraints的hive表,并使用jdbc程序检查hive表的列约束

时间:2014-01-16 08:11:33

标签: java jdbc hive

您好我正在尝试使用jdbc创建一个带有一些约束的hive表,这给了我一个错误 String sql1 =“CREATE TABLE sample_hive_table_2(key1 int PRIMARY KEY,value1 string)”;             的System.out.println(SQL1);             res = stmt.executeQuery(sql1); 线程“main”中的异常java.sql.SQLException:查询返回非零代码:40000,原因:FAILED:ParseException行1:43输入'PRIMARY'期望不匹配'创建表语句中'int'附近

at org.apache.hadoop.hive.jdbc.HiveStatement.executeQuery(HiveStatement.java:194)

我需要做两件事1)创建一个带约束的表2)使用jdbc程序查找表的列的约束。 谢谢 希茨

3 个答案:

答案 0 :(得分:1)

Hive,没有主键的概念。

答案 1 :(得分:1)

Hive表没有约束!

Hive是一个基于Hadoop的数据仓库基础架构。 Hadoop为商用硬件上的数据存储和处理(使用map-reduce编程范例)提供了大规模的扩展和容错功能。

Hive旨在实现轻松的数据汇总,即时查询和分析大量数据。它提供了一种名为Hive QL的简单查询语言,它基于SQL,使熟悉SQL的用户可以轻松地进行临时查询,汇总和数据分析。同时,Hive QL还允许传统的map / reduce程序员能够插入他们的自定义映射器和缩减器来进行更复杂的分析,这些分析可能不受语言内置功能的支持。

请参阅https://cwiki.apache.org/confluence/display/Hive/GettingStarted#GettingStarted-CreatingHiveTables以获取配置表DDL

答案 2 :(得分:0)

Hive实际上具有主键的概念,如下所示,您可以看到,遗憾的是,它不是验证。

: [, PRIMARY KEY (col_name, ...) DISABLE NOVALIDATE ]
  [, CONSTRAINT constraint_name FOREIGN KEY (col_name, ...) REFERENCES
  table_name(col_name, ...) DISABLE NOVALIDATE 

https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL