Перевод публикуется с сокращениями, автор оригинальной статьи Jimmy Guerrero.
IntelliJ IDEA – это интегрированная написанная на Java среда разработки (IDE). Создана она компанией JetBrains и доступна как лицензионное издание сообщества Apache 2, а также в проприетарном коммерческом формате. Поскольку YugabyteDB совместим с PostgreSQL, большинство сторонних инструментов и приложений будут работать “из коробки”.
В этом материале вы узнаете как:
- установить кластер YugabyteDB на движке Google Kubernetes;
- установить БД Northwind;
- настроить IntelliJ для работы с YugabyteDB;
- протестировать некоторые основные функции БД IntelliJ с помощью YugabyteDB.
Что такое распределенный SQL?
Распределенные базы данных SQL пользуются популярностью среди организаций, заинтересованных в переносе инфраструктуры данных в облако. Это часто затевается ради уменьшения TCO (Total Cost of Ownership) или избавления от ограничений горизонтального масштабирования СУБД: Oracle, PostgreSQL, MySQL и Microsoft SQL Server. Основные характеристики распределенного SQL:
- Наличие SQL API для запросов и моделирования данных, с поддержкой внешних ключей, частичных индексов, хранимых процедур и триггеров.
- Интеллектуальное распределенное выполнение запросов позволяет отдалить обработку передаваемых по сети данных, уменьшая время отклика на запросы.
- Поддержка автоматического и прозрачного распределенного хранения данных для обеспечения высокой производительности и доступности.
- Обеспечение строго согласованной репликации и распределенных ACID-транзакций.
Для получения углубленных знаний о распределенном SQL, ознакомьтесь с официальной документацией.
Что такое YugabyteDB?
YugabyteDB – это высокопроизводительная распределенная СУБД с открытым исходным кодом, построенная на масштабируемом и отказоустойчивом дизайне, вдохновленном Google Spanner. YugabyteDB совместима с PostgreSQL, а также умеет интегрироваться с проектами GraphQL и поддерживает хранимые процедуры, триггеры, а также UDFs.
Остались вопросы – обратитесь к официальному форуму.
Шаг 1: Установка YugabyteDB на кластер GKE с помощью Helm 3
Полный мануал можно найти по этой ссылке. Предположим, что у вас уже есть запущенный и работающий кластер GKE.
Первое, что нужно сделать – добавить репозиторий:
Получим обновления:
Создадим пространство имен yb-demo:
В ответ получим следующее:
Теперь установим YugabyteDB и укажем значения для некоторых ограничений:
Проверим статус:
Обратите внимание на внешний IP-адрес и порт для сервиса yb-tserver, который мы собираемся использовать для установления соединения между YugabyteDB и IntelliJ: 35.224.XX.XX:5433.
Шаг 2: Создайте Northwind БД
Следующим шагом является загрузка образца схемы и данных. Вы можете найти множество примеров совместимых с YugabyteDB баз данных в документации для разработчиков. Для этого туториала будем использовать образец БД Northwind, содержащий данные о продажах компании “Northwind Traders”. Это отличная учебная схема для ERP-системы малого бизнеса с клиентами, заказами, закупками, поставщиками, доставкой и прочим.
Подключитесь к yb-tserver-pod:
Чтобы загрузить файлы схемы и данные, выполните следующие команды:
Выйдите из оболочки pod и подключитесь к службе YSQL:
Создайте базу данных и подключитесь к ней:
Теперь можно создать объекты БД и заполнить их данными, используя файлы, которые мы загрузили в yb-tserver-pod:
Убедитесь, что таблицы созданы:
Проверьте, что данные присутствуют, выполнив простой SELECT:
По умолчанию настроенная YugabyteDB поставляется без пароля для пользователя yugabyte. Изменение выполняется так же, как и в PostgreSQL:
Шаг 3: Настройка IntelliJ для работы с YugabyteDB
Откройте окно БД (View > Tool Windows > Database):
Добавьте источник данных PostgreSQL. (New (+) > Data Source > PostgreSQL):
На вкладке General заполните данные для подключения к БД:
- Host: внешний IP-адрес, который GKE назначил YugabyteDB на предыдущем шаге.
- Port: YugabyteDB использует порт 5433.
- Database: образец БД northwind из предыдущего шага.
- User: по умолчанию – это yugabyte.
- Password: пароль из предыдущего шага.
- Driver: установите последнюю версию драйвера PostgreSQL.
Прежде чем нажать кнопку “ОК”, убедитесь, что присутствует соединение.
Шаг 4: Выполнение запроса
Теперь давайте протестируем интеграцию, выполнив следующий запрос в IntelliJ:
В окне вывода должны увидеть следующий результат:
Шаг 5: Генерируем объяснение
IntelliJ умеет создавать визуализацию ваших запросов. Например, можно получить визуализацию последнего запроса, выбрав Explain Plan > Show Visualization.
Примечание: не все функции управления базами данных IntelliJ поддерживаются с помощью YugabyteDB.
Заключение
Теперь у вас есть кластер YugabyteDB на три узла и GKE с образцом базы данных Northwind, которые и дальше можно использовать в тестах на IntelliJ. Дополнительные сведения о взаимодействии с БД с помощью IntelliJ ищите в документации, а для получения информации о сторонних интеграциях с YugabyteDB ознакомьтесь с документацией для разработчиков.
Комментарии