Hbase хранит данные в колоночном формате. Каждая запись должна иметь уникальный ключ. Подколонки могут быть созданы на лету, но не основные столбцы.
Например, рассмотрите этот xml.
<X1>
<X2 name = "uniqueid">1</X2>
<X3>
<X4>value1</X4>
<X5>value2</X5>
<X6>
<X7>value3</X7>
<X8>value4</X8>
</X6>
</X3>
<X7>value5</X7>
</X1>
В этом случае основным семейством столбцов будут X3 и X7. Идентификатор строки можно взять из X2.
Вы можете создать запись Hbase, эквивалентную этой, используя java api, например,
Put p = new Put("/*put the unique row id */ ".getBytes() );
p.add("X3".getBytes(), "X4".getBytes(), value1.getBytes());
где первый аргумент - это семейство столбцов, а второй - квалификатор столбца (подколонка).
Вы также можете использовать конструктор с двумя аргументами, например,
p.add("X3:X6:X7".getBytes(),value3);
, затем table.put(p)
. Вот и все !!!