Истории успеха наших клиентов — лучшие проекты
Вход/ Регистрация

Микросервисы: подключение к базам данных из приложений на Python, Go и JavaScript

1096
27 минут чтения
Средний рейтинг статьи: 3.7

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

Предварительные требования

В текущей статье мы рассмотрим примеры пяти баз данных — PostgreSQL, Redis, MongoDB, MySQL, ClickHouse, используя такие языки программирования как Python, Go и JavaScript.

  • Для подключения к базам данных нам понадобится один сервер или одна виртуальная машина с любым установленным дистрибутивом Linux. В данной статье будет использоваться дистрибутив Ubuntu 22.04. На сервер заранее нужно установить необходимую СУБД. 

    Инструкции по установке СУБД можно найти в наших туториалах: 

    PostgreSQL, Redis, MongoDB, MySQL, ClickHouse.

    Также для развертывания СУБД можно воспользоваться сервисом Облачные базы данных (База данных как сервис (DBaaS)). В следующем разделе мы рассмотрим использование данного сервиса.

  • Также при необходимости для PostgreSQL можно использовать клиентскую утилиту для работу с оболочкой psql. Для установки в ОС Ubuntu достаточно выполнить команды:

        

Развертывание облачной базы данных

Чтобы быстро развернуть необходимую СУБД можно воспользоваться сервисом облачного провайдера Timeweb Cloud под названием «Облачные базы данных» в котором достаточно выбрать необходимую СУБД, характеристики сервера и заполнить информацию о базе – название БД и пароль пользователя. Рассмотрим использование сервиса на примере создания базы PostgreSQL.

  1. Проходим аутентификацию в личном кабинете по ссылке.

  2. На панели слева выбираем раздел «Базы данных»:
    Image11

  3. Нажимаем на кнопку «Создать»:
    Image23

  4. В разделе «Тип база данных» выбираем PostgreSQL:
    Image25

  5. Выбираем регион в котором будет находиться сервер баз данных. Чем меньше пинг от дата-центра к вашей локации тем меньше будет задержка до сервера с СУБД:
    Image38

  6. В разделе «Конфигурация» выбираем необходимую конфигурацию для сервера. В качестве теста можно выбрать минимальную конфигурацию:
    Image12

  7. Если сервер с СУБД должен быть доступен из внешней сети, то в  разделе «Сеть» можно арендовать публичный IPV4-адрес. В нашем случаем нам понадобится IPv4-адрес:
    Image10

  8. При необходимости можно задать свое имя для базы данных и свой пароль пользователя:
    Image27

  9. Для заказа сервиса СУБД необходимо нажать на кнопку «Заказать»:
    Image6

DBaaS

Запустите свою базу данных в облаке и
оптимизируйте процессы DevOps и CI/CD.
  1. После того как база данных будет создана, переходим в раздел «Подключение» где будет сгенерирована строка для подключения к базе данных. Строка подключения имеет следующий вид:

    

Image5

Эти данные потребуются для подключения к соответствующим инстансам баз данных. Все остальные СУБД создаются по аналогии с примером для создания PostgreSQL.

Подключение к базам данных в Python

Для работы с MySQL существует официальный драйвер MySQL Connector.

1) Для начала установим драйвер при помощи менеджера пакетов pip:

    

Image17

2) Далее инициализируем новое соединение к серверу MySQL. Импортируем библиотеку mysql.connector и отдельно класс Error который в случае проблем с подключением будет выводить конкретную ошибку.

Создаем функцию с именем create_connection в которую передадим значения адреса БД (host), имени пользователя (user) и пароля пользователя (password). Чтобы произвести соединение создадим класс create_connection в который передадим имена переменных в которых хранятся данные для подключения к баз данных:

    

3) Запускаем скрипт. При успешном соединение с MySQL будет выведено сообщение «Successfully connected to MySQL Server!».

При наличие ошибок будет выведен код и описание ошибки.

4) Создадим новую таблицу. Подключаемся к базе данных используя класс connection.database в котором указываем имя базы данных. БД должна уже быть предварительно создана.

