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, что позволяет легко объединять несколько источников данных для всестороннего анализа. И хотя многие специалисты по данным из Лондона, возможно, ещё нескоро смогут позволить себе собственное жильё, по крайней мере они могут проанализировать рынок, который сделал его для них недоступным!
Последнее изменение 23 июля 2026 г.