Мой пет-проект на Airflow 3
Прошло довольно много времени с тех пор, как я в последний раз работал над своим пет-проектом, и, кажется, этот день настал.
Причин, почему я вообще за него сел, было две: 1) мне очень хотелось пощупать Airflow 3, особенно этот его новый проповедуемый TaskFlow. 2) я хотел помочь другу с его еженедельной рабочей рутиной (а в идеале полностью её автоматизировать).
Так и появился мой небольшой пет-проект btc_network_data_production.
В результате я собрал мелкий, но полноценный пайплайн: раз в неделю он забирает данные из API blockchain.com, пиишет в Google Sheets, а затем визуализирует их в Looker Studio. Это был самый простой, а главное, бесплатный способ быстро собрать данные и визуализировать их. Плюс, по пути успел потрогать gspread, с которой не работал очень долгое время.
Мне понравилось работать с Airflow 3. Даже в таком простом пайплайне, как у меня, я кайфанул от того, что теперь можно всё завернуть под декораторы @dag и @task, а так же что теперь XCom прям под капотом. Также, в будущем я хочу потрогать ещё одну новую штуку Assets, которые позволяют триггерить даги по факту появления данных в каком-то месте. Мне в целом нравится этот event-driven подход, и, возможно, я реализую его прямо в рамках этого проекта.
Основная часть работы уже сделана, и результатом уже можно пользоваться. Если интересно, ниже есть ссылки на GitHub, таблицу и дашборд. При этом, я планирую развивать его и дальше (потенциально бесконечно): от небольших косметических улучшений в коде до прикрутки всякого, что я ещё не изучил или просто для улучшения пайплайна (недавно, например, прикрутил тг-нотификацию на случай ошибки).
К сожалению, мне не удалось полностью автоматизировать работу моего друга из-за некоторых ограничений Looker Studio, но даже в текущем виде результат будет для него полезным. Получился такой win-win, что не может не радовать. И плюс, для меня это отдельный повод попробовать когда-то очень не скоро Tableau или какую-нибудь другую биайку, которая хорошо кастомизируется и совсем избавить моего друга от рутины.
Я рад, что вернулся к пет-проектам, это всё ещё самый лучший способ потрогать новую для себя технологию.
GitHub repo: https://github.com/alexmonakhov1/btc_network_data_production.git Looker Dashboard: https://lookerstudio.google.com/s/hxcdJq1VUh0