Панель Databases

На панели DATABASES в интерактивном виде выводится информация о базах данных и таблицах ADQM. Если в конфигурации ADQM не описан ни один логический кластер, на панели выводятся базы данных, расположенные на текущем хосте ADQM.

Если в конфигурации есть описание одного или нескольких кластеров, панель содержит две вкладки:

  • LOCAL — показывает базы данных на текущем хосте ADQM (без базы данных information_schema);

  • CLUSTER — показывает иерархическое дерево баз данных и таблиц кластера (также без information_schema). Если в конфигурации описан один кластер, он будет отображаться на вкладке по умолчанию. Если сконфигурировано несколько кластеров ADQM, кластер для отображения на панели DATABASES можно выбрать из выпадающего списка.

Когда ADQM Notebook работает через Chproxy, переключатель LOCAL/CLUSTER отсутствует — на панели всегда показывается дерево баз данных и таблиц выбранного кластера.

Клик по иконке refresh icon dark refresh icon light Refresh обновляет информацию по базам данным и таблицам.

В списке баз данных/таблиц/столбцов доступно поле для фильтрации данных — при вводе любой подстроки выполняется фильтрация одновременно на уровне всех объектов.

Панель DATABASES
Панель DATABASES
Панель DATABASES
Панель DATABASES

Таблицы

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

При наведении курсора мыши на строку таблицы во всплывающем окне (tooltip) можно посмотреть дополнительную информацию о таблице: табличный движок, общее количество строк, общий размер и распределение данных по хостам (на вкладке CLUSTER).

Общая информация о таблице на вкладке CLUSTER
Общая информация о таблице на вкладке CLUSTER
Общая информация о таблице на вкладке CLUSTER
Общая информация о таблице на вкладке CLUSTER

Контекстное меню

При нажатии правой кнопкой мыши на строку таблицы открывается контекстное меню, которое можно использовать, чтобы автоматически вставить в выбранную SQL-ячейку (или в новую, если ни одна ячейка не выбрана) запрос к данной таблице для выполнения на одном хосте или на кластере в зависимости от выбранной на панели DATABASES вкладки (LOCAL или CLUSTER).

Контекстное меню для таблицы базы данных
Контекстное меню для таблицы базы данных
Контекстное меню для таблицы базы данных
Контекстное меню для таблицы базы данных

Из контекстного меню можно вставлять следующие запросы:

  • SELECT * …​ LIMIT 100 — запрос на чтение 100 строк таблицы.

    LOCAL
    SELECT *
    FROM "<database_name>"."<table_name>"
    LIMIT 100
    CLUSTER
    SELECT *
    FROM clusterAllReplicas('<cluster_name>', '<database_name>', '<table_name>')
    LIMIT 100
  • SELECT count(*) — запрос для получения общего количества строк в таблице.

    LOCAL
    SELECT count(*)
    FROM "<database_name>"."<table_name>"
    CLUSTER
    SELECT count(*)
    FROM clusterAllReplicas('<cluster_name>', '<database_name>', '<table_name>')
  • DESCRIBE TABLE — запрос для получения детальной информации о структуре таблицы.

    LOCAL и CLUSTER
    DESCRIBE TABLE "<database_name>"."<table_name>"
  • SHOW CREATE TABLE — запрос для получения команды, с помощью которой была создана таблица.

    LOCAL и CLUSTER
    SHOW CREATE TABLE "<database_name>"."<table_name>"

В каждом из приведенных выше примеров запросов имя таблицы, для которой вызывается контекстное меню, а также имя базы данных и кластера обозначаются как <table_name>, <database_name> и <cluster_name> соответственно — при вставке запроса в ячейку вместо этих обозначений будут автоматически подставляться фактические имена соответствующих объектов.

Столбцы таблиц

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

Столбцы таблицы
Столбцы таблицы
Столбцы таблицы
Столбцы таблицы

Чтобы развернуть структуру всех таблиц в рамках одной базы данных, в строке базы данных кликните по иконке toggle query icon dark toggle query icon light Expand all tables, которая становится видимой при наведении курсора мыши на базу данных в панели DATABASES (если все таблицы уже развернуты, иконка move up icon dark move up icon light Collapse all tables в строке базы данных позволяет их свернуть).

