DataEng – Telegram
DataEng
4.35K subscribers
40 photos
9 files
537 links
Канал про Data Engineering & Distributed Systems.

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

Автор @adilkhash
Download Telegram
Гайд о том как развернуть Apache Airflow локально через Kubernetes: https://blog.det.life/setting-up-apache-airflow-on-kubernetes-for-local-development-f873115fbe93
🔥10👍5💯2
Привет! В рамках возобновления работы над своим старым проектом по агрегации вакансий с удалённым форматом работы, я запустил отдельный телеграм-канал, где в автоматическом режиме публикуются вакансии из категории Data Engineering и DataOps: https://news.1rj.ru/str/dataeng_jobs

Попадают они туда в процессе сбора и анализа вакансий с различных профильных сайтов типа Хабр Карьера, VC, DevBy и т.д. Классифицируются они через API сервиса OpenAI, проще говоря GPT4.

Если вы в поиске работы, то моя инициатива вероятно поможет вам найти нужный оффер быстрее 🚀

Подписывайтесь
🔥19👍8💯2
Сейчас много шума вокруг DuckDB. Это компактная OLAP база данных на стероидах. На днях наткнулся на статью в рассылке про DuckDB и почему на неё стоит обратить внимание: What is DuckDB?

Также возможно вас заинтересует сравнение polars (убийца pandas) и DuckDB: DuckDB vs Polars for Data Engineering
🔥9👍6💯1
В очередной раз наткнулся в сети на статью про эксплуатацию Apache Airflow в среде Kubernetes: What we learned after running Airflow on Kubernetes for 2 years. У автора развёрнут Airflow с 300 дагами и около 5 000 задачами. Преимущественно они запускают лёгкие таски по типу dbt-трансформаций, поэтому при использовании KubernetesExecutor столкнулись с тем, что инициализация Pod занимает больше времени чем выполнение самой задачи. Выбор в итоге пал на CeleryExecutor. В целом статья не столько про нюансы работы Airflow внутри Kubernetes-кластера сколько про опыт эксплуатации инструмента в их конкретном случае. Полезно.

В нашей команде Airflow также является ключевым инструментом для выполнения регулярных и критических задач. Прямо сейчас в нём 5614 дагов, работает это всё на Amazon MWAA (Managed Airflow от AWS). Накидайте 👍🏻, если вам интересно почитать о моём опыте эксплуатации Airflow.
👍73🔥1💯1
Всем привет!

Я сделал курс по Luigi бесплатным для всех, велком изучать — Введение в Data Engineering: дата-пайплайны

Luigi это компактный инструмент для построения зависимых между собой задач на базе нескольких сущностей: Task, Target. Он идеально подойдёт там, где Airflow кажется избыточным инструментом. В далёком 2017 году я писал небольшой обзорный пост на Luigi у себя в блоге: Строим Data Pipeline на Python и Luigi. С тех пор мало что изменилось в концепции инструмента, он по прежнему компактный и простой, именно в этом вся его прелесть.
🔥37👍15
Курс про Apache Airflow бесплатно

Решил выложить свой курс про Apache Airflow абсолютно бесплатно для всех: Apache Airflow 2.2: практический курс
За то время что существует курс, Apache Airflow успел обрасти множеством новых фич, которые только предстоит покрыть в будущем, возможно в виде отдельных роликов на Ютуб или в виде статей у себя в блоге.

В любом случае курс не потерял своей актуальности и может послужить неплохим введением для новичков и более опытных пользователей. Например, в курсе я подробно разбираю как развернуть у себя на сервере production-ready Airflow, а также настроить автодеплой дагов через GitHub Actions.

Велком!
🔥81👍11
Ребята, всем привет! 🤝

Вас стало ещё больше и поэтому я хотел напомнить о существовании моего другого телеграм-канала с вакансиями в области DataEng, DataOps и DBA: https://news.1rj.ru/str/dataeng_jobs
В этот канал автоматически попадают вакансии по вышеупомянутым категориям, классификация происходит через OpenAI API.

Подписывайтесь, скоро источников с вакансиями станет ещё больше, и возможно именно вы найдёте лучшее для себя предложение — @dataeng_jobs
🔥5👍4
Убийца DuckDB 🔫

А вы уже видели аналог DuckDB от ребят из ClickHouse? Называется это чудо chDB. Представляет из себя встроенную OLAP базу данных под капотом которой пыхтит движок ClickHouse. Умеет в Parquet, Arrow, ORC и кучу других форматов, есть биндинги для Python, Go, Rust, NodeJS, Bun. Работает на Linux и MacOS, жаль Windows не поддерживает.

