DataManager dm = new DataManager();
dm.getConnection();
String colTypesString = "(exec_id varchar not null, bucket_name varchar, state varchar CONSTRAINT pk PRIMARY KEY (exec_id))";
String createTableStatement = "CREATE TABLE IF NOT EXISTS " + "test" + "." + "schema_metadata" + colTypesString;
dm.statement.executeUpdate(createTableStatement);
String v = "UPSERT into test.schema_metadata(EXEC_ID, BUCKET_NAME, STATE) VALUES ('123','free','active')";
dm.statement.executeUpdate(v);
dm.connection.commit();
select * from TEST.SCHEMA_METADATA shows it did not write the optional rows
这是我pom文件中的phoenix依赖项:
<dependency>
<groupId>org.apache.phoenix</groupId>
<artifactId>phoenix-core</artifactId>
<version>4.14.0-HBase-1.4</version>
</dependency>
注意:如果我从UI(Squirrel)执行UPSERT,它将正常工作-写入所有数据。
答案 0 :(得分:0)
已修复:将我在Java和squirrel中的驱动程序与我们的hbase-phoenix服务器中的新驱动程序对齐之后,一切都可以正常工作。
以下程序包可以在jar和docker容器中运行,但是对于所有的phoenix jars来说都很沉重(我相信)。使用phoenix-client并没有所有必需的类。
<dependency>
<groupId>org.apache.phoenix</groupId>
<artifactId>phoenix-core</artifactId>
<version>4.14.0-cdh5.14.2</version>
</dependency>