Родитель
							
								
									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. Какой командой можно вывести всю информацию по заданной строке? | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
					Загрузка…
					
					
				
		Ссылка в новой задаче