Инжиниринг Данных
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
Этот товарищ очень подробно расписывает modern data stack, прикладывает много интересных ссылок и мыслей.
Попался пост 2014 года - The Future of Data Engineering (Я например узнал что такое data engineering в конце 2016, до этого это было смутные представление про ETL разработчика и Big Data разработчика. )

I believe SQL would:
Exist in 5 years,
Exist as legacy in 10 years, and
Go extinct in 15 years.


То есть автор, еще в 2014 году хотел предугадать как повернется судьба SQL. Хотя в то время многие говорил, что время DW прошло, и теперь вот будет big data, data lake и все такое. В итоге SQL остался и даже наоборот! Теперь SQL используется везде, где только можно! Но 15 лет еще не прошло...

After this happens, we would have the world where machine learning engineers and data scientists would have the “time to market” of their features shrinked from weeks and months to hours and days.
Кто закончил даталерн до 5го модуля и сделал задание, тому преимущество на собеседование✌️
Что такое Data Linage - это термин из ETL, теперь уже data engineering.

Data lineage refers to the ability to trace how and where data sources are used. In the first years of a company, data lineage is easy to fully understand: a company with only a handful of data pipelines doesn’t need to worry much about data lineage since they can count the number of tables with their fingers. However, as datasets become more complex and the number of contributors grow, it becomes more and more difficult to understand the relationships between different data sources.

Идея простая, мы хотим дать возможность пользователям нашего решения отследить откуда берутся данные и как рассчитываются показатели и измерения, мы можем взять конкретное поле, например Сумма Продаж, и посмотреть на все его трансформации. Это важно, если например сумма продаж неправильная и нужно найти в каком месте сбой.

В статье Data Lineage at Slack вы можете узнать про How we automate building and maintaining data lineage at Slack
Расходы в облаках растут и теперь компаниям надо более аккуратно отслеживать их расходы на облачных провайдеров.

The Information: There’s a debate going on in the enterprise tech industry about whether using cloud providers remains cost-effective after a company reaches a certain scale, and whether it’s better to repatriate certain computing jobs to private data centers.

Компания Pinterest рассказала как они научились лучше контролировать и прогнозировать расходы AWS.
Расскажу про один из проектов про миграцию. Но не из on-premise в облако. А из облако в облако.

В качестве big data processing инструмента у нас был HDInsight (это аналог AWS EMR, PaaS Hadoop. Если вы смотрели модуль 5, то знаете, что такое PaaS). Его задача читать данный телеметрии (именно так называется поток данных от клиента), как правило это JSON файлы, которые сыпятся в Blob Storage (Аналог у AWS S3). Мне нужно было смигрировать одну табличку, там данных за 3 года, по 20Тб в год.

Вместе с HDInsight использовался Hive SQL, на нем была описана вся логика и с помощью Azure Data Factory (аналог Airflow от Azure - то есть оркестратор, у AWS есть Glue, но это не тоже самое, так как Glue имеет Spark и мы сразу пишем трансформации на Python или Scala, а в ADF мы просто выбираем компоненты - где хранить данные, чем обрабатывать и тп). Результат обработки JSON - ORC формат и Hive Metastore (для конечного пользователя это просто как база SQL данных). А дальше уже другой стек для расчета таблиц фактов.

Куда мигрировать: Azure Databricks Delta Lake

Почему мигрировать: Тут несколько факторов, прежде всего, можно было ничего не делать, так как и так все работает, но я не могу просто так работать с legacy, если на рынке востребованы другие технологии. Я лично стал активно пушить Databricks и Delta Lake. Это дает нам преимущества и удобства, но прежде всего это крутой опыт и история для меня и мне приятно рабоать с лучшими технологиями на рынке и всегда люблю пробовать новые решения. Такая стратегия всегда помогает развивать карьеру и находить интересные проекты.

Альтернативы: Конечно они есть. Как я сказал, можно вообще ничего не делать. Но можно еще использовать HDInsight+Spark (вместо Hive), чтобы использовать Delta Lake. Можно использовать аналоги - Hudi и Iceberg, но как то Azure не пиарит их совсем, только Spark и Delta. И меня всем устраивает Spark+Delta, мне бы с ними разобраться. Еще есть Azure Synapse - но они пока отстают по функциональности от Databricks. Но агресивно развиваются.

Теперь про сам процесс миграции, все очень straightforward. Создаю цикл, в котором выполняю запрос за 1 день или час.
1) Выполняю SQL запрос для одной партиции в качестве WHERE условия и создаю DataFrame
2) Модифицирую dataframe, чтобы изменить схему таблицу, добавить полей и тп
3) Пишу data frame в новый location, но уже Azure Data Lake Storage (Вместо Blob storage) USING DELTA

Например в 1 день может быть 700Gb данных, и вроде бы задача простая, но очень долгая. Я использовал кластер Spark:
- 3 Worker nodes сумарно 768gb оперативки, 192 cores
- 1 Driver nodes 128gb, 32 cores

Например 700gb он считал 2часа+. Кластер я выбирал пальцем в небо, было лишь ограничение на кол-во ядер для моего аккаунта в Azure.