Для создания таблицы инициализируем переменную create_table_query в которой указываем SQL запрос CREATE TABLE. Для вставки данных инициализируем другую переменную insert_data_query в которой будет указан SQL запрос INSERT INTO. Для выполнения каждого запроса используется класс execute_query который принимает строку с соединением к БД и имя переменной с SQL запросом: 

    

5) Запускаем скрипт:

Image19

Как можно увидеть данные были успешно созданы.

Подключение к базам данных в Go

Язык программирования Go является одним из самых молодых языков — он был разработан в 2009 году компанией Google. Go широко используется при разработке микросервисной архитектуры, а также для написания сетевых утилит. В частности, на Go написаны такие сервисы, как Docker и Kubernetes. 

Go поддерживает интеграцию со всеми популярными СУБД, включая PostgreSQL, Redis, MongoDB, MySQL, ClickHouse и многие другие.

Для работы с СУБД MySQL в Go используется драйвер go-sql-driver/mysql.

1) Создаем новый каталог, в котором будут храниться файлы проекта, и переходим в него: 

    

2) Создаем файл go.mod, в котором будут храниться зависимости:

    

3) Скачиваем драйвер mysql при помощи команды go get:

    

4) Создаем новый файл с именем main.go Данные для подключения к СУБД указаны в переменной dsn:

    

Подключение к базам данных в JavaScript

Язык JavaScript активно используется для создания динамических веб-сайтов. Стоит отметить что все подключения к сторонним сервисам включая СУБД осуществляются при помощи платформы Node.js. Убедитесь что на вашем устройстве установлен Node.js и пакетный менеджер npm.

Для работы с MySQL используется драйвер mysql2

1) Создаем директорию в которой будем хранить файлы проекта:

    

2) Инициализируем проект:

    

3) Устанавливаем библиотеку mysql2:

    

4) Для подключения к СУБД MySQL используем следующий код:

    

Разверните базу данных в облаке
Timeweb Cloud

Cloud DB 1/1/8

447 ₽/мес

Процессор
1 x 3.3 ГГц
Память
1 ГБ
Диск NVMe
8 ГБ
Приватный IP
Есть
Резервные копии
Есть
Cloud DB 1/2/20

711 ₽/мес

Процессор
1 x 3.3 ГГц
Память
2 ГБ
Диск NVMe
20 ГБ
Приватный IP
Есть
Резервные копии
Есть
Таблица тарифов
Сравнение тарифов
Cloud DB 1/1/8
496
Cloud DB 1/2/20
790
Cloud DB 2/2/30
1160
Cloud DB 2/4/40
1580
Cloud DB 4/8/80
3160
Cloud DB 4/12/120
4240
Cloud DB 6/12/180
5460
Cloud DB 8/16/220
7040
Процессор1 x 3.3 ГГц1 x 3.3 ГГц2 x 3.3 ГГц2 x 3.3 ГГц4 x 3.3 ГГц4 x 3.3 ГГц6 x 3.3 ГГц8 x 3.3 ГГц
Память1 ГБ2 ГБ2 ГБ4 ГБ8 ГБ12 ГБ12 ГБ16 ГБ
Диск NVMe8 ГБ20 ГБ30 ГБ40 ГБ80 ГБ120 ГБ180 ГБ220 ГБ
Приватный IPЕстьЕстьЕстьЕстьЕстьЕстьЕстьЕсть
Резервные копииЕстьЕстьЕстьЕстьЕстьЕстьЕстьЕсть

Заключение

В сегодняшней статье мы подробно ознакомились с подключением к базам данных PostgreSQL, Redis, MongoDB, MySQL и ClickHouse в различных языках программирования — Python, Go и JavaScript, с помощью которых можно создавать как веб-приложения, так и микросервисы, использующие базы данных в своей работе.  

1096
27 минут чтения
Средний рейтинг статьи: 3.7
Хотите внести свой вклад?
Участвуйте в нашей контент-программе за
вознаграждение или запросите нужную вам инструкцию
img-server