Чат поддержки

Практикум
Привет! Это поддержка Практикума 👋 Если что-то не получается — постараемся помочь. Пишите в чат или выберите другой способ связи

пт, 2 декабряв 17:21

Мы уже начали заниматься вашим вопросом, ответим в ближайшее время

Практикум

Здравствуйте!

Поддержка не сможет помочь с вопросами, связанными с теорией или задачам из курса «Системный аналитик» — в этой ситуации рекомендуем вам обратиться к вашему преподавателю в чате в Slack.

Если же у вас возникнут иные вопросы — обязательно пишите, будем рады помочь :)

17:24

Выбрать способ связи

Перейти в профиль Практикума

Поменять когорту

Выйти из профиля

Добавить аккаунт

Дополнительные материалы

спринт Дополнительные материалы

Как учиться на курсе

4/4

К проекту 2

0/1

К спринту "Реализация системы"

2/2

К спринту "Поддержка, обслуживание и оценка результатов"

1/1

SQL и системы визуализации

11/11

Введение

Несколько вопросов перед началом обучения

Техническое задание

Интерфейс программы DataLens

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

Строим круговую диаграмму

Строим линейный график

Строим прочие диаграммы

Собираем всё вместе

Заключение

Обратная связь

SQL и Python

7/10

Введение

Установка Jupyter Notebook

База данных

Библиотека SQLAlchemy

Пример исследования. Гистограмма

Пример исследования. Самые долгие интернет-сессии

Пример исследования. Выручка по месяцам

Мини-проект для самопроверки

Заключение

Обратная связь

Мягкие навыки аналитика. Коммуникация и активное слушание

4/4

Мягкие навыки аналитика. Постановка задач

5/5

Мягкие навыки аналитика. Планирование

4/4

Пригласить друзей

Библиотека SQLAlchemy

SQLAlchemy — это инструмент, который связывает Python и SQL.

С его помощью вы сможете подключиться к базе данных и писать запросы в Jupyter Notebook.

Для этого вам нужно установить специальную библиотеку — набор расширений. По умолчанию в комплекте с базовой сборкой она не идёт.

Для установки библиотеки создайте новый проект в Jupyter Notebook и запустите следующий код:

Скопировать кодPYTHON

!pip install psycopg2

В зависимости от операционной системы библиотека может не установиться таким образом. В этом случае можно воспользоваться альтернативным вариантом.

Скопировать кодPYTHON

!pip install psycopg2-binary

Такое действие нужно сделать один раз. После этого ячейку необходимо удалить.

Теперь можно подключаться к базе данных.

Скопировать кодPYTHON

# Импортируем библиотеки
import pandas as pd
from sqlalchemy import create_engine

# Задаём параметры подключения к БД,
# их можно узнать у администратора БД.
db_config = {
'user': 'praktikum_student', # имя пользователя
'pwd': 'Sdf4$2;d-d30pp', # пароль, который был задан при создании подключения
'host': 'rc1b-wcoijxj3yxfsf3fs.mdb.yandexcloud.net', # адрес сервера
'port': 6432, # порт подключения
'db': 'data-analyst-telecom', # название базы данных
}

# Формируем строку соединения с БД
connection_string = 'postgresql://{}:{}@{}:{}/{}'.format(
db_config['user'],
db_config['pwd'],
db_config['host'],
db_config['port'],
db_config['db']
)
# Подключаемся к БД
engine = create_engine(connection_string)

# Формируем SQL-запрос
query = ''' SELECT *
FROM calls
'''

# Выполняем запрос и сохраняем результат
# выполнения в DataFrame.
# SQLAlchemy автоматически установит названия колонок
# такими же, как у таблицы в БД. Останется только
# указать индексную колонку с помощью index_col.
data_raw = pd.io.sql.read_sql(query, con=engine)

print(data_raw.head(5))

Разберём код подробно. Чтобы подключиться к базе данных, нужно указать:

СУБД.

Расположение базы: IP-адрес сервера, где разместили БД, и порт, к которому нужно подключиться.

Имя пользователя и пароль для подключения.

Название интересующей БД. На одном сервере могут хранить несколько баз.

Все эти параметры принято группировать в виде строки подключения (англ. connection string). В коде за её формирование отвечает эта монструозная конструкция:

Скопировать кодPYTHON

connection_string = 'postgresql://{}:{}@{}:{}/{}'.format(
db_config['user'],
db_config['pwd'],
db_config['host'],
db_config['port'],
db_config['db'])

Результат её работы — строка:

Скопировать кодPYTHON

connection_string = 'postgresql://praktikum_student:Sdf4$2;[email-masked]:6432/data-analyst-telecom'

Переведём команду на человеческий: «Подсоединись к СУБД PostgreSQL на сервере rc1b-wcoijxj3yxfsf3fs.mdb.yandexcloud.net через порт 6432. Зайди через имя пользователя praktikum_student и пароль Sdf4$2;d-d30pp в базу данных data-analyst-telecom». Конструкцию 'postgresql://{}:{}@{}:{}/{}'.format(...) указывают, чтобы хранить параметры подключения к БД в словаре db_config. Это полезно, если вы захотите хранить содержимое словаря в отдельном файле настроек, чтобы не писать их вручную в каждом новом скрипте автоматизации.

Задайте соединение с БД функцией библиотеки sqlalchemy — create_engine() (англ. «создать движок»). Передайте ей строку подключения:

Скопировать кодPYTHON

engine = create_engine(connection_string)

Сформируйте текст SQL-запроса. Укажите кавычки ''', чтобы задавать SQL-запрос в несколько хорошо читаемых строк:

Скопировать кодPYTHON

query = ''' SELECT *
FROM calls
'''

В конце кода вызовите команду выполнения запроса:

Скопировать кодPYTHON

data_raw = pd.io.sql.read_sql(query, con=engine)

Скопировать кодPYTHON

data_raw.head(5)

Теперь в data_raw лежит таблица со звонками. Можно заниматься её анализом непосредственно в Jupyter Notebook.

К следующему уроку
Краткий пересказ урока
beta

Курсы

Вводный модуль

Понимание профессии системного аналитика

Разработка требований

Проект 1. Спецификация требований ко второму релизу Chatty

SQL для аналитиков

Моделирование данных

Проект 2. Моделирование данных и работа с базой данных интернет-магазина «Накарабине»

Моделирование процессов

Пользовательские интерфейсы

Agile-практики

Проект 3. Бэклог приложения для сети клиник «Вита»

Трудоустройство

Архитектура системы

Программные интерфейсы

Проект 4

Реализация системы

Поддержка, обслуживание и оценка результатов

Дипломный проект

Дополнительные материалы

x