Работать в SQL-редакторе
SQL-редактор — работа с вашими данными обычным SQL прямо в кабинете, без DBeaver и туннеля: вкладка «Данные», переключатель «SQL» рядом с заголовком.
Запрос выполняется ролью «клиент» — с теми же правами, что у этой роли
в DBeaver: читать сырые данные (raw.events) и таблицы источников
(sources.<имя>), править и удалять их строки, создавать свои таблицы,
представления, материализованные представления, функции и индексы в схеме
public и в своих схемах (create schema). Служебное платформы роли
не видно. Что где лежит — Схемы и роли базы.
Редактор меняет данные
Заголовок раздела «Редактор меняет данные»- Каждый запрос выполняется сразу и фиксируется сам, как в DBeaver с автофиксацией. Запрос с ошибкой, остановленный или не уложившийся в срок откатывается целиком.
DELETEпо таблице источника удаляет строки по-настоящему, но они уходят в корзину на 30 дней. После запуска редактор пишет, сколько строк ушло в корзину, со ссылкой на неё.UPDATEнеобратим. Прежних значений корзина не хранит, а заново из сырых данных таблица не строится — исходное событие остаётся только вraw.events. После запуска редактор напомнит, сколько строк изменено.- Служебные столбцы (
_event_id,_received_at,_channel,_meta) меняет только платформа — база ответит понятной ошибкой. Добавить строку в таблицу источника (insert) и очистить еёtruncateнельзя: строки рождают события, а очистка — кнопка «Очистить источник» с корзиной. Отказ базы редактор покажет как есть и объяснит рядом, что делать. - Свои таблицы и представления — ваши:
dropиdeleteпо ним идут без корзины. - Все строки таблицы — только с подтверждением.
updateилиdeleteбезwhere(или сwhere true) редактор выполнит, только когда вы подтвердите: окно назовёт таблицу и сколько в ней строк, по строке на каждый такой запрос выделения. По умолчанию в окне — «Отмена», и тогда не выполняется ничего — под запросом так и будет написано. Запрос с условием идёт сразу.
Как выполнять
Заголовок раздела «Как выполнять»- Ctrl+Enter (на Mac — ⌘ Enter) или кнопка
«Выполнить» выполняют запрос под курсором. Запросы разделяются «;»
и пустой строкой, как в DBeaver. Пустая строка внутри одного запроса его
не режет — внутри скобок, после
union all,and, запятой и междуwith … as (…)и основнымselect. - Выделили фрагмент — выполнится он. Несколько запросов в выделении идут по очереди, каждый фиксируется сам, первая ошибка останавливает остальные.
- Один запрос идёт не дольше 30 секунд; пока идёт — тикает таймер, «Остановить» прерывает его сразу и откатывает.
- Каждый запуск — отдельный сеанс:
setи временные таблицы живут только внутри одного запроса. Команды вне транзакции (vacuum,create index concurrently) и долгие операции — в DBeaver. - Поле «Строк» — сколько строк результата показать: по умолчанию 1000,
до 10 000. Режется только показ: итоги и подзапросы считаются по всем
данным, а
delete … returning *удаляет все строки, даже если показаны не все.
Дерево, подсказки и результат
Заголовок раздела «Дерево, подсказки и результат»- Слева — то, что видит роль клиента, по схемам: таблицы источников
(под именем источника; имя для запроса — серой строкой ниже, справа —
число строк), сырые данные, ваши объекты. Щелчок раскрывает столбцы
с типами, щелчок по столбцу или «+» у таблицы вставляет имя в запрос —
со схемой (
sources.zayavki,raw.events); ваши объекты вpublic— без неё. Над деревом — поиск по имени и кнопка «Обновить список». - Подсказки появляются сами: таблицы (вставятся со схемой), схемы,
столбцы, функции Postgres, ключевые слова. После
схема.— её таблицы, послепсевдоним.— столбцы этой таблицы, после::— типы. Tab или Enter принимают подсказку, Esc закрывает, Ctrl+Space показывает сразу. - Результат: под именем столбца — его тип,
NULL— серым курсивом, длинное значение целиком — во всплывающей подсказке. Команда без строк в ответе показывает итог базы: «DELETE 3», «CREATE VIEW»; уcreate table … asиcreate materialized view— ещё и сколько строк легло: «CREATE TABLE AS · 12 строк». Ошибка — текстом базы и с местом: «строка 3, символ 14» и кнопка «Показать в редакторе». Язык ошибок — английский или русский — выбирается в «Настройках»: Язык сообщений базы.
Черновики
Заголовок раздела «Черновики»Вкладки над редактором — черновики. Они хранятся в кабинете и сохраняются сами, поэтому открываются с любого браузера. «+» — новый черновик, двойной щелчок по названию — переименовать, «×» — закрыть (черновик удалится насовсем). Редактор работает в одной вкладке браузера: откроете вторую — первая допишет несохранённое и уступит, а её кнопка «Работать здесь» вернёт редактор обратно.
Сохранить запрос представлением
Заголовок раздела «Сохранить запрос представлением»Отдельной кнопки «Сохранить запрос» нет: запрос, который нужен снова, сохраните представлением.
create view moi_zapros asselect imya, email from sources.zayavki where email is not null;Оно появится в дереве (после «Обновить список»), в «Данных» и в DBeaver; его строки —
на экране таблицы. Поправить — create or replace view, удалить —
drop view. Тяжёлую сводку, которую читаете часто, сохраните
материализованным представлением и обновляйте сами:
create materialized view svodka asselect date_trunc('day', _received_at) as den, count(*) from sources.zayavki group by 1;
refresh materialized view svodka;