Impala 通过 jdbc 使元数据无效
Impala invalidate metadata through jdbc
有什么方法可以使 Impala 到 jdbc 上的元数据无效?
我尝试了以下方法(我正在使用 Cloudera_ImpalaJDBC4_2.5.5.1007 驱动程序):
// invalidate metadata and rebuild index on Impala
try {
Statement stmt = impalaConn.createStatement();
try {
String query = "INVALIDATE METADATA;";
ResultSet resultSet = stmt.executeQuery(query);
while (resultSet.next()) {
// do something
}
}
finally {
stmt.close();
}
}
catch(SQLException ex) {
while (ex != null)
{
ex.printStackTrace();
ex = ex.getNextException();
}
System.exit(1);
}
但我遇到了以下异常:
java.sql.SQLDataException: [Simba][JDBC](11300) A ResultSet was expected but not generated from query "INVALIDATE METADATA;". Query not executed.
at com.cloudera.impala.exceptions.ExceptionConverter.toSQLException(ExceptionConverter.java:136)
at com.cloudera.impala.jdbc.common.SStatement.checkCondition(SStatement.java:2274)
at com.cloudera.impala.jdbc.common.SStatement.executeNoParams(SStatement.java:2704)
at com.cloudera.impala.jdbc.common.SStatement.executeQuery(SStatement.java:880)
at ico.az.deploy.TestSuite.testTeradata(TestSuite.java:103)
at ico.az.deploy.TestSuite.run(TestSuite.java:310)
at ico.az.deploy.TestSuite.main(TestSuite.java:345)
有什么想法吗?
是的。该查询不 return 一个 ResultSet
。请改用 Statement.executeUpdate(String)
。正如 JavaDoc 所指出的那样,为强调而添加了粗体,执行给定的 SQL 语句,它可以是 INSERT、UPDATE 或 DELETE 语句 或 SQL 语句return没什么.
stmt.executeUpdate(query);
有什么方法可以使 Impala 到 jdbc 上的元数据无效?
我尝试了以下方法(我正在使用 Cloudera_ImpalaJDBC4_2.5.5.1007 驱动程序):
// invalidate metadata and rebuild index on Impala
try {
Statement stmt = impalaConn.createStatement();
try {
String query = "INVALIDATE METADATA;";
ResultSet resultSet = stmt.executeQuery(query);
while (resultSet.next()) {
// do something
}
}
finally {
stmt.close();
}
}
catch(SQLException ex) {
while (ex != null)
{
ex.printStackTrace();
ex = ex.getNextException();
}
System.exit(1);
}
但我遇到了以下异常:
java.sql.SQLDataException: [Simba][JDBC](11300) A ResultSet was expected but not generated from query "INVALIDATE METADATA;". Query not executed.
at com.cloudera.impala.exceptions.ExceptionConverter.toSQLException(ExceptionConverter.java:136)
at com.cloudera.impala.jdbc.common.SStatement.checkCondition(SStatement.java:2274)
at com.cloudera.impala.jdbc.common.SStatement.executeNoParams(SStatement.java:2704)
at com.cloudera.impala.jdbc.common.SStatement.executeQuery(SStatement.java:880)
at ico.az.deploy.TestSuite.testTeradata(TestSuite.java:103)
at ico.az.deploy.TestSuite.run(TestSuite.java:310)
at ico.az.deploy.TestSuite.main(TestSuite.java:345)
有什么想法吗?
是的。该查询不 return 一个 ResultSet
。请改用 Statement.executeUpdate(String)
。正如 JavaDoc 所指出的那样,为强调而添加了粗体,执行给定的 SQL 语句,它可以是 INSERT、UPDATE 或 DELETE 语句 或 SQL 语句return没什么.
stmt.executeUpdate(query);