Хочет ли ваше руководство знать все о финансах и производительности вашей компании, но не желает тратить деньги на первоклассные инструменты управления ИТ? Не используйте различные инструменты для учета, выставления счетов и системы обработки заявок. Вам нужна только одна центральная система. Почему бы не рассмотреть Power BI Python?
Power BI может превратить утомительные и времязатратные задачи в автоматизированный процесс. И в этом руководстве вы узнаете, как нарезать и комбинировать ваши данные способами, о которых вы и не мечтали.
Давайте, и избавьтесь от стресса от просмотра сложных отчетов!
Предпосылки
Этот учебник будет демонстрацией на практике. Если вы хотите следовать за нами, убедитесь, что у вас есть следующее:
- Подписка на Power BI – Пробная версия подойдет.
- A Windows Server – This tutorial uses a Windows Server 2022.
- Power BI Desktop установлен на вашем сервере с Windows – В этом учебнике используется Power BI Desktop v2.105.664.0.
- Установлен сервер MySQL – В этом учебнике используется MySQL Server v8.0.29.
- Установлен шлюз данных на месте на внешних устройствах, планирующих использовать версию для рабочего стола.
- Visual Studio Code (VS Code) – Этот учебник использует VS Code v17.2
- Python v3.6 или более поздняя версия установлена – В этом учебнике используется Python v3.10.5.
- Установлен DBeaver – В этом учебнике используется DBeaver v22.0.2.
Создание базы данных MySQL
Power BI прекрасно визуализирует данные, но для начала вам нужно их извлечь и сохранить. Одним из лучших способов хранения данных является база данных. MySQL – бесплатный и мощный инструмент базы данных.
1. Откройте командную строку от имени администратора, выполните ниже приведенную команду mysql и введите имя пользователя root (-u) и пароль (-p), когда будет предложено.
По умолчанию только пользователь root имеет разрешение на внесение изменений в базу данных.

2. Затем выполните запрос ниже, чтобы создать нового пользователя базы данных (CREATE USER) с паролем (IDENTIFIED BY). Вы можете назвать пользователя по-другому, но выбор в этом руководстве – ata_levi.

3. После создания пользователя выполните запрос ниже, чтобы предоставить новому пользователю разрешения (ALL PRIVILEGES), такие как создание базы данных на сервере.

4. Теперь выполните команду \q ниже, чтобы выйти из MySQL.

5. Выполните команду mysql ниже, чтобы войти в систему под вновь созданным пользователем базы данных (ata_levi).

6. Наконец, выполните следующий запрос для СОЗДАНИЯ новой БАЗЫ ДАННЫХ под названием ata_database. Конечно, вы можете назвать базу данных по-другому.

Управление базами данных MySQL с помощью DBeaver
При управлении базами данных обычно необходимо иметь знания SQL. Но с DBeaver у вас есть графический интерфейс для управления базами данных в несколько кликов, и DBeaver позаботится о SQL-запросах за вас.
1. Откройте DBeaver на вашем рабочем столе или в меню “Пуск”.
2. Когда откроется DBeaver, нажмите на выпадающий список “Новое подключение к базе данных” и выберите MySQL, чтобы начать подключение к вашему серверу MySQL.

3. Войдите в свой локальный сервер MySQL с помощью следующего:
- Оставьте Имя хоста сервера как localhost и Порт на 3306, так как вы подключаетесь к локальному серверу.
- Укажите учетные данные пользователя ata_levi (Имя пользователя и Пароль) из шага два раздела “Создание базы данных MySQL” и нажмите “Завершить”, чтобы войти в MySQL.

4. Теперь расширьте свою базу данных (ata_database) в Database Navigator (левая панель) → щелкните правой кнопкой мыши по таблицам и выберите Создать новую таблицу для инициирования создания новой таблицы.

5. Дайте имя своей новой таблице, в данном случае выбор урока – ata_Table, как показано ниже.
Убедитесь, что имя таблицы совпадает с именем таблицы, которое вы укажете в методе to_sql (“Имя таблицы”) на седьмом шаге раздела “Получение и потребление данных из API”.

6. Затем раскройте новую таблицу (ata_table) → щелкните правой кнопкой мыши по столбцам → создайте новый столбец.

7. Укажите имя столбца, как показано ниже, установите флажок “Не пусто” и нажмите OK, чтобы создать новый столбец.
В идеале, вы хотели бы добавить столбец с именем “id”. Почему? У большинства API есть идентификатор, и pandas data frame в Python автоматически заполнит другие столбцы.

8. Нажмите Сохранить (внизу справа) или нажмите Ctrl+S, чтобы сохранить изменения, после того как вы проверили ваш вновь созданный столбец (id), как показано ниже.

9. Наконец, нажмите “Persist”, чтобы сохранить изменения, внесенные вами в базу данных.

