Инжиниринг Данных
23.5K subscribers
1.98K photos
56 videos
192 files
3.2K links
Делюсь новостями из мира аналитики и карьерными советами.

15 лет в Аналитике и Инжиниринге Данных, 10 лет в MAANG

🛠️ dataengineer.ru | 🏄‍♂️ Surfalytics.com

№5017813306

Реклама:
https://almond-rule-130.notion.site/1199f595f76a8030ba1be1e607c9a8ce
Download Telegram
На собеседованиях вас часто могу спросить про real world case. То есть вам нужно рассказать красивую историю, как вы использовали данные, чтобы приносить ценность бизнесу.

Shopify опубликовал хороший обзор про измерение продукта - A Data Scientist’s Guide To Measuring Product Success

Несмотря на то, что здесь упоминается DS, без помощи Data Engineering тут никак не обойтись.

Если вы собеседуетесь, то вам должно быть полезно понять, как лучше рассказывать истории о ваших use cases.
👍2🔥2
У нас давно был запланирован вебинар на тему "Основы венчура + как выйти на рынок Северной Америки". Я просил своего знакомого рассказать про "кухню" венчура, визы для предпринимателей и стартап культуру. Хотелои бы вы такой вебинар или нет?
Anonymous Poll
26%
Было бы интересно посмотреть вебинар в режиме трансляции и задать вопросы спикеру.
54%
Было бы интересно посмотреть сразу запись без трансляции.
8%
Мне не до вебинаров и дата новостей, отписка.
12%
Свой вариант (пока можно оставить при себе).
👍1
Небольшой конспект по python decorators. Я их еще не использую, но планирую применять для логирования трансформация в PySpark. Условно у меня есть функция, которая умеет делать spark.read и другая функция, которая умеет делать spark.write.

Моя задача собирать дополнительную информацию о работе функции - logging. Я хочу знать сколько времени функция работала (timestamp start, timestamp end), сколько строчек я прочитал и сколько строчек записал.

Для этого мне нужно выполнить одни и те же команды перед началом функции и после функции. То есть, как бы обернуть каждую функцию (wrap) в дополнительные команды. Именно это и делает декоратор, и если в коде вы видите @ символ перед функцией, значит кто-то использует декоратор.

Вот материалы по python decorator:
Python Decorators in 15 Minutes - прям офигенно.
Python Next Steps: Functions, Parameters, Closures, & Decorators - O'Reilly workshop, возможно можно найти запись.
Primer on Python Decorators - примеры, чтобы воспроизвести
Python Decorators - еще примеры
Видео на русском.

А вот реальные кейсы использования и примеры:
5 reasons you need to learn to write Python decorators - статья от O'Reilly
What are some common uses for Python decorators? - наш любимый stackoverflow

Мой PDF ниже
👇👇👇
👍3
Аналитическое решение уже давно превратилось в Дата Продукт. Команды которые относятся к своему решению как к продукту, добавляют в него новые фичи, изучают гипотезы и применяют новый опыт достигают бОльших успехов. Уже не солидно иметь в команде Project Manager, нужно, чтобы был Product Manager, и зарплата у человека соответствующая.

Статья про продуктовый подход в решениях аналитики - The Data-Informed Product Cycle

Most teams jump from high level strategy/goals straight to feature ideas (w/ "success metrics") The most successful teams
1. Have a strategy
2. Translate that into models
3. Add minimally viable measurement
4. Identify leverage points
5. Explore options
6. Run experiments
Сейчас самый актуальный вопрос это какие аналоги использовать для аналитических решений - open source или отечественные. И тут каждый решает для себя сам, точнее за вас решат в компании в 99% случаев.

Возможно это отличная возможность для отечественных компаний получить необходимые инвестиции и улучшить их продукт. Одно понятно, что любимчики Tableau, Snowflake, Databricks и другие, теперь будет сложней заполучить. (или невозможно)

Возможно это отличная возможность разобраться в дебрях аналитических решений и закодить все на open source.

Если в начале карьеры вам платят за знание инструмента, например вы можете знать Power Query но не понимать, что такое BI, ETL, DW, BigData. Условно вы знаете функционал продукта и можете из пункта А добраться в пункт Б. То со временем, для вас становится более важные не сам инструмент, а фундаментальные подходы для построения решений. Например, если вы знаете Tabelau и понимаете, что такое BI и какие преимущества может получить бизнес от аналитики, то вы можете уже показывать результат и без Tableau. Из минусов это ваш персональный experience работы с BI инструментом.

