Инжиниринг Данных
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
Расскажу про один из проектов про миграцию. Но не из 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 году
Ракеты у Безоса отменные, летают туда и обратно (я про космос). Теперь можно даже сувенир купить. Скоро будут шейные массажёры продавать на Амазон в форме ракет☺️
Обожаю эту картинку, жизненно. Дата команды фигачут дни напролет, строют платформы, отчеты и модели. Кому? Зачем? Для чего? Зато резюму получается красивое😎
На 5 модуле про облачные вычисления я рассказывал про безопасность облачных решений и про security shared responsibility, которая нам говорит, что часть ответственности на клиентах, а другая на вендоре. В зависимости от service model (IaaS, PaaS и SaaS) это по разному. У SaaS считается самая высокая ответственность за безопасность на вендоре. Но это не спасает. Во всех новостях сегодня информация про SaaS NoSql базу данных Cosmos DB https://www.reuters.com/technology/exclusive-microsoft-warns-thousands-cloud-customers-exposed-databases-emails-2021-08-26/
У вас есть хорошая возможность поднабраться нового опыта на бесплатном воркшопе от Azure Synapse - Azure hands-on webinar series
Data Engineering with Azure Synapse
Серьезный материал от Databricks - как построить аналитическую платформу из 4х частей, сумарно 8 часов:
How to Build a Cloud Data Platform
Part 1- Architecture
Part 2 - ETL Processing
Part 3 - Structured Streaming
Part 4 - Machine Learning and Business Intelligence

Минимум любого аналитического решения - Архитектура, ETL, BI. Дальше уже по необходимости DS, Streaming.
Оказывается самая топавая конференци по game dev - GDC. Следуя своим принципам проактивности, закинул запрос на выступление, шансов практически нет, так как там почти не бывает кейсов про аналитику, но личний challenge accepted.

Title: Building Modern Data Stack for Game Analytics
Overview: Nowadays, game development has become data-driven. Game studios over the world adopting analytics to inform decision making across all levels of industry. The core of game analytics and insights is telemetry data. The best strategy is to log data in the format that is closest to the defined in the code without any aggregation. This strategy insures the least possible bias operated on the data. Unfortunately, this strategy also risks levitating the amount of data logged, streamed and stored. It is vital to design and implement data platform that will handle tremendous volume of data, support mix workloads of use cases from Business Intelligence, Data Science and Business Users. Handle data privacy and establish security. During the talk we will cover the history of data platforms and review reference architectures and use cases for modern data stack and finish the presentation with our data stack modernization use case.
Нашел прикольный сервис, который как уверяют создатели Free 4ever=)
Позволяет сделать мини профайл и собрать все важные ссылки в одном месте (можно и резюме ссылку и git и тп).
https://linktr.ee/dmitry.anoshin вот мой пример
Английская версия википедии про хранилище данных получила дополнение про ETL/ELT. https://en.wikipedia.org/wiki/Data_warehouse