Работа с ноутбуками

Ноутбук в SubQuery — это рабочее пространство, где можно последовательно работать с данными: выполнять SQL-запросы, обрабатывать результаты с помощью Python и DuckDB, строить визуализации и дополнять анализ пояснениями в Markdown.

Код, промежуточные результаты и выводы сохраняются в одном месте, поэтому к исследованию можно вернуться позже и продолжить работу с того же места.

Создание ноутбука

Перейдите в раздел SQL Ноутбуки и нажмите Создать.

На странице со списком ноутбуков отображаются:

  • название;
  • описание;
  • автор;
  • дата последнего изменения.

Для поиска нужного ноутбука используйте строку поиска и фильтры.

Название ноутбука можно изменить после создания.

Интерфейс ноутбука

Рабочая область состоит из:

  • основной области с ячейками;
  • панели Схема БД;
  • панели Файлы;
  • панели управления выполнением.

В панели Схема БД можно просматривать доступные подключения и структуру источников данных.

В панели Файлы отображаются файлы, добавленные в ноутбук или созданные во время выполнения Python-кода.

Как это работает

  • Ноутбук состоит из ячеек, которые можно выполнять последовательно.
  • Доступны четыре типа ячеек:
    • Python — обработка данных, расчеты и визуализация;
    • SQL — запросы к Озеру SubQuery и подключенным СУБД;
    • DuckDB — локальные SQL-операции в браузерной WASM-сессии;
    • Markdown — заголовки, описание анализа и выводы.
  • Состояние между исполняемыми ячейками сохраняется: переменные, импортированные модули и загруженные пакеты доступны в следующих шагах.
  • Последнее выражение ячейки отображается автоматически, а print(...) и ошибки попадают в текстовый вывод.
  • Подробнее о SQL- и DuckDB-ячейках, выборе подключения и выполнении запросов из Python через sq.query читайте в разделе Работа с СУБД.

Работа с ячейками

Ячейки можно комбинировать и располагать в нужной последовательности в зависимости от логики анализа.

Для выбранной ячейки доступны основные действия:

  • запустить ячейку;
  • добавить новую;
  • переместить выше или ниже;
  • удалить.

Схема БД

В боковой панели Схема БД отображаются доступные подключения и структура источников данных.

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

При работе с SQL-ячейкой подключение к СУБД выбирается непосредственно в ячейке. Подробнее о запросах к источникам данных — в разделе Работа с СУБД.

Работа с файлами

Локальные файлы можно добавить через панель Файлы или перетащить непосредственно в ноутбук.

После загрузки их можно использовать из Python или DuckDB и комбинировать с данными из подключенных СУБД.

Подробнее — в разделе Работа с файлами.

Важная особенность: WASM-сессия в браузере

Python и DuckDB-ячейки работают в WASM-рантайме браузера.

Это означает:

  • выполнение кода происходит на вашем компьютере, кроме запросов к СУБД;
  • сессия ограничена текущей вкладкой браузера;
  • при перезагрузке страницы или закрытии вкладки состояние kernel-сессии сбрасывается;
  • выполнение первой ячейки в сессии может занять больше времени из-за запуска WASM, последующие выполняются быстрее.

Автосохранение

В ноутбуках автоматически сохраняются:

  • контент ячеек;
  • тип ячейки;
  • выбранное подключение;
  • результаты выполнения.

После возвращения в ноутбук доступны не только код и структура анализа, но и последние сохраненные результаты.

При этом состояние Python- и DuckDB-сессии после закрытия или перезагрузки вкладки необходимо создать заново.

Результаты выполнения

В зависимости от кода результат ячейки может отображаться как:

  • текст;
  • таблица;
  • изображение;
  • график.

SQL-запросы отображают табличный результат непосредственно под соответствующей ячейкой.

Python можно использовать для построения графиков с помощью доступных библиотек.

Публичные ноутбуки

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

Публичные ноутбуки удобно использовать как отправную точку:

  • сначала посмотрите, что получится на выходе, — результаты ячеек уже выполнены;
  • скопируйте пример в свой проект одной кнопкой;
  • дальше работайте с копией уже на своих данных.

Например, демо-ноутбук с обучением ML-модели можно скопировать по прямой ссылке:

Скопировать публичный ноутбук с ML-моделью

Коллекцию пополняет команда SubQuery. Если есть идея полезного примера — поделитесь ей в чате SubQuery.

Куда идти дальше