DBeaver для начинающих: работа с SQL и NoSQL на macOS

Практический курс для новичков по освоению DBeaver CE 25.3.4, охватывающий работу с Oracle, PostgreSQL и NoSQL базами данных. Вы научитесь настраивать подключения, писать SQL-запросы, управлять структурой данных и выполнять экспорт/импорт.

1. Установка DBeaver на macOS и введение в теорию баз данных

Установка DBeaver на macOS и введение в теорию баз данных

Добро пожаловать в курс по освоению DBeaver. Вы поставили перед собой отличную цель — научиться работать с данными, используя один из самых мощных и универсальных инструментов в индустрии. Поскольку ваша задача включает работу как с классическими реляционными базами (например, Oracle для JIRA), так и с современными NoSQL решениями, DBeaver станет для вас единым центром управления.

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

Зачем нам нужен DBeaver?

Прежде чем переходить к теории, давайте ответим на вопрос: что такое DBeaver? Это SQL-клиент и инструмент администрирования баз данных. Представьте, что база данных — это огромный склад с информацией. Сам по себе этот склад закрыт, и чтобы получить оттуда данные или положить новые, вам нужен специальный пульт управления. DBeaver и есть этот пульт.

Его главная особенность — универсальность. Он поддерживает:

* Реляционные базы данных: Oracle, PostgreSQL, MySQL, MariaDB, SQLite, SQL Server. * NoSQL базы данных: MongoDB, Cassandra, Redis (в Enterprise версии или через специальные драйверы). * Облачные решения: AWS Athena, Google BigQuery.

Для вас, как пользователя macOS, важно то, что DBeaver написан на Java и работает на платформе Eclipse, что обеспечивает отличную совместимость с вашей операционной системой, будь то Intel Mac или Apple Silicon (M1/M2/M3).

Введение в теорию баз данных

Чтобы эффективно нажимать кнопки в интерфейсе, нужно понимать, что происходит «под капотом». Разберем ключевые понятия.

Что такое База Данных (БД) и СУБД?

