Google Cloud Bigtable 模拟器似乎删除了列族
Google Cloud Bigtable emulator seems to drop column families
我正在尝试创建一个具有单个列族的 table(针对使用 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.");
}
}
我的问题是,在创建 table 之后,检索到的描述符从未包含 EOD
系列;因此,任何在该列族中存储数据的调用都会失败。
我是不是遗漏了什么或者是模拟器的限制?
在错误修复之前您可以使用的特定于模拟器的解决方法是在创建 table 之后添加列族:
connector.getAdmin().addColumn(
descriptor.getTableName(), new HColumnDescriptor("EOD"));
我正在尝试创建一个具有单个列族的 table(针对使用 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.");
}
}
我的问题是,在创建 table 之后,检索到的描述符从未包含 EOD
系列;因此,任何在该列族中存储数据的调用都会失败。
我是不是遗漏了什么或者是模拟器的限制?
在错误修复之前您可以使用的特定于模拟器的解决方法是在创建 table 之后添加列族:
connector.getAdmin().addColumn(
descriptor.getTableName(), new HColumnDescriptor("EOD"));