Просмотр структуры всех таблиц
Просмотр структуры всех таблиц
Просмотр структуры всех таблиц
Просмотр структуры всех таблиц

Контекстное меню

При нажатии правой кнопкой мыши на строку, соответствующую столбцу таблицы, открывается контекстное меню, с помощью которого можно быстро вставить имя столбца или один из предопределенных запросов с обращением к данному столбцу в поле редактирования запроса выбранной SQL-ячейки (или в новую ячейку, если ни одна не выбрана) для выполнения на одном хосте или кластере ADQM в зависимости от выбранной на панели DATABASES вкладки (LOCAL или CLUSTER).

Контекстное меню для столбца таблицы
Контекстное меню для столбца таблицы
Контекстное меню для столбца таблицы
Контекстное меню для столбца таблицы

В контекстном меню доступны следующие действия:

  • Insert column name — вставить имя столбца таблицы. То же самое можно сделать, кликнув по строке, соответствующей столбцу таблицы, на панели DATABASES.

  • SELECT column …​ LIMIT 100 — вставить запрос, который считывает значения данного столбца из 100 первых строк таблицы.

    LOCAL
    SELECT "<column_name>"
    FROM "<database_name>"."<table_name>"
    LIMIT 100
    CLUSTER
    SELECT "<column_name>"
    FROM clusterAllReplicas('<cluster_name>', '<database_name>', '<table_name>')
    LIMIT 100
  • SELECT DISTINCT values — вставить запрос, который выбирает уникальные значения (не более 100) в данном столбце таблицы и вычисляет их количество.

    LOCAL
    SELECT "<column_name>", count(*) AS cnt
    FROM "<database_name>"."<table_name>"
    GROUP BY "<column_name>"
    ORDER BY cnt DESC
    LIMIT 100
    CLUSTER
    SELECT "<column_name>", count(*) AS cnt
    FROM clusterAllReplicas('<cluster_name>', '<database_name>', '<table_name>')
    GROUP BY "<column_name>"
    ORDER BY cnt DESC
    LIMIT 100
  • SELECT * …​ WHERE column — вставить шаблон запроса для чтения данных из таблицы с фильтром по значению данного столбца, которое необходимо дописать в тексте запроса в выражении WHERE "<column_name>" =  после знака =.

    LOCAL
    SELECT *
    FROM "<database_name>"."<table_name>"
    WHERE "<column_name>" =
    LIMIT 100
    CLUSTER
    SELECT *
    FROM clusterAllReplicas('<cluster_name>', '<database_name>', '<table_name>')
    WHERE "<column_name>" =
    LIMIT 100
  • SELECT * …​ ORDER BY column — вставить запрос на выборку данных из таблицы с сортировкой результатов по данному столбцу в порядке убывания.

    LOCAL
    SELECT *
    FROM "<database_name>"."<table_name>"
    ORDER BY "<column_name>" DESC
    LIMIT 100
    CLUSTER
    SELECT *
    FROM clusterAllReplicas('<cluster_name>', '<database_name>', '<table_name>')
    ORDER BY "<column_name>" DESC
    LIMIT 100
  • Copy column name — скопировать имя столбца в буфер обмена.

В каждом из приведенных выше запросов имя столбца, для которого вызывается контекстное меню, а также имя таблицы, базы данных и кластера обозначаются как <column_name>, <table_name>, <database_name> и <cluster_name> соответственно — при вставке запроса в ячейку вместо этих обозначений будут автоматически подставляться фактические имена соответствующих объектов.

Схема зависимостей объектов

Кликните по иконке dependency graph icon Show dependency graph слева от названия кластера, чтобы посмотреть зависимости между объектами баз данных ADQM.

Просмотр зависимостей между объектами ADQM
Просмотр зависимостей между объектами ADQM
Просмотр зависимостей между объектами ADQM
Просмотр зависимостей между объектами ADQM

