Введение

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

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

Для этого проекта я использовал Python, базу данных Oracle и планировщик Windows.

Шаги проекта

  1. Подключите Python к базе данных Oracle.
  2. Извлеките данные из базы данных и создайте скрипт для проверки различных условий и KPI.
  3. Настройте параметры безопасности Gmail, чтобы разрешить приложениям отправлять электронные письма, не мешая работе.
  4. Создайте сценарий для отправки электронного письма, если выполняются условия из шага 2.
  5. Создайте пакетный файл, который подключит Python.exe к сценариям из шагов 2 и 4.
  6. Используйте планировщик Windows, чтобы запускать пакетный файл из шага 5 через каждый заданный промежуток времени.

Обзор проекта

Шаг 1. Подключите Python к базе данных Oracle

Объяснение:

База данных, которую я выбрал для этого проекта, — это реляционная база данных Oracle.

Чтобы подключить Python к Oracle, я использовал библиотеку cx_Oracle, модуль расширения Python, который обеспечивает доступ к базе данных Oracle. Чтобы установить соединение, сначала получите следующие параметры базы данных: имя хоста, номер порта и имя службы.

Это поможет установить параметр имя источника данных (или DSN), который поможет окончательно подключиться к базе данных Oracle с использованием следующего набора параметров: Имя пользователя и >Пароль.

Код

Шаг 2. Извлеките данные из базы данных и создайте скрипт для проверки различных условий и KPI.

Объяснение

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

Для этого проекта предположим, что важным KPI в организации является просто количество входов на веб-сайт. И, если эта сумма необычно мала, мы автоматически получим письмо о ситуации.

Чтобы быть более конкретным, предположим, что необычное количество — это когда количество записей в день ниже трети среднего количества ежедневных записей за 200 дней.

Я заполнил базу данных Oracle случайными данными, чтобы мне было с чем работать.

Я создам три переменные:

  1. Количество заходов на сайт
  2. Средний объем трафика за последние 200 дней.

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

3 . Разница между 1 и 2.

Код

The Number of Entries Today is: 15874 
The Average Amount of Traffic is: 65897
The Difference is: 50113

Шаг 3. Настройте параметры безопасности Gmail, чтобы разрешить приложениям отправлять электронные письма без вмешательства.

Объяснение

Этот шаг установит настройки безопасности Google, чтобы разрешить менее безопасным приложениям и сценариям доступ к учетной записи. Сначала перейдите в настройки безопасности Google:

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

Затем перейдите в «Пароли приложений» чуть ниже двухэтапной проверки и сгенерируйте пароль приложения, выбрав устройство (в моем случае Windows) и приложение (в моем случае другое).

Это позволит вам сгенерировать пароль, который будет использоваться на следующем шаге.

Шаг 4. Создайте сценарий для отправки электронного письма, если выполняются условия из шага 2.

Объяснение

На этом шаге я создам скрипт, который отправит электронное письмо учетной записи из шага 3, если будет выполнено условие из шага 2.

Напоминаем, что условие из шага 2 заключается в том, что если количество ежедневных входов на веб-сайт необычно мало, мы хотим получить оповещение об этом. Я определил необычное количество записей как меньше трети среднего ежедневного количества записей за последние 200 дней. Я буду использовать библиотеки SMTP и email для написания сценария.

Код

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

Шаг 5. Создайте пакетный файл, который подключит Python.exe к сценариям из шагов 2 и 4.

Объяснение

Эти последние шаги являются самыми простыми и вообще не требуют написания кода.

До сих пор мы создали скрипт, который отправляет электронное письмо, если выполняется условие. Следующие шаги позаботятся об автоматизации этого процесса, поэтому нам не нужно будет выполнять его самостоятельно.

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

  1. создайте пустой файл Блокнота и вставьте:
  • Путь к каталогу Python.exe.
  • Путь к каталогу скрипта.

В моем случае это выглядит так:

2. Установите файл Блокнота как .bat

3. Сохраните его (в моем случае на рабочем столе)

Нажатие на этот файл запустит скрипт Python и отправит письмо на выбранный адрес электронной почты.

Шаг 6. С помощью планировщика Windows запускайте пакетный файл из шага 5 через каждые заданные промежутки времени.

Объяснение

На последнем шаге я буду использовать планировщик заданий Windows, чтобы сообщить Windows: «Видите этот файл? Запускайте его каждый день в x часов».

Шаги:

  1. Войдите в планировщик заданий, введя «Планировщик заданий» в поле поиска Windows.
  2. Нажмите «Создать базовую задачу»:

3. Выберите имя для этой автоматизированной задачи:

4. Выберите таймфрейм (в моем случае Daily)

5. Выберите время суток для выполнения скрипта (в моем случае я хочу проверять условие из шага 2 каждый день в 23:00):

6. Выберите «Запустить программу».

7. Введите расположение пакетного файла:

8. Готово

Готово!

Теперь каждый день в 23:00, если количество записей было необычно низким для дня, мы автоматически получим электронное письмо об этом. Например: