2014-01-16 30 views
1

嗨我想創建一個使用jdbc,這給我一個錯誤的約束配置單元表 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,原因:失敗:ParseException的線不匹配1:43輸入「主要」期待)附近的「廉政」 CREATE TABLE語句中使用java創建一個配置單元表,並使用jdbc程序檢查一個配置單元表的列約束

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

我需要做兩件事情1)創建一個約束表2)使用jdbc程序找到表的列約束。 謝謝 Hitz

回答

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

1

蜂巢,沒有主鍵的概念。

0

蜂巢實際上有主鍵的概念,你可以看到下面,你可以看到,遺憾的是沒有驗證。

: [, 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

相關問題