Ноутбуки
Ноутбук (notebook) в контексте ADQM Notebook — это набор SQL-ячеек с выполняемыми запросами и текстовых ячеек с комментариями, состояние которого можно сохранить для последующего восстановления или передачи другим пользователям. В данной статье описаны функциональные возможности интерфейса ADQM Notebook для работы с ноутбуками.
Панель Notebooks
Панель NOTEBOOKS предназначена для управления ноутбуками в интерфейсе ADQM Notebook.
Чтобы создать новый ноутбук, кликните по иконке
New Notebook в заголовке панели NOTEBOOKS — будет создан ноутбук с одной SQL-ячейкой.
Чтобы изменить имя ноутбука, наведите курсор мыши на строку ноутбука, кликните по иконке
Rename и введите новое имя в поле редактирования.
Ноутбуки можно перемещать в списке, используя механизм drag-and-drop.
Чтобы удалить ноутбук, наведите курсор мыши на строку ноутбука в панели NOTEBOOKS и кликните по иконке
Delete.
В строке каждого ноутбука (при наведении курсора мыши) также доступа иконка
Query defaults, которая открывает список параметров для настройки ограничений по использованию ресурсов при выполнении запросов в ноутбуке: max_memory_usage, max_execution_time, max_threads. Указанные значения будут использоваться по умолчанию при выполнении запросов в SQL-ячейках ноутбука. Также для каждой SQL-ячейки можно назначить другие значения этих параметров, которые будут иметь более высокий приоритет, чем указанные на уровне ноутбука — см. Query settings на панели управления SQL-ячейки.
Рабочее пространство ноутбука
Основное рабочее пространство ноутбука (notebook workspace) включает:
-
Область для работы с ячейками, где можно создавать/редактировать/удалять ячейки типа SQL и Text.
-
Панель управления, которая содержит следующие элементы:
-
— запустить выполнение запросов во всех SQL-ячейках ноутбука.
-
Clear
— развернуть список команд для очистки ячеек (Clear Results — удалить результаты запросов всех SQL-ячеек; Clear All Cells — удалить все ячейки из ноутбука, оставив одну пустую SQL-ячейку).
-
Overview — посмотреть обобщенную информацию о ноутбуке.
-
Collapse all queries — свернуть все запросы в ноутбуке.
-
Expand all queries — развернуть все запросы в ноутбуке.
-
Export — экспортировать ноутбук в JSON-файл.
-
Import — импортировать ноутбук из JSON-файла.
-
Server
— развернуть список команд для хранения ноутбуков на сервере ClickHouse.
-
Обзор ноутбука (Overview)
Чтобы понять и проанализировать общее состояние ноутбука, в который добавлено множество ячеек с различными типами запросов, обращающихся к разным таблицам, может быть удобно посмотреть информацию о ноутбуке в обобщенном виде. Чтобы это сделать, кликните
Overview в панели управления ноутбука.
Открывшееся модальное окно Overview of <notebook_name> показывает содержимое ноутбука <notebook_name> в сокращенном формате.
В верхней части окна выводится общая информация о ячейках ноутбука:
-
общее количество ячеек в ноутбуке;
-
количество ячеек каждого типа (SQL, Text);
-
количество ячеек с разными статусами выполнения запросов (OK, pending, errors);
-
количество таблиц, к которым обращаются запросы в ячейках ноутбука, и отдельно — количество таблиц, в которые записываются данные;
-
общее время выполнения запросов в ячейках.
Ниже расположена панель TABLES, где перечисляются все таблицы, к которым обращаются запросы в SQL-ячейках ноутбука, с указанием для каждой таблицы общего числа запросов, обращающихся к ней. Клик по таблице подсвечивает все ячейки с запросами, где используется эта таблица.
В левой части окна находится общий список ячеек ноутбука с сокращенной информацией. Для каждой ячейки показывается порядковый номер, индикатор статуса выполнения запроса (для текстовых ячеек — индикатор
), тип ячейки (SQL или TEXT), а также "заголовок" ячейки в зависимости от типа:
-
TEXT — первая строка текста в ячейке;
-
SQL — имя объекта, к которому обращается запрос (например: имя базы данных или таблицы при создании объекта; имя таблицы при вставке данных или запись вида
source_table → target_tableпри вставке данных из одной таблицы в другую; имена таблиц/табличных функций при чтении данных).
С помощью расположенных выше списка предопределенных фильтров All, SQL, TEXT, Errors можно выбрать ячейки какого типа должны быть показаны в окне.
В основной области окна Overview показывается более подробная (но также агрегированная) информация по ячейкам ноутбука. Для каждой SQL-ячейки дополнительно выводится:
-
время, когда запрос выполнялся последний раз;
-
длительность выполнения запроса и количество возвращенных строк данных (для запросов, которые читают данные);
-
тип запроса (CREATE, SELECT, INSERT и др.);
-
таблицы, участвующие в запросе (не более 20 таблиц для одного запроса). Таблицы для записи данных отмечаются иконкой
, читаемые таблицы —
. Для каждой таблицы также показывается количество запросов в ячейках ноутбука, в которых она задействована. При наведении курсора мыши на таблицу в ячейке также подсвечиваются другие ячейки с запросами, обращающимися к этой таблице. Клик по таблице также подсвечивает все ячейки с этой таблицей, при этом соответствующий фильтр фиксируется в панели TABLES.
Клик по ячейке в этой области выполняет переход на эту ячейку в рабочем пространстве ноутбука.
Экспорт/импорт ноутбуков в формате JSON
Чтобы экспортировать текущий ноутбук в JSON-файл, кликните
Export в панели управления ноутбука.
В каталоге Downloads будет создан JSON-файл с тем же именем, что и ноутбук. В этом файле будет содержаться полная информация о состоянии ноутбука:
-
ячейки, в том числе запросы со статусами их выполнения, результатами и статистикой (если данные были получены на момент экспорта);
-
переменные;
-
настройки, включая состояние сортировки (столбец, направление), параметры графиков (тип, оси);
-
адрес подключения (но он не будет применяться при импорте для удобства передачи на другой хост);
-
имя пользователя.
Пароль не сохраняется.
Чтобы импортировать ранее экспортированный ноутбук, кликните
Import в панели управления ноутбука и выберите JSON-файл.
Импортированный ноутбук будет добавлен в список на панели NOTEBOOKS c именем в формате <notebook_name> (dd-mm-yyyy hh:mm:ss), где <notebook_name> — имя JSON-файла, соответствующее имени ноутбука, dd-mm-yyyy hh:mm:ss — дата и время импорта.
Хранение ноутбуков на сервере ClickHouse
Ноутбуки, созданные в интерфейсе ADQM Notebook, можно сохранять в отдельную базу данных сервера ClickHouse и позже загружать их оттуда. Кроме того, при подключении будет выполняться автоматическая синхронизация с сервером — при успешном подключении ноутбуки автоматически будут загружаться из серверного хранилища, если оно доступно.
Настройка хранилища ноутбуков
Чтобы подготовить хранилище для ноутбуков на сервере ClickHouse, выполните следующие шаги:
-
Откройте список
Server на панели управления ноутбука и выберите команду
Manage Storage.
Управление хранилищем ноутбуков
Управление хранилищем ноутбуковПодтвердите переход к настройке хранилища.
Переход к настройке хранилища ноутбуков
Переход к настройке хранилища ноутбуковВам также будет предложено настроить хранилище ноутбуков, если оно не было ранее подготовлено, при первой попытке сохранить ноутбук на сервер.
-
В открывшемся окне Setup Server Storage подтвердите создание таблицы
notebooksв базе данныхadqm_notebooks(в эту таблицу в дальнейшем по запросу будут сохраняться ноутбуки) и выберите вариант хранения ноутбуков:-
Local — локальная таблица на основе движка ReplacingMergeTree, которая будет храниться на текущем хосте ADQM. Каждый хост будет "видеть" только свои ноутбуки.
-
Replicated — реплицированная таблица на основе движка ReplicatedReplacingMergeTree, которая будет храниться на всех хостах кластера ADQM. Ноутбуки, созданные на каком-либо хосте и сохраненные на сервер, будут доступны для загрузки в интерфейс ADQM Notebook с любого хоста. При выборе этой опции необходимо указать целевой кластер.
Если изначально выбран тип хранилища Local, его можно будет позже изменить на Replicated и автоматически переместить ноутбуки, которые хранились в локальных таблицах на отдельных хостах, в одну реплицированную таблицу (см. Изменение типа хранилища ноутбуков ниже).
Создание локальной таблицы ADQM для хранения ноутбуков
Создание локальной таблицы ADQM для хранения ноутбуков -
-
Нажмите Create Storage.
Сохранение ноутбука на сервер
Чтобы загрузить ноутбук на сервер, на панели управления ноутбука откройте список
Server и выберите команду
Save to Server.
Чтобы загрузить все локальные ноутбуки на сервер, выполните
Upload All Local….
Загрузка ноутбука с сервера
Чтобы загрузить ноутбук с сервера ClickHouse в интерфейс ADQM Notebook, кликните
Load from Server… и выберите нужный ноутбук в открывшемся окне.
Если выбран ноутбук с именем уже существующего в интерфейсе ноутбука и существующий ноутбук отличается от загружаемого, то откроется окно, где можно указать какая версия должна быть в интерфейсе: локальная, серверная или обе (в этом случае загруженный с сервера ноутбук будет отмечен как from server).
Изменение типа хранилища ноутбуков
Чтобы изменить тип хранилища ноутбуков с Local на Replicated и объединить все ранее сохраненные в локальных таблицах ноутбуки в одну реплицированную таблицу, выполните миграцию данных следующим образом:
-
Выберите
Manage Storage в меню
Server на панели управления ноутбука.
Управление хранилищем ноутбуков
Управление хранилищем ноутбуков -
В открывшемся окне Setup Server Storage выберите кластер ADQM и нажмите Migrate to Replicated.
Перенос ноутбуков из локальных таблиц в реплицированную
Перенос ноутбуков из локальных таблиц в реплицированную
После успешного выполнения миграции на каждом хосте выбранного кластера ADQM будет создана реплицированная таблица adqm_notebooks.notebooks со списком ноутбуков, скопированных со всех хостов, на которых они были ранее сохранены локально. При этом локальные таблицы с ноутбуками на соответствующих хостах будут переименованы в notebooks_local_backup — их можно будет позже удалить из базы данных adqm_notebooks через диалог Server Storage Settings или вручную.
После миграции все ноутбуки будут автоматически загружены в интерфейс ADQM Notebook. При подключении от имени другого пользователя ноутбуки, которые были синхронизированы с сервером предыдущим пользователем, очищаются, а локальные (не сохраненные на сервере) — остаются.
Если на текущем узле все еще используется локальная таблица для хранения ноутбуков, а на других узлах кластера — уже реплицированная (например, если шард был недоступен во время миграции), сохранение ноутбуков блокируется с сообщением Split storage detected — Saves are blocked until you migrate.
Получение ссылки на ноутбук
Чтобы поделиться ссылкой на ноутбук с другими пользователями, кликните
Share notebook на панели управления ADQM Notebook — ссылка на текущий ноутбук будет скопирована в буфер обмена.
Ссылка содержит полное состояние ноутбука (ячейки, переменные, настройки графиков), сжатые в хеш URL-адреса. В ссылку не включаются результаты запросов; URL-адрес подключения к серверу ADQMDB включается, а учетные данные — нет. Для выполнения запросов получателям требуется доступ к тому же серверу ADQMDB.