Родитель
							
								
									f9d785b4b0
								
							
						
					
					
						Сommit
						d7ab209538
					
				| @ -0,0 +1,90 @@ | ||||
|  # Лабораторная работа №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. Какой командой можно вывести всю информацию по заданной строке? | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
					Загрузка…
					
					
				
		Ссылка в новой задаче