Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практика 3.docx
Скачиваний:
0
Добавлен:
09.07.2025
Размер:
6.35 Mб
Скачать

6. Практика

Задача 0. Посчитать кол-во различных масок подсети.

EXPLAIN

SELECT COUNT(DISTINCT mask) AS count_mask

FROM Subnets;

Рисунок 25 – Вывод плана запроса

Рисунок 26 – Вывод плана запроса

Рисунок 27 – Вывод процесса работы запроса

Рисунок 28 – Вывод процесса работы запроса

Рисунок 29 – Вывод процесса работы запроса

Рисунок 30 – Статус работы запроса

Количество уникальных масок: 7

Задача 1. Посчитать кол-во адресов, имеющих маску 255.255.255.128.

В этой задачи видим фильтрацию, поэтому партиционирование, кот. мы сделали раньше, должно повлиять на скорость работы задачи.

Выполним запрос на таблице Subnets (без партиций) и SubnetsPart (с партициями):

SELECT COUNT(ip) AS count_subnet

FROM Subnets

WHERE mask = "255.255.255.128";

Рисунок 31– Вывод процесса работы запроса по подсчету кол-во адресов имеющих маску 255.255.255.128 в Subnets

Рисунок 32 – Вывод работы запроса в Subnets

SELECT COUNT(ip) AS count_ip_sp

FROM SubnetsPart

WHERE mask = "255.255.255.128";

Рисунок 33 – Вывод процесса работы запроса по подсчету кол-во адресов, имеющих маску 255.255.255.128 в SubnetsPart

Рисунок 34 – Вывод работы запроса в SubnetsPart

Проверим размер исходных данных: hdfs dfs -du -h /data/subnets/variant1

Рисунок 35 – Размер исходных данных

Пересоздадим таблицы Subnets и SubnetsPart на датасете /data/subnets/big (7 Gb) и повторим эксперимент. Как изменилась разница в быстродействии запросов?

Для таблицы Subnets:

USE smirnov_test;

DROP TABLE IF EXISTS Subnets;

CREATE EXTERNAL TABLE Subnets ( ip STRING, mask STRING ) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'

STORED AS TEXTFILE

LOCATION '/data/subnets/big';

Рисунок 36 – Пересоздание таблицы Subnets

Выполним запрос:

SELECT COUNT(ip) AS new_count_adresses

FROM Subnets

WHERE mask = "255.255.255.128";

Рисунок 37 – Вывод процесса работы запроса в новой таблице Subnets

Рисунок 38 – Вывод работы запроса в пересозданной Subnets

Для таблицы SubnetsPart:

SET hive.exec.dynamic.partition.mode=nonstrict;

USE smirnov_test;

DROP TABLE IF EXISTS SubnetsPart;

CREATE EXTERNAL TABLE SubnetsPart ( ip STRING )

PARTITIONED BY (mask STRING)

STORED AS TEXTFILE

LOCATION '/data/subnets/big';

Рисунок 39 – Пересоздание таблицы SubnetsPart

Повторим запрос:

SELECT COUNT(ip) AS new_count_ip_sp

FROM SubnetsPart

WHERE mask = "255.255.255.128";

Рисунок 40 – Вывод процесса работы запроса в новой таблице SubnetsPart

Рисунок 40– Вывод работы запроса в пересозданной SubnetsPart

3 Вывод

Получил навыки работы с Hive.

Соседние файлы в предмете Большие данные