Вместо Tabelau можно рассмотреть любой другой инструмент аналитического стека. В независимости от санкций данные никуда не пропадут, возможно поменяются источники или структура, но данные будут и кто-то их должен анализировать, собирать и хранить.

Зато теперь не надо ломать голову, что учить Power BI или Tableau, AWS или Azure, Redshift или Snowflake, Databricks или Dremio. Но не стоит пренебрегать этими решениями, так как подходы и best practices для построения решений всегда хорошо подсмотреть у вендоров.

SQL будет так же ценен, как и раньше. И даже еще более ценен.

Если раньше Python был необходим для более продвинутых задач, то теперь он может стать очень важным элементов аналитического решения. На нем можно делать что угодно и как угодно.

PS ну или начинать учить китайские решения для аналитики🏮
👍10
Python_Next_Steps_Functions_Parameters_Closures_and_Decorators.pdf
33.2 MB
Прошел 4х часовой семинар от O'Reilly - Python Next Steps: Functions, Parameters, Closures, & Decorators.

Немного даже заснул😴 Поэтому вы можете время не тратить, а сразу посмотреть слайды.
👍7🥰3👎1
Статья про внедрение dbt в компании Beat - Data Build Tool (dbt): The Beat story
🔥23
У python огромное количество библиотек, которые упрощают нашу жизнь. А вот у SQL совсем нет. В статье - Why SQL Needs Software Libraries, авторы как раз и обсуждают вопрос экосистемы вокруг SQL.
👍22🔥5
Недавно был idea day, на котором я сделал прототип решения для сбора логов о работе data pipelines. Тут стоит сказать, что я это делал для Databricks на Azure, но это можно сделать на любом решении.

Идея простая - у меня есть pipeline, который читает данные, трансформирует и пишет. По умолчанию, если pipeline упадет я получу Email. Но у меня нет информации о работе кода - сколько времени грузил таблицу, сколько строк, сколько файлов в партиции и тп. А это важная информация для мониторинга. Вообще есть термин - data observability.

На одном из проектов, уже в AWS, я как раз использую продукт Datadog и у них на сайте есть информация о 3х столпах observability:
Monitor metrics, traces, and logs in one unified place.
- Collect and visualize metrics and set up alerts for potential issues for insights into the performance and health of your systems
- Optimize your application performance with end-to-end visibility into real requests and code with distributed tracing
- Cost-efficiently debug, audit, and analyze logs from all your services, applications, and platforms at scale
Track the three pillars of observability across your stack

В целом data dog это тот же Splunk, ElasticSearch или Azure Data Explorer (про который мы даже делали вебинар).

Возвращаюсь к Azure. Я хотел начать собирать дополнительные метрики о работе моих data pipelines, и было целых 3 варианта:
1) самый просто - после отработки операции я могу делать INSERT INTO audit_table все метрики прям в delta lake. Это такой простой вариант, которые подойдет вообще для всего.
2) так как мы используем Azure Data Factory, то я могу использовать ADF и после отработки activity передать значения в следующую activity, которая сделает INSERT INTO Azure SQL базу данных тех же метрик.
3) Использовать LOGGER и через него писать все в Log Analytics (Azure Data Explorer) и потом уже визуализировать и добавлять Alert.

Я выбрал именно вариант 3 по 2м причинам:
1) Это наше стандартное решение для операционной аналитики (ADX)
2) С точки зрения engineering excellence это топчик

Мне очень помогло вот это видео - Azure Databricks Monitoring with Log Analytics, в котором как раз показывает как сгенерить jars и закинуть их в Spark Cluster. А еще мне помог Леша из Северного Ванкувера, с которым мы пили сидр и генерили jars в docker, так что Леше привет🍻Осталось CI/CD добить в Devops и Gitlab;)

И чтобы знания о python decorators (о которых я писал ранее) не пропали, я добавил wrapper для функции write, которые и пишет в Log Analytics.
👍35🔥5👏1
Не все же про аналитику писать, можете почитать в журнале Сафари про животный мир Британской Колумбии, который написал мой отец кандидат наук. Кстати мои родители работают в Московском Зоопарке и мама там уже работает больше 40ка лет с птицами, теперь вы знаете где я провел детство🤗
👍176🔥53🥰24👏5
Немножко новостей из статей из мира аналитики🦧

Modern Data Stack: Looking into the Crystal Ball - автор рассуждает о трендах. Я уже говорил, что я "переболел" обсуждением трендов и современных дата табуреток стеков. Но возможно у вас найдутся силы прочитать.

11 concepts to sharpen your analytical thinking - автор делится своим опытом про аналитические скилы. Странная, конечно, мода на посты в твитере. Пока не понял как читать, снизу вверх или сверху вниз😳

