DE – Telegram
522 subscribers
312 photos
81 videos
15 files
405 links
Data Engineering Technologies.
SQL, Python, Kafka, Spark, Pandas, Airflow, Clickhouse, Greenplum, Postgres, dbt, LLM agentic systems, AI, robots, drones etc.

Boost channel - https://news.1rj.ru/str/boost/data_engi
Download Telegram
🙄 Apache Iceberg vs Delta Lake vs Hudi: выбор формата для AI/ML

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

😕 Почему формат имеет значение?

Традиционные хранилища данных сталкиваются со следующими проблемами:
🔜 Отсутствие транзакций ACID - риск конфликтов чтения/записи
🔜 Отсутствие управления версиями данных — трудно отслеживать изменения
🔜 Медленные запросы — большие наборы данных замедляют аналитику

▶️▶️ Apache Iceberg — решение для аналитики и пакетной обработки

📌 Зачем?

✔️ Обработка исторических наборов данных
✔️ Необходимость оптимизации запросов и развития схемы
✔️ Пакетная обработка является приоритетом

📌 Преимущества

✔️ ACID-транзакции с моментальной изоляцией
✔️ Возможность вернуться в прошлое - восстановление предыдущих версий данных
✔️ Скрытое разделение - ускоряет запросы
✔️ Поддержка Flink, Trino, Presto, Spark ⭐️

📌 Использование

✔️ BI и анализ тенденций
✔️ Хранение данных для обучения модели машинного обучения
✔️ Логи аудита и сценарии отката

▶️▶️ Delta Lake — решение для рабочих нагрузок, связанных с AI, ML и потоковыми данными

📌 Зачем?

✔️ Потоковая передача данных имеет решающее значение для ML
✔️ Нужны настоящие транзакции ACID
✔️ Работа в основном с Apache Spark ⭐️

📌 Преимущества

✔️ Глубокая интеграция со Spark ⭐️
✔️ Инкрементальные обновления (позволяют избежать полной перезаписи набора данных)
✔️ Z-Ordering – группирует похожие данные для более быстрых запросов
✔️ Возможности отката и восстановления

📌 Использование

✔️ Конвейеры машинного обучения в реальном времени (обнаружение мошенничества, прогнозная аналитика)
✔️ Рабочие процессы ETL
✔️ Обработка данных IoT и логи

▶️▶️ Apache Hudi — решение для обновлений в реальном времени

📌 Зачем?

✔️ Необходимость быстрой аналитики в реальном времени
✔️ Данные нуждаются в частых обновлениях
✔️ Работа с Apache Flink, Spark ⭐️ или Kafka

📌 Преимущества

✔️ Транзакции ACID и управление версиями
✔️ Слияние при чтении (MoR) – обновление без перезаписи целых наборов данных
✔️ Оптимизировано для машинного обучения в реальном времени (обнаружение мошенничества, рекомендации)
✔️ Поддержка микро-пакетирования и потоковой передачи

📌 Использование

✔️Обнаружение мошенничества (банковские операции, мониторинг безопасности)
✔️ Рекомендательные системы (электронная коммерция, стриминговые сервисы)
✔️ AdTech (торги в реальном времени, персонализированная реклама)

🧐 Какой формат лучше всего подходит для AI/ML?

😀 Iceberg — для исторических данных и бизнес-аналитики
😀 Delta Lake — для AI/ML, потоковой передачи и Apache Spark ⭐️
✔️ Hudi — для частых обновлений и машинного обучения в реальном времени (обнаружение мошенничества, рекомендации, AdTech)

🔜 Полный обзор можно найти в статье по ссылке
Please open Telegram to view this post
VIEW IN TELEGRAM
2❤‍🔥7👏32
😁9
😁10
📊 Как избежать хаоса с данными?
Способы обеспечения согласованности показателей в
хранилище

Если ты работаешь с аналитикой, ты, вероятно, сталкивался с ситуацией, когда один и та же метрика рассчитывается по-разному в разных отделах. Это приводит к путанице, снижает доверие к данным и замедляет процесс принятия решений. Расскажу основные причины этой проблемы и два эффективных варианта решения.

