我有一个用本地索引创建的表,然后根据关于写作部分的document,使用jdbc批处理更新插入一些记录,最后我尝试检索通过sqlline.py创建的记录,但是我无法得到结果。
使用本地索引创建表
CREATE TABLE test_table (
id varchar primary key,
fileName varchar,
md5 varchar,
hash varchar,
) SALT_BUCKETS = 5;
CREATE LOCAL INDEX test_table_index_md5 ON kodo_operation_log (md5);
通过jdbc api更新记录
try (Connection conn = DriverManager.getConnection(url)) {
conn.setAutoCommit(false);
int batchSize = 0;
int commitSize = 1000; // number of rows you want to commit per
batch.
try (Statement stmt = conn.prepareStatement(upsert)) {
stmt.set ... while (there are records to upsert) {
stmt.executeUpdate();
batchSize++;
if (batchSize % commitSize == 0) {
conn.commit();
}
}
conn.commit(); // commit the last batch of records
// query the record by index field ,but no records found
}
通过sqlline.py或jdbc api查询记录
select * from test_table where md5='138fde2b1c2a5bb7c6f7effebeedab76'
但没有找到行,我的问题是在同一Java线程中向上插入后本地索引不会立即生效吗?
环境: 凤凰5.0.0-HBASE-2.0 HBASE 2.0.0