+38/050/370-3627
+38/093/220-0872
+38/044/257-2444
Новини

DataGrip 2021.3: Aggregate view у редакторі, табличне представлення вузлів дерева БД

DataGrip 2021.3: сукупне подання в редакторі, табличне подання вузлів дерева бази даних

Що нового в останньому випуску DataGrip 2021.3

Редактор даних

Одиниць

Як у Excel та електронних таблицях Google: ми додали можливість відображення панелі з агрегованими даними для діапазону клітинок у редакторі даних. Це допоможе вам працювати з даними без необхідності писати додаткові запити. 

Виділіть діапазон клітинок, клацніть правою кнопкою миші та виберіть пункт Показати сукупний вигляд.

Коротко:

  • Агрегат і Значення знаходяться на одній панелі, кожна з яких має окрему вкладку. Панель можна перемістити в нижню частину редактора даних.
  • Прибрати непотрібні агрегати з виду можна в меню під шестернею.
  • Як і екстрактори, агрегати є скриптами. Ми додали дев'ять готових агрегатів, але ви можете створити свій власний і поділитися ними зі своїми колегами.
  • Агрегатні скрипти і екстрактори взаємозамінні. Екстрактор, який ви використовували для отримання одного значення, тепер можна скопіювати в папку Агрегатори і використовувати для агрегатів. Папка знаходиться під Scratches і консолями/Extensions/Database Tools і SQL, поруч з папкою Extractors.Агреговане значення відображається в рядку стану – ви можете вибрати, який з них вам потрібен (сума, мінімальне/максимальне значення, середнє, медіана і т.д.).  

Табличне подання вузлів дерева бази даних

Натисніть клавішу F4 на будь-якому вузлі діаграми, щоб побачити її вміст у вигляді таблиці. Наприклад, можна отримати вигляд всіх таблиць в схемі:

Або перегляньте стовпці у вигляді таблиці:

У поданні таблиці можна приховувати/показувати стовпці, експортувати дані в різних форматах і здійснювати пошук за входженнями тексту. Також є ярлики:

  • Ctrl/Cmd+B покаже DDL.
  • F4 покаже дані.
  • Alt/Opt+Shift+B виділяє об'єкт у дереві бази даних.

Незалежне розділення редактора даних

У DataGrip можна розділити редактор даних, але раніше фільтрація і сортування синхронізувалися, а це незручно.

Тепер, якщо ви розділите редактор і відкриєте одну і ту ж таблицю, два вікна редактора даних будуть незалежними. Ви можете фільтрувати та сортувати дані паралельно.

Настроювані шрифти

Вибрати шрифт для відображення даних можна в розділі База даних | Подання даних | Використовуйте власний шрифт.

Навігація по зовнішніх клавішах на основі декількох значень

Тепер ви можете вибрати кілька значень у редакторі даних і перейти до відповідних даних зовнішнього ключа.

Установлення сортування за замовчуванням

Можна вказати, який метод за замовчуванням використовується для сортування таблиць. Якщо ви виберете сортування на стороні клієнта, DataGrip не робитиме жодних додаткових запитів і сортуватиме лише поточну сторінку. Щоб вибрати сортування на сервері, перейдіть до бази даних | Подання даних | сортувальні | Сортування за допомогою ORDER BY.

Двійковий режим відображення даних

16-байтові дані тепер відображаються як UUID за замовчуванням. Ви можете налаштувати, як двійкові дані відображаються в контекстному меню стовпця.

[MongoDB] Автозаповнення для фільтра {} і сортування {}

При фільтрації даних в колекціях MongoDB тепер працює автозаповнення.

Зберігання бази даних в ВКС

Зіставлення джерел даних на основі DDL з реальними джерелами даних

У попередньому релізі можна було згенерувати джерело даних на основі DDL з реального джерела даних. А тепер можна зробити більше: співвіднести джерело даних DDL з реальним, порівняти і синхронізувати їх. 

Нагадаємо, джерело даних на основі DDL – це віртуальне джерело даних, схема якого базується на скриптах SQL. Коли файли DDL зберігаються в контролі версій, схема вашої бази даних зберігається в системі. 

До параметрів конфігурації даних додано нову вкладку DDL Mapping, на якій можна зіставити джерела даних DDL з реальними джерелами даних.

Вікно порівняння нової бази даних

Щоб порівняти та синхронізувати джерело даних на основі DDL з реальним, скористайтеся контекстним меню та виберіть Застосувати з... або Dump to... у підменю DDL Mapping .

Вікно в правій панелі показує, який результат ви отримаєте після синхронізації.

Що означають кольори: 

  • Зелений курсив: Об'єкт буде створено.
  • Сірий: об'єкт буде видалено.
  • Синій: Об'єкт буде змінено.

На вкладці Попередній перегляд сценарію відображається сценарій міграції, який можна запустити з цього вікна або відкрити в новій консолі. Після запуску сценарію ви перетворюєте базу даних праворуч (цільову) в ідентичну базу даних зліва (джерело).

