MokhovAS 1 год назад
Родитель 86190cdebb
Сommit b3e114a191

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

Загрузка…
Отмена
Сохранить