您好我正在尝试使用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程序查找表的列的约束。 谢谢 希茨
答案 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