2

我正在尝试创建一个具有单列族的表(针对使用 Java 客户端库 0.9.1 的 Google Cloud Bigtable 模拟器)。

private void setupTable() throws IOException {

    TableName name = TableName.valueOf("EndOfDayPriceUnadjusted");
    try(Connection connection = BigtableConfiguration.connect(hbaseConf)){
        HTableDescriptor descriptor = new HTableDescriptor(name);
        descriptor.addFamily(new HColumnDescriptor("EOD"));

        connection.getAdmin().createTable(descriptor);
        // calling HTableDescriptor  desc = connection.getAdmin().getTableDescriptor(name); yields the same result
        Table t = connection.getTable(name);
        if(t.getTableDescriptor().getColumnFamilies().length == 0)
            log.error("no column families.");
        else
            log.info("table with column family created.");
    }
}

我的问题是创建表后,检索到的描述符从不包含EOD家庭;因此,任何在该列族中存储数据的调用都会失败。

我错过了什么还是模拟器的限制?

4

1 回答 1

3

在修复错误之前可以使用的特定于模拟器的解决方法是在创建表后添加列族:

connector.getAdmin().addColumn(
    descriptor.getTableName(), new HColumnDescriptor("EOD"));
于 2016-07-29T17:10:13.457 回答