🧐 Почему показатели расходятся?
Причина кроется в спонтанном росте аналитики:
🔘 Аналитик пишет SQL-запрос для расчёта метрики.
🔘 Затем другие команды создают свои собственные версии на основе этого запроса, внося незначительные изменения.
🔘 Со временем возникают расхождения, и команда аналитики тратит всё больше и больше времени на устранение несоответствий.

Чтобы избежать такой ситуации, стоит внедрить единые стандарты управления метриками.

✏️ Два подхода к обеспечению согласованности

▶️▶️Семантический слой
Это промежуточный слой между данными и инструментами аналитики, где метрики определяются централизованно. Они хранятся в статических файлах (например, YAML) и используются для автоматической генерации SQL-запросов.

🙂 Плюсы:
✔️ Гибкость — адаптируется к различным запросам без предварительного создания таблиц.
✔️ Прозрачность — единые определения доступны для всех команд.
✔️ Актуальность — данные обновляются в режиме реального времени.

🙄 Минусы:
✖️ Требует инвестиций в инфраструктуру и оптимизацию.
✖️ Может увеличить нагрузку на вычисления (это ты сможешь решить с помощью кэширования).

📌 Пример инструмента: Cube.js - одно из немногих зрелых open-source решений.

▶️▶️Предварительно агрегированные таблицы
Здесь заранее создаются таблицы с предварительно вычисленными метриками и фиксированными измерениями.

🙂 Плюсы:
✔️ Простая реализация, удобная для небольших проектов.
✔️ Экономия вычислительных ресурсов.
✔️ Полный контроль над вычислениями.

🙄 Минусы:
✖️ Сложно поддерживать по мере увеличения количества пользователей.
✖️ Возможны расхождения, если метрики определены в разных таблицах.

😎 Какой метод выбрать?
Оптимальный подход - гибридное использование:
🔘 Реализуй семантический слой для масштабируемости.
🔘 Используй предварительно агрегированные таблицы для критических показателей, где важна минимальная стоимость вычислений.

#de #engineering #chaos
Please open Telegram to view this post
VIEW IN TELEGRAM
6👏2❤‍🔥1
Forwarded from DataEng
Курс AI Agents от Microsoft

Нашел на просторах сети бесплатный курс по AI Агентам от Microsoft: https://microsoft.github.io/ai-agents-for-beginners/
Помимо текстового материала есть и видео лекции на Ютубе.
❤‍🔥7
😁13👏3
😁101
😁13
Сколько часов ты спал?

#meme
😁6
😁9
OpenAI показали свои новые модели GPT-4.1, GPT-4.1 mini и GPT-4.1 nano

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

Эти модели тренировали специально, чтобы они были эффективны в задачах связанных с разработкой. В честь запуска Cursor и Windsurf дают попользоваться этими моделями совершенно бесплатно 🆓
❤‍🔥8
❤‍🔥5
😁9
Forwarded from Dealer.AI
AirFlow, MLFlow, DVC, ClearML?? Пффф. IstructPipe от Google!!!

Вот тебе шкет, к вайб кодингу еще и вайб пайпинг. Фу, звучит даже противно.
Крч берёшь, пишешь инструкцию к LLM для ML пайпа и получаешь псевдокод, псевдо инструкцию, и псевдо интерпретацию. 🤣🤣🤣
Шучу, получаешь крч ток псевдо код, пайп и блоксхемку.
Делоешь, вайб автомотизируешь и койфуешь.


https://research.google/blog/instructpipe-generating-visual-blocks-pipelines-with-human-instructions-and-llms/
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥7
🚀 Airflow 3.0.0 уже здесь!


Что нового?

🧩 Микросервисная архитектура

Событийное планирование

🧬 Версионирование DAG'ов

🖥️ Новый интерфейс на React

🔐 Улучшенная безопасность

🌍 Удалённое выполнение задач