Introducing MetricFlow: Your powerful, open source metric framework - очередной Open Source продукт для создания метрик. Если вы любите бесплатное ПО, то почему бы не ознакомиться.

Building Data Products For Data Engineers - Firebolt продолжает развивать свой продукт, они делают его на основе ClickHouse.

Database on Fire: Reflections on Embedding ClickHouse in Firebolt - ну вот, собственно, и статья про это. Будет теперь 2 Clickhouse на западе, один оригинальный и другой измененный.

The role of a technical program manager in AI projects - Microsoft продолжает публикации про роль менеджера на дата проектах, в данном случае обсуждают задачи программного менеджера для AI

Analytics Engineering vs. Data Engineering - если вы еще не определились кто это такие и что они делают, то в статье вам расскажут и покажут. Я сам уже окончательно определился, дата инженер строит инфраструктуру (DW, Data Lake, Pipelines, Data Models),а Analytics Engineer уже делает BI, и в 95% случает будет использовать dbt, чтобы создавать SQL модели (можно сказать это BI инженер со знанием dimension modelling). Есть пример: компания 600 человек 6x Unicorn, дата команда это 10 человек - 1 начальник, 5 data engineers, 4 analytics engineers. И всем хватает работы😉

Key Learnings on Using Apache HUDI in building Lakehouse Architecture @ Halodoc - hudi это способ хранения данных в Data Lake, когда у нас появляется возможность использовать команды UPDATE, DELETE, MERGE и другие плюшки классического хранилища данных. Есть и альтернатива - Iceberg и Delta Lake. Я лично за Delta, так как это у Databricks и Synapse.

What Skills Do You Need to Become a Data Engineer - вдруг вы не знаете🤓

Аналитика рынка профессии в три клика - маленькая статья от нашего читателя и ученика.

PS Я пока занят миграцией HDInsight+Hive и SQL Server SSIS на Azure Databricks и заодно ковыряю AWS на тему использования Open Source и создания аналитических решений - Docker, dbt, prefect, terraform, gitlab. И записался на курс по C# от 0 до уровня бог за 4 занятия😭
👍56🎉5🤔3👏2🥰1🐳1
Data Council - это конференция и community для разработчиков, инженеров и аналитиков, которые создают аналитические решения на Open Source. У них на youtube канале довольно много хороших видео с недавних мероприятий.

Для меня самый главный challenge в Open Source это знание и понимание вещей, которые совсем не относятся к аналитики. Например, множество решений хостится в Docker. Помимо самого docker нужно знать CLI, shell, linux и множество других вспомогательных вещей.

Вот пример простой задачи - выгрузить данные из SalesForce и загрузить их в S3. Задача тривиальная. Но если я решу использовать open source инструменты типа Airbyte или Meltano, которые будут деплоится в docker, через docker compose в AWS ECS (Container Registry), то задачка из простой превращается в очень непростую.

Как же быть? Для себя я выработал план:
1) Я разберусь и пойму как работает решение end to end и сделаю его как можно проще, даже если это no code/low code
2) Я посмотрю best practices для open source решения и возможно я найду там упоминание Docker, CI/CD, Terraform и еще чего. Попробую что-нибудь сделать кое-как.
3) Я возьму книгу, например Docker Up and Running, Learning Terraform и тп (с подписки O’Reilly) и начну изучать эту область более детально.

Есть конечно и другой вариант, как правило есть команда DevOps кто может для вас все сделать, и это тоже вариант, но лучше разобраться самому.

Мне кажется хороший пример всей этой Open Source истории - data-engineering-zoomcamp, они там используют open source, можно попробовать сделать без понимания как все это работает и потом вернуться к пункту (3). Таким образом вы получите важные навыки, особенно на рынках импортзамещения.
👍50
Practical SQL.pdf
1.3 MB
When people ask which programming language I learned first, I often absent-mindedly reply, “Python,” forgetting that it was actually with SQL that I first
learned to write code.

This is probably because learning SQL felt so intuitive after spending years running formulas in Excel spreadsheets. I didn’t have a
technical background, but I found SQL’s syntax, unlike that of many other
programming languages, straightforward and easy to implement.

For example, you run SELECT * on a SQL table to make every row and column
appear. You simply use the JOIN keyword to return rows of data from different related tables, which you can then further group, sort, and analyze.
👍416
Learning SQL OReilly.pdf
4.1 MB
From the basics SQL to advanced topics such as analytical functions and working with large databases/
👍355
Я скинул sample 2х самых популярных книг про SQL на английском, при желании вы можете найти и скачать PDF полной версии этих книг бесплатно😉
🔥43👍125👏5