Самое печальное, что я просчитал 2 года из 3х, и нашел маленькую ошибку, скопировал одно и тоже поле 2 раза=(

Цена Databricks в Databricks Units (DBUs) based on the VM instance
selected

В моем случае я трачу 42DBU в час, то есть 42DBU*0.55$=23.1$ в час.

По цене за storage я посмотрел, 600Gb в месяц стоит 107$, а 60Tb в месяц стоит 10k. В данный момент я плачу по двойному тарифу за HDInsight и за Databricks + 2x storage.
Согласно исследованию 2020 - Brown, Anicich & Galinskya - Compensatory conspicuous communication: Low status increases jargon use, ученые, которые используют много жаргона чувствуют себя неуверенно и пытаются компенсировать незнание/непонимание жаргонными словечками.

Я кстати совсем перестал пытаться использовать модные слова в моей тематике, чем проще и понятней тем лучше, а вот лет 5 назад, очень даже старался быть в тренде.
Хорошая "библиотека". Из книги Python Crash Course, считается одной из лучших по Питону. Сейчас читаю, очень много мелких деталей, которых раньше не встречал.
Методология и практика нагрузочного тестирования. Опыт Miro
Интересно можно применять нагрузочное тестировае в инжиниринге данных. С играми особенно, пока делаем новую игру, данных килобайты. В бето тестировании - мегабайты. А в день запуска это как Amazon prime day, пик нагрузки максимальный, то есть к вопросу того же размера кластера Databricks например.

Кстати согласно статье, Miro использует Looker (SaaS BI).

Делаете НТ для аналитики и инжиниринга данных?
6 Ways to Make Data-Visualization Literacy Part of Company Culture
1. Expose people to “gateway” visualizations.
2. Strike a balance of complexity.
3. Explain (a bit) about cognitive processing.
4. Stress the importance of intentional choices.
5. Teach caution with colors — and in general.
6. Consider a data-visualization style guide.
Guide_PerspectivesFromEngineeringLeaders_mm_vF.pdf
2.4 MB
Leading software teams is extremely challenging and rewarding.
There are many moving parts to keep fine tuned in order to deliver meaningful
solutions to those you serve. Most of what makes you as an engineering leader
successful is the collective abilities and creativity of your team. With help from
top engineering leaders from across the world, this guide unpacks how to create
the needed environment to help your team thrive in and out of the codebase.
The insights are derived from peers who understand what it takes to create
a high-performing engineering organization.

В общем про управление инженерной командой.
Интересная статья Want to Improve Your Career? Become an Uncertainty Killer:

(uncertainty = неопределенность)

I want to provide you with a singular concrete idea that you can use in your career right away. More importantly, this idea will apply to anyone who works with other people. Whether you have a boss to support, clients to impress, or individuals to manage, this specific advice will work wonders for you and your career. What is it?

Reduce uncertainty for others as much as you can.

Become an uncertainty killer. That’s it.

I guarantee that if you can make other peoples’ lives more certain, they will sing your praises. You will build trust at every turn and create allies wherever you go. People may even publicly call you “a machine” and impart positive attributes to you that you may not actually have.


Простой пример из жизни. Мы запускаем новый стрим данных. Много команд взаимодействует и ожидает увидеть данных, но они не знаю, как получить досту, какие данные уже есть и тп. Я создал wiki страничку, где описал:
- источник данных и формат
- нарисовал архитектуру (прям как в 1м модуле нашего курса)
- описал, что происходит с данными и где они находиться
- добавил ссылки на сервисы (BI, delta lake, databricks, azure data explorer, Tableau, Power BI).

И расшарил документ. Для меня пустяк, а оказалася очень полезный документ, точнее изначальная точка документирования процесса. Чувствую себя uncertainty killer. Дальше буду делать опрос для инженерных команд и бизнес команд (прям как в модуле 3 нашего курса)
Forwarded from Roman Bunin
Привет!
Видел кстати какую штуку сделали по зарплатам? Там DE есть отдельно тоже, одна из самых оплачиваемых блин позиций! Я прям удивился.
Готовлю модуль 6.2 - про введение в аналитические хранилища данных. Можно все уложить в 3-4 слайда, но я немножко покапался в гугле и нашел очень классный документ, который считается 1й статьей в журнале IBM в 1988 году:

The data warehouse concept started in 1988 when Barry Devlin and Paul Murphy published their groundbreaking paper in the IBM Systems Journal.

А вот и ссылка на документ http://altaplana.com/ibmsj2701G.pdf

PS огромное спасибо Сергею (@erfolg5862), он уже сделал офигенные лабы:
- для 6.2 (на базе виртеальной машины терадаты, куда нужно будет загрузить данные, и потом вы узнаете про data skew, statistics и главное поковыряетесь с сетевыми настройками и командной строкой)
- для 6.3 (про Redshift, где вы создадите кластер редшифта, загрузите данные и будете использовать техники оптимизации запросов, и еще будет интересный проект по миграции on-premise dw на cloud dw redshift)

Все это дает офигенный опыт Сергею и ему будет, что рассказать на собеседовании, будьте как Сергей😋
Архитектура DW в 1988 году
Ракеты у Безоса отменные, летают туда и обратно (я про космос). Теперь можно даже сувенир купить. Скоро будут шейные массажёры продавать на Амазон в форме ракет☺️