Optimizing Docker Images for Python Production Services
Хороший пост о том, как оптимизировать Docker-образы для ваших Python-приложений. 🚀
Автор статьи, рассказывает о лучших практиках и методах уменьшения размера Docker-образов, а также о том, как сделать их более эффективными. Вот несколько ключевых моментов:
1. Используйте официальный Python-образ: Начните с базового образа Python, чтобы избежать лишних зависимостей.
2. Минимизируйте количество слоев: Объединяйте команды RUN, чтобы уменьшить количество слоев в вашем образе.
3. Удаляйте временные файлы: Убедитесь, что все временные файлы и кеши удалены после установки зависимостей.
4. Используйте multistage builds: Разделите процесс сборки и конечный образ, чтобы включить только необходимые файлы и библиотеки.
Полную статью можно прочитать по ссылке
Хороший пост о том, как оптимизировать Docker-образы для ваших Python-приложений. 🚀
Автор статьи, рассказывает о лучших практиках и методах уменьшения размера Docker-образов, а также о том, как сделать их более эффективными. Вот несколько ключевых моментов:
1. Используйте официальный Python-образ: Начните с базового образа Python, чтобы избежать лишних зависимостей.
2. Минимизируйте количество слоев: Объединяйте команды RUN, чтобы уменьшить количество слоев в вашем образе.
3. Удаляйте временные файлы: Убедитесь, что все временные файлы и кеши удалены после установки зависимостей.
4. Используйте multistage builds: Разделите процесс сборки и конечный образ, чтобы включить только необходимые файлы и библиотеки.
Полную статью можно прочитать по ссылке
MLOps Shenanigans
Optimizing Docker Images for Python Production Services
Crafting Lean Docker Images: Fundamental Concepts and Optimization Practices
🐳2
Netflix Maestro
Netflix открыл доступ к workflow orchestrator Maestro, про который уже был пост в канале.
Так же он добавлен в insta-infra, поэтому развернуть и потестировать новый инструмент для оркестрации можно в одну команду.
Netflix открыл доступ к workflow orchestrator Maestro, про который уже был пост в канале.
Так же он добавлен в insta-infra, поэтому развернуть и потестировать новый инструмент для оркестрации можно в одну команду.
GitHub
GitHub - Netflix/maestro: Maestro: Netflix’s Workflow Orchestrator
Maestro: Netflix’s Workflow Orchestrator. Contribute to Netflix/maestro development by creating an account on GitHub.
👍1🥱1
Forwarded from СТАФФ Инженеры
Сегодня 21:30 разбараем Workflow As A Service от Netflix. Написан на джаве, опенсорс, все как мы любим.
https://youtube.com/live/mKZaqHPnOOY?feature=share
https://youtube.com/live/mKZaqHPnOOY?feature=share
https://youtube.com/live/mKZaqHPnOOY?feature=share
https://youtube.com/live/mKZaqHPnOOY?feature=share
https://youtube.com/live/mKZaqHPnOOY?feature=share
https://youtube.com/live/mKZaqHPnOOY?feature=share
YouTube
СТАФФ 023 [live]. Воркфлоу сервис от Нетфликса
Статья https://netflixtechblog.com/maestro-netflixs-workflow-orchestrator-ee13a06f9c78
Telegram: https://t.iss.one/staff_engineers
Telegram: https://t.iss.one/staff_engineers
Forwarded from Грефневая Кафка (pro.kafka)
🚀 Чат! Я так понимаю, что на моей доисторической Родине Clickhouse любят больше, но не могу не похвалиться в этом чате!
Рад объявить о выходе нового курса на канале StarTree, посвященного продвинутым темам в Apache Pinot™!
Смотрите плейлист здесь! 📽️
Перед началом курса настоятельно рекомендую ознакомиться с курсом Apache Pinot 101
Все бесплатно, даже есть материалы для самостоятельного обучения
🚀 В первой серии мы познакомим вас с курсом и расскажем, что вас ждет впереди.
🛠️ Во втором видео мы углубимся в настройку вашего собственного кластера Apache Pinot™! Узнайте, как настроить кластер.
🔒 В третьем видео мы расскажем о настройке тенантов в Apache Pinot™. Узнайте, как изолировать и управлять различными наборами данных и рабочими нагрузками.
🗂️ Четвертое видео посвящено созданию схем, таблиц и сегментов в Apache Pinot™. Узнайте, как эффективно структурировать и организовывать данные.
📥 В пятом видео мы исследуем техники загрузки данных в Apache Pinot™. Узнайте, как эффективно загружать данные в реальном времени и пакетные данные.
🔄 Шестое видео посвящено Upserts в Apache Pinot™. Узнайте, как обновлять существующие записи или вставлять новые без проблем.
🔄 В седьмом видео мы исследуем трансформацию данных во время загрузки в Apache Pinot™. Узнайте, как очищать и обогащать данные на лету.
🔍 В восьмом видео мы рассмотрим запросы данных с использованием одноэтапного и многоэтапного механизмов запросов в Apache Pinot™. Узнайте, какой подход лучше всего подходит для ваших запросов.
⚡ В девятом видео мы исследуем различные типы индексов в Apache Pinot™. Узнайте, как оптимизировать производительность запросов с помощью правильных индексов.
🤖 В десятом видео мы познакомим вас с Minions в Apache Pinot™. Узнайте, как эти фоновые процессы могут автоматизировать и оптимизировать ваши операции с данными. Готовы встретиться с Minions?
Рад объявить о выходе нового курса на канале StarTree, посвященного продвинутым темам в Apache Pinot™!
Смотрите плейлист здесь! 📽️
Перед началом курса настоятельно рекомендую ознакомиться с курсом Apache Pinot 101
Все бесплатно, даже есть материалы для самостоятельного обучения
🚀 В первой серии мы познакомим вас с курсом и расскажем, что вас ждет впереди.
🛠️ Во втором видео мы углубимся в настройку вашего собственного кластера Apache Pinot™! Узнайте, как настроить кластер.
🔒 В третьем видео мы расскажем о настройке тенантов в Apache Pinot™. Узнайте, как изолировать и управлять различными наборами данных и рабочими нагрузками.
🗂️ Четвертое видео посвящено созданию схем, таблиц и сегментов в Apache Pinot™. Узнайте, как эффективно структурировать и организовывать данные.
📥 В пятом видео мы исследуем техники загрузки данных в Apache Pinot™. Узнайте, как эффективно загружать данные в реальном времени и пакетные данные.
🔄 Шестое видео посвящено Upserts в Apache Pinot™. Узнайте, как обновлять существующие записи или вставлять новые без проблем.
🔄 В седьмом видео мы исследуем трансформацию данных во время загрузки в Apache Pinot™. Узнайте, как очищать и обогащать данные на лету.
🔍 В восьмом видео мы рассмотрим запросы данных с использованием одноэтапного и многоэтапного механизмов запросов в Apache Pinot™. Узнайте, какой подход лучше всего подходит для ваших запросов.
⚡ В девятом видео мы исследуем различные типы индексов в Apache Pinot™. Узнайте, как оптимизировать производительность запросов с помощью правильных индексов.
🤖 В десятом видео мы познакомим вас с Minions в Apache Pinot™. Узнайте, как эти фоновые процессы могут автоматизировать и оптимизировать ваши операции с данными. Готовы встретиться с Minions?
🔥3👍1
Performance Evaluation of Hive 4 on MR3 and Trino using the TPC-DS Benchmark
Недавно был выпущен HIVE 4, который заменяет Tez на MR3 в качестве механизма выполнения.
В этой статье оценивают производительность Hive 4 на MR3 с последней версией Trino c помощью теста TPC-DS Benchmark.
Для эксперимента использовали кластер, состоящий из 1 master и 12 worker нод со следующими свойствами:
⚙️ 2 x Intel(R) Xeon(R) E5-2640 v4 @ 2.40GHz
⚙️ 256GB of memory
⚙️ 1 x 300GB HDD, 6 x 1TB SSDs
⚙️ 10 Gigabit network connection
Итого объем памяти рабочих узлов составляет 12*256ГБ = 3072ГБ. Кластер работает под управлением HDP (Hortonworks Data Platform) 3.1.4 и использует коэффициент репликации 3
Analysis
#1. Correctness
Обе системы успешно завершают все запросы и согласовывают результаты, за исключением того, что Trino возвращает неправильные ответы на запрос 23 и запрос 72.
#2. Total running time
По общему времени работы Hive 4 на MR3 работает немного быстрее, чем Trino.
- Trino 5798 секунд
- Hive 5744 секунды
#3. Response time
Что касается среднего геометрического времени работы, Trino реагирует примерно на 15 процентов быстрее, чем Hive 4 на MR3.
- В среднем Trino выполняет каждый запрос за 17,99 секунды.
- В среднем Hive 4 на MR3 завершает каждый запрос за 21,02 секунды.
Conclusion
Из сравнения с Trino 453 авторы делают вывод, что Hive 4 на MR3 действительно является быстрым механизмом. Это практичное решение для хранилища данных, которое значительно упрощает эксплуатацию Apache Hive. Например, Hive 4 можно запустить на MR3 не только в Hadoop, но и в Kubernetes и даже в автономном режиме, не требуя никакого менеджера ресурсов.
Недавно был выпущен HIVE 4, который заменяет Tez на MR3 в качестве механизма выполнения.
В этой статье оценивают производительность Hive 4 на MR3 с последней версией Trino c помощью теста TPC-DS Benchmark.
Для эксперимента использовали кластер, состоящий из 1 master и 12 worker нод со следующими свойствами:
Итого объем памяти рабочих узлов составляет 12*256ГБ = 3072ГБ. Кластер работает под управлением HDP (Hortonworks Data Platform) 3.1.4 и использует коэффициент репликации 3
Analysis
#1. Correctness
Обе системы успешно завершают все запросы и согласовывают результаты, за исключением того, что Trino возвращает неправильные ответы на запрос 23 и запрос 72.
#2. Total running time
По общему времени работы Hive 4 на MR3 работает немного быстрее, чем Trino.
- Trino 5798 секунд
- Hive 5744 секунды
#3. Response time
Что касается среднего геометрического времени работы, Trino реагирует примерно на 15 процентов быстрее, чем Hive 4 на MR3.
- В среднем Trino выполняет каждый запрос за 17,99 секунды.
- В среднем Hive 4 на MR3 завершает каждый запрос за 21,02 секунды.
Conclusion
Из сравнения с Trino 453 авторы делают вывод, что Hive 4 на MR3 действительно является быстрым механизмом. Это практичное решение для хранилища данных, которое значительно упрощает эксплуатацию Apache Hive. Например, Hive 4 можно запустить на MR3 не только в Hadoop, но и в Kubernetes и даже в автономном режиме, не требуя никакого менеджера ресурсов.
Please open Telegram to view this post
VIEW IN TELEGRAM
Datamonad
Performance Evaluation of Hive 4 on MR3 and Trino using the TPC-DS Benchmark | Hive on MR3
❤2
Hamilton
Подьехал еще один оркестратор, отличий от других инструментов практический нет.
Так же используются питоновские функции, которые определяют трансформации в пайплайне, а параметры указывают на зависимости.
Hamilton автоматический соединяет отдельные функции в DAG, есть UI, каталогизация и мониторинг.
И небольшой гайд по Data Quality с использованием Hamilton.
Помните шутки про фронтенд?
Пока учишь новый фрэймворк, он уже устарел.
Теперь это можно говорить про индустрию работы с данными.
Подьехал еще один оркестратор, отличий от других инструментов практический нет.
Так же используются питоновские функции, которые определяют трансформации в пайплайне, а параметры указывают на зависимости.
Hamilton автоматический соединяет отдельные функции в DAG, есть UI, каталогизация и мониторинг.
И небольшой гайд по Data Quality с использованием Hamilton.
Помните шутки про фронтенд?
Пока учишь новый фрэймворк, он уже устарел.
Теперь это можно говорить про индустрию работы с данными.
blog.dagworks.io
Data Quality with Hamilton and Pandera
A post to highlight the lightweight options and customizations Hamilton provides with respect to data quality; one of them being Pandera
❤4
Стайлгайд
Окей в языках программирования мы все слышали про стайлгайд и линтеры, но что же в sql?
Обычно все пишут как попало, если только нет определенных требований в компании.
Есть достаточно не плохой форматер для SQL, sqlfluff , я им пользуюсь для DBT проектов.
Но советую почитать стиль от больших компаний.
Вот ссылки:
GitLab
Mozilla
Noname
Окей в языках программирования мы все слышали про стайлгайд и линтеры, но что же в sql?
Обычно все пишут как попало, если только нет определенных требований в компании.
Есть достаточно не плохой форматер для SQL, sqlfluff , я им пользуюсь для DBT проектов.
Но советую почитать стиль от больших компаний.
Вот ссылки:
GitLab
Mozilla
Noname
🔥6👍2❤1
Линтеры в Python
В python много линтеров на любой вкус и цвет, выбирай какой нравится и настраивай под себя.
Но наверное самым жестким является wemake-python-styleguide
У них даже на главной странице заявлено
Welcome to the strictest and most opinionated Python linter ever.
Основным кнтрибьютором проекта является Никита Соболев, у которого есть крутой курс Типизация в Python.
Дата Инженеры не так сильно упарываются в линтеры и CI как бэкендеры, но все чаще это присутсвует в новых проектах.
Посмотрим на примере Airflow и TaskFlow API.
Берем код с сайта Astranomer и запускаем линтер с настройками из коробки.
Если не брать во внимание простые ворнинги типа:
- Q000 Double quotes found but single quotes preferred
- W292 no newline at end of file
То стоит посмотреть на следующий ворниг:
- WPS430 Found nested function: extract_bitcoin_price
Получается, нужно переписывать большую часть дага, чтобы линтеры прошли.
Теперь попробуем традиционный синтаксис написания дага (переключаем вкладку на сайте astronomer на Traditional syntax).
И получаем другой интересный ворнинг:
- WPS428 Found statement that has no effect
Всем знакомый синтаксис обьявления зависимомтей в airflow тоже не проходит линтер.
Получается, чтобы линтеры прошли нужно комбинировать оба варианта синтаксиса в Airflow.
Линтеры безусловно нужны, но нужно понимать, что линтер настраиваится под проект, а не наоборот.
Перед внедрением линтеров в свой проект обязательно обсудити с командой, какие проверки вам необходимы, а от каких можно отказаться.
Хороший пример был приведен выше с Airflow, все примеры кода тестировал с оффициального сайта Airflow и Astronomer
В python много линтеров на любой вкус и цвет, выбирай какой нравится и настраивай под себя.
Но наверное самым жестким является wemake-python-styleguide
У них даже на главной странице заявлено
Welcome to the strictest and most opinionated Python linter ever.
Основным кнтрибьютором проекта является Никита Соболев, у которого есть крутой курс Типизация в Python.
Дата Инженеры не так сильно упарываются в линтеры и CI как бэкендеры, но все чаще это присутсвует в новых проектах.
Посмотрим на примере Airflow и TaskFlow API.
Берем код с сайта Astranomer и запускаем линтер с настройками из коробки.
Если не брать во внимание простые ворнинги типа:
- Q000 Double quotes found but single quotes preferred
- W292 no newline at end of file
То стоит посмотреть на следующий ворниг:
- WPS430 Found nested function: extract_bitcoin_price
@dag(schedule="@daily", start_date=datetime(2021, 12, 1), catchup=False)
def taskflow():
@task(task_id="extract", retries=2)
def extract_bitcoin_price() -> Dict[str, float]:
return requests.get(API).json()["bitcoin"]
Получается, нужно переписывать большую часть дага, чтобы линтеры прошли.
Теперь попробуем традиционный синтаксис написания дага (переключаем вкладку на сайте astronomer на Traditional syntax).
И получаем другой интересный ворнинг:
- WPS428 Found statement that has no effect
extract_bitcoin_price >> process_data >> store_data
Всем знакомый синтаксис обьявления зависимомтей в airflow тоже не проходит линтер.
Получается, чтобы линтеры прошли нужно комбинировать оба варианта синтаксиса в Airflow.
Линтеры безусловно нужны, но нужно понимать, что линтер настраиваится под проект, а не наоборот.
Перед внедрением линтеров в свой проект обязательно обсудити с командой, какие проверки вам необходимы, а от каких можно отказаться.
Хороший пример был приведен выше с Airflow, все примеры кода тестировал с оффициального сайта Airflow и Astronomer
tough-dev.school
Типизация в Python
❤2
CMU Intro to Database System Fall 2024
Университет Карнеги-Меллон (CMU) открывает регистрацию на курс "Введение в системы баз данных" (15-445/645) на осенний семестр 2024 года!
🔍 Что вас ждет:
• Глубокое погружение в мир систем управления базами данных (СУБД)
• Изучение внутренних механизмов работы СУБД
• Практические навыки разработки компонентов для СУБД
📅 Важные даты:
• Начало занятий: 26 августа 2024
• Окончание занятий: 6 декабря 2024
👨🏫 Преподаватель: Andy Pavlo
🏫 Формат: Лекции по понедельникам и средам.
💻 Проект курса: Разработка собственной реляционной СУБД на C++
🔗 Подробности и регистрация:
YouTube курса
Университет Карнеги-Меллон (CMU) открывает регистрацию на курс "Введение в системы баз данных" (15-445/645) на осенний семестр 2024 года!
🔍 Что вас ждет:
• Глубокое погружение в мир систем управления базами данных (СУБД)
• Изучение внутренних механизмов работы СУБД
• Практические навыки разработки компонентов для СУБД
📅 Важные даты:
• Начало занятий: 26 августа 2024
• Окончание занятий: 6 декабря 2024
👨🏫 Преподаватель: Andy Pavlo
🏫 Формат: Лекции по понедельникам и средам.
💻 Проект курса: Разработка собственной реляционной СУБД на C++
🔗 Подробности и регистрация:
YouTube курса
CMU 15-445/645
CMU 15-445/645 :: Intro to Database Systems (Fall 2024)
Yes, this is the premier course at Carnegie Mellon University on the design and implementation of database management systems. Topics include data models (relational, document, key/value), storage models (n-ary, decomposition), query languages (SQL, stored…
🔥1
DevOps interview by Prepare.sh
В Prepare.sh добавили новый раздел "вопросы с интревью DevOps", так же появился раздел с лабами.
В разделе about можно прочитать следующее
Сайт начинался как набор заметок с интревью из FAANG, а теперь ребята планируют сделать edtech платформу.
В Prepare.sh добавили новый раздел "вопросы с интревью DevOps", так же появился раздел с лабами.
В разделе about можно прочитать следующее
We are a small team with a vision to build the world's best EdTech platform.
Сайт начинался как набор заметок с интревью из FAANG, а теперь ребята планируют сделать edtech платформу.
Prepare.sh
Devops Interviews
Practice Devops technical interview questions curated from real tech companies. Includes detailed solutions, conceptual breakdowns, and proven strategies to ace your next interview.
🔥2
onETL
onETL это Python библиотека сделанная МТС, на базе Apache Spark и других open-source инструментов.
Goals:
- Предоставить унифицированные классы для извлечения данных и загрузки данных в различные хранилища.
- Предоставляет API Spark DataFrame для выполнения трансформаций.
- Позволяет выполнять SQL-запросы, а также DDL, DML и вызывать функции/процедуры.
- Поддержка различных стратегий чтения для инкрементной и пакетной обработки данных.
- Предоставляет хуки и плагины для изменения поведения внутренних классов.
onETL это Python библиотека сделанная МТС, на базе Apache Spark и других open-source инструментов.
Goals:
- Предоставить унифицированные классы для извлечения данных и загрузки данных в различные хранилища.
- Предоставляет API Spark DataFrame для выполнения трансформаций.
- Позволяет выполнять SQL-запросы, а также DDL, DML и вызывать функции/процедуры.
- Поддержка различных стратегий чтения для инкрементной и пакетной обработки данных.
- Предоставляет хуки и плагины для изменения поведения внутренних классов.
👍3👎1💩1🏆1
Python Developers Survey 2023
Седьмой ежегодный официальный опрос разработчиков Python, проводимый совместно Python Software Foundation и JetBrains.
Ответы были собраны в ноябре 2023 г. – феврале 2024 г., в них приняли участие более 25 000 разработчиков и энтузиастов Python из почти 200 стран и регионов.
Краткие результаты:
Самым популярным фреймворком остается Flask.
В первую очередь, это связано с тем, что python активно используется в data science/analytics и предпочтительнее использовать легкие Flask/FastApi для создания RESTful API.
Как отмечалось и в прошлогоднем опросе, «Poetry» становится все более популярным. Разрешение конфликтов зависимостей — это одна из функций, которая экономит много времени по сравнению с pip, но он все еще значительно отстает от venv.
Purposes for Using Python
- Data analysis 44%
- Web development 42%
- Machine learning 34%
Frameworks and Libraries
- Flask 33%
- Django 33%
- Requests 30%
Tools for data exploration and processing
- Pandas 77%
- NumPy 72%
- Spark 16%
- Airflow 14%
Python Packaging
- venv 55%
- virtualenv 28%
- poetry 18%
Очень интересный обзор языка и его экосистемы, можно понять в каком направление движется язык и какие технологии актуальны на данный момент.
Седьмой ежегодный официальный опрос разработчиков Python, проводимый совместно Python Software Foundation и JetBrains.
Ответы были собраны в ноябре 2023 г. – феврале 2024 г., в них приняли участие более 25 000 разработчиков и энтузиастов Python из почти 200 стран и регионов.
Краткие результаты:
Самым популярным фреймворком остается Flask.
В первую очередь, это связано с тем, что python активно используется в data science/analytics и предпочтительнее использовать легкие Flask/FastApi для создания RESTful API.
Как отмечалось и в прошлогоднем опросе, «Poetry» становится все более популярным. Разрешение конфликтов зависимостей — это одна из функций, которая экономит много времени по сравнению с pip, но он все еще значительно отстает от venv.
Purposes for Using Python
- Data analysis 44%
- Web development 42%
- Machine learning 34%
Frameworks and Libraries
- Flask 33%
- Django 33%
- Requests 30%
Tools for data exploration and processing
- Pandas 77%
- NumPy 72%
- Spark 16%
- Airflow 14%
Python Packaging
- venv 55%
- virtualenv 28%
- poetry 18%
Очень интересный обзор языка и его экосистемы, можно понять в каком направление движется язык и какие технологии актуальны на данный момент.
JetBrains: Developer Tools for Professionals and Teams
Python Developers Survey 2023 Results
Official Python Developers Survey 2023 Results by Python Software Foundation and JetBrains: more than 25k responses from almost 200 countries.
📊 Дайджест по инженерии данных: август 2024 🚀
Сегодня разберем несколько интересных тем из мира инженерии данных. Поехали! 👇
1️⃣ Удаления в ETL процессах
🔹 Удаление данных - важная, но часто недооцененная часть ETL.
🔹 Основные стратегии:
- Soft delete: пометка записей как удаленных
- Hard delete: физическое удаление из базы
- Архивирование: перемещение в отдельное хранилище
🔹 Выбор зависит от требований к производительности и соответствию нормам.
2️⃣ Как построить небольшое озеро данных (~100 ГБ)?
🔹 Для малых объемов подойдет простое решение:
- S3 или аналог для хранения
- Duckdb для запросов и анализа
- Airflow для оркестрации
🔹 Преимущества: низкая стоимость, простота настройки
🔹 Масштабируемость при росте данных
3️⃣ Создание действительно real-time дашбордов
🔹 Ключевые моменты:
- Использование потоковой обработки (Kafka, Flink)
- In-memory базы данных (Redis)
- WebSocket для мгновенного обновления UI
🔹 Важно: оптимизация запросов и кэширование
4️⃣ Sparkle: модульный ETL от Uber
🔹 Uber представил Sparkle - фреймворк для стандартизации ETL процессов.
- Модульный подход: разделение ETL на независимые компоненты
- Повторное использование кода и упрощение поддержки
- Интеграция с Apache Spark для обработки больших объемов данных
🔹 Преимущества:
- Ускорение разработки ETL пайплайнов
- Улучшение качества данных
- Упрощение масштабирования процессов
🔹 Sparkle демонстрирует тренд на стандартизацию и модульность в крупномасштабных data engineering проектах.
💡 Вывод: мир инженерии данных постоянно развивается. Важно выбирать инструменты и подходы, соответствующие вашим конкретным задачам и масштабам.
Сегодня разберем несколько интересных тем из мира инженерии данных. Поехали! 👇
1️⃣ Удаления в ETL процессах
🔹 Удаление данных - важная, но часто недооцененная часть ETL.
🔹 Основные стратегии:
- Soft delete: пометка записей как удаленных
- Hard delete: физическое удаление из базы
- Архивирование: перемещение в отдельное хранилище
🔹 Выбор зависит от требований к производительности и соответствию нормам.
2️⃣ Как построить небольшое озеро данных (~100 ГБ)?
🔹 Для малых объемов подойдет простое решение:
- S3 или аналог для хранения
- Duckdb для запросов и анализа
- Airflow для оркестрации
🔹 Преимущества: низкая стоимость, простота настройки
🔹 Масштабируемость при росте данных
3️⃣ Создание действительно real-time дашбордов
🔹 Ключевые моменты:
- Использование потоковой обработки (Kafka, Flink)
- In-memory базы данных (Redis)
- WebSocket для мгновенного обновления UI
🔹 Важно: оптимизация запросов и кэширование
4️⃣ Sparkle: модульный ETL от Uber
🔹 Uber представил Sparkle - фреймворк для стандартизации ETL процессов.
- Модульный подход: разделение ETL на независимые компоненты
- Повторное использование кода и упрощение поддержки
- Интеграция с Apache Spark для обработки больших объемов данных
🔹 Преимущества:
- Ускорение разработки ETL пайплайнов
- Улучшение качества данных
- Упрощение масштабирования процессов
🔹 Sparkle демонстрирует тренд на стандартизацию и модульность в крупномасштабных data engineering проектах.
💡 Вывод: мир инженерии данных постоянно развивается. Важно выбирать инструменты и подходы, соответствующие вашим конкретным задачам и масштабам.
Data Engineering Community
Data Engineering Digest, August 2024
Hello Data Engineers,
👍2
Грокаем конкурентнось
Вот и дождался перевода замечательной книги от Кирилла Боброва.
Читал на английском, взял еще на русском в бумаге, очень рекомендую.
И канал Кирилла
Вот и дождался перевода замечательной книги от Кирилла Боброва.
Читал на английском, взял еще на русском в бумаге, очень рекомендую.
И канал Кирилла
❤2
SyncLite
SyncLite— это новаторская платформа репликации CDC для встроенных баз данных, предназначенная для расширения возможностей приложений общего назначения с интенсивным использованием данных, поиска GenAI и приложений RAG для периферийных, настольных и мобильных сред. Он легко интегрируется со встроенными базами данных, такими как SQLite, DuckDB, Apache Derby, H2 Database, HyperSQL (HSQLDB), обеспечивая для них транзакционную репликацию и консолидацию данных в реальном времени. SyncLite Logger эффективно выполняет сбор измененных данных (CDC) из многочисленных экземпляров приложений, созданных на основе встроенных баз данных. Эти созданные файлы журналов синхронизируются с SyncLite Consolidator, который реплицирует и консолидирует их в различных ведущих отраслевых базах данных, хранилищах данных и озерах данных, что позволяет осуществлять глобальную аналитику, поиск GenAI и приложения RAG.
SyncLite— это новаторская платформа репликации CDC для встроенных баз данных, предназначенная для расширения возможностей приложений общего назначения с интенсивным использованием данных, поиска GenAI и приложений RAG для периферийных, настольных и мобильных сред. Он легко интегрируется со встроенными базами данных, такими как SQLite, DuckDB, Apache Derby, H2 Database, HyperSQL (HSQLDB), обеспечивая для них транзакционную репликацию и консолидацию данных в реальном времени. SyncLite Logger эффективно выполняет сбор измененных данных (CDC) из многочисленных экземпляров приложений, созданных на основе встроенных баз данных. Эти созданные файлы журналов синхронизируются с SyncLite Consolidator, который реплицирует и консолидирует их в различных ведущих отраслевых базах данных, хранилищах данных и озерах данных, что позволяет осуществлять глобальную аналитику, поиск GenAI и приложения RAG.
GitHub
GitHub - syncliteio/SyncLite: SyncLite : Build Anything Sync Anywhere
SyncLite : Build Anything Sync Anywhere. Contribute to syncliteio/SyncLite development by creating an account on GitHub.
Forwarded from Data Engineering / Инженерия данных / Data Engineer / DWH
O_Reilly_Конвейеры_данных_2024.pdf
40.8 MB
Конвейеры данных. Карманный справочник 2024
Книга посвящена передовым методам построения конвейеров данных, сбору данных из множества разнообразных источников и преобразованию их для аналитики. Дано введение в конвейеры данных, раскрыта их работа в современном стеке данных. Описаны стандартные шаблоны конвейеров данных. Показан процесс сбора данных от их извлечения до загрузки в хранилище. Затронуты вопросы преобразования и проверки данных, оркестровки конвейеров, методов их обслуживания и мониторинга производительности. Примеры программ написаны на Python и SQL и задействуют множество библиотек с открытым исходным кодом
Книга посвящена передовым методам построения конвейеров данных, сбору данных из множества разнообразных источников и преобразованию их для аналитики. Дано введение в конвейеры данных, раскрыта их работа в современном стеке данных. Описаны стандартные шаблоны конвейеров данных. Показан процесс сбора данных от их извлечения до загрузки в хранилище. Затронуты вопросы преобразования и проверки данных, оркестровки конвейеров, методов их обслуживания и мониторинга производительности. Примеры программ написаны на Python и SQL и задействуют множество библиотек с открытым исходным кодом
👍5
Сегодня поговорим о важном аспекте работы дата-инженера - проектировании пайплайнов данных. Вот несколько ключевых вопросов, которые стоит задать себе перед началом работы:
1️⃣ Цель пайплайна
Определение цели пайплайна - это фундаментальный шаг. Разные цели требуют разных подходов:
- Для телеметрии SpaceX нужна высокая производительность и надежность в реальном времени.
- Статистика посещений приюта для животных может быть менее требовательной к скорости и частоте обновлений.
2️⃣ Объем данных
Объем данных влияет на выбор технологий и архитектуру:
- Малые объемы: можно использовать простые решения, например, DuckDb.
- Средние объемы: подойдут традиционные СУБД, как PostgreSQL или MySQL.
- Большие объемы: потребуются распределенные системы, такие как Hadoop или Spark.
3️⃣ Частота запуска
От частоты запуска зависит выбор между батч-обработкой и стримингом:
- Ежемесячно или еженедельно: подойдет батч-обработка (например, Apache Airflow).
- Ежечасно или чаще: лучше использовать потоковую обработку (Apache Kafka, Apache Flink).
4️⃣ Скорость получения результата
Требования к скорости влияют на архитектуру:
- Реальное время: потребуются in-memory решения, как Apache Ignite или Redis.
- Задержка в минутах: подойдут стриминговые системы, как Apache Kafka Streams.
- Задержка в часах/днях: можно использовать батч-обработку на Hadoop или Spark.
5️⃣ Требуемая точность
Точность влияет на выбор алгоритмов и подходов:
- Высокая точность: потребуется обработка каждой записи, возможно, с использованием транзакций.
- Приближенные результаты: можно применять вероятностные структуры данных (HyperLogLog) или семплирование.
6️⃣ Состав команды
Навыки команды важны при выборе технологий:
- Java-разработчики: Apache Hadoop экосистема может быть предпочтительнее.
- Python-разработчики: лучше подойдут инструменты, как Apache Airflow или Dask.
7️⃣ Бюджет
Финансовые ограничения влияют на выбор инфраструктуры:
- Ограниченный бюджет: open-source решения на собственном оборудовании.
- Большой бюджет: облачные сервисы (AWS, Yandex Cloud) с их управляемыми решениями.
Ответив на эти вопросы, вы сможете сузить выбор до нескольких вариантов, провести тесты и принять окончательное решение. Помните, правильно спроектированный пайплайн - залог эффективной работы с данными!
Удачи в проектировании ваших data-пайплайнов! 🚀📊
#база
1️⃣ Цель пайплайна
Определение цели пайплайна - это фундаментальный шаг. Разные цели требуют разных подходов:
- Для телеметрии SpaceX нужна высокая производительность и надежность в реальном времени.
- Статистика посещений приюта для животных может быть менее требовательной к скорости и частоте обновлений.
2️⃣ Объем данных
Объем данных влияет на выбор технологий и архитектуру:
- Малые объемы: можно использовать простые решения, например, DuckDb.
- Средние объемы: подойдут традиционные СУБД, как PostgreSQL или MySQL.
- Большие объемы: потребуются распределенные системы, такие как Hadoop или Spark.
3️⃣ Частота запуска
От частоты запуска зависит выбор между батч-обработкой и стримингом:
- Ежемесячно или еженедельно: подойдет батч-обработка (например, Apache Airflow).
- Ежечасно или чаще: лучше использовать потоковую обработку (Apache Kafka, Apache Flink).
4️⃣ Скорость получения результата
Требования к скорости влияют на архитектуру:
- Реальное время: потребуются in-memory решения, как Apache Ignite или Redis.
- Задержка в минутах: подойдут стриминговые системы, как Apache Kafka Streams.
- Задержка в часах/днях: можно использовать батч-обработку на Hadoop или Spark.
5️⃣ Требуемая точность
Точность влияет на выбор алгоритмов и подходов:
- Высокая точность: потребуется обработка каждой записи, возможно, с использованием транзакций.
- Приближенные результаты: можно применять вероятностные структуры данных (HyperLogLog) или семплирование.
6️⃣ Состав команды
Навыки команды важны при выборе технологий:
- Java-разработчики: Apache Hadoop экосистема может быть предпочтительнее.
- Python-разработчики: лучше подойдут инструменты, как Apache Airflow или Dask.
7️⃣ Бюджет
Финансовые ограничения влияют на выбор инфраструктуры:
- Ограниченный бюджет: open-source решения на собственном оборудовании.
- Большой бюджет: облачные сервисы (AWS, Yandex Cloud) с их управляемыми решениями.
Ответив на эти вопросы, вы сможете сузить выбор до нескольких вариантов, провести тесты и принять окончательное решение. Помните, правильно спроектированный пайплайн - залог эффективной работы с данными!
Удачи в проектировании ваших data-пайплайнов! 🚀📊
#база
🔥5❤1