Узнал я о существовании этой БД из новости о том, что chDB присоединяется к ClickHouse: https://auxten.com/chdb-is-joining-clickhouse/
🔥14👍4💯2
У ребят из PostgresPro есть отличные, а главное бесплатные, книги по PostgreSQL: https://postgrespro.ru/education/books
🔥31👍6💯1
Airflow 2.9

Буквально час назад вышла новая версия Apache Airflow — 2.9. В релизе очень много изменений и фиксов, а также новых фич:

— поддержка Python 3.12
— Listener API стабилизировался и его можно использовать в продакшене
— Поддержка multiple executors (AIP-61 Hybrid Execution)
— DatasetOrTimeSchedule, срабатывание по Timetable расписанию и Dataset событиям
@task.bash декоратор. Возвращаемое значение обёрнутой в этот декоратор функции будет выполнено в виде bash-команды

Полный список изменений смотрите по ссылке.
🔥17👍9💯1
$1300 за пустой S3-бакет

В сети набирает популярность статья на платформе Medium, где автор рассказывает как ему за пустой S3-бакет "прилетел" счёт от AWS на $1300How an empty S3 bucket can make your AWS bill explode
Автор обнаружил, что к его приватному бакету прилетело более 100 миллионов PUT-запросов:

My bill was over $1,300, with the billing console showing nearly 100,000,000 S3 PUT requests executed within just one day!

Оказалось, что в конфигурации какого-то популярного опенсорс тула по умолчанию было прописано название бакета, которое в точности совпадало с названием бакета автора. И миллионы копий этой тулзы с настройками по умолчанию пытались загрузить в этот бакет свои бэкапы. К моему удивлению, оказалось, что AWS взымает плату в том числе за запросы с ошибками (коды 4xx).

Yes, S3 charges for unauthorized requests (4xx) as well[1]. That’s expected behavior.


Видимо забавы ради автор статьи сделал публичным свой бакет и в течение 30 секунд собрал аж 10 гигабайт чужих данных. Вот так утечка😵

Уроки, извлеченные автором:

1. Любой кто знает название вашего бакета может "оставить вас без штанов"
2. Добавляйте суффиксы к названием, не используйте незамысловатые названия
3. Явно указывайте регион при обращении к S3, это помогает избежать платы за редиректы

Судя по твиту Jeff Barr, AWS в курсе этой ситуации:

Thank you to everyone who brought this article to our attention. We agree that customers should not have to pay for unauthorized requests that they did not initiate. We’ll have more to share on exactly how we’ll help prevent these charges shortly.
👍29
На прошлой неделе JetBrains анонсировали релиз их новой IDE для разработки на Rust: RustRover
Изначально это был плагин для их IDE, который в итоге перерос в полноценный продукт. Также ребята решили предоставить бесплатную лицензию на продукт для некоммерческой разработки для всех. Я попробовал и получил бесплатную лицензию на 1 год, возможно в будущем её можно будет продлить.

Впервые язык Rust я попробовал ещё в далёком 2015 году, когда вышла первая стабильная версия языка. С тех пор были неоднократные попытки с моей стороны написать что-нибудь существенное, но не было подходящих проектов под рукой. Сейчас же видно, что Rust плотно вошел в экосистему Python и внёс значительный вклад в её развитие. Наверняка вы слышали о таких проектах как Pydantic, Polars, PyO3 и т.д. Некоторые из них стали революционными для Python.

Python + Rust = ❤️

Также буквально на днях вышел вебинар от JetBrains, посвященный языку Rust и методам его изучения: Programming Education: Tailoring Tools and Techniques for Rust. Если вы вдруг задумались об изучении Rust, то рекомендую к просмотру. В описании к видео есть полезные ресурсы, которые помогут лучше усвоить сложные концепции языка такие, например, как Ownership.

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

А какой у вас был опыт с Rust?
🔥12👍6
100 самых популярных Python докладов

Нашел в сети подборку из 100 самых просматриваемых докладов про Python: 100 most-watched Python 2023 conference talks ordered by the number of views
Среди этих докладов популярны темы про Rust, data engineering и оптимизацию производительности.

