Что нового в DataGrip 2024.1

Встречайте DataGrip 2024.1! Первый крупный релиз 2024 года — и сразу множество улучшений. Давайте посмотрим, какие новые возможности и функции появились в этой версии.

AI Assistant: возможность подключения схем Только в DataGrip

Теперь, чтобы повысить точность SQL-запросов, генерируемых AI Assistant, можно добавить в чат схему для уточнения контекста. Пока можно прикрепить только названия таблиц и столбцов, а максимальное число таблиц составляет 50.

Чтобы воспользоваться этой функцией, нужно предоставить AI Assistant права на поиск объектов БД в проекте.

Это можно делать каждый раз при подключении новой схемы или просто установить флажок во всплывающем окне Attach Schema, чтобы AI Assistant запомнил ваш выбор. В этом случае будет автоматически включена опция Enable database context:

Важно: когда опция Enable database context включена, AI Assistant получает доступ ко всем именам объектов из всех источников данных.

Функции из контекстного меню, например Explain Code, теперь учитывают текущую схему при вызове из консоли БД.

Поскольку AI Assistant знаком с вашей схемой, он позволяет:

  • Создавать запросы по описанию на естественном языке:
  • Получать различную информацию о схемах:
  • Выполнять поиск по нестандартным критериям:

Это лишь несколько примеров. Вам открывается много новых возможностей!

Работа с данными

Локальный фильтр в редакторе данных

В DataGrip появилась долгожданная возможность фильтровать строки по значениям в столбцах.

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

Чтобы отключить все локальные фильтры для текущего редактора данных, отожмите кнопку Local Filter icon.

И не забывайте про локальный текстовый поиск (Ctrl/Cmd+F). Он существует уже давно и все еще может пригодиться, особенно если вы только примерно представляете, где находятся нужные данные.

Просмотр отдельной записи

Теперь в редакторе данных можно посмотреть всю информацию из одной записи в удобном виде. Открыть это представление можно с помощью сочетания клавиш Ctrl/Cmd+Shift+Enter или кнопки Record View Show Record View icon на панели инструментов.

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

Информацию на панели можно разбить на две колонки, если вам так удобнее:

Изменение порядка столбцов в CSV-файле

Начиная с версии 2024.1, в редакторе данных можно менять порядок столбцов в CSV-файле, при этом изменения сохраняются в самом файле.

Больше возможностей для UUID

В ответ на многочисленные пожелания, которые вы оставляли в нашем баг-трекере, мы упростили работу с UUID:

  • добавлено новое действие Generate UUID;
  • в новой версии можно редактировать любые столбцы, содержащие UUID, в том числе представленные binary(16), blob(16) и другими похожими типами;
  • значения в столбцах UUID теперь можно проверить во время редактирования. PostgreSQL

Упрощение работы с сессиями

За последние несколько лет мы получили много отзывов от пользователей, которые не могут понять, зачем нужны сессии. По их словам, из-за этой функциональности освоить DataGrip было гораздо сложнее. Вот несколько примеров:

Модель работы, требующая создания проекта и запуска отдельных сессий в консоли, очень усложнена. Чтобы открыть и выполнить простой SQL-файл, придется повозиться. Если я просто хочу открыть и выполнить один скрипт, нужно сначала создать проект, добавить в проект файл, потом открыть консоль, открыть сессию и еще прикрепить файл к сессии. Такая МОРОКА!
Если сравнивать с SQL Server Management Studio, которым мы пользовались раньше, интерфейс DataGrip гораздо сложнее. В SSMS есть серверы, запросы, результаты — и все. В DataGrip — сессии, консоли, вспомогательные файлы и еще куча всего. Новым пользователям непросто во всем этом разобраться.
Интерфейс работает не всегда простым и очевидным образом. Не очень понятно, зачем делать те или иные действия при выборе консоли для запуска скрипта или к чему приведет тот или иной выбор. Поведение по умолчанию таким быть не должно.

В DataGrip термин «сессия» обозначает контейнер для подключения. Иначе говоря, в рамках одной сессии можно установить подключение, прервать его, а затем восстановить. Для каждого подключения создается одна сессия.

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

Начиная с версии 2024.1, вам больше не нужно будет вручную выбирать сессию для запуска любых запросов. Сессии по-прежнему существуют, но они скрыты от пользователей и не требуют никаких действий. Давайте подробнее разберемся, как это скажется на основных сценариях работы в DataGrip.

Прикрепление и переключение источников данных

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

Переключение сессий

Действие Switch Session теперь появляется только в контекстном меню в окне Services. Оно позволяет переключать сессии только в пределах текущего источника данных.

Запуск функций

Для запуска функции выбирать сессию больше не нужно. Параметр Run from в окне Execute Routine позволяет выбрать консоль или файл, откуда будет выполняться функция.

Работа с кодом

Выравнивание кода в многострочных выражениях INSERT

Теперь многострочные выражения INSERT можно отформатировать так, чтобы значения были выровнены. Форматер анализирует значения в каждом столбце и оптимизирует их ширину.

Чтобы использовать эту функцию, включите опцию Align multi-row VALUES:

DataGrip справляется даже с ситуациями, когда значения сильно отличаются по длине. Форматер находит такие значения и делает для них исключения, перемещая оставшиеся поля на следующую строку.

Таким поведением управляют вот эти три настройки:

Автодополнение столбцов для условий GROUP BY

Новая версия DataGrip анализирует агрегатные функции, использованные в условиях SELECT, и включает списки соответствующих столбцов в предлагаемые условия GROUP BY.

Предупреждение для условий WHERE TRUE

Мы расширили сферу использования предупреждения Unsafe query. Теперь оно появляется, если вы выполняете запрос с условием WHERE TRUE или одним из его вариантов. Это особенно полезно, если вы любите использовать это условие для отладки, но периодически забываете его изменить.

Пользовательские символы для принятия предложений

Теперь вы можете выбрать, какие символы использовать для принятия предложений автодополнения, чтобы писать SQL-код еще быстрее. Для этого нужно включить две настройки. Эту:

И эту:

Эта функция особенно полезна при использовании операторов:

Липкие строки в редакторе

Для упрощения работы с большими файлами мы добавили в редактор липкие строки. Эта функция позволяет закрепить в верхней части окна редактора основные структурные элементы, например выражения CREATE, чтобы они были постоянно видны во время прокрутки кода. Благодаря этому вы все время будете видеть контекст, а для быстрой навигации достаточно просто кликнуть по закрепленной строке.

Эта функция включена по умолчанию. Выключить ее или выбрать максимальное число закрепленных строк можно в меню Settings/Preferences | Editor | General | Appearance.

Разное

Поддержка команд модуля Redis Stack Redis

Новая версия DataGrip поддерживает команды из четырех основных модулей Redis Stack: RedisJSON, RediSearch, RedisBloom и RedisTimeSeries. Для их поддержки нужна новая версия драйвера: v1.5. Модуль RedisGraph считается устаревшим и больше не поддерживается. Преимущества поддержки новых модулей:

  • можно отправлять команды из модулей и просматривать результаты;
  • команды из модулей корректно подсвечиваются;
  • ключи тех типов, которые предоставлены модулями, отображаются в проводнике баз данных.

Документы JSON

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

Другие типы данных

Ключи тех типов, которые предоставлены модулями RedisTimeSeries и RedisBloom, отображаются в папке data structures.

Поддержка внешних баз данных с доступом через каталоги данных Amazon Redshift

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