2016-07-29 2 views
2

Я пытаюсь создать таблицу с одним семейством столбцов (с таргетингом на эмулятор Google Cloud Bigtable с использованием клиентской библиотеки Java 0.9.1).Google Cloud Bigtable emulator, похоже, бросает семейства столбцов

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 семьи; поэтому любые вызовы для хранения данных в этом семействе столбцов терпят неудачу.

Я что-то упустил или это ограничение эмулятора?

+3

Это проблема с эмулятором. Мы работаем над его исправлением. –

+1

Эта ошибка исправлена ​​в последних версиях эмулятора: https://cloud.google.com/bigtable/docs/emulator –

ответ

3

Эмулятор конкретного обходными вы можете использовать до тех пор, ошибка не будет исправлена, чтобы добавить семейство столбцов после создания таблицы:

connector.getAdmin().addColumn(
    descriptor.getTableName(), new HColumnDescriptor("EOD")); 
Смежные вопросы