🐍 Поддержка только Python 3.9+


🔗 Подробнее: Релиз Airflow 3.0.0

#ApacheAirflow #DataEngineering #Airflow3 #WorkflowOrchestration


https://github.com/apache/airflow/releases/tag/3.0.0
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥6
PEP 750: t-строки в 3.14

В питон добавили еще один способ форматировать строки. Теперь – со специальным АПИ для внешних интеграций.

- PEP: https://peps.python.org/pep-0750
- Реализация: https://github.com/python/cpython/pull/132662

Основная причина: использовать f строки удобно, но нет никакого АПИ для перехвата момента "вставки" или интерполяции значений. Например, при форматировании html или sql – требуется специальным образом делать escape для значений. И раньше код вида f"<div>{template}</div>" представлял собой дыру в безопасности и потенциальное место для XSS.

string.templatelib.Template

Новый префикс t не будет создавать объект str, он будет создавать объект класса string.templatelib.Template:


>>> user = 'sobolevn'
>>> template = t"Hi, {user}"
>>> template
Template(strings=('Hi, ', ''), interpolations=(Interpolation('sobolevn', 'user', None, ''),))

>>> from string.templatelib import Template
>>> isinstance(template, Template)
True


Обратите внимание, что при создании template – у нас не произошло форматирование сразу. Мы создали объект, у которого есть свойства strings и interpolations, из которых можно собрать финальную отформатированную строку.

Давайте посмотрим на примере. Допустим, мы хотим формировать URL из наших данных:


>>> domain = 'example.com'
>>> query = 'python string formatting is too complex'
>>> template = t'https://{domain}?q={query}'


И сам код логики форматирования, где мы будем вставлять значения разным способом. Если у нас шаблон query, то мы будем использовать quote_plus для его форматирования. Остальные значения – будем вставлять как есть:


>>> from string.templatelib import Template, Interpolation
>>> from urllib.parse import quote_plus

>>> def format_url(template: Template) -> str:
... parts = []
... for part in template:
... match part:
... case str() as s: # regular string
... parts.append(s)
... case Interpolation(value, expression='query'):
... parts.append(quote_plus(value))
... case Interpolation(value):
... parts.append(value)
... return ''.join(parts)


И вот результат:


>>> format_url(template)
'https://example.com?q=python+string+formatting+is+too+complex'


Только теперь наш Template был отформатирован. Нами. Ручками.
У нас есть полный контроль за процессом форматирования. Вот в чем суть данного ПЕПа.

Фичи одной строкой

- Работает = как обычно в f строках: t'{user=}'
- Есть привычные определители формата: !r, !s, .2f, тд
- t строки можно конкатенировать: t'Hello' + t' , world!' и t'Hello, ' + 'world'
- Поддерживается режим raw строк: rt"Hi \n!"

Как устроено внутри?

Интересные места имплементации:
- Изменения лексера
- Изменения грамматики языка
- Новое CAPI _PyTemplate
- Новые классы Template и Interpolation написанные на C
- Новый байткод BUILD_INTERPOLATION и BUILD_TEMPLATE


>>> import dis
>>> user = 'sobolevn'
>>> dis.dis('t"Hi, {user}"')
0 RESUME 0

1 LOAD_CONST 2 (('Hi, ', ''))
LOAD_NAME 0 (user)
LOAD_CONST 1 ('user')
BUILD_INTERPOLATION 2
BUILD_TUPLE 1
BUILD_TEMPLATE
RETURN_VALUE


Обсуждение: как вам еще один способ форматирования строк?

| Поддержать | YouTube | GitHub | Чат |
7❤‍🔥1😁1
😎 Открытые поисковые системы и хранилища данных по наборам данных

✔️ Google Dataset Search - открывает доступ к бесплатным публичным наборам данных. Ты можешь выбирать данные по разным темам и в разных форматах, включая .pdf, .csv, .jpg, .txt и другие. Использовать его так же просто, как и обычный поиск Google: просто введи в строку поиска название или интересующую тебя тему. По мере ввода система будет предлагать наборы данных с нужными ключевыми словами - ты можешь случайно наткнуться на что-то новое и интересное.