Получение и потребление Данных из API
Теперь, когда вы создали базу данных для хранения данных, вам нужно получить данные от вашего соответствующего поставщика API и отправить их в вашу базу данных, используя Python. Вы будете использовать эти данные для визуализации в Power BI.
Для подключения к вашему API-поставщику вам понадобятся три ключевые информации: метод авторизации, базовый URL API и конечная точка API. Если у вас есть сомнения или вопросы о том, как получить эту информацию, посетите сайт документации вашего поставщика API.
Ниже приведена страница документации от Syncro.

1. Откройте VS Code, создайте файл Python и назовите его в соответствии с ожидаемыми данными API из файла. Этот файл будет отвечать за получение и передачу данных API в вашу базу данных (подключение к базе данных).
Для работы с подключением к базе данных доступно несколько библиотек Python, но в этом руководстве вы будете использовать SQLAlchemy.
Выполните следующую команду pip в терминале VS Code, чтобы установить SQLAlchemy в вашем окружении.

2. Затем создайте файл с именем connection.py, заполните код ниже, замените значения соответственно и сохраните файл.
Когда вы начнете писать сценарии для общения с вашей базой данных, перед тем, как база данных примет любую команду, необходимо установить подключение к базе данных.
Но вместо того, чтобы переписывать строку подключения к базе данных для каждого сценария, приведенный ниже код посвящен тому, чтобы это подключение можно было вызывать/ссылаться из других сценариев.
3. Откройте терминал Visual Studio (Ctrl+Shift+`), и выполните нижеуказанные команды для установки pandas и requests.

4. Создайте еще один файл Python с именем invoices.py (или выберите другое имя) и заполните кодом из нижеприведенного фрагмента кода.
Вы будете добавлять фрагменты кода в файл invoices.py на каждом последующем этапе, но полный код можно посмотреть на GitHub ATA.
Скрипт invoices.py будет запускаться из основного сценария, описанного в следующем разделе, который извлекает данные из вашего первого API.
Приведенный ниже код выполняет следующие действия:
- Потребляет данные из вашего API и записывает их в вашу базу данных.
- Заменяет метод авторизации, ключ, базовый URL и конечные точки API учетными данными вашего поставщика API.
5. Добавьте фрагмент кода ниже в файл invoices.py для определения заголовков, например:
- Формат данных, который вы ожидаете получить от вашего API.
- Базовый URL и конечная точка должны сопровождаться методом авторизации и соответствующим ключом.
Не забудьте заменить нижеуказанные значения своими собственными.
6. Далее добавьте следующую асинхронную функцию в файл invoices.py.
Нижеприведенный код использует AsyncIO для управления несколькими скриптами из одного основного скрипта, описанного в следующем разделе. Когда ваш проект становится достаточно большим и включает несколько конечных точек API, хорошей практикой является наличие собственных файлов для скриптов, потребляющих ваше API.
7. Наконец, добавьте следующий код в файл invoices.py, где функция get_pages обрабатывает пагинацию вашего API.
Эта функция возвращает общее количество страниц в вашем API и помогает функции range итерировать по всем страницам.
Свяжитесь с разработчиками вашего API относительно метода пагинации, используемого вашим поставщиком API.
Если вы предпочитаете добавить больше конечных точек API к вашим данным:
- Повторите шаги четыре до шести раздела «Управление базами данных MySQL с помощью DBeaver».
- Повторите все шаги в разделе «Получение и потребление данных API».
- Измените конечную точку API на другую, которую вы хотите потребить.
Синхронизация конечных точек API
Теперь у вас есть база данных и подключение к API, и вы готовы начать потребление API, запустив код в файле invoices.py. Но это ограничит вас в потреблении только одной конечной точки API одновременно.
Как превзойти пределы? Вы создадите еще один файл на языке Python в качестве центрального файла, который вызывает функции API из различных файлов на языке Python и запускает функции асинхронно, используя AsyncIO. Таким образом, вы сохраняете свой код в чистоте и можете объединять несколько функций вместе.
1. Создайте новый файл на языке Python с названием central.py и добавьте следующий код.
Аналогично файлу invoices.py, вы будете добавлять фрагменты кода в файл central.py на каждом шаге, но полный код можно увидеть на GitHub ATA.
Ниже приведен импорт основных модулей и скриптов из других файлов с использованием синтаксиса from <имя файла> import <имя функции>.
2. Затем добавьте следующий код для управления скриптами из файла invoices.py в файле central.py.
Вам необходимо ссылаться/вызывать функцию call_invoices из файла invoices.py как задачу AsyncIO (invoice_task) в файле central.py.
3. После создания задачи AsyncIO ожидайте выполнения задачи для вызова функции call_invoices из файла invoice.py , как только начнется выполнение функции цепочки (на шаге два).
4. Создайте AsyncIOScheduler для запланирования задачи выполнения скрипта. Задача, добавленная в этом коде, запускает функцию цепочки с интервалом в одну секунду.
Эта задача важна, чтобы ваша программа продолжала выполнять ваши скрипты и поддерживала актуальность ваших данных.
5. Наконец, запустите скрипт central.py в VS Code, как показано ниже.

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

Ниже вывод подтверждает, что счета добавлены в базу данных.

Разработка визуальных элементов Power BI
После написания программы, которая подключается и использует данные API и передает эти данные в базу данных, вы почти готовы собирать свои данные. Но сначала вы отправите данные из базы данных в Power BI для визуализации, конечной цели.
Множество данных бесполезны, если вы не можете визуализировать данные и устанавливать глубокие связи. К счастью, визуальные элементы Power BI подобны тому, как графики могут сделать сложные математические уравнения простыми и предсказуемыми.
1. Откройте Power BI с вашего рабочего стола или из меню “Пуск”.
2. Нажмите на иконку источника данных над выпадающим списком Получение данных на главном окне Power BI. Появится всплывающее окно, где вы можете выбрать источник данных для использования (шаг третий).

3. Найдите mysql, выберите базу данных MySQL и нажмите “Подключить”, чтобы начать подключение к вашей базе данных MySQL.

4. Теперь подключитесь к вашей базе данных MySQL следующим образом:
- Введите localhost:3306, так как вы подключаетесь к локальному серверу MySQL на порту 3306.
- Укажите имя вашей базы данных, в данном случае ata_db.
- Нажмите “OK”, чтобы подключиться к вашей базе данных MySQL.

5. Теперь нажмите на кнопку “Преобразовать данные” (в правом нижнем углу), чтобы просмотреть обзор данных в редакторе запросов Power BI (шаг пятый).

6. После просмотра источника данных нажмите “Закрыть и применить”, чтобы вернуться к основному приложению и подтвердить внесенные изменения.
Редактор запросов показывает таблицы из вашего источника данных слева. В то же время вы можете проверить формат данных перед переходом к основному приложению.

7. Нажмите на вкладку ленты “Инструменты таблицы”, выберите любую таблицу на панели полей и нажмите “Управление связями”, чтобы открыть мастер связей.
Прежде чем создавать визуализации, убедитесь, что ваши таблицы связаны, так что явно укажите любые отношения между ними. Почему? Потому что Power BI пока не обнаруживает сложную корреляцию таблиц автоматически.

8. Установите флажки рядом с существующими отношениями для редактирования и нажмите “Редактировать”. Появится всплывающее окно, где вы сможете редактировать выбранные отношения (шаг девятый).
Но если вы предпочитаете добавить новое отношение, нажмите на кнопку “Новое” вместо этого.

9. Редактирование отношений с помощью следующего:
- Кликните на выпадающем списке таблиц и выберите таблицу.
- Кликните на заголовки, чтобы выбрать столбцы для использования.
- Отметьте флажок Сделать это отношение активным, чтобы убедиться, что отношения действительны.
- Нажмите “ОК”, чтобы установить отношение и закрыть окно редактирования отношений.

10. Теперь нажмите на тип визуализации “Таблица” в панели визуализаций (самой правой), чтобы создать ваш первый визуал, и появится пустая таблица (шаг 11).

11. Выберите таблицу визуализации и поля данных (на панели Поля), чтобы добавить их к вашей таблице визуализации, как показано ниже.

12. Наконец, щелкните на типе визуализации “Фильтр” для добавления еще одной визуализации. Как следует из названия, визуализация фильтра разделяет данные, фильтруя другие визуализации.
После добавления фильтра выберите данные из панели Поля, чтобы добавить их к визуализации фильтра.

Изменение визуализаций
Визуальные элементы по умолчанию выглядят достаточно прилично. Но было бы здорово, если бы вы могли изменить внешний вид визуализации на что-то менее скучное? Позвольте Power BI сделать это за вас.
Нажмите на значок Форматировать вашу визуализацию под визуализацией, чтобы получить доступ к редактору визуализации, как показано ниже.
Потратьте некоторое время на игру с настройками визуализации, чтобы добиться желаемого внешнего вида для ваших визуализаций. Ваши визуализации будут коррелировать, пока вы не установите отношение между таблицами, которые вы используете в ваших визуализациях.

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

В следующей визуализации, рассматривая график трендов, вы увидите, что что-то пошло не так в апреле 2020 года. В тот момент в Южной Африке впервые ввели карантин из-за Covid-19.
Этот вывод лишь подтверждает мастерство Power BI в создании точных визуализаций данных.

Заключение
Этот учебник направлен на то, чтобы показать вам, как установить живой динамический конвейер данных, извлекая свои данные из конечных точек API. Кроме того, обработка и передача данных в вашу базу данных и Power BI с использованием Python. Обладая этим новым знанием, вы теперь можете использовать данные из API и создавать свои собственные визуализации данных.
Все больше и больше бизнесов создают веб-приложения Restful API. И на этом этапе вы уверены в использовании API с помощью Python и создании визуализаций данных с использованием Power BI, что может помочь в принятии бизнес-решений.