Часто эти термины путают. Давайте разграничим их:

  • База данных (БД) — это организованная коллекция данных. Это сам файл или набор файлов, где лежит информация.
  • СУБД (Система Управления Базами Данных) — это программное обеспечение, которое позволяет создавать, читать, обновлять и удалять данные в БД. Примеры СУБД: Oracle Database, PostgreSQL, MongoDB.
  • DBeaver — это не СУБД, это клиент для СУБД.

    Реляционные базы данных (SQL)

    Большую часть времени вы будете работать с реляционными базами данных (RDBMS). Слово «реляционный» происходит от английского relation (отношение). В основе таких баз лежит строгая структура.

    Данные хранятся в таблицах. Таблица состоит из:

    * Столбцов (Columns): Определяют тип данных (число, текст, дата). Например, в таблице сотрудников могут быть столбцы «Имя», «Фамилия», «Дата найма». * Строк (Rows): Содержат конкретные записи. Каждая строка — это один сотрудник.

    !Структура реляционной базы данных: таблицы и связи между ними

    Важнейшие понятия реляционной теории, которые вам понадобятся для работы с JIRA:

    * Primary Key (Первичный ключ): Уникальный идентификатор строки. Например, ID задачи в JIRA (JIRA-1234). Он не может повторяться. * Foreign Key (Внешний ключ): Ссылка на первичный ключ в другой таблице. Это то, что связывает данные. Например, в таблице «Задачи» есть поле «Исполнитель_ID», которое ссылается на таблицу «Пользователи».

    Для общения с такими базами используется язык SQL (Structured Query Language). Это стандарт, который понимают и Oracle, и PostgreSQL, и MySQL.

    NoSQL базы данных

    NoSQL (Not Only SQL) — это класс баз данных, которые отказываются от табличной структуры ради гибкости или скорости. Они бывают разных типов, но в рамках курса нас интересуют два, которые вы упомянули:

  • Документоориентированные (MongoDB): Данные хранятся не в строках, а в документах (обычно в формате JSON или BSON). Представьте это как текстовый файл с фигурной структурой, где у каждого документа может быть свой набор полей. Это удобно, когда структура данных часто меняется.
  • Колоночные (Cassandra): Данные хранятся в виде семейств колонок. Это позволяет очень быстро записывать и читать огромные объемы информации, распределенные по множеству серверов.
  • !Различие между табличным хранением (SQL) и документным хранением (NoSQL)

    Сравнение подходов

    | Характеристика | SQL (Реляционные) | NoSQL (Не реляционные) | | :--- | :--- | :--- | | Структура | Строгая (Таблицы) | Гибкая (Документы, Графы, Ключ-Значение) | | Связи | Сложные связи (JOIN) | Связи обычно денормализованы или отсутствуют | | Масштабируемость | Вертикальная (мощнее сервер) | Горизонтальная (больше серверов) | | Примеры | Oracle, PostgreSQL, MySQL | MongoDB, Cassandra, Redis |

    Установка DBeaver на macOS

    Теперь перейдем к практике. Установка на macOS проста, но имеет нюансы, связанные с архитектурой процессора.

    Шаг 1: Загрузка дистрибутива

  • Откройте браузер и перейдите на официальный сайт: DBeaver Community.
  • Вы увидите раздел Community Edition. Это бесплатная версия, функционала которой более чем достаточно для нашего курса.
  • Важный момент: Выберите правильную версию для вашего Mac:
  • * Если у вас Mac с процессором Intel (большинство моделей до 2020 года), скачивайте версию Mac OS X (x86_64). * Если у вас Mac с чипом Apple Silicon (M1, M2, M3 и их вариации Pro/Max), скачивайте версию Mac OS X (arm64).

    > Выбор правильной архитектуры критичен для производительности. Версия Intel будет работать на чипах M1 через эмулятор Rosetta 2, но нативная версия arm64 будет работать значительно быстрее и потреблять меньше энергии.

    Шаг 2: Процесс установки

  • После загрузки файла с расширением .dmg, откройте его двойным кликом.
  • Появится стандартное окно установки macOS.
  • Перетащите иконку DBeaver в папку Applications (Программы).
  • Шаг 3: Первый запуск и настройки безопасности

  • Откройте Launchpad или Spotlight (Cmd + Space) и найдите DBeaver.
  • При первом запуске macOS может выдать предупреждение: «DBeaver» — это приложение, загруженное из Интернета. Вы действительно хотите открыть его?
  • Нажмите Открыть (Open).
  • Иногда, если настройки безопасности строгие, система может заблокировать запуск. В этом случае:

  • Откройте Системные настройки -> Конфиденциальность и безопасность.
  • В разделе «Безопасность» вы увидите сообщение о блокировке DBeaver.
  • Нажмите Подтвердить вход или Открыть все равно.
  • Знакомство с интерфейсом DBeaver

    После запуска вы увидите главное окно программы. Интерфейс может показаться перегруженным, но мы выделим три главные зоны, которые нужны новичку.

    !Основные рабочие зоны интерфейса DBeaver

    1. Навигатор баз данных (Database Navigator)

    Обычно находится слева. Это «дерево» ваших подключений. Здесь будут отображаться все базы данных, к которым вы подключитесь (JIRA Oracle, локальный PostgreSQL и т.д.).

    * Здесь можно разворачивать списки таблиц, просматривать колонки, индексы и процедуры. * Именно отсюда начинается работа: создание нового соединения происходит через нажатие на иконку «розетки» с плюсом в верхнем левом углу этой панели.

    2. Редактор SQL (SQL Editor)

    Центральная и самая большая часть экрана. Это ваш рабочий стол.

    * Здесь вы будете писать запросы (код). * Чтобы открыть редактор, нужно нажать F3 или выбрать пункт в меню «SQL Редактор». * DBeaver поддерживает подсветку синтаксиса и автодополнение (IntelliSense), что очень помогает новичкам.

    3. Панель результатов (Result Set)

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

    * Здесь можно не только смотреть данные, но и фильтровать их, сортировать и даже редактировать (если настроены права доступа). * В этой же зоне есть вкладка Execution Log, где отображаются ошибки, если вы написали запрос неправильно.

    Понятие драйверов (JDBC)

    Один из самых частых вопросов новичков: «Почему DBeaver просит что-то скачать при первом подключении?»

    DBeaver — это Java-приложение. Чтобы Java могла общаться с конкретной базой данных (например, с Oracle), ей нужен переводчик. Этот переводчик называется JDBC Driver (Java Database Connectivity).

    У каждой базы данных свой драйвер: * Для Oracle — ojdbc. * Для PostgreSQL — postgresql-jdbc. * Для MySQL — mysql-connector-java.

    Хорошая новость: Вам не нужно искать их в интернете вручную. Когда вы в первый раз попытаетесь создать соединение с базой данных JIRA (Oracle), DBeaver сам определит нужный драйвер, предложит его скачать и установит в свои внутренние папки. Вам нужно будет просто нажать кнопку Download.

    Подготовка к следующему шагу

    В этой статье мы установили инструмент и разобрались с терминологией. Мы не создавали соединений, потому что для этого нам нужны доступы к реальной базе данных или локально установленная СУБД.

    В следующих статьях мы:

  • Настроим локальную базу данных для безопасных экспериментов (чтобы не сломать рабочую JIRA).
  • Создадим первое подключение.
  • Напишем первый SQL-запрос.
  • Итоги

    Резюмируем ключевые моменты урока:

  • DBeaver — это универсальный клиент для работы с любыми типами баз данных, идеально подходящий для macOS.
  • База данных — это хранилище, а СУБД — программа для управления им. DBeaver — это интерфейс для человека.
  • SQL (Реляционные БД) используют таблицы и строгие связи (Oracle, PostgreSQL). NoSQL используют гибкие модели, такие как документы (MongoDB).
  • При установке на Mac важно выбрать версию под архитектуру процессора (Intel или Apple Silicon).
  • Для подключения к любой базе данных DBeaver использует JDBC-драйверы, которые он умеет скачивать автоматически.
  • 2. Настройка подключений: Oracle (JIRA), PostgreSQL и драйверы JDBC

    Настройка подключений: Oracle (JIRA), PostgreSQL и драйверы JDBC

    Вы уже установили DBeaver и познакомились с теорией баз данных. Теперь перед нами стоит самая важная практическая задача — научить DBeaver «разговаривать» с вашими базами данных. Без правильно настроенного соединения даже самый мощный инструмент бесполезен.

    В этой статье мы детально разберем процесс подключения к двум типам реляционных баз данных: Oracle (на которой работает ваша JIRA) и PostgreSQL (одна из самых популярных открытых СУБД). Мы также углубимся в техническую часть и разберемся, что такое JDBC-драйверы, почему они необходимы для Java-приложений на macOS и как DBeaver управляет ими автоматически.

    Анатомия соединения с базой данных

    Прежде чем нажимать кнопки, давайте разберем, из чего состоит любое подключение. Независимо от того, подключаетесь ли вы к Oracle, MySQL или PostgreSQL, вам всегда потребуется набор из пяти ключевых параметров. Представьте, что вы звоните коллеге в другой офис: вам нужно знать код страны, код города, номер телефона и добавочный номер.

    В мире баз данных эти «координаты» выглядят так:

  • Хост (Host): Это адрес сервера, где физически (или виртуально) находится база данных. Это может быть IP-адрес (например, 192.168.1.50), доменное имя (например, db.jira-server.com) или localhost, если база установлена прямо на вашем Mac.
  • Порт (Port): Это «дверь», через которую сервер слушает запросы. У каждой СУБД есть порт по умолчанию, но системные администраторы могут его менять в целях безопасности.
  • База данных (Database/SID/Service Name): На одном сервере может крутиться десятки разных баз данных. Вам нужно указать конкретное имя той, к которой вы хотите получить доступ.
  • Пользователь (Username): Ваше имя для входа.
  • Пароль (Password): Ваш ключ доступа.
  • !Визуализация концепции хоста и портов для разных СУБД

    Магия JDBC: Как DBeaver понимает разные языки

    DBeaver — это приложение, написанное на языке программирования Java. Базы данных, такие как Oracle или PostgreSQL, написаны на C или C++. Сами по себе они говорят на разных «языках» на низком уровне. Чтобы DBeaver мог отправить SQL-запрос в Oracle и получить ответ, ему нужен переводчик.

    Этот переводчик называется JDBC-драйвер (Java Database Connectivity).

    Почему это важно знать?

    Раньше установка драйверов была головной болью: нужно было искать их на сайтах производителей, скачивать .jar файлы, прописывать пути в настройках. Если версия драйвера не совпадала с версией базы, ничего не работало.

    DBeaver решил эту проблему элегантно. В него встроен менеджер драйверов. Когда вы впервые пытаетесь подключиться к новой для себя СУБД (например, к Oracle), DBeaver:

  • Проверяет, есть ли у него нужный драйвер.
  • Если нет — обращается к глобальному репозиторию (Maven Central).
  • Предлагает вам скачать его одним нажатием кнопки.
  • Это критически важно для macOS, особенно на чипах Apple Silicon, так как DBeaver автоматически подбирает совместимые библиотеки.

    Практика: Подключение к Oracle (JIRA Data Center)

    JIRA Data Center — это мощная корпоративная система, и чаще всего она использует Oracle Database в качестве хранилища. Данные о задачах, комментариях, воркфлоу — все это лежит в таблицах Oracle.

    Шаг 1: Создание соединения

  • Запустите DBeaver.
  • В верхнем меню выберите База данных -> Новое соединение (или нажмите иконку розетки с плюсом в левом верхнем углу панели «Навигатор баз данных»).
  • В открывшемся окне вы увидите огромный список поддерживаемых баз. Начните вводить Oracle в строке поиска.
  • Выберите иконку Oracle и нажмите Далее.
  • Шаг 2: Настройка параметров Oracle

    Окно настроек Oracle имеет свои особенности. Здесь есть вкладка Basic, которой обычно достаточно.

    Вам нужно заполнить следующие поля (эти данные вам должен предоставить ваш системный администратор или DevOps):

    * Host: Адрес сервера JIRA БД (например, db-jira.company.internal). * Port: Стандартный порт Oracle — 1521. Если администраторы его не меняли, оставляйте как есть. * Database: Здесь есть нюанс. Oracle использует два типа идентификаторов базы: * SID (System ID): Уникальное имя экземпляра базы данных (старый формат, но часто используется). Обычно это короткое слово, например ORCL или JIRADB. * Service Name: Более современный способ адресации, особенно в кластерах. > Важно: В интерфейсе DBeaver переключатель между SID и Service Name находится рядом с полем Database. Уточните у администратора, что именно используется в вашей компании. Для JIRA Data Center часто используется Service Name.

    * Username: Ваше имя пользователя (например, jira_reader). * Password: Ваш пароль.

    Шаг 3: Установка драйвера

    Нажмите кнопку Тест соединения (Test Connection) в левом нижнем углу.

    Если вы делаете это впервые, DBeaver откроет окно «Download driver files». Вы увидите список файлов, необходимых для работы (обычно это ojdbc8.jar или новее).

  • Нажмите Download.
  • DBeaver скачает драйвер, установит его и попытается соединиться.
  • Если все прошло успешно, вы увидите всплывающее окно с сообщением «Connected» и временем отклика сервера (например, 75 ms).

    Шаг 4: Завершение

    Нажмите Готово (Finish). В панели «Навигатор баз данных» слева появится новый пункт с иконкой слона (или логотипом Oracle). Это и есть ваше соединение.

    !Интерфейс настройки подключения к Oracle

    Практика: Подключение к PostgreSQL

    PostgreSQL — это стандарт де-факто в мире современной разработки. Даже если ваша JIRA на Oracle, другие сервисы компании (или ваши личные проекты) скорее всего будут на Postgres.

    Процесс похож, но проще, так как у Postgres нет путаницы с SID и Service Name.

  • Нажмите Новое соединение.
  • Выберите PostgreSQL.
  • Заполните поля:
  • * Host: localhost (если база на вашем Mac) или IP сервера. * Port: Стандартный порт — 5432. * Database: Имя базы данных (по умолчанию часто postgres). * Username: Имя пользователя (по умолчанию postgres). * Password: Пароль.
  • Нажмите Тест соединения. Если драйвер не скачан, DBeaver предложит скачать его (файл postgresql.jar).
  • Нажмите Готово.
  • Безопасность и управление паролями на macOS

    При работе с корпоративными базами данных безопасность критична. Вы не хотите вводить сложный пароль каждый раз при подключении, но и хранить его в открытом виде опасно.

    DBeaver на macOS имеет отличное преимущество: он умеет интегрироваться с Apple Keychain (Связка ключей).

    В окне настройки соединения, справа от поля ввода пароля, есть кнопка Save password. По умолчанию она активна. Когда вы сохраняете пароль, DBeaver не просто записывает его в текстовый файл настроек (что было бы небезопасно), а может использовать защищенное хранилище.

    Типы соединений (Development, Test, Production)

    В настройках соединения (вкладка General) вы можете выбрать «Тип соединения»: * Development (Разработка): Зеленый цвет интерфейса. По умолчанию включен авто-коммит (изменения сохраняются сразу). * Test (Тестирование): Оранжевый цвет. * Production (Продакшн): Красный цвет.

    Я настоятельно рекомендую установить для базы JIRA тип Production.

    Что это дает?

  • Рамка редактора SQL станет красной, напоминая вам об осторожности.
  • DBeaver будет спрашивать подтверждение перед выполнением любых запросов, которые меняют данные (UPDATE, DELETE), защищая вас от случайного удаления задач в JIRA.
  • Решение частых проблем (Troubleshooting)

    Даже если вы все сделали по инструкции, соединение может не установиться. Вот самые частые ошибки:

    1. Network Adapter could not establish the connection

    Эта ошибка означает, что DBeaver не может достучаться до сервера. * Причина: Вы не подключены к корпоративному VPN. Базы данных JIRA почти никогда не торчат в открытый интернет. * Решение: Включите VPN и попробуйте снова. * Причина: Неверный хост или порт. * Решение: Проверьте каждую цифру IP-адреса.

    2. ORA-01017: invalid username/password; logon denied

    Ошибка специфична для Oracle. * Причина: Вы ошиблись в логине или пароле. * Решение: Проверьте раскладку клавиатуры и Caps Lock. Убедитесь, что пароль не истек.

    3. ORA-12505: TNS:listener does not currently know of SID given in connect descriptor

    * Причина: Вы указали SID, а сервер настроен на использование Service Name (или наоборот). * Решение: В настройках соединения переключитесь с SID на Service Name и попробуйте снова.

    Итоги

    Мы успешно преодолели первый технический барьер. Теперь у вас настроен «пульт управления» для доступа к данным.

    Краткое резюме:

  • Для любого подключения нужно знать 5 параметров: Хост, Порт, База данных, Логин, Пароль.
  • JDBC-драйвер — это переводчик между DBeaver и базой данных. DBeaver скачивает их автоматически при первом подключении.
  • Для Oracle (JIRA) критически важно различать SID и Service Name, а также использовать порт 1521.
  • Для PostgreSQL стандартный порт — 5432.
  • Использование типа соединения Production (красный цвет) защитит вас от случайных ошибок при работе с важными данными.
  • 3. Работа с данными: SQL-запросы, визуальная фильтрация и сортировка

    Работа с данными: SQL-запросы, визуальная фильтрация и сортировка

    Вы уже установили DBeaver и настроили подключение к базе данных JIRA (Oracle) или PostgreSQL. Теперь перед вами открыт доступ к огромному массиву информации. Однако просто иметь доступ недостаточно — нужно уметь находить конкретные данные, сортировать их и извлекать для анализа.

    Базы данных редко отдают информацию в том виде, в котором она нужна конечному пользователю. В этой статье мы разберем два способа работы с данными: визуальный (без написания кода) и профессиональный (с использованием языка SQL). Мы научимся находить конкретные задачи в JIRA, фильтровать пользователей и выгружать отчеты в Excel.

    Визуальная работа с таблицами

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

    Просмотр содержимого таблицы

    Чтобы увидеть данные, найдите в Навигаторе баз данных (панель слева) нужную таблицу. В структуре базы данных JIRA основные задачи хранятся в таблице jiraissue.

  • Раскройте схему (обычно это имя пользователя или схема public в PostgreSQL).
  • Найдите папку Таблицы (Tables).
  • Дважды кликните по таблице jiraissue (или любой другой).
  • В центральной части экрана откроется Редактор данных. Обратите внимание на вкладки внизу редактора: нас интересует вкладка Данные (Data). Здесь вы видите строки и столбцы, как в обычной электронной таблице.

    !Редактор данных: переключение между структурой таблицы и её содержимым

    Сортировка и фильтрация без кода

    Часто вам нужно просто найти последние созданные задачи или отсортировать список по приоритету. DBeaver позволяет делать это кликами мыши.

    Сортировка: Наведите курсор на заголовок любого столбца (например, CREATED — дата создания). Появится маленькая иконка стрелки. Клик по ней отсортирует данные по возрастанию, повторный клик — по убыванию. Также можно кликнуть правой кнопкой мыши по заголовку и выбрать Сортировка -> По убыванию.

    Быстрый фильтр: Над таблицей с данными есть поле ввода с иконкой воронки. Это поле глобального фильтра. Если вы напишете туда значение, например, Project-123, DBeaver попытается найти это значение во всех колонках текущего просмотра.

    Фильтрация по конкретной колонке: Над каждым столбцом есть небольшое поле ввода (если его нет, нажмите иконку воронки в верхней панели инструментов редактора).

    Пример для JIRA: * В поле над колонкой PROJECT введите ID проекта (числовой ID). * В поле над колонкой ASSIGNEE введите имя пользователя.

    После ввода значения нажмите Enter. DBeaver автоматически сформирует запрос к базе данных и покажет только нужные строки. Чтобы сбросить фильтр, нажмите иконку перечеркнутой воронки на панели инструментов.

    Основы SQL: Язык общения с базой данных

    Визуальный режим удобен для быстрых проверок, но его возможности ограничены. Настоящая мощь DBeaver раскрывается через SQL (Structured Query Language). Это стандартный язык, который понимают и Oracle, и PostgreSQL, и MySQL.

    Чтобы начать писать код, откройте SQL Редактор: нажмите F3 или выберите в меню SQL Редактор -> Новый SQL редактор.

    Анатомия SELECT-запроса

    Любой запрос на получение данных строится по одной схеме. Представьте, что вы делаете заказ в ресторане: «Принесите мне (SELECT) пиццу и колу (Columns) из меню (FROM Table)».

    Базовая структура выглядит так:

    * SELECT (Выбрать): Команда, которая говорит базе, что мы хотим читать данные. * FROM (Из): Указывает, из какой таблицы брать данные. * ; (Точка с запятой): Обозначает конец запроса. В DBeaver это не всегда обязательно, если запрос один, но является хорошим тоном.

    Пример 1: Выбрать всё Если вы хотите увидеть всю информацию о задачах, используйте символ * (звездочка), который означает «все столбцы».

    Нажмите Ctrl + Enter (или Cmd + Enter на macOS), чтобы выполнить запрос. Результат появится в нижней части экрана.

    Пример 2: Выбрать конкретные поля Таблицы в JIRA огромны (сотни колонок). Запрашивать * — плохая практика, так как это нагружает сеть и память. Лучше перечислить только то, что нужно:

    Фильтрация данных (WHERE)

    Чтобы получить не все задачи, а только конкретные, используется оператор WHERE (Где). Он ставится после FROM.

    Этот запрос вернет задачи, созданные пользователем ivan.ivanov.

    Основные операторы сравнения:

    * = : Равно. * <> или != : Не равно. * > : Больше (для чисел и дат). * < : Меньше. * >= : Больше или равно.

    Логические операторы: Вы можете комбинировать условия с помощью AND (И) и OR (ИЛИ).

    Пример: Найти задачи, созданные Ивановым ПОСЛЕ 1 января 2023 года.

    > Обратите внимание: работа с датами в Oracle требует специальной функции TO_DATE, в то время как в PostgreSQL часто достаточно просто написать дату в кавычках '2023-01-01'. DBeaver подсветит синтаксис, если вы ошибетесь.

    Поиск по частичному совпадению (LIKE)

    Часто вы не знаете точного названия задачи, но помните слово из заголовка. Для этого используется оператор LIKE и спецсимвол % (процент), который означает «любое количество любых символов».

    Пример: Найти все задачи, в названии которых есть слово "Error".

    * 'Error%' — начинается на Error. * '%Error' — заканчивается на Error. * '%Error%' — содержит Error в любом месте.

    !Как шаблон поиска находит совпадения в строках

    Сортировка результатов (ORDER BY)

    Чтобы упорядочить результаты, используйте ORDER BY. Этот блок ставится в самом конце запроса.

    * ASC (Ascending) — по возрастанию (от А до Я, от 0 до 9). Это значение по умолчанию. * DESC (Descending) — по убыванию (от Я до А, от новых к старым).

    Пример: Показать задачи Иванова, начиная с самых свежих.

    Ограничение количества строк

    Это критически важный момент при работе с JIRA Data Center или любыми большими промышленными базами. В таблице может быть миллион строк. Если вы напишете SELECT * FROM jiraissue, DBeaver попытается скачать их все, что может «повесить» программу или даже создать нагрузку на сервер.

    Всегда ограничивайте выборку, если вы просто знакомитесь с данными.

    Для PostgreSQL и MySQL: Используется ключевое слово LIMIT.

    Для Oracle (версии 12c и новее): Используется конструкция FETCH FIRST.

    > DBeaver имеет встроенную защиту: по умолчанию он загружает только первые 200 строк (это настраивается в параметрах). Но при написании SQL лучше явно указывать лимит.

    Экспорт данных

    Одна из самых частых задач — выгрузить результаты запроса в Excel для менеджера.

  • Выполните запрос (визуально или через SQL).
  • В таблице результатов (внизу) кликните правой кнопкой мыши в любом месте.
  • Выберите Экспорт данных (Export Data).
  • В открывшемся мастере выберите формат: CSV, HTML, JSON или XLSX (Excel).
  • Нажимайте Далее (Next) до конца мастера.
  • Особенно удобен формат XLSX, так как DBeaver корректно сохраняет типы данных (даты остаются датами, числа — числами).

    Итоги

    Мы освоили базовые методы извлечения информации из баз данных. Эти навыки покрывают 90% ежедневных задач аналитика или разработчика.

  • Визуальный режим позволяет быстро просматривать, фильтровать и сортировать таблицы без знания кода, используя интерфейс сетки данных.
  • SQL-запрос всегда состоит из блоков SELECT (что ищем) и FROM (где ищем).
  • Оператор WHERE фильтрует строки по условиям, а LIKE помогает искать текст по шаблону.
  • Для сортировки используется ORDER BY с параметрами ASC (возрастание) или DESC (убывание).
  • При работе с большими базами (Oracle, JIRA) всегда ограничивайте выборку (LIMIT или FETCH FIRST), чтобы не перегружать систему.
  • 4. Администрирование: создание таблиц, импорт и экспорт данных (CSV, SQL)

    Администрирование: создание таблиц, импорт и экспорт данных (CSV, SQL)

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

    В этой статье мы разберем полный цикл управления данными: от проектирования таблицы до наполнения её информацией из CSV-файлов и создания резервных копий в формате SQL.

    Создание таблиц: Архитектура данных

    Таблица — это фундамент любой реляционной базы данных. Прежде чем загрузить данные, нужно подготовить для них структуру. В DBeaver это можно сделать двумя способами: через графический интерфейс (GUI) и с помощью SQL-кода.

    Способ 1: Визуальный конструктор (GUI)

    Этот метод идеален для новичков, так как он не требует знания синтаксиса и защищает от опечаток.

  • В Навигаторе баз данных выберите нужное подключение (например, ваш локальный PostgreSQL).
  • Раскройте схему public (или другую, где у вас есть права на запись).
  • Нажмите правой кнопкой мыши на папку Таблицы (Tables) и выберите Создать Новый Таблица.
  • Откроется редактор создания таблицы. Здесь нас интересуют три ключевые вкладки:

    * Колонки (Columns): Здесь мы определяем, какие данные будут храниться. Нажмите правой кнопкой мыши в пустом поле -> Создать Новый Колонка. Вам нужно задать имя (например, task_id) и тип данных. * Ограничения (Constraints): Здесь задается Первичный ключ (Primary Key) — уникальный идентификатор строки.

    !Вкладка создания колонок с выбором типов данных и настройкой ограничений

    После того как вы настроили колонки, не забудьте нажать кнопку Сохранить (Persist) в нижней панели. DBeaver покажет вам SQL-код, который он собирается выполнить. Это отличный способ учиться: вы делаете действия мышкой, а программа показывает, как это выглядит на языке базы данных.

    Способ 2: SQL-запрос (DDL)

    Профессионалы часто используют SQL, так как это быстрее. Команды создания и изменения структуры называются DDL (Data Definition Language).

    Рассмотрим пример создания таблицы для хранения выгрузки задач из JIRA:

    Разберем этот код: * CREATE TABLE — команда создания. * id SERIAL PRIMARY KEY — в PostgreSQL тип SERIAL автоматически создает счетчик (1, 2, 3...), который будет уникальным идентификатором. * VARCHAR(20) — строка переменной длины (максимум 20 символов). Идеально для ключей задач типа PROJ-123. * INTEGER — целое число. * NOT NULL — ограничение, запрещающее оставлять поле пустым.

    Чтобы выполнить этот код, откройте SQL-редактор (F3), вставьте текст и нажмите Ctrl + Enter (или Cmd + Enter на macOS).

    Типы данных: Что нужно знать

    При создании таблиц критически важно правильно выбирать типы данных. Ошибка на этом этапе может привести к проблемам с сортировкой или потере информации.

    | Тип данных (SQL Standard) | Описание | Пример | | :--- | :--- | :--- | | INTEGER / INT | Целые числа без дробей. Используется для счетчиков, ID, количества. | 10, 42, -5 | | VARCHAR(n) | Текст переменной длины. n — максимальное количество символов. Самый популярный тип для текста. | Ошибка в логине, Иванов | | TEXT / CLOB | Текст неограниченной длины. Используется для описания задач, комментариев, логов. | Длинное описание бага... | | DATE | Только дата (год, месяц, день). | 2023-10-25 | | TIMESTAMP | Дата и точное время. Важно для логов событий. | 2023-10-25 14:30:05 | | BOOLEAN | Логическое значение (Истина/Ложь). | TRUE, FALSE |

    > Совет: Если вы работаете с Oracle (JIRA), помните, что там тип VARCHAR называется VARCHAR2, а для чисел часто используется универсальный тип NUMBER.

    Импорт данных: Загрузка из CSV

    Представьте сценарий: вы выгрузили список задач из JIRA в Excel, почистили его, добавили свои комментарии и теперь хотите загрузить обратно в базу данных для анализа с помощью SQL. Формат CSV (Comma-Separated Values) — стандарт для таких операций.

    Шаг 1: Подготовка файла

    Убедитесь, что ваш CSV-файл имеет заголовок (названия колонок) в первой строке. Разделителем может быть запятая или точка с запятой.

    Шаг 2: Мастер импорта

  • В Навигаторе баз данных нажмите правой кнопкой мыши на таблицу, в которую хотите загрузить данные (например, созданную ранее jira_analytics).
  • Выберите Импорт Данных.
  • Выберите формат CSV и нажмите Далее.
  • Выберите ваш файл на диске.
  • Шаг 3: Настройка маппинга (Mapping)

    Это самый ответственный этап. DBeaver попытается сопоставить колонки в файле с колонками в таблице по названиям.

    !Слева список колонок файла, справа — колонок таблицы базы данных

    * Если названия совпадают (issue_key в файле и issue_key в таблице), связь установится автоматически. * Если названия разные (например, Key в файле и issue_key в таблице), вам нужно кликнуть на поле Target Column и выбрать правильную колонку вручную. * Если каких-то данных в файле нет, можно оставить поле пустым (если в базе не стоит NOT NULL).

    Шаг 4: Загрузка

    Нажмите Далее и затем Start. DBeaver покажет прогресс-бар. Если возникнут ошибки (например, вы пытаетесь записать текст в числовое поле), процесс остановится, и вы увидите лог ошибок.

    Экспорт данных: CSV и SQL

    Экспорт нужен в двух случаях: для отчетов (Excel/CSV) и для резервного копирования или переноса (SQL).

    Экспорт в CSV (для Excel)

    Мы уже касались экспорта результатов запроса. Но можно экспортировать и целую таблицу:

  • Правый клик по таблице -> Экспорт Данных.
  • Выберите CSV.
  • В настройках формата важно проверить Delimiter (Разделитель). Для русскоязычного Excel лучше использовать точку с запятой (;), так как запятая часто используется как десятичный разделитель в числах.
  • Кодировка: для Windows-систем часто требуется windows-1251, но стандартом является UTF-8.
  • Экспорт в SQL (INSERT)

    Если вы хотите перенести данные из рабочей базы JIRA (Oracle) в свою локальную базу (PostgreSQL), экспорт в CSV может быть неудобен из-за потери типов данных. Лучше использовать SQL-экспорт.

    В этом режиме DBeaver генерирует текстовый файл, состоящий из множества команд INSERT INTO ....

  • В мастере экспорта выберите формат SQL.
  • В настройках выберите:
  • * Omit schema name: полезно, если в целевой базе схема называется по-другому. * Insert BOM: отключите, если не уверены (это спецсимвол в начале файла).
  • На выходе вы получите файл .sql. Чтобы загрузить эти данные в другую базу, достаточно открыть этот файл в DBeaver как скрипт и выполнить его.
  • Изменение структуры таблиц (ALTER)

    Требования к данным меняются. Вчера вам не нужно было поле "Приоритет", а сегодня оно необходимо. Для изменения существующих таблиц используется команда ALTER.

    Через GUI:

  • Дважды кликните по таблице.
  • Перейдите во вкладку Свойства -> Колонки.
  • Добавьте новую колонку или измените тип существующей.
  • Нажмите Сохранить.
  • Через SQL: Допустим, мы забыли добавить колонку для исполнителя задачи.

    Если нужно удалить колонку:

    > Важно: Будьте крайне осторожны с удалением колонок (DROP COLUMN) и изменением типов данных в заполненных таблицах. Это может привести к безвозвратной потере информации. DBeaver обычно предупреждает о таких рисках.

    Работа с большими объемами данных

    При импорте или экспорте миллионов строк DBeaver может работать медленно, так как он пропускает все данные через себя (через оперативную память вашего Mac).

    Для ускорения процесса:

  • В настройках импорта/экспорта увеличивайте размер пачки (Batch size). По умолчанию это часто 10000 строк. Увеличение этого значения снижает количество обращений к диску.
  • При экспорте из Oracle используйте нативные инструменты (Data Pump), если у вас есть к ним доступ, но для задач аналитика встроенных средств DBeaver обычно достаточно.
  • Итоги

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

  • Создание таблиц возможно как визуально (для новичков), так и через SQL (для скорости). Главное — правильно определить типы данных (INTEGER, VARCHAR, DATE).
  • Импорт из CSV позволяет загружать внешние данные в базу. Критический этап — маппинг (сопоставление) колонок файла и таблицы.
  • Экспорт в SQL создает скрипт с командами INSERT, что идеально для переноса данных между разными базами (например, из Oracle в PostgreSQL).
  • ALTER TABLE позволяет менять структуру уже созданной таблицы, но требует осторожности, чтобы не потерять существующие данные.
  • Для работы с русским языком в CSV всегда следите за кодировкой (UTF-8 или windows-1251) и разделителем.
  • 5. Расширенные возможности: подключение NoSQL (MongoDB, Cassandra) и диаграммы

    Расширенные возможности: подключение NoSQL (MongoDB, Cassandra) и диаграммы

    Мы прошли большой путь: от установки DBeaver на macOS до написания сложных SQL-запросов и администрирования таблиц. Вы уже умеете работать с реляционными базами данных, такими как Oracle (для JIRA) и PostgreSQL. Однако современный мир данных не ограничивается строгими таблицами.

    В этой статье мы шагаем на территорию NoSQL — баз данных, которые хранят информацию в виде документов или колонок, а не привычных таблиц. Мы научимся подключаться к MongoDB и Cassandra через интерфейс DBeaver. Кроме того, мы разберем мощнейший инструмент для аналитика и архитектора — ER-диаграммы, которые помогут вам визуализировать связи в запутанной базе данных JIRA.

    Мир NoSQL в интерфейсе DBeaver

    Главная сила DBeaver заключается в его унификации. Когда вы открываете таблицу PostgreSQL, вы видите сетку данных. Когда вы открываете коллекцию MongoDB, DBeaver старается показать вам ту же самую сетку, делая переход между технологиями бесшовным.

    Но под капотом происходят совершенно разные процессы. Давайте разберем подключение к двум самым популярным представителям NoSQL.

    Подключение к MongoDB

    MongoDB — это документоориентированная СУБД. Данные здесь хранятся в формате BSON (бинарный JSON). Вместо строк у нас «документы», вместо таблиц — «коллекции».

    !Структура хранения данных в MongoDB: коллекции и документы

    #### Шаг 1: Настройка драйвера

    Процесс начинается так же, как и с Oracle:

  • Нажмите Новое соединение (иконка розетки с плюсом).
  • Перейдите на вкладку NoSQL.
  • Выберите MongoDB.
  • При первом подключении DBeaver предложит скачать драйвер. Это критически важно, так как нативная поддержка MongoDB в Java требует специфических библиотек. Нажмите Download, и программа сама установит нужную версию, совместимую с вашей macOS (Intel или Apple Silicon).

    #### Шаг 2: Параметры подключения

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

    * Host: Обычно localhost или IP-адрес сервера. * Port: Стандартный порт — 27017. * Database: Имя базы данных, к которой вы хотите подключиться (например, analytics_logs). Authentication: Если база защищена, перейдите на вкладку Authentication* и введите логин/пароль.

    #### Шаг 3: Работа с данными (JSON vs Grid)

    Самое интересное начинается после подключения. Раскройте список коллекций и кликните по любой из них.

    DBeaver предлагает три режима просмотра (переключаются кнопками справа от редактора данных):

  • Grid (Сетка): DBeaver пытается превратить JSON в таблицу. Если у вас есть вложенные объекты (например, адрес внутри профиля пользователя), они будут отображаться как [Document] или JSON-строка.
  • JSON: Вы видите исходный код документа. Это самый честный вид данных в Mongo. Здесь удобно копировать объекты целиком.
  • Text: Простое текстовое представление.
  • > Совет: Вы можете редактировать JSON прямо в DBeaver. Дважды кликните по полю в режиме JSON, измените значение и нажмите Save (Ctrl+S / Cmd+S). DBeaver сам сформирует команду обновления.

    Подключение к Cassandra

    Apache Cassandra — это колоночная база данных, созданная для огромных нагрузок и распределенного хранения. Она используется там, где SQL уже не справляется по скорости записи (например, история сообщений в мессенджерах или данные с датчиков IoT).

    Структура Cassandra обманчива. Она использует язык CQL (Cassandra Query Language), который внешне очень похож на SQL, но работает по другим законам.

    #### Особенности настройки

  • Выберите Cassandra в мастере подключений.
  • Port: Стандартный порт — 9042.
  • Keyspace: Аналог понятия «База данных» или «Схема» в SQL. Это пространство имен, где живут ваши таблицы (в Cassandra они называются Column Families, но DBeaver отображает их как таблицы).
  • #### Нюансы работы с CQL в DBeaver

    Когда вы откроете SQL-редактор для Cassandra, вы сможете писать запросы, похожие на привычные:

    Однако, будьте осторожны. В Cassandra нельзя просто так фильтровать по любой колонке. Вы можете использовать в WHERE только те поля, которые входят в Partition Key или имеют вторичный индекс. Если вы попытаетесь отфильтровать по обычному полю, DBeaver вернет ошибку сервера: InvalidRequest: ALLOW FILTERING.

    Визуализация данных: ER-диаграммы

    Вернемся к вашей основной задаче — работе с JIRA на Oracle. Базы данных корпоративного уровня содержат сотни, а иногда и тысячи таблиц. Понять, как таблица jiraissue связана с таблицей project или issuestatus, глядя только на списки колонок, невероятно сложно.

    Здесь на помощь приходят ER-диаграммы (Entity-Relationship Diagrams — диаграммы «Сущность-Связь»).

    Зачем это нужно?

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

    * Сущности: Таблицы (прямоугольники). * Атрибуты: Колонки внутри таблиц. * Связи: Линии, соединяющие таблицы (кто на кого ссылается).

    !Пример ER-диаграммы, показывающей связи между таблицами

    Генерация диаграммы в DBeaver

    Вам не нужно рисовать эти схемы вручную. DBeaver строит их автоматически, анализируя структуру базы данных.

    #### Способ 1: Диаграмма для одной таблицы

  • Откройте таблицу jiraissue двойным кликом.
  • В нижней части редактора переключитесь на вкладку ER Diagram (она находится рядом с вкладкой Properties и Data).
  • Вы увидите центральную таблицу jiraissue и «паутину» из всех таблиц, которые на неё ссылаются или на которые ссылается она. Для JIRA это может быть пугающее зрелище из-за обилия связей.

    #### Способ 2: Диаграмма для схемы (Глобальный взгляд)

    Если вы хотите увидеть общую картину:

  • В Навигаторе баз данных кликните дважды по Схеме (например, public или имени пользователя JIRA).
  • Перейдите на вкладку ER Diagram.
  • Внимание: Если таблиц слишком много, DBeaver может подвиснуть на пару секунд, пытаясь отрисовать всё сразу.

    Настройка и чтение диаграммы

    Диаграмма в DBeaver интерактивна. Вы можете:

    * Перетаскивать блоки: Расставьте таблицы так, как удобно вам для понимания логики. * Смотреть типы связей: Линии имеют специальные окончания (нотация «Воронья лапка» или Crow's Foot). * Черточка | означает «один». * Разветвление (лапка) означает «много». * Кружок o означает «ноль» (опциональная связь).

    Например, связь между Project и Issue обычно выглядит как «Один ко многим»: у одного проекта может быть много задач, но задача принадлежит только одному проекту.

    Экспорт диаграммы

    Вы разобрались в структуре и хотите показать это коллегам или сохранить для документации?

  • Настройте масштаб и расположение таблиц.
  • Нажмите иконку Сохранить как изображение (Save as image) в левом нижнем углу диаграммы (или правой кнопкой мыши по фону -> Save as ...).
  • Выберите формат (PNG, SVG) и сохраните файл.
  • Создание кастомных диаграмм

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

  • В меню выберите Файл -> Создать -> DBeaver -> ER Diagram.
  • Дайте ей имя (например, JIRA_Core_Logic).
  • Откроется пустое поле.
  • Теперь просто перетащите (Drag & Drop) нужные таблицы из Навигатора баз данных на это поле.
  • DBeaver автоматически нарисует связи между перетащенными таблицами, если они существуют в базе данных (Foreign Keys).

    > Это идеальный способ документировать сложные части системы JIRA для себя и команды.

    Итоги

    В этой статье мы значительно расширили арсенал инструментов:

  • NoSQL не страшен: DBeaver позволяет работать с MongoDB и Cassandra в привычном интерфейсе, скрывая сложность драйверов и специфичных протоколов.
  • Гибкость просмотра: Для MongoDB доступен просмотр как в виде таблицы (Grid), так и в нативном JSON-формате, что удобно для копирования объектов.
  • Специфика Cassandra: Мы узнали, что CQL похож на SQL, но требует строгого соблюдения правил фильтрации по ключам.
  • Визуализация: ER-диаграммы — ключ к пониманию чужих баз данных (особенно таких сложных, как JIRA). Вы можете генерировать их автоматически или создавать свои собственные наборы таблиц.
  • Экспорт знаний: Диаграммы можно сохранять в графические файлы для отчетов и презентаций.