Перейти к основному содержимому
Версия: 2.0.x

Jupyter

Это руководство описывает, как интегрировать ваш cluster Selena с Jupyter, новейшей веб-средой интерактивной разработки для блокнотов, кода и данных.

Всё это стало возможным благодаря JupySQL, который позволяет запускать SQL и строить графики больших наборов данных в Jupyter с помощью магических команд %sql, %%sql и %sqlplot.

Вы можете использовать JupySQL поверх Jupyter для выполнения запросов к Selena.

После загрузки данных в cluster вы можете запрашивать и визуализировать их с помощью SQL-графиков.

Предварительные требования

Перед началом работы на вашем компьютере должно быть установлено следующее программное обеспечение:

  • JupySQL: pip install jupysql
  • Jupyterlab: pip install jupyterlab
  • SKlearn Evaluation: pip install sklearn-evaluation
  • Python
  • pymysql: pip install pymysql

ПРИМЕЧАНИЕ

После выполнения вышеуказанных требований вы можете открыть Jupyter lab, просто вызвав jupyterlab - это откроет интерфейс блокнота. Если Jupyter lab уже запущен в блокноте, вы можете просто запустить ячейку ниже для получения зависимостей.

# Установка необходимых пакетов.
%pip install --quiet jupysql sklearn-evaluation pymysql

ПРИМЕЧАНИЕ

Возможно, потребуется перезапустить ядро для использования обновлённых пакетов.

import pandas as pd
from sklearn_evaluation import plot

# Импорт расширения JupySQL Jupyter для создания SQL-ячеек.
%load_ext sql
%config SqlMagic.autocommit=False

Вам нужно убедиться, что ваш экземпляр Selena запущен и доступен для следующих этапов.

ПРИМЕЧАНИЕ

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

Подключение к Selena через JupySQL

В этом примере используется экземпляр docker, и это отражено в строке подключения.

Пользователь root используется для подключения к локальному экземпляру Selena, создания базы данных и проверки того, что данные действительно могут быть прочитаны из таблицы и записаны в неё.

%sql mysql+pymysql://root:@localhost:9030

Создайте и используйте базу данных JupySQL:

%sql CREATE DATABASE jupysql;
%sql USE jupysql;

Создайте таблицу:

%%sql
CREATE TABLE tbl(c1 int, c2 int) distributed by hash(c1) properties ("replication_num" = "1");
INSERT INTO tbl VALUES (1, 10), (2, 20), (3, 30);
SELECT * FROM tbl;

Сохранение и загрузка запросов

Теперь, после создания базы данных, вы можете записать в неё некоторые примерные данные и запросить их.

JupySQL позволяет разбивать запросы на несколько ячеек, упрощая процесс построения больших запросов.

Вы можете писать сложные запросы, сохранять их и выполнять при необходимости, аналогично CTE в SQL.

# Это ожидает следующего релиза JupySQL.
%%sql --save initialize-table --no-execute
CREATE TABLE tbl(c1 int, c2 int) distributed by hash(c1) properties ("replication_num" = "1");
INSERT INTO tbl VALUES (1, 1), (2, 2), (3, 3);
SELECT * FROM tbl;

ПРИМЕЧАНИЕ

--save сохраняет запрос, а не данные.

Обратите внимание, что мы используем --with;, это извлечёт ранее сохранённые запросы и добавит их в начало (используя CTE). Затем мы сохраняем запрос в track_fav.

Построение графиков напрямую в Selena

JupySQL поставляется с несколькими графиками по умолчанию, позволяя визуализировать данные непосредственно в SQL.

Вы можете использовать столбчатую диаграмму для визуализации данных в вашей только что созданной таблице:

top_artist = %sql SELECT * FROM tbl
top_artist.bar()

Теперь у вас есть новая столбчатая диаграмма без какого-либо дополнительного кода. Вы можете запускать SQL прямо из своего блокнота через JupySQL (от ploomber). Это открывает множество возможностей вокруг Selena для специалистов по данным и инженеров. Если вы застряли или вам нужна поддержка, пожалуйста, свяжитесь с нами через Slack.