✔️ Открытые данные Всемирного банка - открытые данные Всемирного банка считаются одним из самых обширных и разнообразных источников статистической информации и общедоступных наборов данных. Ты можешь искать данные по различным категориям. Сайт Всемирного банка уникален тем, что предлагает бесплатные ресурсы и инструменты для общественного использования, такие как Data Bank - удобный инструмент для анализа и визуализации больших наборов данных

✔️ Data.world - эта платформа позволяет тебе получить доступ к бесплатным наборам данных и работать с ними прямо на сайте. Все, что нужно сделать, это создать бесплатную учётку, после чего тебе будет доступно 3 бесплатных проекта. При необходимости можнг перейти на платные планы с большим объемом хранилища. С помощью строки поиска ты можешь найти ключевые слова, ресурсы, организации или пользователей. А для более точного поиска ты можешь воспользоваться кнопкой «Создать расширенный фильтр», чтобы найти именно то, что тебе нужно.

✔️ DataHub — это платформа публикации данных (SaaS), разработанная Datopian, где ты можешь просматривать одну из самых разнообразных коллекций публичных наборов данных, организованных по темам. На платформе также есть блог с материалами по темам, связанным с Big Data Science.

✔️ Humanitarian Data Exchange — платформа для поиска наборов данных. Здесь ты можешь искать бесплатные наборы данных и фильтровать результаты по таким критериям, как местоположение, формат, организация и лицензия. Платформа также позволяет обмениваться данными по разным категориям.

✔️ UCI Machine Learning Repository — наименее обширный из всех упомянутых ресурсов, он остается полезным для тех, кто хочет построить модель машинного обучения. Несмотря на ограниченное количество наборов данных, ты также можешь искать данные по типу задачи, типу атрибута, формату данных и области применения.

✔️ Academic Torrents — если ты проводишь исследование, пишешь статью или магистерскую диссертацию, то Academic Torrents станет для тебя отличным помощником. Платформа предлагает множество больших наборов данных из научных публикаций, некоторые из которых достигают 2 терабайт. Использовать Academic Torrents очень просто: ты можешь искать наборы данных, статьи, курсы и коллекции, а также загружать собственные данные для работы с другими. Наборы данных бесплатны, но для их загрузки понадобится установленный на твоём устройстве торрент-клиент.

#data #datasets
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥8👏1
Forwarded from Время Валеры
Недавно на одной встрече, очень большой начальник заметил: с учётом того, что мы теперь много нанимаем по всему миру и в разных часовых зонах, умение писать становится критически важным.

Спорить с этим сложно, и переоценить важность тоже. К сожалению, многие люди катастрофически не умеют формулировать свои мысли — отсюда все эти «давай быстро созвонимся», «пересечёмся раз на раз» или голосовые сообщения. Не всегда, но очень часто это происходит не потому, что встреча действительно нужна, а потому что человек просто не в состоянии организовать свой словесный салат во что-то внятное. В итоге он выливает свои мысленные помои на собеседника в надежде, что тот переработает это во что-то осмысленное — вместо того чтобы самому потратить время и внимание.

Черчилль как-то написал: «Прости, времени было мало, поэтому письмо длинное». И почти все это понимают на подсознательном уровне — отсюда все мемы и приколы про голосовые сообщения. Сложно переоценить важность хорошей культуры письма: она не только экономит кучу времени и сил, позволяет работать асинхронно, но со временем ещё и учит человека мыслить собранно и чётко.

Возможно, не стоит доходить до пределов ребят из провинции Лакония с их «если», но пример с них брать точно стоит. В здоровом письме — здоровый дух. А лучшая встреча - это короткая встреча
👏10
Куда еще проще? 💃

Деплой FastAPI приложений одной командой — fastapi deploy

https://fastapicloud.com/
Please open Telegram to view this post
VIEW IN TELEGRAM
6😁4