# Лабораторная работа №4. Знакомство с NoSQL СУБД HBase ## Цель * Познакомиться с функционалом СУБД HBase. * Научиться добавлять и получать записи в СУБД HBase. ## Выполнение Защита лабораторной работы подразумевает наличие отчета, который должен содержать пункты задания, команды, которые вы вводите и ответы системы на них. При необходимости - комментарии по полученным результатам. ### Задачи * Создать таблицу в СУБД HBase * Внести информацию по посещению интернет-ресурсов пользователями _alice_ и _bob_ * Создать новое семейсто колонок для хранения мета-информации * Внести хэш используемых cookie для пользователей ### Методические указания 1. В терминале запустить оболочку HBase, выполнив команду `hbase shell` 2. Создать таблицу `visits` в которой будет хранится информация о том, какие сайты посещали пользователи. Внутри таблицы создать первую column family для хранения информации о непосредственно посещенном ресурсе. синтаксис команды `create` в самом простом случае: `create 'table_name', 'column_family_name'` 3. Убедиться, что таблица создана. Для этого вывести список всех имеющихся таблиц. 4. Добавить в таблицу первую запись: пользователь - _alice_ ресурс - _vk.com_ продолжительность посещения - _125_ время посещения (timestamp) - _1702411635951_. Подразумевается, что timestamp вносится в стандартное поле `ts`, которое существует для любой ячейки в таблице, а НЕ создается отдельный столбец. Синтаксис операции put: `put 'table_name', 'row', 'column_family:column', 'value', timestamp` В общем случае, `timestamp` является необязательным. Если не указать вручную, то проставится текущее время. 5. С помощью оператора `scan` вывести строки таблицы на экран, убедиться в том, что данные сохранились в таблицу корректно. 6. Добавить новую запись: пользователь - _bob_ ресурс - _google.com_ время посещения (timestamp) - текущее время 7. Появилась необходимость создать новую column family для хранения мета-информации. Для этого необходимо отключить таблицу командой `disable`, внести требуемые изменения командой `alter` и включить таблицу обратно. Синтаксис команды `alter`: `alter 'table_name', 'new_cf_name'` 8. Вывести описание таблицы с помощью команды `describe`, описать полученный результат. 9. Для пользователя _alice_ добавить мета-информацию в столбец `cookie` '_abc123_', Для пользователя _bob_ добавить `cookie` '_xyz987_' 10. Вывести всю информацию по пользователю `alice` на текущий момент. 11. Вывести всю информацию по пользователю `alice` на момент 1702411635955. ### Вопросы 1. Каким типом СУБД является HBase? 2. Какой командой можно создать новую таблицу в HBase? 3. Что такое 'семейство колонок' (column family)? 4. Какие команды нужно выполнить чтобы добавить новое семейство колонок в существующую таблицу? 5. Какой командой можно вывести всю информацию по заданной строке?