Крім вкладки «Попередній перегляд сценарію», на нижній панелі є ще дві вкладки: «Властивості об'єкта Diff » і «DDL Diff». Вони показують різницю між конкретними версіями об'єкта в вихідній і цільовій базах даних.

Нагадування: якщо ви просто хочете порівняти дві схеми або об'єкти, виділіть їх і натисніть Ctrl/Cmd+D.

Важливо! Вікно порівняння/міграції все ще знаходиться в розробці. Кожна база даних має свої особливості, тому деякі об'єкти можуть проявлятися як різні, хоча насправді вони ідентичні. Якщо ви зіткнулися з такою помилкою, створіть квиток в нашому трекері.

Операції з файлами

Тепер можна виконувати будь-які операції з файлами над об'єктами в DDL-джерелах даних. Наприклад, у Провіднику баз даних можна видаляти, копіювати та зберігати файли, пов'язані з об'єктами схеми.

Автосинхронізація

Раніше автосинхронізація була включена за замовчуванням: джерела даних на основі DDL автоматично оновлювалися при зміні відповідних файлів. Тепер можна відключити цю опцію: зміни в вихідних файлах не будуть автоматично відображатися в DDL-джерелах даних. Потім, щоб застосувати їх, вам потрібно буде натиснути Оновити.

Схеми та бази даних за промовчанням

В області Схеми/бази даних за промовчанням можна вказати імена баз даних і схем, які відображатимуться для джерела даних DDL. Сценарії DDL зазвичай не містять імен, тому DataGrip автоматично створить одноразові імена для вказаних баз даних і схем.

Складені

Попередження про зайві місця

Якщо під час тестування з'єднання в рядках, відмінних від User і Password , будуть виявлені додаткові пробіли, DataGrip попередить вас.

[SQL Server] LocalDB як виділене джерело даних

До списку драйверів додано виділений драйвер SQL Server LocalDB. 

  • З'єднання LocalDB знайти простіше.
  • Досить один раз в налаштуваннях драйвера вказати шлях до виконуваного файлу, і він буде застосований до всіх джерел даних.

[Oracle, SQL Server] Аутентифікація Kerberos

Для Oracle і SQL Server працює аутентифікація Kerberos. Скористайтеся командою kinit, щоб отримати оригінальний квиток для принципала — DataGrip використовуватиме її, коли ви виберете опцію Kerberos.

[Oracle, IBM Db2] Увімкнення DBMS_OUTPUT

На вкладці «Параметри» тепер можна ввімкнути DBMS_OUTPUT для нових сеансів за замовчуванням.

Кнопка "Додаткові параметри" 

Якщо вам потрібно налаштувати з'єднання особливим чином, натисніть кнопку Додаткові параметри . Ви зможете додавати поля "Схема " та "Роль" до з'єднань "Сніжинки", а також налаштовувати SSH та SSL.

варіанти експертів

Деякі опції призначені для вирішення конкретних завдань: неправильно визначений тип бази даних, не працює або гальмує самоаналіз і т.д. Ми прибрали такі опції в список опцій Expert на вкладці Додатково, щоб користувачі випадково не активували їх.

У нього входять: 

  • Увімкніть самоаналіз JDBC. Якщо це якимось чином допомагає, це ненормально. Будь ласка, напишіть нам, перш ніж увімкнути цю опцію!
  • Oracle: Вимикає інкрементний самоаналіз, довгу вибірку значень та самоаналіз серверних об'єктів.
  • SQL Server: вимкніть інкрементний самоаналіз.
  • PostgreSQL (і подібні бази даних): відключення інкрементного самоаналізу, заборона використання xmin в запитах до pgdatabase.
  • SQLite: Зареєструйте функцію REGEXP.
  • MYSQL: Використання SHOW /CREATE у вихідному коді.
  • Clickhouse: автоматичне призначення сеансу .

Самоаналізу

[Оракул] Рівні самоаналізу

Користувачі Oracle стикаються з проблемою: якщо у них багато баз даних і схем, самоаналіз в DataGrip займає багато часу. 

Самоаналіз - це процес отримання метаданих бази даних: імен об'єктів, вихідного коду і т.д. DataGrip використовує ці дані для заповнення коду, навігації та пошуку.

Системні каталоги Oracle працюють досить повільно, але ми зрозуміли, що для повсякденної роботи (і навіть для ефективного заповнення коду) немає необхідності завантажувати всю інформацію про об'єкти. У багатьох випадках досить імен об'єктів бази даних. Тому ми розділили самоаналіз для баз даних Oracle на три рівні:

Рівень 1. Ми отримуємо метадані тільки про імена всіх підтримуваних об'єктів, крім імен стовпців індексу і приватних змінних пакета.

Рівень 2: Самоаналізуйте все, крім джерел.

Рівень 3: Самоаналіз усього.

Самоаналіз відбувається найбільш швидко на першому рівні і найповільніше на третьому.

Рівень самоаналізу змінюється в контекстному  меню:

Рівень самоаналізу може бути встановлений або для схеми, або для всієї бази даних. Схеми успадковують свій ярус з бази даних, але його можна встановити і самостійно.

