🚀 Автоматическое распределение задач ETL в Python с Celery
🔹 Что такое Celery?
Celery - это мощная система распределенных очередей задач, разработанная для асинхронной работы и обработки данных.
🔹 Почему Celery используется в ETL?
ETL задачи иногда требуют значительных ресурсов и времени. Celery позволяет распределить эти задачи между несколькими воркерами, оптимизируя время обработки и увеличивая эффективность системы.
✅ Преимущества Celery:
- ✔ Распределенные задачи: Celery с легкостью распределяет задания по воркерам, что уменьшает время обработки.
- ✔ Асинхронность: Нет необходимости дожидаться завершения предыдущей задачи, что ускоряет ETL процесс.
- ✔ Масштабируемость: В вашей системе может работать столько воркеров, сколько необходимо – просто добавляйте их по мере роста вашего проекта.
- ✔ Устойчивость: Если один из воркеров выйдет из строя, Celery перенаправит задание другому, обеспечивая бесперебойную работу.
- ✔ Персистентность результатов: С Celery вы можете сохранять результаты ваших задач в базу данных или кэш, что упрощает мониторинг их выполнения.
💡 Как это работает?
Вы определяете задачи ETL, а Celery принимает на себя распределение их по рабочим узлам, работающим параллельно. Вы получаете результаты быстрее и можете лучше управлять ресурсами.
🔗 Статья про ETL с помощью Django и Celery
🔗 Работа Celery Worker в Apache Airflow
🔗 Еще немного теории и практики с кодом про Celery
🔹 Что такое Celery?
Celery - это мощная система распределенных очередей задач, разработанная для асинхронной работы и обработки данных.
🔹 Почему Celery используется в ETL?
ETL задачи иногда требуют значительных ресурсов и времени. Celery позволяет распределить эти задачи между несколькими воркерами, оптимизируя время обработки и увеличивая эффективность системы.
✅ Преимущества Celery:
- ✔ Распределенные задачи: Celery с легкостью распределяет задания по воркерам, что уменьшает время обработки.
- ✔ Асинхронность: Нет необходимости дожидаться завершения предыдущей задачи, что ускоряет ETL процесс.
- ✔ Масштабируемость: В вашей системе может работать столько воркеров, сколько необходимо – просто добавляйте их по мере роста вашего проекта.
- ✔ Устойчивость: Если один из воркеров выйдет из строя, Celery перенаправит задание другому, обеспечивая бесперебойную работу.
- ✔ Персистентность результатов: С Celery вы можете сохранять результаты ваших задач в базу данных или кэш, что упрощает мониторинг их выполнения.
💡 Как это работает?
Вы определяете задачи ETL, а Celery принимает на себя распределение их по рабочим узлам, работающим параллельно. Вы получаете результаты быстрее и можете лучше управлять ресурсами.
🔗 Статья про ETL с помощью Django и Celery
🔗 Работа Celery Worker в Apache Airflow
🔗 Еще немного теории и практики с кодом про Celery
🔥4👍1
Радуюсь за каждого своего ученика больше чем за себя 🔥🎉💪
Давайте накидаем 🔥 Дарье за её успех и пожелаем профессионального развития 👩💻
#кейс
Давайте накидаем 🔥 Дарье за её успех и пожелаем профессионального развития 👩💻
#кейс
🔥65🎉9👍3
Подборка курсов по инжинирингу данных
Делюсь ссылками на курсы, которые сам смотрел еще года 3 назад, когда было меньше проблем в мире, в том числе с доступами к сервисам без VPN. Сейчас придется открывать ссылки ниже именно под VPN
Материалы курсов на английском языке
📍IBM Data Engineering Professional Certificate
Набор курсов по Python, SQL, ETL инструментам (Airflow, Kafka, Spark) с теорией и практическими задачами в виде мини-проектов. Можно проходить бесплатно без получения сертификата. Если хотите сертификат, нужно будет заплатить, а также успешно выполнить итоговый проект
📍Data Engineering, Big Data, and Machine Learning on GCP
Набор курсов в виде специализации от Google, обучение технологиям показано на из облачной платформе Google Cloud Platform (GCP). Для тех кто работает/хочет работать в иностранных компаниях - отличный повод изучить сервисы GCP и покрутить их на практических задачах. Также как и в прошлом курсе можно смотреть все бесплатно, а для получения сертификата нужно платить
📍Advance Your Data Engineering Skills
Набор учебных курсов для прокачки работы с Apache Spark, работы с сервисами AWS (Amazon Web Services), подтягивание Python алгоритмов и структур данных. Также есть уроки по Snowflake и даже подготовка к получению сертификата Microsoft Azure Data Engineering (DP-203)
Ставим 👍 если кто-то решил отложить описанные курсы на «потом» и возможно к ним никогда так и не приступит 😉
Делюсь ссылками на курсы, которые сам смотрел еще года 3 назад, когда было меньше проблем в мире, в том числе с доступами к сервисам без VPN. Сейчас придется открывать ссылки ниже именно под VPN
Материалы курсов на английском языке
📍IBM Data Engineering Professional Certificate
Набор курсов по Python, SQL, ETL инструментам (Airflow, Kafka, Spark) с теорией и практическими задачами в виде мини-проектов. Можно проходить бесплатно без получения сертификата. Если хотите сертификат, нужно будет заплатить, а также успешно выполнить итоговый проект
📍Data Engineering, Big Data, and Machine Learning on GCP
Набор курсов в виде специализации от Google, обучение технологиям показано на из облачной платформе Google Cloud Platform (GCP). Для тех кто работает/хочет работать в иностранных компаниях - отличный повод изучить сервисы GCP и покрутить их на практических задачах. Также как и в прошлом курсе можно смотреть все бесплатно, а для получения сертификата нужно платить
📍Advance Your Data Engineering Skills
Набор учебных курсов для прокачки работы с Apache Spark, работы с сервисами AWS (Amazon Web Services), подтягивание Python алгоритмов и структур данных. Также есть уроки по Snowflake и даже подготовка к получению сертификата Microsoft Azure Data Engineering (DP-203)
Ставим 👍 если кто-то решил отложить описанные курсы на «потом» и возможно к ним никогда так и не приступит 😉
👍51😁5❤2🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Хорошо что магазин прямо в доме под крышей и никакая погода не остановит чтобы выйти за вкусняшкой к чаю 😎🧑💻
#люблюудаленку
#люблюудаленку
🔥15❤6
Сегодня начали собесить стажеров в нашу команду, до конца недели ребята уже получат решение по приглашению на стажировку в Сравни 👨💻
Кто пропустил, Сравни запускает летнюю стажировку по направлению аналитики данных и продуктовой аналитике. Вот здесь писал об этом
📍Отличная новость для тех кто еще не подал заявку - старт стажировки сдвигается на 1 июля, чтобы все комфортно могли стартовать после сдачи сессий, дипломов и т.п.
Оставляйте заявку, решайте тестовые задания, и возможно с вами уже скоро начнем работать в одном коллективе 😉
Кто пропустил, Сравни запускает летнюю стажировку по направлению аналитики данных и продуктовой аналитике. Вот здесь писал об этом
📍Отличная новость для тех кто еще не подал заявку - старт стажировки сдвигается на 1 июля, чтобы все комфортно могли стартовать после сдачи сессий, дипломов и т.п.
Оставляйте заявку, решайте тестовые задания, и возможно с вами уже скоро начнем работать в одном коллективе 😉
👍5❤2
Начитаешься таких статей про подключения из одной базы данных в другую и думаешь «а может ETL вообще не нужен 😅»
🔗 dblink для подключение из Postgres к другим БД
🔗 Интеграция Postgres и Hadoop
Все это конечно хорошо, но применение зависит от поставленных задач. Большая часть практических кейсов все равно требует полноценного ETL пайплайна, где не обойтись выполнением запросов к одной БД из другой
🔗 dblink для подключение из Postgres к другим БД
🔗 Интеграция Postgres и Hadoop
Все это конечно хорошо, но применение зависит от поставленных задач. Большая часть практических кейсов все равно требует полноценного ETL пайплайна, где не обойтись выполнением запросов к одной БД из другой
Хабр
Интеграция PostgreSQL с другими СУБД через dblink
Привет, Хабр! Иногда типичная IT‑инфраструктура крупной компании выгляд так: PostgreSQL для аналитики, и Oracle для корпоративных данных, и MySQL для каких‑нибудь микросервисов....
👍6
🔍 ETL с помощью SQL: Инкрементальная загрузка 🔍
✨ В отличие от полной перезагрузки (Full Reload), описанного в этом посте, инкрементальная загрузка перемещает только новые или обновленные данные. Это экономит ресурсы и время, особенно при работе с большими объемами данных.
Давайте поговорим о ключевых этапах этого процесса:
1️⃣ Определение инкремента данных
Инкремент - набор данных, которые нужно загрузить. Он может определяться как набор новых строк в источнике, так и набор строк с обновленными значениями. Для определения инкремента обычно используются поля со смыслом как "дата обновления записи", "дата создания записи" и др. с похожим смыслом, по которым можно сделать выборку нужного инкремента.
Пример выделения инкремента из таблицы source по условию, что поле
2️⃣ Вставка инкремента в target таблицу
Пример запроса может выглядеть так:
Здесь есть нюанс, что в таблицу target попадут все записи инкремента и останутся те, которые были уже в таблице например под одним и тем же id. Таким образом может собираться накопительная историческая таблица, например с продажами. К примеру в таблице target уже была запись по продаже с id = 5 и status = 'buy'. А в новом инкременте из source прилетит обновленная строка с id = 5 и status = 'cancelled'. Таким образом в target будет зафиксирована вся история обновления строк.
Если в target таблице нужно оставить только актуальную версию данных без исторического состояния, такой способ я распишу в одном из следующих постов этой серии.
Оставляйте реакции, если пост был полезен 😉
✨ В отличие от полной перезагрузки (Full Reload), описанного в этом посте, инкрементальная загрузка перемещает только новые или обновленные данные. Это экономит ресурсы и время, особенно при работе с большими объемами данных.
Давайте поговорим о ключевых этапах этого процесса:
1️⃣ Определение инкремента данных
Инкремент - набор данных, которые нужно загрузить. Он может определяться как набор новых строк в источнике, так и набор строк с обновленными значениями. Для определения инкремента обычно используются поля со смыслом как "дата обновления записи", "дата создания записи" и др. с похожим смыслом, по которым можно сделать выборку нужного инкремента.
Пример выделения инкремента из таблицы source по условию, что поле
update_date
имеет сегодняшнюю датуSELECT *
FROM source s
WHERE update_date = CURRENT_DATE()
2️⃣ Вставка инкремента в target таблицу
Пример запроса может выглядеть так:
INSERT INTO target
SELECT *
FROM source s
WHERE update_date = CURRENT_DATE();
Здесь есть нюанс, что в таблицу target попадут все записи инкремента и останутся те, которые были уже в таблице например под одним и тем же id. Таким образом может собираться накопительная историческая таблица, например с продажами. К примеру в таблице target уже была запись по продаже с id = 5 и status = 'buy'. А в новом инкременте из source прилетит обновленная строка с id = 5 и status = 'cancelled'. Таким образом в target будет зафиксирована вся история обновления строк.
Если в target таблице нужно оставить только актуальную версию данных без исторического состояния, такой способ я распишу в одном из следующих постов этой серии.
Оставляйте реакции, если пост был полезен 😉
🔥36❤3👍3
Привет
Я являюсь ментором в Solvery и сейчас мне ребята написали, что сегодня в 19:00 есть отличная возможность пройти moc-собеседование на middle бизнес-аналитика.
Собеседование будет записываться в прямом эфире, для вас это классная возможность потренироваться + добавить в резюме такой публичный опыт 😉
Напишите мне в личку @daniildzheparov кто готов принять участие
Upd: предложение неактуально)
Я являюсь ментором в Solvery и сейчас мне ребята написали, что сегодня в 19:00 есть отличная возможность пройти moc-собеседование на middle бизнес-аналитика.
Собеседование будет записываться в прямом эфире, для вас это классная возможность потренироваться + добавить в резюме такой публичный опыт 😉
Напишите мне в личку @daniildzheparov кто готов принять участие
Upd: предложение неактуально)
Это я получил костюм для эндуро-покатушек и мысленно газую на мотике в нем 😂
Сегодня праздничный день, а значит проведите его с пользой для себя и своего здоровья, пополните силы перед еще 2-мя рабочими днями!
Сегодня праздничный день, а значит проведите его с пользой для себя и своего здоровья, пополните силы перед еще 2-мя рабочими днями!
🔥23❤2😁2
Синдром самозванца
Синдром самозванца - психологический синдром, при котором человек не может реально оценить свои качества и личные достижения. Человеку кажется, что он знает меньше других и не достоин того что сейчас имеет. Это проблема адекватной оценки своих достижений и умений.
Лично у себя я ловлю такие мысли иногда, что я "делаю мало", "знаю недостаточно хорошо", "не заслуживаю чего добился" или "мог бы в свои годы достичь большего".
Знакомо❓
Несколько способов как бороться с этим:
1️⃣ Сравнивайте свое текущее состояние с тем что было 1/2/3 года назад
В моменте может показаться, что вы непродуктивны или двигаетесь не так быстро как хотелось бы. Но если вы сравните себя текущего с собой из прошлого, то скорее всего удивитесь как много вы сделали и достигли за это время.
2️⃣ Спрашивайте обратную связь о себе со стороны
Мы себя видим одним образом, люди со стороны могут видеть вас совсем по-другому. Спросите у своих родственников, друзей, коллег что они думают про вас.
- Как бы они вас описали в нескольких предложения, подчеркнув ваши основные черты
- Какие они видят в вас сильные стороны
- Какие они видят в вас недостатки (увы, они есть у всех, но с ними можно работать 👌)
Вы удивитесь сколько нового можно узнать о себе взглядом других людей со стороны.
3️⃣ Всегда занимайтесь саморазвитием и ставьте перед собой цели
Банально, но это дает гарантию, что вы можете оцифровать свои достижения по явному чек-листу прописанных целей. Достижение цели и проставление заветной галочки done ✅ напротив нее дают вам заряд положительных эмоций и фактическое признание своего достижения.
Это пункты, которые я взял себе на вооружение, вы их тоже можете попробовать 😉
Синдром самозванца - психологический синдром, при котором человек не может реально оценить свои качества и личные достижения. Человеку кажется, что он знает меньше других и не достоин того что сейчас имеет. Это проблема адекватной оценки своих достижений и умений.
Лично у себя я ловлю такие мысли иногда, что я "делаю мало", "знаю недостаточно хорошо", "не заслуживаю чего добился" или "мог бы в свои годы достичь большего".
Знакомо❓
Несколько способов как бороться с этим:
1️⃣ Сравнивайте свое текущее состояние с тем что было 1/2/3 года назад
В моменте может показаться, что вы непродуктивны или двигаетесь не так быстро как хотелось бы. Но если вы сравните себя текущего с собой из прошлого, то скорее всего удивитесь как много вы сделали и достигли за это время.
2️⃣ Спрашивайте обратную связь о себе со стороны
Мы себя видим одним образом, люди со стороны могут видеть вас совсем по-другому. Спросите у своих родственников, друзей, коллег что они думают про вас.
- Как бы они вас описали в нескольких предложения, подчеркнув ваши основные черты
- Какие они видят в вас сильные стороны
- Какие они видят в вас недостатки (увы, они есть у всех, но с ними можно работать 👌)
Вы удивитесь сколько нового можно узнать о себе взглядом других людей со стороны.
3️⃣ Всегда занимайтесь саморазвитием и ставьте перед собой цели
Банально, но это дает гарантию, что вы можете оцифровать свои достижения по явному чек-листу прописанных целей. Достижение цели и проставление заветной галочки done ✅ напротив нее дают вам заряд положительных эмоций и фактическое признание своего достижения.
Это пункты, которые я взял себе на вооружение, вы их тоже можете попробовать 😉
👍24🔥4❤3
This media is not supported in your browser
VIEW IN TELEGRAM
🚀 Исследуем данные с помощью
Сегодня расскажу про инструмент, который вы можете использовать для первичного анализа данных (EDA) и оценки их качества (Data Quality Check) - это библиотека
Этот инструмент позволяет в считанные минуты получить полный отчёт о ваших данных, исследовать их основные характеристики и выявить потенциальные проблемы до глубокого погружения в анализ.
Основные возможности
1. Генерация отчётов
С помощью библиотеки можно быстро подготовить отчет , который включает в себя статистику по каждой переменной, распределения, корреляций, пропущенных значений и многое другое.
2. Оценка качества данных
Этот же отчет поможет обратить внимание на проблемы в ваших данных, такие как пропущенные значения, дубликаты или неоднозначные форматы, что позволит оперативно перейти к очистке данных.
3. Интерактивные визуализации
Можно визуально посмотреть на распределения и корреляции благодаря встроенным графикам и интерактивным элементам.
Как начать работу?
Для начала работы с
После установки загрузите ваш DataFrame и сгенерируйте отчёт в несколько строк кода:
И на выходе вы получаете отчет, который можно просматривать прямо в Юпитер ноутбуках, либо сохранить например в html и
открыть просто в браузере и даже поделиться с коллегами)
🔗 Официальная документация ydata-profiling
ydata-profiling
Сегодня расскажу про инструмент, который вы можете использовать для первичного анализа данных (EDA) и оценки их качества (Data Quality Check) - это библиотека
ydata-profiling
.Этот инструмент позволяет в считанные минуты получить полный отчёт о ваших данных, исследовать их основные характеристики и выявить потенциальные проблемы до глубокого погружения в анализ.
Основные возможности
ydata-profiling
:1. Генерация отчётов
С помощью библиотеки можно быстро подготовить отчет , который включает в себя статистику по каждой переменной, распределения, корреляций, пропущенных значений и многое другое.
2. Оценка качества данных
Этот же отчет поможет обратить внимание на проблемы в ваших данных, такие как пропущенные значения, дубликаты или неоднозначные форматы, что позволит оперативно перейти к очистке данных.
3. Интерактивные визуализации
Можно визуально посмотреть на распределения и корреляции благодаря встроенным графикам и интерактивным элементам.
Как начать работу?
Для начала работы с
ydata-profiling
нужно установить библиотеку, например с помощью pip
:pip install ydata-profiling
После установки загрузите ваш DataFrame и сгенерируйте отчёт в несколько строк кода:
import pandas as pd
from ydata_profiling import ProfileReport
df = pd.read_csv('data.csv')
profile = ProfileReport(df, title="Profiling Report")
И на выходе вы получаете отчет, который можно просматривать прямо в Юпитер ноутбуках, либо сохранить например в html и
открыть просто в браузере и даже поделиться с коллегами)
🔗 Официальная документация ydata-profiling
🔥23👍14❤1
Статья про миграцию Big Data платформы и огромное количество данных 🤯
📍2 года миграции
📍1000+ привлеченных специалистов
📍5 Пб объема данных
Читать статью
📍2 года миграции
📍1000+ привлеченных специалистов
📍5 Пб объема данных
Читать статью
Хабр
Миграция Big Data на практике: как мы готовили напильники
Всем привет, меня зовут Алексей Марьин, я IT-лидер стрима «Озеро данных» в ВТБ. До 2019 года мы активно и вполне успешно использовали для анализа и обработки больших данных продукт Oracle Big Data...
👍7🔥4❤1
Классная статья, в которой можно посмотреть устройство хранилища данных по слоям хранения.
Расписаны виды источников данных и даже применяемые SCD типы для загрузки данных 👍
Кто задается вопрос «что это такое ваше DWH и почему придумали новое название для базы данных» - вам обязательно к прочтению 😉
Статья начала 2022 года, видно что описанный стэк технологий явно неактуален. Думаю ребята уже съехали как минимум с Oracle (в конце написано что в планах был переезд на Greenplum), SAP Business Objects и Power BI тоже скорее всего чем-то заменены.
Читать статью
Расписаны виды источников данных и даже применяемые SCD типы для загрузки данных 👍
Кто задается вопрос «что это такое ваше DWH и почему придумали новое название для базы данных» - вам обязательно к прочтению 😉
Статья начала 2022 года, видно что описанный стэк технологий явно неактуален. Думаю ребята уже съехали как минимум с Oracle (в конце написано что в планах был переезд на Greenplum), SAP Business Objects и Power BI тоже скорее всего чем-то заменены.
Читать статью
🔥7👍2
Бесконечно можно радоваться 3 вещам:
1. Когда светит солнышко ☀️
2. Когда твои ученики находят работу 💼
3. Когда твои посты читают и обсуждают в проф. сообществах 🧑💻
Вообще сегодня отличное настроение, жена сдала госы и защитила красный диплом 📕👩🎓 В медицинском ВУЗе!!! Это вам не аналитике учиться, у них там думать и зубрить кучу материала нужно 😃
Пытаюсь сейчас ее переманить в аналитику или в IT в целом, она говорит смотря на мои открытые экраны со скриптами, что «более скучную работу чем у тебя я не видела» 😅 Вот так, каждому свой выбор)
#кейс
1. Когда светит солнышко ☀️
2. Когда твои ученики находят работу 💼
3. Когда твои посты читают и обсуждают в проф. сообществах 🧑💻
Вообще сегодня отличное настроение, жена сдала госы и защитила красный диплом 📕👩🎓 В медицинском ВУЗе!!! Это вам не аналитике учиться, у них там думать и зубрить кучу материала нужно 😃
Пытаюсь сейчас ее переманить в аналитику или в IT в целом, она говорит смотря на мои открытые экраны со скриптами, что «более скучную работу чем у тебя я не видела» 😅 Вот так, каждому свой выбор)
#кейс
❤16👍6🔥4
Лучшие вопросы средней сложности по SQL на собеседовании аналитика данных
Хорошая статья для повторения тем по SQL перед собеседованием
Статья
Хорошая статья для повторения тем по SQL перед собеседованием
Статья
Хабр
Лучшие вопросы средней сложности по SQL на собеседовании аналитика данных
Первые 70% курса по SQL кажутся довольно простыми. Сложности начинаются на остальных 30%. С 2015 по 2019 годы я прошёл четыре цикла собеседований на должность аналитика данных и специалиста по...
👍12❤5🔥5
Открепляю сообщени о стажировке в Сравни
Мы набрали стажеров, по впечатлениям от собесов все ребята мотивированы погружаться с головой в аналитические задачи. В понедельник поедем знакомиться в офис, делать онбординг и есть пиццу 😉🍕
Мы набрали стажеров, по впечатлениям от собесов все ребята мотивированы погружаться с головой в аналитические задачи. В понедельник поедем знакомиться в офис, делать онбординг и есть пиццу 😉🍕
🔥24❤6
Методология DataOps
Слышали ли вы про понятие DataOps?
Если нет, то сейчас разберем вместе, что оно обозначает.
🔎 DataOps - это методология и набор практик непрерывной интеграции данных, автоматизации и мониторинга управления данными в течение всего их жизненного цикла.
Какие задачи входят в DataOps?
📍автоматизация процессов загрузки данных в хранилища
📍мониторинг операционных потоков данных
📍оптимизация аналитики данных
📍создание инфраструктуры для корректного хранения, движения и использования данных
Полезные ссылки для погружения в тему:
🔗 DataOps Wikipedia
🔗 Концепция DataOps
🔗 DataOps в Big Data
🔗 What is DataOps
Слышали ли вы про понятие DataOps?
Если нет, то сейчас разберем вместе, что оно обозначает.
🔎 DataOps - это методология и набор практик непрерывной интеграции данных, автоматизации и мониторинга управления данными в течение всего их жизненного цикла.
Какие задачи входят в DataOps?
📍автоматизация процессов загрузки данных в хранилища
📍мониторинг операционных потоков данных
📍оптимизация аналитики данных
📍создание инфраструктуры для корректного хранения, движения и использования данных
Полезные ссылки для погружения в тему:
🔗 DataOps Wikipedia
🔗 Концепция DataOps
🔗 DataOps в Big Data
🔗 What is DataOps
🔥9👍3