Запрос из редактора SQL Lakebase

Редактор SQL Lakebase выполняет запросы к базам данных Lakebase непосредственно из приложения Lakebase. Он предлагает нативные для Postgres функции, такие как EXPLAIN/ANALYZE метакоманды psql-style, а также возможность экспорта результатов в CSV/JSON/XLSX.

Замечание

Вы также можете запросить базу данных Lakebase из редактора SQL в Lakehouse, которая предоставляет визуализации, панели мониторинга, функции совместной работы и возможность объединять данные Lakebase с другими таблицами каталога Unity. См. запрос из редактора SQL (Lakehouse).

Использование редактора SQL Lakebase

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

  1. Откройте приложение Lakebase и выберите проект.
  2. Выберите редактор SQL на боковой панели, а затем выберите ветвь и базу данных.
  3. Введите запрос в редактор и нажмите кнопку "Выполнить ", чтобы просмотреть результаты.

Редактор SQL LKB

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

CREATE TABLE IF NOT EXISTS playing_with_lakebase(id SERIAL PRIMARY KEY, name TEXT NOT NULL, value REAL);
INSERT INTO playing_with_lakebase(name, value)
SELECT LEFT(md5(i::TEXT), 10), random() FROM generate_series(1, 10) s(i);
SELECT * FROM playing_with_lakebase;

Выполнение нескольких инструкций запроса одновременно возвращает отдельный результирующий набор для каждой инструкции. Результирующие наборы отображаются на отдельных вкладках с нумерованным порядком выполнения.

Чтобы очистить редактор, выделите содержимое текстового поля и удалите его.

Объяснение и анализ

В редакторе SQL Lakebase есть функции объяснения и анализа .

Описание и анализ редактора SQL LKB

  • Функция "Объяснение " запускает указанный запрос с помощью команды Postgres EXPLAIN , которая возвращает план выполнения для запроса. Функция "Объяснение " возвращает только план с оценками. Он не выполняет запрос.
  • Функция Анализа выполняет указанный запрос с EXPLAIN ANALYZE. Параметр ANALYZE выполняет запрос и возвращает фактические числа строк и время выполнения для узлов плана вместе с оценками EXPLAIN .

Для понимания сведений, предоставляемых функциями "Объяснение и анализ ", требуется знакомство с командой Postgres EXPLAIN и его ANALYZE параметром. См. документацию EXPLAIN и раздел Использование EXPLAIN в документации PostgreSQL.

Экспорт данных в CSV, JSON и XLSX

SQL-редактор Lakebase поддерживает экспорт данных в JSON, CSV и XLSX. Перейдите к кнопке скачивания в правом нижнем углу страницы редактора SQL . Кнопка скачивания отображается только при наличии результирующего набора для скачивания.

Экспорт редактора SQL LKB

Разверните раздел результатов окна редактора SQL

Разверните раздел результатов окна редактора SQL, нажав кнопку "Развернуть" в правом нижнем углу страницы редактора SQL .

Расширение редактора SQL LKB

Мета-команды

Редактор SQL Lakebase поддерживает использование метакоманд Postgres, которые действуют как сочетания клавиш для взаимодействия с базой данных. Если вы уже знакомы с использованием метакоманд из psql интерфейса командной строки, можно использовать многие из этих же команд в редакторе SQL Lakebase.

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

Ниже приведены некоторые часто используемые метакоманды в редакторе SQL Lakebase:

  • \dt — вывод списка всех таблиц в текущей базе данных
  • \d [table_name] — описание структуры таблицы
  • \l — вывод списка всех баз данных
  • \? — памятка о доступных мета-командах
  • \h [NAME] — получение справки для любой команды Postgres (например, \h SELECT)

Замечание

Не все psql метакоманды поддерживаются в редакторе SQL. Чтобы получить список поддерживаемых команд, используйте \?.

Полный список метакоманд и их использования см. в разделе "Мета-команды" в psql.

Использование метакоманд

Чтобы использовать мета-команду в редакторе SQL, введите мета-команду в редакторе (так же, как sql-запрос) и нажмите кнопку "Выполнить". Результат будет отображаться в области вывода.

Ограничения редактора SQL при отключении общедоступного доступа

Если для вашей рабочей области настроен Приватный канал и общедоступный доступ отключен, редактор SQL направляет запросы через серверную часть Lakebase, а не использует прямое подключение к базе данных. Большинство запросов работают так же, как при прямом подключении, но прокси-сервер не хранит состояние и выполняет каждый оператор как отдельный HTTP-запрос, что приводит к следующим ограничениям:

Что работает:

  • Запросы из одной инструкции (SELECT, INSERT, UPDATE, DELETE, UPSERT)
  • Инструкции DDL (CREATE, ALTER, DROP TABLECREATE INDEX и т. д.)
  • EXPLAIN и команды DESCRIBE (\d, \dt, \di)
  • Полная поддержка типов данных Postgres (массивы, JSON/JSONB, числовые типы, временные метки, логические значения)
  • Результаты запроса и сообщения об ошибках

Что не работает:

Функция Limitation
Transactions BEGIN, , COMMITROLLBACKи SAVEPOINT не работают должным образом. Каждая инструкция автоматически фиксируется независимо без гарантии атомарности.
Состояние сеанса SET и SET LOCAL применяется только к текущему запросу. Временные таблицы, подготовленные инструкции, курсоры и блокировки рекомендаций недоступны в последующих инструкциях.
ПРОСЛУШИВАНИЕ И УВЕДОМЛЕНИЕ Требует постоянного подключения для асинхронных уведомлений, которые прокси-сервер не поддерживает.
КОПИРОВАНИЕ ИЗ STDIN Невозможно передавать данные на стороне клиента через прокси-сервер.
\watch Периодическое повторное выполнение запроса недоступно через прокси-сервер без состояния.
Отмена запроса Отмена — это только лучшие усилия. Запрос может продолжать выполняться на серверной части после запроса отмены.
Скрипты с несколькими операторами Инструкции выполняются без общей транзакции. Частичный сбой скрипта приводит к частичной фиксации.
Ограничение размера результата Результаты запроса ограничены 32 МБ.

Для рабочих нагрузок, требующих транзакций или состояния сеанса, подключитесь непосредственно к базе данных с помощью клиента Postgres. См. статью "Подключение с помощью psql".

Устранение неполадок

Если в редакторе SQL отображается сообщение "Не удалось получить" или "Неизвестная ошибка", а в рабочей области используется Приватный канал, убедитесь, что входящий Приватный канал (уровень рабочей области, порт 443) настроен правильно. См. раздел Устранение проблем с подключением Приватный канал.