#путь_de
🔥 2 недели учебы по программе Apache Spark позади! 🚀
За это время я узнал множество интересных и полезных вещей о Spark — мощном инструменте для работы с большими данными. Делюсь основными тезисами:
🔹 Spark — это больше, чем просто ETL-инструмент. Это полноценный фреймворк для обработки распределенных данных, который позволяет работать с огромными объемами информации и выполнять сложные вычислительные задачи.
🔹 Несмотря на частые упоминания Hadoop рядом со Spark, они не зависят друг от друга. Hadoop часто используется в качестве хранилища данных (HDFS), но Spark может работать с различными источниками данных и не требует Hadoop для своей работы.
🔹 HDFS не умеет выполнять операции объединения файлов (join и т.д.). Чтобы получить абстракции над файлами, такими как паркеты, и выполнять операции объединения, необходимо использовать Spark или другие инструменты.
🔹 Spark можно развернуть локально, в Kubernetes, YARN. Он также может работать с файловой системой обычного ПК, что делает его очень гибким и универсальным инструментом для обработки данных.
🔹 В Spark можно работать через DataFrames и Spark SQL. По сути, это два подхода к одной и той же задаче, и разницы в скорости выполнения между ними нет. Единственное отличие — при использовании Spark SQL сначала работает парсер, который разбивает SQL-запрос на составные части, а затем запрос обрабатывается так же, как и при использовании DataFrames.
🔹 Scala — язык программирования, используемый для интерпретации приложений Spark. Он позволяет получать исходный код и управлять работой Spark-приложений. Но стоит отметить, что Scala довольно сложен для понимания, особенно если это ваш первый язык программирования. Читается он сложнее Python, но писать на нем можно короче и компактнее!
Кроме того, мы провели лабораторную работу по считыванию данных из файла, их обработке и записи в JSON. Было довольно интересно погрузиться в практическое применение этих знаний! 🔍📊
Эти две недели дали мне отличное понимание того, как эффективно использовать Spark в проектах по обработке больших данных. Впереди еще много интересного!
🔥 2 недели учебы по программе Apache Spark позади! 🚀
За это время я узнал множество интересных и полезных вещей о Spark — мощном инструменте для работы с большими данными. Делюсь основными тезисами:
🔹 Spark — это больше, чем просто ETL-инструмент. Это полноценный фреймворк для обработки распределенных данных, который позволяет работать с огромными объемами информации и выполнять сложные вычислительные задачи.
🔹 Несмотря на частые упоминания Hadoop рядом со Spark, они не зависят друг от друга. Hadoop часто используется в качестве хранилища данных (HDFS), но Spark может работать с различными источниками данных и не требует Hadoop для своей работы.
🔹 HDFS не умеет выполнять операции объединения файлов (join и т.д.). Чтобы получить абстракции над файлами, такими как паркеты, и выполнять операции объединения, необходимо использовать Spark или другие инструменты.
🔹 Spark можно развернуть локально, в Kubernetes, YARN. Он также может работать с файловой системой обычного ПК, что делает его очень гибким и универсальным инструментом для обработки данных.
🔹 В Spark можно работать через DataFrames и Spark SQL. По сути, это два подхода к одной и той же задаче, и разницы в скорости выполнения между ними нет. Единственное отличие — при использовании Spark SQL сначала работает парсер, который разбивает SQL-запрос на составные части, а затем запрос обрабатывается так же, как и при использовании DataFrames.
🔹 Scala — язык программирования, используемый для интерпретации приложений Spark. Он позволяет получать исходный код и управлять работой Spark-приложений. Но стоит отметить, что Scala довольно сложен для понимания, особенно если это ваш первый язык программирования. Читается он сложнее Python, но писать на нем можно короче и компактнее!
Кроме того, мы провели лабораторную работу по считыванию данных из файла, их обработке и записи в JSON. Было довольно интересно погрузиться в практическое применение этих знаний! 🔍📊
Эти две недели дали мне отличное понимание того, как эффективно использовать Spark в проектах по обработке больших данных. Впереди еще много интересного!
🔥12👍3🤯2🤓1
Теперь вы сможете легко находить нужные посты без необходимости утомительно пролистывать ленту вверх.
Изначально я рассматривал вариант с Notion, но, учитывая слухи о возможной блокировке сервиса в России с 9 сентября, решил перейти на более надежный вариант. GitHub доступен и удобен для всех, кто хочет иметь под рукой всю информацию.
В репозитории я собрал все ссылки на посты, рассортировал их по категориям, так что вам будет проще ориентироваться. 📚✨
Репозиторий постепенно буду наполнять полезным контентом.
Переходите по ссылке, добавляйте в закладки и пользуйтесь: https://github.com/dim4eg91/DataEngineering/tree/main
Спасибо, что остаетесь со мной!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍4👏2
Кто опробовал, насколько удобная навигация по репозиторию?
Anonymous Poll
93%
😀 все понятно, удобно
0%
🙂 хорошо, но не сразу разобрался
0%
🤔 структуру нужно причесать
0%
😧 разобрался только с 10й попытки
7%
😰 ничего не понятно, куда я попав
#база_знаний
#путь_de
🛤️ Хочу вам рассказать про несколько направлений работы Data engineer, каждое из которых требует специфических навыков и инструментов. В зависимости от задач и целей компании, обязанности инженера данных могут варьироваться.
Общая картина примерно такая:
1️⃣ Проектирование и разработка ETL/ELT процессов
* Основные задачи:
Сбор данных из различных источников: базы данных, API, файлы, сторонние сервисы и т.д.
Трансформация данных в нужный формат для последующего анализа.
Загрузка данных в хранилища данных или аналитические системы.
Рабочие инструменты:
* ETL/ELT платформы:
Apache NiFi, Talend, Apache Airflow, AWS Glue.
Языки программирования: Python, SQL, Java.
Системы хранения данных: Amazon S3, Google Cloud Storage, Hadoop.
* Подготовка:
Знание SQL и одного из языков программирования (например, Python).
Опыт работы с базами данных и понимание принципов ETL/ELT процессов.
Курсы и тренинги по основам работы с данными и использованием ETL инструментов.
2️⃣ Управление данными и их качеством
* Основные задачи:
Проверка качества данных: валидация и очистка данных от ошибок, дубликатов и некорректных значений.
Организация хранения данных: создание схем и моделей данных для эффективного хранения.
Мониторинг данных: настройка алертов и автоматизированных проверок для выявления проблем с качеством данных.
Рабочие инструменты:
* Системы мониторинга данных:
Great Expectations, dbt (data build tool), Apache Atlas.
Инструменты работы с базами данных: PostgreSQL, MySQL, Oracle, Microsoft SQL Server.
* Подготовка:
Понимание принципов нормализации данных и реляционных баз данных.
Опыт работы с SQL для написания сложных запросов и выполнения операций с данными.
Курсы по Data Governance и Data Quality Management.
3️⃣ Работа с большими данными (Big Data)
* Основные задачи:
Обработка больших объемов данных в распределенных системах.
Оптимизация производительности при работе с большими данными.
Обеспечение надежности и отказоустойчивости систем обработки данных.
* Рабочие инструменты:
Big Data платформы: Apache Hadoop, Apache Spark, Google BigQuery.
Инструменты распределенного хранения данных: Apache HBase, Cassandra, Amazon Redshift.
Языки программирования: Scala, Java, Python.
* Подготовка:
Знание принципов распределенных вычислений и архитектуры Big Data.
Опыт работы с инструментами для обработки больших данных (например, Apache Spark).
Специализированные курсы по Big Data и Hadoop/Spark.
4️⃣ Создание и управление хранилищами данных
* Основные задачи:
Проектирование архитектуры хранилища данных (Data Warehouse) для организации хранения данных из разных источников.
Интеграция данных из множества систем в единую модель данных.
Оптимизация запросов и поддержка аналитической нагрузки.
Рабочие инструменты:
* Платформы для хранилищ данных:
Snowflake, Amazon Redshift, Google BigQuery, Microsoft Azure Synapse, Greenplum
Языки запросов и скриптов: SQL, PL/SQL, T-SQL.
* Подготовка:
Понимание архитектуры хранилищ данных и методов их проектирования.
Опыт работы с системами управления базами данных (СУБД) и написания SQL запросов.
Курсы по Data Warehousing и Advanced SQL.
5️⃣ Работа с потоками данных (Streaming Data)
* Основные задачи:
Организация и управление потоками данных в реальном времени.
Обработка событий в потоках данных с минимальными задержками.
Интеграция потоковых данных с различными аналитическими и операционными системами.
Рабочие инструменты:
* Платформы для потоковой обработки данных:
Apache Kafka, Apache Flink, Apache Pulsar, AWS Kinesis.
Языки программирования и фреймворки: Python, Java, Kafka Streams, Apache Beam.
* Подготовка:
Знание принципов потоковой обработки данных и работы с платформами, такими как Apache Kafka.
Опыт написания программ для обработки данных в реальном времени.
Курсы по Stream Processing и Data Engineering.
*️⃣ "Что конкретно учить" зависит от того:
- что лично вам интересно
- что требуется на той вакансии, на которую вы хотите устроиться.
Дополняйте список в комметах 😉
#путь_de
🛤️ Хочу вам рассказать про несколько направлений работы Data engineer, каждое из которых требует специфических навыков и инструментов. В зависимости от задач и целей компании, обязанности инженера данных могут варьироваться.
Общая картина примерно такая:
* Основные задачи:
Сбор данных из различных источников: базы данных, API, файлы, сторонние сервисы и т.д.
Трансформация данных в нужный формат для последующего анализа.
Загрузка данных в хранилища данных или аналитические системы.
Рабочие инструменты:
* ETL/ELT платформы:
Apache NiFi, Talend, Apache Airflow, AWS Glue.
Языки программирования: Python, SQL, Java.
Системы хранения данных: Amazon S3, Google Cloud Storage, Hadoop.
* Подготовка:
Знание SQL и одного из языков программирования (например, Python).
Опыт работы с базами данных и понимание принципов ETL/ELT процессов.
Курсы и тренинги по основам работы с данными и использованием ETL инструментов.
* Основные задачи:
Проверка качества данных: валидация и очистка данных от ошибок, дубликатов и некорректных значений.
Организация хранения данных: создание схем и моделей данных для эффективного хранения.
Мониторинг данных: настройка алертов и автоматизированных проверок для выявления проблем с качеством данных.
Рабочие инструменты:
* Системы мониторинга данных:
Great Expectations, dbt (data build tool), Apache Atlas.
Инструменты работы с базами данных: PostgreSQL, MySQL, Oracle, Microsoft SQL Server.
* Подготовка:
Понимание принципов нормализации данных и реляционных баз данных.
Опыт работы с SQL для написания сложных запросов и выполнения операций с данными.
Курсы по Data Governance и Data Quality Management.
* Основные задачи:
Обработка больших объемов данных в распределенных системах.
Оптимизация производительности при работе с большими данными.
Обеспечение надежности и отказоустойчивости систем обработки данных.
* Рабочие инструменты:
Big Data платформы: Apache Hadoop, Apache Spark, Google BigQuery.
Инструменты распределенного хранения данных: Apache HBase, Cassandra, Amazon Redshift.
Языки программирования: Scala, Java, Python.
* Подготовка:
Знание принципов распределенных вычислений и архитектуры Big Data.
Опыт работы с инструментами для обработки больших данных (например, Apache Spark).
Специализированные курсы по Big Data и Hadoop/Spark.
* Основные задачи:
Проектирование архитектуры хранилища данных (Data Warehouse) для организации хранения данных из разных источников.
Интеграция данных из множества систем в единую модель данных.
Оптимизация запросов и поддержка аналитической нагрузки.
Рабочие инструменты:
* Платформы для хранилищ данных:
Snowflake, Amazon Redshift, Google BigQuery, Microsoft Azure Synapse, Greenplum
Языки запросов и скриптов: SQL, PL/SQL, T-SQL.
* Подготовка:
Понимание архитектуры хранилищ данных и методов их проектирования.
Опыт работы с системами управления базами данных (СУБД) и написания SQL запросов.
Курсы по Data Warehousing и Advanced SQL.
* Основные задачи:
Организация и управление потоками данных в реальном времени.
Обработка событий в потоках данных с минимальными задержками.
Интеграция потоковых данных с различными аналитическими и операционными системами.
Рабочие инструменты:
* Платформы для потоковой обработки данных:
Apache Kafka, Apache Flink, Apache Pulsar, AWS Kinesis.
Языки программирования и фреймворки: Python, Java, Kafka Streams, Apache Beam.
* Подготовка:
Знание принципов потоковой обработки данных и работы с платформами, такими как Apache Kafka.
Опыт написания программ для обработки данных в реальном времени.
Курсы по Stream Processing и Data Engineering.
- что лично вам интересно
- что требуется на той вакансии, на которую вы хотите устроиться.
Дополняйте список в комметах 😉
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥4🤝3❤2✍1
Нас уже 200! Спасибо каждому за вашу поддержку и активность, впереди ещё больше интересного! 🎉
С пятницей и хороших выходных!
С пятницей и хороших выходных!
❤16🔥4🎉3👏2
#кейсы
🔀 На днях столкнулся с реальной необходимостью использовать cross join в одном из своих проектов. Иногда, когда нужно перемножить все возможные комбинации данных из двух таблиц, без этого не обойтись.
Хочу поделиться с вами полезной статьей на эту тему. Этот пример можно использовать и в Spark, и в БД, а также привести его как пример использования метода на собесе.
Если вам тоже приходилось решать такие задачи, напишите, как справились!
🔀 На днях столкнулся с реальной необходимостью использовать cross join в одном из своих проектов. Иногда, когда нужно перемножить все возможные комбинации данных из двух таблиц, без этого не обойтись.
Хочу поделиться с вами полезной статьей на эту тему. Этот пример можно использовать и в Spark, и в БД, а также привести его как пример использования метода на собесе.
Если вам тоже приходилось решать такие задачи, напишите, как справились!
👍6🔥4❤3
🎉 Коллеги, не могу не поздравить вас с днем программиста) поэтому с профессиональным праздником, даже если вы только начинаете этот путь!
🎙 Вчера был на конференции Arch.Meetup по архитектуре данных. Очень понравился доклад ребят из Сбера. Чуть позже поделюсь с вами тезисами темы их выступления.
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉10👍6👏3
Запись эфира
Из того, чем интересно поделиться. Последние спикеры, ребята из Сбера, рассказывали о:
- возможности внедрения AI агентов для помощи DE
- улучшении качества данных для взаимодействия AI и DE
Сейчас 30% работы DE - это поиск необходимых бизнес смыслов среди множества таблиц, их склейка и получение истины.
Если в текущих реалиях попросить AI найти данные по клиенту, то скорее всего на выходе будешь чушь.
Внедрение AI для улучшения качества данных - то, над чем работают ребята.
🔹Какие роли и задачи может решать AI агент?
Виртуальный DE - подготовка данных:
- поиск данных
- генерация SQL или программного кода
- получение данных и конвертирование в нужный формат
Виртуальный DA - проверка гипотезы и подготовка отчета:
- прогнозирование
- построение визуализации
- получение инсайта
- возврат его клиенту в нужное время
🔹Какие проблемы встают перед Виртуальным DE?
- поиск нужной системы и места хранения нужной информации
- определение верного ключа клиента или договора
- определение способа выхода с клиента на договор
🔹Постановка задачи
1. Внедрение архитектурного фреймворка, позволяющего правильно инвентаризировать все данные.
2. Внедрение правил проектирования, позволяющие эффективно связывать данные между собой.
🔹Для выполнения этой задачи ребята используют идеи из предметно - ориентированного проектирования:
1. Выделяются предметные области (например, расчет ЗП, управление рабочим временем, кадровое администрирование)
2. Определяются сущности предметных областей
- границы контекста определяют границы модели
- моделируются все объекты, использующиеся на уровне процессов и продуктов
- разделяются сущности на "свой" и "чужой"
3. Формируется карта контекстов (для "чужих" обязательно указываются связи с источниками, т.е. сохраняются первичные ключи из других систем)
🔹Итог такого подхода
1. Все данные закреплены за своим объектом управления
2. Доступ к данным обеспечивается через контракты API\DataAPI
3. Требования доступов закладываются при проектировании систем
4. Сохранена автономность команд и масштабируемость ландшафта
Сейчас примерно на 100 команд в Сбере тиражирован новый подход. Он нативен, т.е. не отторгается командами. Происходит разделение предметных областей.
Весь подход про автоматизацию рутины Data engineer'а через доработку архитектуры.
В конечном счете LLM (языковая модель, как AI агент) сможет точечно находить нужные бизнес данные. Вот такие изменения могут быть уже в ближайшем будущем в контексте DE и AI.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥3🤔2
#путь_de
#курсы
🚀 Завершились очередные 2 недели хардового обучения по Scala Spark. Честно говоря, я не был готов к такому темпу. (Пост_1, пост_2)
⚙️ Идет очень сложно, но вполне посильно — где-то 80% нового материала приходится осваивать на ходу.
📚 За это время успел выполнить 3 лабораторные из 10, и держусь на 3-м месте в потоке из 30 человек! 💪
💻 Самое крутое — собрал свой первый проект на Scala! Параллельно качаю навыки работы с терминалом.
Что уже сделал:
Лаба 1 — Расчет рейтингов фильмов. Первая встреча с реальной обработкой данных на этом языке!
Лаба 2 — Поиск сайтов, релевантных определенной группе пользователей. Много работы с фильтрацией и логикой обработки данных.
Лаба 3 — Создание витрины данных из различных источников (файлы, NoSQL, реляционные БД). Настоящий бой со множеством источников данных и их интеграцией.
📈 Постепенно двигаюсь вперед, каждый проект прокачивает скиллы работы с данными и инструментами Spark.
🔥 Впереди еще много работы, но мотивация на максимум!
#курсы
🚀 Завершились очередные 2 недели хардового обучения по Scala Spark. Честно говоря, я не был готов к такому темпу. (Пост_1, пост_2)
⚙️ Идет очень сложно, но вполне посильно — где-то 80% нового материала приходится осваивать на ходу.
📚 За это время успел выполнить 3 лабораторные из 10, и держусь на 3-м месте в потоке из 30 человек! 💪
💻 Самое крутое — собрал свой первый проект на Scala! Параллельно качаю навыки работы с терминалом.
Что уже сделал:
Лаба 1 — Расчет рейтингов фильмов. Первая встреча с реальной обработкой данных на этом языке!
Лаба 2 — Поиск сайтов, релевантных определенной группе пользователей. Много работы с фильтрацией и логикой обработки данных.
Лаба 3 — Создание витрины данных из различных источников (файлы, NoSQL, реляционные БД). Настоящий бой со множеством источников данных и их интеграцией.
📈 Постепенно двигаюсь вперед, каждый проект прокачивает скиллы работы с данными и инструментами Spark.
🔥 Впереди еще много работы, но мотивация на максимум!
🔥12👏3👍2
#база_знаний
🟢 Greenplum: платформа для больших данных
Друзья, привет! В последнее время я часто вижу требование знания MPP Greenplum в вакансиях инженеров данных, и мне хочется чуть подробнее осветить эту СУБД. Она используется в проектах с большими данными, и на нее точно стоит обратить внимание. Вот краткое описание ее возможностей.
🌟 Чем Greenplum хорош?
* Масштабируемость: Greenplum легко растет вместе с вами. Если вы хотите обрабатывать данные на нескольких серверах, она без проблем с этим справится! От небольших кластеров до сотен узлов.
* Параллельная обработка: Greenplum использует MPP (massively parallel processing), что позволяет одновременно обрабатывать множество задач. Это заметно ускоряет работу с большими наборами данных.
* Знакомый SQL: вам не придется учить новый язык для работы с Greenplum. Он поддерживает стандартный SQL, что облегчает интеграцию с уже существующими системами.
* Интеграция с Hadoop: если данные хранятся в Hadoop, Greenplum легко интегрируется с этой экосистемой и расширяет возможности аналитики.
* Аналитика в реальном времени: можно анализировать данные на лету, Greenplum легко с этим справляется.
🔧 Где используется Greenplum?
* Хранение и обработка исторических данных
* Построение систем бизнес-аналитики (BI)
* Работа с моделями машинного обучения
* Интеграция с потоками данных, например, из Kafka
🎯 Вакансии и востребованность Greenplum
* Greenplum часто упоминается в вакансиях для инженеров данных, аналитиков и разработчиков, особенно когда речь идет о работе с системами на базе MPP.
* Компании ищут специалистов, которые умеют работать с большими объемами данных и распределенными системами.
* Знание Greenplum может стать вашим большим преимуществом на рынке труда.
🛠 Кому подойдет Greenplum?
* Инженерам данных, работающим с большими наборами данных
* Специалистам BI, которые создают отчеты и проводят аналитику
* Разработчикам, желающим ускорить сложные аналитические запросы
📐 Архитектура Greenplum: как это работает?
* Master Node – главный узел, который управляет запросами и распределяет их по сегментам для обработки.
* Segment Nodes – это узлы, которые хранят и обрабатывают часть данных. За счет этого достигается параллельная обработка и высокая производительность.
* Interconnect – это сеть, которая связывает мастер-узел и сегментные узлы, обеспечивая быструю передачу данных между ними.
Благодаря такой архитектуре Greenplum довольно легко справляется с большими объемами данных, обрабатывая их быстрее, чем традиционные СУБД.
Пара ссылок:
1) Более развернуто про Greenplum здесь.
2) Официальные Greenplum Tutorials на английской, но в целом все понятно, рекомендую к прослушиванию.
🟢 Greenplum: платформа для больших данных
Друзья, привет! В последнее время я часто вижу требование знания MPP Greenplum в вакансиях инженеров данных, и мне хочется чуть подробнее осветить эту СУБД. Она используется в проектах с большими данными, и на нее точно стоит обратить внимание. Вот краткое описание ее возможностей.
🌟 Чем Greenplum хорош?
* Масштабируемость: Greenplum легко растет вместе с вами. Если вы хотите обрабатывать данные на нескольких серверах, она без проблем с этим справится! От небольших кластеров до сотен узлов.
* Параллельная обработка: Greenplum использует MPP (massively parallel processing), что позволяет одновременно обрабатывать множество задач. Это заметно ускоряет работу с большими наборами данных.
* Знакомый SQL: вам не придется учить новый язык для работы с Greenplum. Он поддерживает стандартный SQL, что облегчает интеграцию с уже существующими системами.
* Интеграция с Hadoop: если данные хранятся в Hadoop, Greenplum легко интегрируется с этой экосистемой и расширяет возможности аналитики.
* Аналитика в реальном времени: можно анализировать данные на лету, Greenplum легко с этим справляется.
🔧 Где используется Greenplum?
* Хранение и обработка исторических данных
* Построение систем бизнес-аналитики (BI)
* Работа с моделями машинного обучения
* Интеграция с потоками данных, например, из Kafka
🎯 Вакансии и востребованность Greenplum
* Greenplum часто упоминается в вакансиях для инженеров данных, аналитиков и разработчиков, особенно когда речь идет о работе с системами на базе MPP.
* Компании ищут специалистов, которые умеют работать с большими объемами данных и распределенными системами.
* Знание Greenplum может стать вашим большим преимуществом на рынке труда.
🛠 Кому подойдет Greenplum?
* Инженерам данных, работающим с большими наборами данных
* Специалистам BI, которые создают отчеты и проводят аналитику
* Разработчикам, желающим ускорить сложные аналитические запросы
📐 Архитектура Greenplum: как это работает?
* Master Node – главный узел, который управляет запросами и распределяет их по сегментам для обработки.
* Segment Nodes – это узлы, которые хранят и обрабатывают часть данных. За счет этого достигается параллельная обработка и высокая производительность.
* Interconnect – это сеть, которая связывает мастер-узел и сегментные узлы, обеспечивая быструю передачу данных между ними.
Благодаря такой архитектуре Greenplum довольно легко справляется с большими объемами данных, обрабатывая их быстрее, чем традиционные СУБД.
Пара ссылок:
1) Более развернуто про Greenplum здесь.
2) Официальные Greenplum Tutorials на английской, но в целом все понятно, рекомендую к прослушиванию.
Medium
Зелено — не молодо: как устроена MPP-СУБД Greenplum
В этом материале рассмотрим реализацию массово-параллельной архитектуры для хранения и аналитической обработки больших данных на примере популярной Big Data СУБД Greenplum. Прочитав эту статью, вы…
🔥11👍6🤔1
#путь_de
❓ Интересно, у кого-нибудь есть опыт разработки аналитического хранилища с нуля, в виде пет-проектов? От архитектуры до инструментов.
Возможные компоненты:
* оркестратор для джобов
* БД или озеро для хранения таргетов
* витрины, как лицо dwh
* BI для визуализации
Разворачивание в облаке / на отдельном сервере.
Загрузка таргетов может быть сразу в витрины или бд / озеро.
Объем данных небольшой - возможно, инкрементальная загрузка с сайтов или иное.
▶️ Поделитесь пожалуйста опытом, думаю, многим будет интересно.
Возможные компоненты:
* оркестратор для джобов
* БД или озеро для хранения таргетов
* витрины, как лицо dwh
* BI для визуализации
Разворачивание в облаке / на отдельном сервере.
Загрузка таргетов может быть сразу в витрины или бд / озеро.
Объем данных небольшой - возможно, инкрементальная загрузка с сайтов или иное.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🤔3🤝3❤2
#путь_de
#курсы
🎉 Завершена 6-я неделя обучения!
Подвожу итоги:
✅ Лабораторная 4 завершена — научился читать данные из Kafka и записывать их в формат JSON на HDFS. Но с Kafka еще нужно углубленно поразбираться.
🔄 Работа над Лабораторной 5 в разгаре — продолжаю то, что начал в Лабе 4: читаю JSON, строю матрицу "клиенты — действия", провожу агрегацию данных и записываю их в Parquet с возможностью дозаписи. Очень круто видеть, как все данные связываются воедино. В этом ребята из Newprolab молодцы - делают сквозные проекты.
💻 Навигация и управление в terminal на HDFS стали намного легче — теперь увереннее перемещаюсь по файловой системе, запускаю bash-скрипты и управляю процессами. Обилие практики действительно помогает!
⚙️ Упаковка Scala проектов и работа с jar-файлами — освоил, как правильно упаковывать Scala-код, собирать jar-файлы и запускать их на кластере. Теперь мне становится понятна эта магия.
Две недели были очень продуктивными. С пятницей, друзья, и предстоящей еженедельной перезагрузкой!
#курсы
🎉 Завершена 6-я неделя обучения!
Подвожу итоги:
✅ Лабораторная 4 завершена — научился читать данные из Kafka и записывать их в формат JSON на HDFS. Но с Kafka еще нужно углубленно поразбираться.
🔄 Работа над Лабораторной 5 в разгаре — продолжаю то, что начал в Лабе 4: читаю JSON, строю матрицу "клиенты — действия", провожу агрегацию данных и записываю их в Parquet с возможностью дозаписи. Очень круто видеть, как все данные связываются воедино. В этом ребята из Newprolab молодцы - делают сквозные проекты.
💻 Навигация и управление в terminal на HDFS стали намного легче — теперь увереннее перемещаюсь по файловой системе, запускаю bash-скрипты и управляю процессами. Обилие практики действительно помогает!
⚙️ Упаковка Scala проектов и работа с jar-файлами — освоил, как правильно упаковывать Scala-код, собирать jar-файлы и запускать их на кластере. Теперь мне становится понятна эта магия.
Две недели были очень продуктивными. С пятницей, друзья, и предстоящей еженедельной перезагрузкой!
👍6🔥3🤓3
Media is too big
VIEW IN TELEGRAM
Сегодня у меня небольшой личный праздник — ровно полгода в роли Data Engineer! 🎉
За это время я осознал, что наконец-то нашел то, чем действительно горю, что приносит мне не только профессиональный рост, но и настоящее удовольствие.
Если и есть что-то важное, чему я научился за этот период, так это слушать свое сердце. Оно всегда знает, где вы можете раскрыться на 100% и чем стоит заниматься, чтобы быть в гармонии с собой.
Не бойтесь перемен и не держитесь за то, что делает вас несчастными — будь то текущее положение дел, обстоятельства или даже начальство. Если чувствуете, что ситуация не приносит вам радости или роста, делайте шаг вперед, к своей мечте.
Ваш путь — только ваш. Идите по нему с уверенностью, даже если сейчас он кажется неясным или сложным.
Верьте в себя и двигайтесь вперед! 🚀
За это время я осознал, что наконец-то нашел то, чем действительно горю, что приносит мне не только профессиональный рост, но и настоящее удовольствие.
Если и есть что-то важное, чему я научился за этот период, так это слушать свое сердце. Оно всегда знает, где вы можете раскрыться на 100% и чем стоит заниматься, чтобы быть в гармонии с собой.
Не бойтесь перемен и не держитесь за то, что делает вас несчастными — будь то текущее положение дел, обстоятельства или даже начальство. Если чувствуете, что ситуация не приносит вам радости или роста, делайте шаг вперед, к своей мечте.
Ваш путь — только ваш. Идите по нему с уверенностью, даже если сейчас он кажется неясным или сложным.
Верьте в себя и двигайтесь вперед! 🚀
🎉22👍5👏3
#база_знаний
Когда я только начинал изучать базы данных, слово "партиции" настораживало меня. Этот термин звучал сложно, но со временем я понял, что это ключ к оптимизации работы с данными, особенно в больших системах.
✔️ Партиции в SQL
Партиции в SQL — это не что иное, как разбиение большой таблицы на более мелкие части. В крупных таблицах, где миллионы строк, запросы могут выполняться очень долго. Партиции помогают это исправить: они позволяют системе работать только с нужной частью данных, что значительно ускоряет запросы.
➕ Например, можно разбить таблицу заказов по месяцам или по регионам.
Так, система будет обрабатывать только данные за нужный период, а не всю таблицу целиком.
✔️ Партиции в Apache Spark
В мире больших данных, когда я стал работать с Apache Spark, понятие партиций приобрело для меня ещё больший смысл.
Spark — это распределённая система, и партиции здесь играют ключевую роль. Spark разбивает данные на части, чтобы обрабатывать их параллельно на разных узлах кластера, что позволяет справляться с огромными объёмами данных очень быстро.
Один из ключевых моментов работы в Spark — это запись данных в формате Parquet. При этом указание полей партиционирования является критичным для оптимальной работы с данными. Например, вы можете партиционировать данные по году и месяцу, чтобы ускорить последующую выборку.
➕ Пример 1: Партиционирование при записи данных в Parquet
➕ Пример 2: Оптимизация числа партиций для обработки
Когда данные загружаются в Spark DataFrame, они автоматически разбиваются на партиции. Однако для более эффективной работы с большими данными иногда требуется вручную настроить количество партиций. Например, при работе с большими ETL-пайплайнами на кластере Spark с большим количеством узлов можно настроить более тонкую балансировку нагрузки.
➕ Пример 3: Партиционирование для агрегаций
Допустим, вы работаете с большими наборами данных о продажах, которые вам нужно агрегировать по нескольким измерениям, таким как год, месяц и регион. Для ускорения таких операций можно использовать партиционирование:
⚠️ Сейчас, при работе в Spark, практически ни одна запись в Parquet не обходится без указания поля партиционирования.
Партиции позволяют уменьшить объём данных, которые необходимо читать и обрабатывать, что особенно важно при работе с огромными объёмами информации в ETL-процессах. К слову, есть задачи, в которых данных на несколько десятков млрд!
Партиционирование в Spark стало для меня понятным и обязательным инструментом, когда я начал решать задачи ETL на практике.
Если вам не знаком термин, обязательно с ним познакомьтесь!
Когда я только начинал изучать базы данных, слово "партиции" настораживало меня. Этот термин звучал сложно, но со временем я понял, что это ключ к оптимизации работы с данными, особенно в больших системах.
Партиции в SQL — это не что иное, как разбиение большой таблицы на более мелкие части. В крупных таблицах, где миллионы строк, запросы могут выполняться очень долго. Партиции помогают это исправить: они позволяют системе работать только с нужной частью данных, что значительно ускоряет запросы.
CREATE TABLE orders (
order_id INT,
order_date DATE,
customer_id INT
) PARTITION BY RANGE(order_date);
Так, система будет обрабатывать только данные за нужный период, а не всю таблицу целиком.
В мире больших данных, когда я стал работать с Apache Spark, понятие партиций приобрело для меня ещё больший смысл.
Spark — это распределённая система, и партиции здесь играют ключевую роль. Spark разбивает данные на части, чтобы обрабатывать их параллельно на разных узлах кластера, что позволяет справляться с огромными объёмами данных очень быстро.
Один из ключевых моментов работы в Spark — это запись данных в формате Parquet. При этом указание полей партиционирования является критичным для оптимальной работы с данными. Например, вы можете партиционировать данные по году и месяцу, чтобы ускорить последующую выборку.
df = spark.read.csv("sales_data.csv")Теперь, когда мы будем запрашивать данные только за определённый год и месяц, Spark будет обрабатывать только соответствующие партиции, что значительно уменьшит время выполнения запросов.
# Запись в Parquet с партиционированием по году и месяцу
df
.write
.partitionBy("year", "month")
.parquet("s3://bucket/sales_data")
Когда данные загружаются в Spark DataFrame, они автоматически разбиваются на партиции. Однако для более эффективной работы с большими данными иногда требуется вручную настроить количество партиций. Например, при работе с большими ETL-пайплайнами на кластере Spark с большим количеством узлов можно настроить более тонкую балансировку нагрузки.
df = spark.read.parquet("s3://bucket/sales_data").repartition(200)
# Теперь данные будут разбиты на 200 партиций для параллельной обработки
Допустим, вы работаете с большими наборами данных о продажах, которые вам нужно агрегировать по нескольким измерениям, таким как год, месяц и регион. Для ускорения таких операций можно использовать партиционирование:
sales_df = spark.read.parquet("s3://bucket/sales_data")
aggregated_df = sales_df
.groupBy("year", "month", "region")
.agg({"sales_amount": "sum"})
.repartition("year", "month")
Партиции позволяют уменьшить объём данных, которые необходимо читать и обрабатывать, что особенно важно при работе с огромными объёмами информации в ETL-процессах. К слову, есть задачи, в которых данных на несколько десятков млрд!
Партиционирование в Spark стало для меня понятным и обязательным инструментом, когда я начал решать задачи ETL на практике.
Если вам не знаком термин, обязательно с ним познакомьтесь!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥6🤝4
#кейсы
⚙️ Друзья, хочу поделиться с вами обзором моего первого ETL пет проекта. Делал его из собственного интереса и практической необходимости.
✉️ Кейс описывает подключение к почтовому серверу, поиск и извлечение данных от магазинов, преобразование данных и их загрузку в БД для хранения и визуализации.
P.S. Анимация под заголовком статьи погружается не сразу.
Навигация по другим материалам группы.
P.S. Анимация под заголовком статьи погружается не сразу.
Навигация по другим материалам группы.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👏6👍5
Предположим, есть таблица в Hive (~300 МБ, справочник).
root
|— feature
|— col1
|— col2
|— date
Данные есть за 2024 год, но не для всех дат 2024:
feature col1 col2 date
feature1 1 1 2024-01-04
feature2 2 1 2024-01-06
Данные обогащены в Spark и записаны в формате Parquet. Затем они читаются через DBeaver external table, на основе которых создается view как слой абстракции для дальнейшего использования в BI-инструменте, например, в Qlik Sense для построения дашборда.
Задача — построить матрицу feature x date, где для каждого значения поля feature отображается соответствующее значение поля date и значения остальных полей. Если данные для сочетания отсутствуют, соответствующая ячейка заполняется null.
🤔 Вопросы для размышления:
Интересно услышать ваши идеи и мнения! 👇
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍4🤔2👀2
#курсы
#путь_de
Завершена 8-я неделя обучения по Apache Spark! 🚀
✅ Лаба 5 выполнена: Обрабатывал данные из JSON на HDFS и создавал матрицу клиентов и их действий в вебе с агрегатами. Важно было аккуратно работать с данными, чтобы всё правильно склеилось и дало корректные результаты.
⏳ Лаба 6 сдана почти впритык: Это был настоящий вызов! Задача состояла в продолжении сквозного проекта: подготовка признаков по клиентским логам. Тут было очень сложно, но рубеж для получения сертификата о прохождении пройден!
📊 Осталось 2 недели: Следующие 7 и 8 лабы — продолжение единого проекта. Будет особенно интересно коснуться обучения моделей и получения предсказаний по данным, поскольку тема не выдернута из контекста, а к ней плавно подводили на протяжении всего курса. Мы разворачивали большой pipeline, и теперь предстоит сделать следующий шаг — обучение моделей и получение предсказаний по данным. Это логическое завершение большого проекта, и я с нетерпением жду, что получится.
💥Очень надеюсь пройти еще две лабы и получить сертификат с отличием — курс оказался серьезным испытанием!
🔸Intro
🔸Итог 2 недель
🔸Итог 4 недель
🔸Итог 6 недель
#путь_de
Завершена 8-я неделя обучения по Apache Spark! 🚀
✅ Лаба 5 выполнена: Обрабатывал данные из JSON на HDFS и создавал матрицу клиентов и их действий в вебе с агрегатами. Важно было аккуратно работать с данными, чтобы всё правильно склеилось и дало корректные результаты.
⏳ Лаба 6 сдана почти впритык: Это был настоящий вызов! Задача состояла в продолжении сквозного проекта: подготовка признаков по клиентским логам. Тут было очень сложно, но рубеж для получения сертификата о прохождении пройден!
📊 Осталось 2 недели: Следующие 7 и 8 лабы — продолжение единого проекта. Будет особенно интересно коснуться обучения моделей и получения предсказаний по данным, поскольку тема не выдернута из контекста, а к ней плавно подводили на протяжении всего курса. Мы разворачивали большой pipeline, и теперь предстоит сделать следующий шаг — обучение моделей и получение предсказаний по данным. Это логическое завершение большого проекта, и я с нетерпением жду, что получится.
💥Очень надеюсь пройти еще две лабы и получить сертификат с отличием — курс оказался серьезным испытанием!
🔸Intro
🔸Итог 2 недель
🔸Итог 4 недель
🔸Итог 6 недель
🔥8👏4👍2 2🤡1