Ответ 1
Вложенные объекты не являются официальной функцией HBase; это просто способ, которым некоторые люди говорят об одном шаблоне использования. В этом шаблоне вы используете тот факт, что "столбцы" в HBase - это действительно просто большая карта (куча пар ключ/значение), позволяющая моделировать размерность внутри строки, добавляя по одному столбцу на "строку" вложенный объект.
С точки зрения схемы, вам не нужно много делать на самом столе; когда вы создаете таблицу в HBase, вы просто указываете имя и семейство столбцов (и связанные свойства), например (в оболочке hbase):
hbase:001:0> create 'UserWithBooks', 'cf1'
Тогда, это к вам, что вы вложили в него, столб мудрый. Вы можете вставить такие значения, как:
hbase:002:0> put 'UsersWithBooks', 'userid1234', 'cf1:username', 'my username'
hbase:003:0> put 'UsersWithBooks', 'userid1234', 'cf1:ssn', 'my ssn'
hbase:004:0> put 'UsersWithBooks', 'userid1234', 'cf1:book_id_12345', '<isbn>12345</isbn><title>mary had a little lamb</title>'
hbase:005:0> put 'UsersWithBooks', 'userid1234', 'cf1:book_id_67890', '<isbn>67890</isbn><title>the importance of being earnest</title>'
Имена столбцов полностью зависят от вас, и нет предела тому, сколько у вас может быть (в пределах разумности: см. Справочное руководство по HBase для получения дополнительной информации об этом). Конечно, делая это, вы должны выполнить свою собственную работу: ввести и выдать значения (и вы, вероятно, сделаете это с помощью java-клиента более сложным способом, чем я делаю с этими командами оболочки, re только для пояснительных целей). И хотя вы можете эффективно сканировать только часть столбцов в таблице по ключевому слову (используя фильтр разбивки на столбцы), вы не можете многое сделать с содержимым ячеек, кроме как вытащить их и проанализировать их в другом месте.
Зачем вам это делать? Вероятно, просто если вы хотите атомарность вокруг всех вложенных строк для одной родительской строки. Это не очень распространено, лучше всего начать с моделирования их как отдельных таблиц и только перейти к этому подходу, если вы действительно понимаете компромиссы.