В открывшемся окне Dependency Graph of <cluster_name> в списке слева выберите объекты (кликая по именам), зависимости которых нужно посмотреть. Поддерживаемые типы объектов: таблицы (движки семейства MergeTree, Merge, Set, Join, Kafka, Distributed), представления, материализованные представления, словари, проекции.

Справа от имени объекта показывается общее количество его зависимостей. Чтобы выбрать все объекты, кликните Add all ниже списка. Кнопка Clear удаляет все объекты из схемы.

Схема зависимостей между объектами баз данных ADQM
Схема зависимостей между объектами баз данных ADQM
Схема зависимостей между объектами баз данных ADQM
Схема зависимостей между объектами баз данных ADQM

Выбранные объекты будут отрисованы в основной области окна и соединены стрелками. Цвет стрелки обозначает тип зависимости. Типы присутствующих на схеме зависимостей между объектами и соответствующие им цвета перечисляются в легенде в верхней части окна. Если кликнуть по типу зависимости в легенде, соответствующие связи (стрелки) между объектами будут удалены со схемы.

Возможные типы зависимостей:

  • Read — таблица и объект, из которого она читает данные;

  • Write — материализованное представление и целевая таблица, в которую будут сохраняться данные из него;

  • Trigger — таблица и материализованное представление, которое срабатывает при вставке данных в эту таблицу;

  • Distributed — Distributed-таблица и локальная таблица, на которую она ссылается;

  • Projection — проекция и ее исходная таблица;

  • Refresh — обновляемое материализованное представление и его явная зависимость (DEPENDS ON);

  • In set — таблица на основе движка Set и объект, который ее использует;

  • Merge — таблица на основе движка Merge и таблица, из которой она читает данные;

  • Dictionary to — таблица на движке Dictionary и словарь, на основе которого она создана;

  • Uses dictionary — таблица, использующая данные словаря через функцию dictGet, и словарь;

  • Dictionary from — словарь и его источник данных.

При наведении курсора мыши на объект во всплывающем окне показывается более подробная информация о нем и его зависимостях: на каких хостах располагается объект, какие объекты являются источником данных для него (зависимости receives from) и для каких объектов он сам является источником данных (зависимости used by).

Детальная информация о зависимостях объекта ADQM
Детальная информация о зависимостях объекта ADQM
Детальная информация о зависимостях объекта ADQM
Детальная информация о зависимостях объекта ADQM

В правом верхнем углу объекта показано число его зависимостей, которые еще не показаны на схеме. Чтобы построить все зависимости объекта, добавленного на схему, нажмите на него правой кнопкой мыши и выберите из контекстного меню Upstream (зависимости receives from), Downstream (зависимости used by) или Expand all (все зависимости объекта). Команда Remove удаляет объект со схемы.

Контекстное меню для объекта ADQM на схеме зависимостей
Контекстное меню для объекта ADQM на схеме зависимостей
Контекстное меню для объекта ADQM на схеме зависимостей
Контекстное меню для объекта ADQM на схеме зависимостей

Если кликнуть по объекту на схеме зависимостей, подсвечивается подграф, в который включаются объекты в соответствии с опцией, выбранной в заголовке окна:

  • dependency graph cluster highlight icon dark dependency graph cluster highlight icon light Cluster — все объекты, связанные с выбранным объектом. При клике по другому объекту в этом подграфе подсвечиваемый подграф не меняется.

  • dependency graph lineage highlight icon dark dependency graph lineage highlight icon light Lineage — только предки и потомки объекта (то есть "соседний" объект, который имеет тот же источник, что и выбранный объект, но не принадлежит directed-пути, в подсвечиваемый подграф не включается). Если кликнуть по другому объекту в этом подграфе, будет подсвечен другой подграф — lineage этого объекта.

Подсветка всех связанных объектов
Подсветка всех связанных объектов
Подсветка всех связанных объектов
Подсветка всех связанных объектов
Подсветка lineage-подграфа для выбранного объекта
Подсветка lineage-подграфа для выбранного объекта
Подсветка lineage-подграфа для выбранного объекта
Подсветка lineage-подграфа для выбранного объекта
Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней