Перейти к основному содержимому
Перейти к основному содержимому

SQL Консоль

SQL консоль — это самый быстрый и простой способ исследовать и выполнять запросы к вашим базам данных в ClickHouse Cloud. Вы можете использовать SQL консоль для:

  • Подключения к вашим ClickHouse Cloud Services
  • Просмотра, фильтрации и сортировки данных таблиц
  • Выполнения запросов и визуализации данных результатов всего за несколько кликов
  • Обмен запросами с членами команды и более эффективного сотрудничества.

Исследование таблиц

Просмотр списка таблиц и информации о схеме

Обзор таблиц, содержащихся в вашей ClickHouse инстансе, можно найти в левой боковой панели. Используйте селектор базы данных в верхней части левой панели, чтобы просмотреть таблицы в конкретной базе данных

Список таблиц и вид схемы, показывающий таблицы базы данных в левой боковой панели

Таблицы в списке также можно развернуть, чтобы просмотреть столбцы и типы

Вид развернутой таблицы с названием столбцов и типами данных

Исследование данных таблицы

Щелкните на таблицу в списке, чтобы открыть ее в новой вкладке. В представлении таблицы данные можно легко просматривать, выбирать и копировать. Обратите внимание, что структура и форматирование сохраняются при копировании и вставке в приложения для работы с таблицами, такие как Microsoft Excel и Google Sheets. Вы можете переключаться между страницами данных таблицы (пагинация по 30 строк) с помощью навигации в нижнем колонтитуле.

Представление таблицы с данными, которые можно выбрать и скопировать

Изучение данных ячейки

Инструмент проверки ячеек можно использовать для просмотра больших объемов данных, содержащихся в одной ячейке. Чтобы открыть его, щелкните правой кнопкой мыши на ячейке и выберите 'Проверить ячейку'. Содержимое инспектора ячейки можно скопировать, нажав на иконку копирования в верхнем правом углу содержимого инспектора.

Диалог инспектора ячейки, показывающий содержимое выбранной ячейки

Фильтрация и сортировка таблиц

Сортировка таблицы

Чтобы отсортировать таблицу в SQL консоли, откройте таблицу и выберите кнопку 'Сортировать' на панели инструментов. Эта кнопка откроет меню, которое позволит вам настроить сортировку. Вы можете выбрать столбец, по которому будете сортировать, и настроить порядок сортировки (по возрастанию или убыванию). Выберите 'Применить' или нажмите Enter, чтобы отсортировать вашу таблицу

Диалог сортировки с настройками для сортировки по убыванию по столбцу

SQL консоль также позволяет вам добавлять несколько сортировок к таблице. Щелкните кнопку 'Сортировать' снова, чтобы добавить другую сортировку. Примечание: сортировки применяются в порядке их появления в области сортировки (сверху вниз). Чтобы удалить сортировку, просто нажмите кнопку 'x' рядом с сортировкой.

Фильтрация таблицы

Чтобы отфильтровать таблицу в SQL консоли, откройте таблицу и выберите кнопку 'Фильтр'. Точно так же, как и в сортировке, эта кнопка откроет меню, которое позволит вам настроить фильтр. Вы можете выбрать столбец, по которому будете фильтровать, и выбрать необходимые критерии. SQL консоль интеллектуально отображает параметры фильтра, соответствующие типу данных, содержащимся в столбце.

Диалог фильтрации с настройками фильтрации радиостанции, равной GSM

Когда вы будете довольны вашим фильтром, вы можете выбрать 'Применить', чтобы отфильтровать ваши данные. Вы также можете добавлять дополнительные фильтры, как показано ниже.

Диалог, показывающий, как добавить дополнительный фильтр на диапазон больше 2000

Аналогично функции сортировки, щелкните кнопку 'x' рядом с фильтром, чтобы удалить его.

Фильтрация и сортировка вместе

SQL консоль позволяет вам фильтровать и сортировать таблицу одновременно. Для этого добавьте все желаемые фильтры и сортировки, используя шаги, описанные выше, и нажмите кнопку 'Применить'.

Интерфейс, показывающий одновременное применение фильтрации и сортировки

Создание запроса из фильтров и сортировок

SQL консоль может преобразовать ваши сортировки и фильтры непосредственно в запросы одним кликом. Просто выберите кнопку 'Создать запрос' на панели инструментов с параметрами сортировки и фильтра по вашему выбору. После нажатия 'Создать запрос' откроется новая вкладка с предзаполненной командой SQL, соответствующей данным, содержащимся в вашем представлении таблицы.

Инте�рфейс, показывающий кнопку Создать запрос, которая генерирует SQL из фильтров и сортировок
примечание

Фильтры и сортировки не являются обязательными при использовании функции 'Создать запрос'.

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

Создание и выполнение запроса

Создание запроса

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

  • Щелкните кнопку '+' на панели вкладок
  • Выберите кнопку 'Новый запрос' из списка запросов в левой боковой панели
Интерфейс, показывающий, как создать новый запрос, используя кнопку + или кнопку Новый запрос

Выполнение запроса

Чтобы выполнить запрос, введите свои SQL команд(ы) в SQL редактор и нажмите кнопку 'Запустить' или используйте сочетание клавиш cmd / ctrl + enter. Чтобы написать и выполнить несколько команд последовательно, убедитесь, что после каждой команды стоит точка с запятой.

Опции выполнения запросов По умолчанию нажатие на кнопку запуска выполнит все команды, содержащиеся в SQL редакторе. SQL консоль поддерживает две другие опции выполнения запросов:

  • Выполнить выделенные команд(ы)
  • Выполнить команду на текущей позиции курсора

Чтобы выполнить выделенные команд(ы), выделите желаемую команду или последовательность команд и нажмите кнопку 'Запустить' (или используйте сочетание клавиш cmd / ctrl + enter). Вы также можете выбрать 'Выполнить выделенное' из контекстного меню SQL редактора (открывается правым щелчком мыши в редакторе) при наличии выделения.

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

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

  • Выбрать 'На курсоре' из меню расширенных опций запуска (или используйте соответствующее сочетание клавиш cmd / ctrl + shift + enter)
Опция Выполнить на курсоре в меню расширенных опций запуска
  • Выбор 'Выполнить на курсоре' из контекстного меню SQL редактора
Опция Выполнить на курсоре в контекстном меню SQL редактора
примечание

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

Отмена запроса

Пока запрос выполняется, кнопка 'Запустить' на панели инструментов редактора запросов будет заменена на кнопку 'Отменить'. Просто нажмите эту кнопку или нажмите Esc, чтобы отменить запрос. Примечание: любые результаты, которые уже были возвращены, сохранятся после отмены.

Кнопка отмены, которая �появляется во время выполнения запроса

Сохранение запроса

Если запрос еще не был назван, его следует назвать 'Безымянный запрос'. Щелкните на имени запроса, чтобы изменить его. Переименование запроса приведет к его сохранению.

Интерфейс, показывающий, как переименовать запрос из Безымянного запроса

Вы также можете использовать кнопку сохранения или сочетание клавиш cmd / ctrl + s, чтобы сохранить запрос.

Кнопка сохранения на панели инструментов редактора запросов

Использование GenAI для управления запросами

Эта функция позволяет пользователям писать запросы в виде вопросов на естественном языке и позволяет консоли запросов создавать SQL запросы на основе контекста доступных таблиц. GenAI также может помочь пользователям отлаживать их запросы.

Для получения дополнительной информации о GenAI ознакомьтесь с постом в блоге о запуске предложений по запросам на базе GenAI в ClickHouse Cloud.

Настройка таблицы

Давайте импортируем примерный набор данных UK Price Paid и используем его для создания некоторых запросов GenAI.

  1. Откройте сервис ClickHouse Cloud.
  2. Создайте новый запрос, щелкнув по значку +.
  3. Вставьте и запустите следующий код:
CREATE TABLE uk_price_paid
(
    price UInt32,
    date Date,
    postcode1 LowCardinality(String),
    postcode2 LowCardinality(String),
    type Enum8('terraced' = 1, 'semi-detached' = 2, 'detached' = 3, 'flat' = 4, 'other' = 0),
    is_new UInt8,
    duration Enum8('freehold' = 1, 'leasehold' = 2, 'unknown' = 0),
    addr1 String,
    addr2 String,
    street LowCardinality(String),
    locality LowCardinality(String),
    town LowCardinality(String),
    district LowCardinality(String),
    county LowCardinality(String)
)
ENGINE = MergeTree
ORDER BY (postcode1, postcode2, addr1, addr2);

Этот запрос должен завершиться за примерно 1 секунду. Когда он завершится, у вас должна быть пустая таблица под названием uk_price_paid.

  1. Создайте новый запрос и вставьте следующий запрос:
INSERT INTO uk_price_paid
WITH
   splitByChar(' ', postcode) AS p
SELECT
    toUInt32(price_string) AS price,
    parseDateTimeBestEffortUS(time) AS date,
    p[1] AS postcode1,
    p[2] AS postcode2,
    transform(a, ['T', 'S', 'D', 'F', 'O'], ['terraced', 'semi-detached', 'detached', 'flat', 'other']) AS type,
    b = 'Y' AS is_new,
    transform(c, ['F', 'L', 'U'], ['freehold', 'leasehold', 'unknown']) AS duration,
    addr1,
    addr2,
    street,
    locality,
    town,
    district,
    county
FROM url(
    'http://prod.publicdata.landregistry.gov.uk.s3-website-eu-west-1.amazonaws.com/pp-complete.csv',
    'CSV',
    'uuid_string String,
    price_string String,
    time String,
    postcode String,
    a String,
    b String,
    c String,
    addr1 String,
    addr2 String,
    street String,
    locality String,
    town String,
    district String,
    county String,
    d String,
    e String'
) SETTINGS max_http_get_redirects=10;

Этот запрос получает набор данных с сайта gov.uk. Этот файл весит ~4 ГБ, поэтому выполнение этого запроса займет несколько минут. Как только ClickHouse обработает запрос, у вас должен быть весь набор данных в таблице uk_price_paid.

Создание запроса

Давайте создадим запрос с использованием естественного языка.

  1. Выберите таблицу uk_price_paid, а затем щелкните Создать запрос.

  2. Щелкните Сгенерировать SQL. Возможно, вас попросят подтвердить, что ваши запросы отправляются в Chat-GPT. Вы должны выбрать Я согласен, чтобы продолжить.

  3. Теперь вы можете использовать этот запрос для ввода запроса на естественном языке и разрешить ChatGPT преобразовать его в SQL запрос. В этом примере мы введем:

    Покажите мне общую стоимость и общее количество всех транзакций uk_price_paid по годам.

  4. Консоль сгенерирует искомый запрос и отобразит его в новой вкладке. В нашем примере GenAI создал следующий запрос:

-- Show me the total price and total number of all uk_price_paid transactions by year.
SELECT year(date), sum(price) as total_price, Count(*) as total_transactions
FROM uk_price_paid
GROUP BY year(date)
  1. После того, как вы удостоверитесь, что запрос верный, нажмите Запустить, чтобы выполнить его.

Отладка

Теперь давайте протестируем возможности отладки запросов GenAI.

  1. Создайте новый запрос, нажав на значок +, и вставьте следующий код:
-- Show me the total price and total number of all uk_price_paid transactions by year.
SELECT year(date), sum(pricee) as total_price, Count(*) as total_transactions
FROM uk_price_paid
GROUP BY year(date)
  1. Нажмите Запустить. Запрос не удается выполнить, так как мы пытаемся получить значения из pricee, а не из price.
  2. Нажмите Исправить запрос.
  3. GenAI попытается исправить запрос. В данном случае он изменил pricee на price. Он также осознал, что toYear — лучшая функция для использования в данной ситуации.
  4. Выберите Применить, чтобы добавить предложенные изменения к вашему запросу, и нажмите Запустить.

Имейте в виду, что GenAI является экспериментальной функцией. Будьте осторожны при выполнении сгенерированных GenAI запросов против любых наборов данных.

Расширенные функции запросов

Поиск результатов запросов

После выполнения запроса вы можете быстро искать в возвращенном наборе результатов, используя поле поиска в области результатов. Эта функция помогает в предварительном просмотре результатов дополнительного оператора WHERE или просто проверке, что определенные данные включены в набор результатов. После ввода значения в поле поиска область результатов обновится и вернет записи, содержащие запись, соответствующую введенному значению. В этом примере мы будем искать все экземпляры breakfast в таблице hackernews для комментариев, содержащих ClickHouse (без учета регистра):

Поиск данных Hacker News

Примечание: любое поле, соответствующее введенному значению, будет возвращено. Например, третья запись на скриншоте выше не соответствует 'breakfast' в поле by, но поле text соответствует:

Совпадение в теле

Настройка параметров пагинации

По умолчанию область результатов запроса будет отображать каждую запись на одной странице. Для более крупных наборов результатов может быть удобнее использовать пагинацию для облегчения просмотра. Это можно сделать с помощью селектора пагинации в нижнем правом углу области результатов:

Опции пагинации

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

Навигация по пагинации

Экспорт данных результата запроса

Наборы результатов запросов можно легко экспортировать в формат CSV непосредственно из SQL консоли. Для этого откройте меню ••• на правой стороне панели инструментов области результатов и выберите 'Скачать как CSV'.

Скачать как CSV

Визуализация данных запроса

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

SELECT
   toStartOfWeek(pickup_datetime) AS week,
   sum(total_amount) AS fare_total,
   sum(trip_distance) AS distance_total,
   count(*) AS trip_total
FROM
   nyc_taxi
GROUP BY
   1
ORDER BY
   1 ASC
Табличные результаты запроса

Без визуализации эти результаты трудно интерпретировать. Давайте превратим их в диаграмму.

Создание диаграмм

Чтобы начать создание вашей визуализации, выберите опцию 'Диаграмма' на панели инструментов области результатов запроса. Появится панель конфигурации диаграммы:

Переключение с запроса на диаграмму

Мы начнем с создания простой столбчатой диаграммы, отслеживающей trip_total по week. Для этого мы перетащим поле week на ось x и поле trip_total на ось y:

Общая стоимость поездки по неделям

Большинство типов диаграмм поддерживает несколько полей на числовых осях. Чтобы продемонстрировать это, мы перетащим поле fare_total на ось y:

Столбчатая диаграмма

Настройка диаграмм

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

Изменение с Столбчатой диаграммы на Областную

Заголовки диаграмм соответствуют названию запроса, поставляющего данные. Обновление названия запроса приведет к обновлению заголовка диаграммы:

Обновление названия запроса

Некоторые более продвинутые характеристики диаграмм также можно настроить в разделе 'Расширенные' панели конфигурации диаграммы. Для начала мы скорректируем следующие настройки:

  • Подзаголовок
  • Заголовки осей
  • Ориентация меток для оси x

Наша диаграмма будет обновлена соответствующим образом:

Обновление подзаголовка и т.д.

В некоторых случаях может быть необходимо отдельно настроить масштабы осей для каждого поля. Это также можно сделать в разделе 'Расширенные' панели конфигурации диаграммы, указав минимальные и максимальные значения для диапазона оси. Например, вышеуказанная диаграмма выглядит хорошо, но для демонстрации корреляции между нашими полями trip_total и fare_total диапазоны осей требуют некоторой корректировки:

Настройка масштаба осей

Обмен запросами

SQL консоль позволяет вам делиться запросами с вашей командой. Когда запрос делится, все члены команды могут видеть и редактировать его. Общие запросы — это отличный способ сотрудничества с вашей командой.

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

Кнопка Поделиться на панели инструментов запроса

Откроется диалоговое окно, позволяющее вам поделиться запросом со всеми членами команды. Если у вас несколько команд, вы можете выбрать, с какой командой поделиться запросом.

Диалог редактирования доступа к общему запросу
Интерфейс для добавления команды к общему запросу
Интерфейс для редактирования доступа участников к общему запросу

В некоторых случаях может быть необходимо отдельно настроить масштабы осей для каждого поля. Это также можно сделать в разделе 'Расширенные' панели конфигурации диаграммы, указав минимальные и максимальные значения для диапазона оси. Например, вышеуказанная диаграмма выглядит хорошо, но для демонстрации корреляции между нашими полями trip_total и fare_total диапазоны осей требуют некоторой корректировки:

Раздел 'Общие запросы' в списке запросов