- виртуальное окружение
- работающий сервис ClickHouse Cloud и ваши сведения о подключении
- Подключаться к ClickHouse Cloud из Jupyter Notebook с помощью chDB
- Выполнять запросы к удалённым наборам данных и преобразовывать результаты в DataFrame в Pandas
- Объединять облачные данные с локальными CSV-файлами для анализа
- Визуализировать данные с помощью matplotlib
Настройка
Data sources, затем — Predefined sample data:
Выберите Get started на карточке UK property price paid data (4 GB):
Затем нажмите Import dataset:
ClickHouse автоматически создаст таблицу pp_complete в базе данных default и заполнит её данными о ценах в объёме 28,92 млн строк.
Чтобы снизить риск раскрытия ваших учетных данных, рекомендуем добавить имя пользователя и пароль Cloud в качестве переменных окружения на локальной машине.
Чтобы добавить имя пользователя и пароль как переменные окружения, выполните в терминале следующую команду:
Указанные выше переменные среды сохраняются только в рамках текущего сеанса терминала.
Чтобы задать их на постоянной основе, добавьте их в файл конфигурации оболочки.
localhost:8888.
Нажмите File > New > Notebook, чтобы создать новый ноутбук.
Затем вам будет предложено выбрать ядро.
Выберите любое доступное ядро Python; в этом примере мы выберем ipykernel:
В пустой ячейке введите следующую команду, чтобы установить chDB, который мы будем использовать для подключения к удалённому экземпляру ClickHouse Cloud:
Изучение данных
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 построить простой график зависимости цены от времени для Лондона:
file, чтобы читать файлы напрямую с локальной машины.
В новой ячейке выполните следующую команду, чтобы создать новый DataFrame из локального .csv-файла.
Чтение из нескольких источников за один шаг
Чтение из нескольких источников за один шаг
Также можно читать сразу из нескольких источников в рамках одного шага. Для этого можно использовать приведённый ниже запрос с
JOIN:Резюме
remoteSecure(), читать локальные CSV-файлы с помощью движка таблицы file() и напрямую преобразовывать результаты в DataFrame Pandas для анализа и визуализации.
С помощью chDB специалисты по данным могут сочетать мощные SQL-возможности ClickHouse с привычными инструментами Python, такими как Pandas и matplotlib, что позволяет легко объединять несколько источников данных для всестороннего анализа.
И хотя многие специалисты по данным из Лондона, возможно, ещё нескоро смогут позволить себе собственное жильё, по крайней мере они могут проанализировать рынок, который сделал его для них недоступным!