SHOW SCHEMAS / SHOW TABLES: Просмотр схем и таблиц: фильтрация по паттерну
Просмотр схем и таблиц: фильтрация по паттерну
Базовый синтаксис
Эти команды — первое, что делаешь, подключаясь к новому каталогу или ища данные. SHOW SCHEMAS показывает список схем (баз данных) в каталоге. SHOW TABLES — список таблиц в текущей или указанной схеме.
-- Показать все схемы в текущем каталоге
SHOW SCHEMAS;
-- Показать все таблицы в текущей схеме
SHOW TABLES;
-- Показать все таблицы в конкретной схеме 'web'
SHOW TABLES FROM web;
Полезные флаги
Чаще всего используешь LIKE для фильтрации и FROM для указания каталога.
-- Найти схемы, названия которых начинаются с 'tmp_'
SHOW SCHEMAS LIKE 'tmp_%';
-- Найти таблицы в схеме 'analytics', содержащие в названии 'events'
SHOW TABLES FROM analytics LIKE '%events%';
-- Показать таблицы в схеме 'sales' каталога 'iceberg'
SHOW TABLES FROM iceberg.sales;
Типичные сценарии
1. Поиск таблиц логов за определенный день. Допустим, у тебя ежедневные партиции и нужно найти все таблицы за март 2024.
SHOW TABLES FROM logs LIKE '%2024_03%';
2. Проверка успешности деплоя DDL-скриптов. После запуска миграции, которая создает временные схемы, убеждаешься, что они появились.
-- Проверить, создались ли служебные схемы для тестов
SHOW SCHEMAS FROM hive LIKE '%_backup';
3. Инвентаризация таблиц перед удалением устаревшего каталога. Перед отключением старого кластера Hive смотрю, остались ли в нем схемы, кроме служебных.
SHOW SCHEMAS FROM legacy_hive;
Частые ошибки
Забыть кавычки в паттерне LIKE. Без кавычек Trino будет искать конкретную таблицу с символами % в названии.
-- Неправильно: вернет ошибку или пустой результат
SHOW TABLES LIKE %events%;
-- Правильно:
SHOW TABLES LIKE '%events%';
Не указывать каталог при множественных подключениях. Если в сессии активен каталог iceberg, команда SHOW SCHEMAS покажет схемы только в нем. Чтобы посмотреть схемы в другом каталоге, нужно явно это указать.
-- Покажет схемы в каталоге 'hive', даже если текущий каталог другой
SHOW SCHEMAS FROM hive;