К слову, PyCon US 2024 уже прошел, но в открытом доступе до сих пор нет докладов. Надеюсь на их скорое появление, т.к. там есть на что посмотреть.
👍10🔥10
Если вдруг вас интересует тема разработки LLM, то вчера стартовал бесплатный курс от ребят из DataTalks.Club — LLM Zoomcamp

Курс рассчитан на 10 недель в формате живых трансляций и домашних заданий с обсуждениями.

Весь необходимый материал в открытом доступе на Гитхабе: https://github.com/DataTalksClub/llm-zoomcamp
👍14🔥12
Об актуальном 😁
💯75🔥13👍12
В мае этого года прошла самая большая конференция по Python - PyCon US 2024. К сожалению, уже несколько лет подряд доклады с этой конференции выходят с большой задержкой. Этот год не стал исключением. Буквально только неделю назад стали доступны большинство докладов для просмотра на Ютубе. Плейлист всех видео смотрите тут. Я же выделю наиболее релевантные доклады для нас:

Cheuk Ting Ho: PyO3 101 - Writing Python modules in Rust
3-х часовой туториал по написанию расширений на Rust для Python.

Yan Yanchii: Pointers in Python
Солидный туториал для любителей покопаться в "кишках" Питона.

Renne Rocha: Gathering data from the web using Python
Трёхчасовой туториал про веб-скрейпинг на Scrapy. Начинающим дата инженерам может быть весьма полезен.

Aya Elsayed, Rhythm Patel: No More Raw SQL: SQLAlchemy, ORMs & asyncio
Воркшоп по SQLAlchemy. Полезно, если у вас небольшой опыт с ORM, в частности с алхимией.

Reuven M. Lerner: Times and dates in Pandas
Доклад про работу со временем и датами в pandas. Полезно, взял фишечки для себя, хотя в последнее время не так часто работаю с pandas для анализа данных.

Lynn Root: The Design of Everyday APIs
Полезный доклад для разработчиков публичных библиотек, да и не только публичных. Удобство и красота реализации интерфейсов программ.

Sebastian Buczyński: Having fun with pydantic and pattern matching
Обзор фишечек при работе с pydantic и сопоставлениями по шаблону.

Alex Monahan, Gabor Szarnyas: Python and SQL: Better Together, Powered by DuckDB
Про DuckDB, Python и SQL на стероидах.

David Hewitt: How Python Harnesses Rust through PyO3
Про Rust в экосистеме Python от автора PyO3.

Ссылка на полный плейлист докладов.
🔥26👍8
Ребята из Supabase не перестают радовать! 😲

На днях в сети появился новый сервис от Supabase: https://postgres.new. Это data modeling сервис на базе Postgres со встроенным AI ассистентом. Запуск Postgres прямо в браузере возможен благодаря https://pglite.dev/. Это облегчённая версия Postgres, упакованная в WASM.

Целевая аудитория сервиса:

— аналитики данных
— дата инженеры
— студенты, изучающие реляционные базы данных, в частности PostgreSQL
— разработчики, разрабатывающие схемы таблиц

Пример работы с сервисом смотрите на Ютубе.
🔥18👍6
Open Source Amazon SQS

Хочу поделиться с вами интересной находкой — smoothmq. Это полностью совместимая с Amazon SQS очередь на базе SQLite, написана на Go. Я активный пользователь Amazon SQS, это очень удобный и надёжный сервис для организации коммуникации между распределенными системами, и практически бесплатный, за первый миллион запросов в месяц вы ничего не платите.

И вот в сети появился Open Source аналог, который можно использовать в своих проектах. Единственный его минус — SQLite, который непросто масштабировать на несколько машин, а значит ни о какой надёжности пока речи и нет. Попытки масштабировать SQLite есть, и я о них ранее писал. Например, это проект rqlite от инженера из Google, или Litestream.

Автор, кстати, решил монетизировать свой продукт, запустив на его базе SaaS: https://smoothmq.com/. Правда по цене дороговато выходит.
👍10💯4
Get or Create средствами базы данных

У Haki Benita в блоге нашел статью про реализацию функции get_or_create средствами PostgreSQL — How to Get or Create in PostgreSQL: and why it is so easy to get wrong
Отличная статья, мне нравится, что автор использует пошаговый подход и объясняет на каждом этапе какую проблему решает. На первый взгляд может показаться, что нет никаких проблем реализовать Get or Create, но дьявол в мелочах. Рекомендую к прочтению, есть вероятность такой вопрос встретить в будущем на собеседованиях.
🔥18👍2