Игра Яндекс Практикума
Игра Яндекс Практикума
Игра Яндекс Практикума

5 ETL для обработки данных из Python-ботов

Отредактировано

Подборка ETL-инструментов (extract, transform, load) для наладки потоков пользовательских данных из различных Python и не только ботов.

1К открытий3К показов
5 ETL для обработки данных из Python-ботов

На обложке статьи изображен “зоопарк” технологий, использующихся в моей компании в для проекта чат-ботов. Этот цикл статей подойдет для всех, кто работает с разговорными интерфейсами: разработчиков, дата-аналитиков, сценаристов чат-ботов. Поскольку речь идет о наладке потоков данных, то имеет смысл уточнить: это подойдет проектам, у которых появились данные, не обязательно большие. В моем случае речь идет о 7 тысячах обращений ежемесячно, что в случае с текстовыми данными генерирует менее 500 Мб ежемесячно.

Открываю цикл статей, описывающий ETL (extract, transform, load) – наладку потоков пользовательских данных из различных питонических и не только ботов. Спустя несколько промежуточных продуктов информация оказывается в конечном артефакте дата-анализа – отчете Google Looker (ex-Data Studio).

Dialogflow

Первый кейс – Dialogflow. Мы подробно рассмотрим, как выглядит путь логов от конструктора до BI-системы отчетности. Подробно – значит пошаговые инструкции со скриншотами на базе документации и возможностью получить помощь автора в комментариях на случай затыков. Вы узнаете, как:

  1. Настроить выгрузку логов Dialogflow.
  2. Освоить замысловатый язык запросов Logs Explorer.
  3. Настроите Logs Router Sink (“раковину”) – утилиту для перегонки логов в нужное хранилище.
  4. Познакомитесь с мощнейшей скоростной базой данных BigQuery, позволяющей за считаные секунды обрабатывать огромные массивы распределенных данных. Вы научитесь создавать т.н. представления, то есть преобразовывать данные с помощью SQL-запросов в удобный для отчетности вид.
  5. Настроите свой первый отчет в Google Looker на внешнем источнике данных.
5 ETL для обработки данных из Python-ботов 1

aimylogic.com

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

  1. С редактором потоков Aimylogic, то есть no-code-решением для автоматизации общения с клиентами.
  2. Reporter API – то есть методу выгрузки информации о диалогах с помощью HTTP-запросов. Многим из нас знакомый Postman будет перемежаться с Python requests. Я покажу разницу между этими двумя решениями: как при кажущейся их простоте и “дырявой” документации продукта получать идентичный результат.
  3. Поймете, как выбирать VPS (“виртуальный частный сервер”) из обширного списка предложений в сети. Я покажу наиболее экономичные решения и важные фичи выбранного мною timeweb.cloud. Для работы с регулярными запросами используем Linux.
  4. Научитесь создавать скрипты, регулярно подгружающие логи в базу данных с помощью популярного opensource-решения Apache Airflow. Вы узнаете, как подключать репозиторий со своими DAG-скриптами, отправлять уведомления в мессенджер Telegram.
5 ETL для обработки данных из Python-ботов 2

Дальнейший путь пользовательских данных дублирует часть первого кейса, то есть BigQuery → Looker.

aiogram

Третья история – это Python-библиотека aiogram. Эту платформу мы используем для небольших временных решений, таких как квесты, потому в стек вошел еще и SQLite. В этой рубрике вы познакомитесь:

  1. С кодом квеста, особенностями aiogram – чувствительностью к разметке.
  2. Научитесь встраивать SQL-запросы прямо в код Python.
5 ETL для обработки данных из Python-ботов 3

И конечно, данные преодолеют тот же путь вплоть до Looker.

chatGPT

Покуда в широкие массы не попала GPT4, мы используем API версии 3.5-turbo (документация). В этой рубрике вы узнаете:

  1. Как настроить API с нуля.
  2. Как осуществить Fine-Tuning – дообучение модели на собственных данных.
  3. Как наладить экспорт результатов диалога в свою Data Studio.
5 ETL для обработки данных из Python-ботов 4

NodeJS

Хоть этот зверь и не из мира Python, все же данные, генерируемые этим проектом, обрабатываются с помощью вышеупомянутого языка (документация). Здесь мы увидим:

  1. Почему порой имеет смысл оставаться на SQLite.
  2. Как осуществлять SQL-инъекции с помощью командной строки.
  3. Как подрузить слепок базы данных в BigQuery с помощью командной строки.
5 ETL для обработки данных из Python-ботов 5
Какие еще платформы рассмотреть от условного Logs API до BI-системы?
telethon
python-telegram-bot
pyTelegramBotAPI
telebot
Просто хочу увидеть результат
Следите за новыми постами
Следите за новыми постами по любимым темам
1К открытий3К показов