Набор данных о стоимости недвижимости в Великобритании
Набор содержит данные о стоимости недвижимости в Англии и Уэльсе. Данные доступны с 1995 года. Размер набора данных в несжатом виде составляет около 4 GiB, а в ClickHouse он займет около 278 MiB.
Источник: https://www.gov.uk/government/statistical-data-sets/price-paid-data-downloads Описание полей таблицы: https://www.gov.uk/guidance/about-the-price-paid-data
Набор содержит данные HM Land Registry data © Crown copyright and database right 2021. Эти данные лицензированы в соответствии с Open Government Licence v3.0.
Загрузите набор данных
Выполните команду:
Загрузка займет около 2 минут при хорошем подключении к интернету.
Создайте таблицу
Обработайте и импортируйте данные
В этом примере используется clickhouse-local
для предварительной обработки данных и clickhouse-client
для импорта данных.
Указывается структура исходных данных CSV-файла и запрос для предварительной обработки данных с помощью clickhouse-local
.
Предварительная обработка включает:
- разделение почтового индекса на два разных столбца
postcode1
иpostcode2
, что лучше подходит для хранения данных и выполнения запросов к ним; - преобразование поля
time
в дату, поскольку оно содержит только время 00:00; - поле UUid игнорируется, потому что оно не будет использовано для анализа;
- преобразование полей
type
иduration
в более читаемые поля типаEnum
с помощью функции transform; - преобразование полей
is_new
иcategory
из односимвольной строки (Y
/N
иA
/B
) в поле UInt8 со значениями 0 и 1 соответственно.
Обработанные данные передаются в clickhouse-client
и импортируются в таблицу ClickHouse потоковым способом.
Выполнение запроса займет около 40 секунд.
Проверьте импортированные данные
Запрос:
Результат:
Размер набора данных в ClickHouse составляет всего 278 MiB, проверьте это.
Запрос:
Результат:
Примеры запросов
Запрос 1. Средняя цена за год
Запрос:
Результат:
Запрос 2. Средняя цена за год в Лондоне
Запрос:
Результат:
Что-то случилось в 2013 году. Я понятия не имею. Может быть, вы имеете представление о том, что произошло в 2020 году?
Запрос 3. Самые дорогие районы
Запрос:
Результат:
Ускорьте запросы с помощью проекций
Проекции позволяют повысить скорость запросов за счет хранения предварительно агрегированных данных.
Создайте проекцию
Создайте агрегирующую проекцию по параметрам toYear(date)
, district
, town
:
Заполните проекцию для текущих данных (иначе проекция будет создана только для добавляемых данных):
Проверьте производительность
Давайте выполним те же 3 запроса.
Запрос 1. Средняя цена за год
Запрос:
Результат:
Запрос 2. Средняя цена за год в Лондоне
Запрос:
Результат:
Запрос 3. Самые дорогие районы
Условие (date >= '2020-01-01') необходимо изменить, чтобы оно соответствовало проекции (toYear(date) >= 2020).
Запрос:
Результат:
Резюме
Все три запроса работают намного быстрее и читают меньшее количество строк.
Online Playground
Этот набор данных доступен в Online Playground.