Skip to main content
В этом руководстве вы узнаете, как исследовать набор данных из ClickHouse Cloud в Jupyter Notebook с помощью chDB — быстрого встраиваемого SQL OLAP-движка на базе ClickHouse. Предварительные требования:
Если у вас ещё нет учётной записи ClickHouse Cloud, вы можете зарегистрироваться, чтобы получить пробный доступ и $300 в виде бесплатных кредитов для начала работы.
Что вы изучите:
  • Подключаться к ClickHouse Cloud из Jupyter Notebook с помощью chDB
  • Выполнять запросы к удалённым наборам данных и преобразовывать результаты в DataFrame в Pandas
  • Объединять облачные данные с локальными CSV-файлами для анализа
  • Визуализировать данные с помощью matplotlib
Мы будем использовать набор данных UK Property Price, доступный в ClickHouse Cloud как один из стартовых наборов данных. Он содержит данные о ценах, по которым продавались дома в Соединённом Королевстве с 1995 по 2024 год.

Настройка

Чтобы добавить этот набор данных в существующий сервис ClickHouse Cloud, войдите на console.clickhouse.cloud под своей учетной записью. В меню слева нажмите Data sources, затем — Predefined sample data: Выберите Get started на карточке UK property price paid data (4 GB): Затем нажмите Import dataset: ClickHouse автоматически создаст таблицу pp_complete в базе данных default и заполнит её данными о ценах в объёме 28,92 млн строк. Чтобы снизить риск раскрытия ваших учетных данных, рекомендуем добавить имя пользователя и пароль Cloud в качестве переменных окружения на локальной машине. Чтобы добавить имя пользователя и пароль как переменные окружения, выполните в терминале следующую команду:
Указанные выше переменные среды сохраняются только в рамках текущего сеанса терминала. Чтобы задать их на постоянной основе, добавьте их в файл конфигурации оболочки.
Теперь активируйте виртуальное окружение. Находясь в виртуальном окружении, установите Jupyter Notebook с помощью следующей команды:
Запустите Jupyter Notebook следующей командой:
В браузере должно открыться новое окно с интерфейсом Jupyter на localhost:8888. Нажмите File > New > Notebook, чтобы создать новый ноутбук. Затем вам будет предложено выбрать ядро. Выберите любое доступное ядро Python; в этом примере мы выберем ipykernel: В пустой ячейке введите следующую команду, чтобы установить chDB, который мы будем использовать для подключения к удалённому экземпляру ClickHouse Cloud:
Теперь вы можете импортировать chDB и выполнить простой запрос, чтобы убедиться, что всё настроено корректно:

Изучение данных

Теперь, когда набор данных о ценах на недвижимость в Великобритании подготовлен, а chDB запущен в Jupyter notebook, можно приступить к его изучению. Представим, что мы хотим посмотреть, как со временем менялась цена в конкретном регионе Великобритании, например в столице — Лондоне. Функция ClickHouse remoteSecure позволяет без труда получать данные из ClickHouse Cloud. Вы можете указать chDB вернуть эти данные в виде DataFrame Pandas в памяти процесса — это удобный и привычный способ работы с данными. Напишите следующий запрос, чтобы получить данные о ценах на недвижимость в Великобритании из вашего сервиса ClickHouse Cloud и преобразовать их в pandas.DataFrame:
В приведённом выше фрагменте chdb.query(query, "DataFrame") выполняет указанный запрос и выводит результат в терминал в виде Pandas DataFrame. В запросе мы используем функцию remoteSecure для подключения к ClickHouse Cloud. Функция remoteSecure принимает следующие параметры:
  • строку подключения
  • имя базы данных и таблицы, которые нужно использовать
  • ваше имя пользователя
  • ваш пароль
В целях безопасности рекомендуется использовать для имени пользователя и пароля переменные окружения, а не указывать их напрямую в функции, хотя при желании это возможно. Функция remoteSecure подключается к удалённому сервису ClickHouse Cloud, выполняет запрос и возвращает результат. В зависимости от объёма данных это может занять несколько секунд. В данном случае мы получаем среднюю цену за каждый год и применяем фильтр town='LONDON'. Затем результат сохраняется в переменной df как DataFrame. df.head отображает только первые несколько строк возвращённых данных: Выполните следующую команду в новой ячейке, чтобы проверить типы столбцов:
Обратите внимание, что хотя date в ClickHouse имеет тип Date, в итоговом DataFrame он имеет тип uint16. chDB автоматически определяет наиболее подходящий тип при возврате DataFrame. Теперь, когда данные доступны нам в привычном виде, давайте посмотрим, как со временем менялись цены на недвижимость в Лондоне. В новой ячейке выполните следующую команду, чтобы с помощью matplotlib построить простой график зависимости цены от времени для Лондона:
Возможно, это и неудивительно, но цены на недвижимость в Лондоне со временем заметно выросли. Коллега по Data Science прислал нам .csv-файл с дополнительными переменными, связанными с жильём, и хочет понять, как со временем менялось число домов, проданных в Лондоне. Давайте построим графики некоторых из них вместе с ценами на жильё и посмотрим, удастся ли обнаружить какую-нибудь корреляцию. Вы можете использовать движок таблицы file, чтобы читать файлы напрямую с локальной машины. В новой ячейке выполните следующую команду, чтобы создать новый DataFrame из локального .csv-файла.
Также можно читать сразу из нескольких источников в рамках одного шага. Для этого можно использовать приведённый ниже запрос с JOIN:
Хотя данные начиная с 2020 года отсутствуют, мы можем построить график для этих двух наборов данных за период с 1995 по 2019 год. В новой ячейке выполните следующую команду:
Из графика видно, что объём продаж в 1995 году составлял около 160 000, а затем быстро вырос и достиг пика — примерно 540 000 — в 1999 году. После этого объёмы резко снижались вплоть до середины 2000-х, сильно просели во время финансового кризиса 2007–2008 годов и упали примерно до 140 000. Цены, напротив, росли стабильно и последовательно: примерно со £150 000 в 1995 году до около £300 000 к 2005 году. После 2012 года рост заметно ускорился: цены резко поднялись примерно с £400 000 до более чем £1 000 000 к 2019 году. В отличие от объёма продаж, цены почти не пострадали от кризиса 2008 года и продолжили расти. Вот это да!

Резюме

В этом руководстве показано, как chDB позволяет удобно исследовать данные в Jupyter Notebook, подключая ClickHouse Cloud к локальным источникам данных. На примере набора данных UK Property Price мы показали, как выполнять запросы к удалённым данным в ClickHouse Cloud с помощью функции remoteSecure(), читать локальные CSV-файлы с помощью движка таблицы file() и напрямую преобразовывать результаты в DataFrame Pandas для анализа и визуализации. С помощью chDB специалисты по данным могут сочетать мощные SQL-возможности ClickHouse с привычными инструментами Python, такими как Pandas и matplotlib, что позволяет легко объединять несколько источников данных для всестороннего анализа. И хотя многие специалисты по данным из Лондона, возможно, ещё нескоро смогут позволить себе собственное жильё, по крайней мере они могут проанализировать рынок, который сделал его для них недоступным!
Последнее изменение 3 июля 2026 г.