Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
91 строка
4.7 KiB
Markdown
91 строка
4.7 KiB
Markdown
# Лабораторная работа №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. Какой командой можно вывести всю информацию по заданной строке?
|
|
|
|
|
|
|