Значок таблетки поруч зі значком джерела даних показує рівень самоаналізу. Чим більше наповнена таблетка, тим вище рівень. Синій колір значка означає, що рівень встановлений безпосередньо, а сірий означає, що він передається у спадок.

[SQL Server, Oracle] Зіставлення пов'язаних серверів і посилань бази даних на джерела даних

Тепер ви можете зіставити пов'язаний сервер з SQL Server (пов'язаний сервер) або посилання на базу даних в Oracle (db-links) з будь-яким джерелом даних.

Якщо зовнішні об'єкти пов'язано з джерелами даних, автозаповнення працюватиме в запитах, які використовують цей об'єкт.

[PostgreSQL] Можливість приховування системних схем і шаблонних баз даних

Раніше в списку схем не відображалися системні схеми (pg_toastpg_temp і т.д.) або шаблони баз даних. Ми додали можливість їх відображення: ці налаштування ви знайдете на вкладці "Схеми".

[Сніжинка] Підтримка потоку

Провідник баз даних тепер відображає потоки на додаток до таблиць і подань.

[ClickHouse] Розподілені таблиці

У Провіднику баз даних тепер є окрема папка для розподілених таблиць.

Консоль запитів

Перевірка булевих виразів

Один з наших користувачів написав у Твіттері про неприємну ситуацію: він виконав запит UPDATE у виробничій базі з умовою WHERE id – 3727 (замість =) і оновив мільйони записів!

Ми також були здивовані, що це можливо в MySQL, і відразу додали перевірку логічних виразів в де і ЩО мають речення.

Якщо вираз не зовсім схожий на логічний вираз, DataGrip виділяє його жовтим кольором і попереджає перед виконанням запиту. Він працює для ClickHouse, Couchbase, Db2, H2, Hive/Spark, MySQL/MariaDB, Redshift, SQLite та Vertica. В інших базах даних це буде позначено як помилка.

Створення табличних функцій із запиту

Команда Extract Routine тепер може створювати функції таблиці на основі SQL-запитів. Для цього виберіть запит, відкрийте меню «Рефактор» і виберіть пункт «Видобути рутину ». Підтримується для Db2, SQL Server, Postgres, Greenplum і Snowflake.

Приєднатися підказка щодо множинності

Є вбудована підказка, яка показує кількість вузлів в умові для з'єднання. Існує три основні варіанти: один до одного, один до багатьох і багато-до-багатьох (докладніше про це у вікі-статті). Ви можете вимкнути підказку в налаштуваннях | Редактор | Інкрустація натяків | Приєднуйтесь до кардинальності.

[MongoDB] Завершення імені бази даних

Автозаповнення працює для імен баз даних, коли ви використовуєте getSiblingDB, а коли ви використовуєте getCollection , він працює для імен набору. Крім того, автозаповнення працює, якщо використовуються імена полів із набору, визначеного функцією getCollection.

Вікно засобу «Служби»

Результати без часових позначок

Нас попросили видалити позначки часу на панелі "Вивід" : вони більше не відображаються за замовчуванням. Якщо потрібно повернутися як було, змініть настройку бази даних | Загальна | Відображення часової позначки для виводу запиту.

Нові настройки керування поведінкою в області служб

Якщо ви використовуєте область Служби у віконному режимі, за замовчуванням вона завжди прихована за IDE. Ми додали параметр, який надсилає фокус у вікно щоразу, коли ви запускаєте запит— він з'явиться, щойно запит буде виконано.

Також, якщо вам не подобається той факт, що після виконання довгого запиту на панелі «Послуги » активується відповідна вкладка , встановіть прапорець «Активувати послуги» тільки для вибраної консолі запиту.

Імпорт/Експорт

Новий інтерфейс для імпорту даних

Ми вдосконалили імпорт .csv файлів та копіювання наборів даних:

  • Можна вибрати наявну таблицю або створити нову.
  • У вікні можна змінити схему напрямку імпорту. Раніше було відкрито окреме вікно для вибору схеми, тепер її немає.
  • Виділення цільової схеми зберігається за замовчуванням. Якщо ви постійно імпортуєте в одну і ту ж схему, вам не потрібно щоразу повторно вказувати її.

Автоматичне визначення першого рядка як верхнього колонтитула

Коли ви відкриваєте або імпортуєте файл .csv, DataGrip автоматично визначає перший рядок як заголовок з іменами стовпців.

Автоматичне визначення типів стовпців у файлах .csv

DataGrip тепер визначає типи стовпців у .csv файлах. Тепер дані можна сортувати за числовими значеннями. Раніше їх визначали як текстові, і це заважало сортуванню.

Інший

Нова панель "Закладки

Раніше у нас було два схожих поняття – «Вибране » і «Закладки». Різниця між ними була не дуже зрозумілою, і ми вирішили залишити тільки Закладки. Ми змінили логіку для цієї функції і зробили окрему панель для закладок.

Тепер на новій панелі «Закладки » будуть всі об'єкти або файли, які ви позначаєте як важливі (F3 на macOS або F11 на Windows/Linux).

Інші новини