5 ETL для обработки данных из Python-ботов
Подборка ETL-инструментов (extract, transform, load) для наладки потоков пользовательских данных из различных Python и не только ботов.
1К открытий3К показов
На обложке статьи изображен “зоопарк” технологий, использующихся в моей компании в для проекта чат-ботов. Этот цикл статей подойдет для всех, кто работает с разговорными интерфейсами: разработчиков, дата-аналитиков, сценаристов чат-ботов. Поскольку речь идет о наладке потоков данных, то имеет смысл уточнить: это подойдет проектам, у которых появились данные, не обязательно большие. В моем случае речь идет о 7 тысячах обращений ежемесячно, что в случае с текстовыми данными генерирует менее 500 Мб ежемесячно.
Открываю цикл статей, описывающий ETL (extract, transform, load) – наладку потоков пользовательских данных из различных питонических и не только ботов. Спустя несколько промежуточных продуктов информация оказывается в конечном артефакте дата-анализа – отчете Google Looker (ex-Data Studio).
Dialogflow
Первый кейс – Dialogflow. Мы подробно рассмотрим, как выглядит путь логов от конструктора до BI-системы отчетности. Подробно – значит пошаговые инструкции со скриншотами на базе документации и возможностью получить помощь автора в комментариях на случай затыков. Вы узнаете, как:
- Настроить выгрузку логов Dialogflow.
- Освоить замысловатый язык запросов Logs Explorer.
- Настроите Logs Router Sink (“раковину”) – утилиту для перегонки логов в нужное хранилище.
- Познакомитесь с мощнейшей скоростной базой данных BigQuery, позволяющей за считаные секунды обрабатывать огромные массивы распределенных данных. Вы научитесь создавать т.н. представления, то есть преобразовывать данные с помощью SQL-запросов в удобный для отчетности вид.
- Настроите свой первый отчет в Google Looker на внешнем источнике данных.
aimylogic.com
Второй кейс – русский конструктор ботов Aimylogic. Это интересный продукт, создатели которого поставили своей целью взять самое лучшее от крупнейших игроков. Вы познакомитесь с:
- С редактором потоков Aimylogic, то есть no-code-решением для автоматизации общения с клиентами.
- Reporter API – то есть методу выгрузки информации о диалогах с помощью HTTP-запросов. Многим из нас знакомый Postman будет перемежаться с Python requests. Я покажу разницу между этими двумя решениями: как при кажущейся их простоте и “дырявой” документации продукта получать идентичный результат.
- Поймете, как выбирать VPS (“виртуальный частный сервер”) из обширного списка предложений в сети. Я покажу наиболее экономичные решения и важные фичи выбранного мною timeweb.cloud. Для работы с регулярными запросами используем Linux.
- Научитесь создавать скрипты, регулярно подгружающие логи в базу данных с помощью популярного opensource-решения Apache Airflow. Вы узнаете, как подключать репозиторий со своими DAG-скриптами, отправлять уведомления в мессенджер Telegram.
Дальнейший путь пользовательских данных дублирует часть первого кейса, то есть BigQuery → Looker.
aiogram
Третья история – это Python-библиотека aiogram. Эту платформу мы используем для небольших временных решений, таких как квесты, потому в стек вошел еще и SQLite. В этой рубрике вы познакомитесь:
- С кодом квеста, особенностями aiogram – чувствительностью к разметке.
- Научитесь встраивать SQL-запросы прямо в код Python.
И конечно, данные преодолеют тот же путь вплоть до Looker.
chatGPT
Покуда в широкие массы не попала GPT4, мы используем API версии 3.5-turbo (документация). В этой рубрике вы узнаете:
- Как настроить API с нуля.
- Как осуществить Fine-Tuning – дообучение модели на собственных данных.
- Как наладить экспорт результатов диалога в свою Data Studio.
NodeJS
Хоть этот зверь и не из мира Python, все же данные, генерируемые этим проектом, обрабатываются с помощью вышеупомянутого языка (документация). Здесь мы увидим:
- Почему порой имеет смысл оставаться на SQLite.
- Как осуществлять SQL-инъекции с помощью командной строки.
- Как подрузить слепок базы данных в BigQuery с помощью командной строки.
Какие еще платформы рассмотреть от условного Logs API до BI-системы?
telethon
python-telegram-bot
pyTelegramBotAPI
telebot
Просто хочу увидеть результат
1К открытий3К показов