Инжиниринг Данных
23.5K subscribers
1.99K photos
55 videos
193 files
3.21K links
Делюсь новостями из мира аналитики и карьерными советами.

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

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

№5017813306

Реклама:
https://almond-rule-130.notion.site/1199f595f76a8030ba1be1e607c9a8ce
Download Telegram
Простая и понятная картинка про подготовку данных к модели и проверки качества модели. Ничего не забыли?
Мы используем PySpark и создаем много функций для преобразования данных, часто это трансформации data frame. Недавно я узнал про Python Docstrings - стандартный способ ведения документации функций.

Пример:

def square(n):
'''Takes in a number n, returns the square of n'''
return n**2

print(square.doc)

Takes in a number n, returns the square of n''

А вы знаете еще что-нибуль полезное?
Оказывается у AWS есть альтернативная (честная) версия их AWS Service Health Dashboard. Потому что, как мне сказали оригинальный продукт - bullshit. Поэтому, если у вас AWS то вам бует полезно добавить в закладки https://stop.lying.cloud/
Сейчас идет конференция - Coalesce, для меня это самая настоящая конференция, которой движет комьюнити людей, кто любит работать с данными и любит делиться опытом. Пока еще, это не коммерческий ивент, на котором вендоры будут вам рассказывать, как вам плохо без их продукта.

Я уверен другие каналы тоже напишут про разные интересные темы с этой конференции, я начну вот с этого - Git for the rest of us.

Это доклад, для тех кто пока чувствуют себя не уверенно с git. В докладе много хороших примеров как используют git для SQL и dbt,, как его настроить и скачать. Зная, как студенты datalearn испытывают трудности с git в начале, это будет неплохое видео, которое покажет еще раз примеры комманды и примеры использовании командной строки. Прям все как любой компании: в которой аналитики делают commit своего кода в репозиторий.
А это специальный сайт с emoji для вашей git документации https://gitmoji.dev/
Все чаще попадется этот ресурс - https://overemployed.com/
Идея у них простая - Work Two Remote Jobs, Reach Financial Freedom

Ну и весь сайт посвящен примерам такого рода активностей и советам про то как можно достичь финансовой свободы и ни слова про ставки на спорт и инвестиции в криптовалюту😇

Мне интересно, кто нибудь так пробовал? Какие ощущения и какой самый важный мотиватор для вас?

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

Я лично пробовал подрабатывать на проектиках, минусов не заметил, но это больше были как временные задачки, а вот так, чтобы год работать нон-стоп это уже следующая категория, для настоящих профи🏆
Если вы еще не пользовались языком markdown, то стоит начать использовать. Это самый популряных язык для написания документации.

Примеры использования:
- в учебнике Data Learn в Github мы используем markdown, и получается очень красиво и удобно, легко редактировать. Использую Visual Code, у меня экран разделен на 2 части - Markdown и Preview
- на работе мы используем DevOps, Git, GitLab - все комментарии используют markdown
- возможно все знакомы с файлом readme .md - каждый git repo содержить такой

Как вы еще используете markdown?

Сегодня я хотел бы рассказать про возможности md для создания диаграм и схем:
Flow Charts - With this code, you can create a minimalistic diagram.
Sequence Diagrams - If you like a handwritten font, this one is for you.
Mermaid
PlantUML
GraphViz - для создания графов и зависимостоей
Ditaa - Markdown Preview Enhanced supports ditaa that can convert diagrams drawn using ascii art (‘drawings’ that contain characters that resemble lines like | / — ), into proper bitmap graphics.

Такие вещи как Mardown, CLI, Git - вошли в повседневную жизнь людей, которые работаю с данными и являются необходимыми навыками, нименьше, чем Excel. Не нужно быть экспертом, но нужно знать базовые примеры и понимать для чего это используется.
Последние несколько месяцев я использовал Databricks Autoloader для моего Delta Lake. Для начала я расскажу, что значит каждое слово:
- Databricks - это коммерческий продукт, в сердце которого Apache Spark. Так же у вас есть удобный интерфейс с ноутбуками - Workspace. Поэтому мы можем писать код, трансформации и Databricks будет делать data processing. Единица трансформации обычно data frame. Можно использоать PySpark, Scala, SparkSQL. Все достаточно удобно и быстро. Данные как правило хранятся в облачном сторадже AWS S3, Azure Storage.

- Delta Lake - это опен сорс продукт, который уже неразрывно связан со Spark. Мы использовали его еще в Amazon для AWS EMR+Spark, чтобы решать задачи GDPR (Удаление customer id). Данные хранятся так же в озере данных в формате Parquet. Но есть дополнительные фичи - transaction log (метаданные о данных), и у нас теперь не просто External Table в Hive Metastore, но Delta Table. Есть и аналоги на рынке Iceberg и Hudi (как правило для Hadoop). Проблем пока не заметил, только операция MERGE тормозная на большом объеме, но много хороших фич, которые позволяют сделать хранилище данных из вашего озера данных (то есть Lake house).

- Autoloader - это фича Databricks, которая использует Spark Structured Streaming. Databricks сам создает всю необходимую инфраструктуру в AWS/Azure, чтобы стримить непрерывно файлы к вам в DW. И Вместе с Delta Lake вы можете сделать streaming ETL для всего. Конечно на практике это работает не так прекрасно. Условно Autoloader это черный ящик, которые все делает сам – находит только новые файлы и грузит их. Где-то глубоко он использует базу RocksDB, которые ведет учет всего что вы загрузили.

Я решил сделать ставку на инновации, но что-то пошло не так. Autoloader уже второй раз дает сбой по непонятным причинам и пишет, что не может найти путь к checkpoint. То есть, он не знает, чего было загружено, а чего нет. И мне как разработчику это ни о чем не говорит, так как это сервис и black box. Я уже потратил много времени с support в прошлый раз, они попросили добавить опцию в настройки кластера "spark.databricks.cloudFiles.missingMetadataFile.writeNew true" но на мой вопрос так и не ответили, "Почему это случилось?".

Выглядит как заплатка. Но опять все сломалось и хз чего там.

Мораль истории проста – все эти замечательные сервисы, которые будут делать работу за вас, все эти красивые слова вендоров, их презентацию, все это, как говорят на западе bullshit.

Ну а мне придется переделывать все на классический batch процесс, в котором я могу запускать data factory job каждый час и переписывать или добавлять партицию, как делали лет 5-10 назад при использовании Hive и Hadoop.

PS Но тем не менее я добавлю delta lake, autoloader и Databricks в data learn.
Флагманский BI от AWS - Amazon QuickSigh опубликовал список фич за 2021 год.

Что же там нового?

Free-form layouts, new chart types, and much more for pixel-perfect, interactive dashboards

Сложилось впечатление, что продукт попытался угодить вообще всем и как-то не чувствуется видение решения.

Сразу вспоминается как в Амазоне каждая команда хотела внедрять Tableau для себя, но им надо для галочки написать сравнительный отчет, в котором четко указать, что QS хороший продукт, но вот еще немного сыровать, и лучше пока с Tableau. Я уверен, что внутренняя отчетность Amazon, в частности отчеты Weekly Business Review (аналог эксель таблиц), тоже оказывают влияние на продукт. Но это мое мнение.

Я вообще отношусь к BI решению как к обуви. Обувь не только должна быть удобная и практичная, но и эстетично красивая, поэтому я и люблю Tableau, в нем приятно работать=) В Looker тоже есть что-то особенное. А вот Power BI для меня как ботинки на мой выпускной, вроде классические туфли , но было стыдно еще раз их одевать😂

Давайте лучше посмотрим на достижения AWS в области BI за 2021 год:
- Добавили Dual Axis chart
- Можно теперь строить Sankey диаграмму
- Добавлять кастомные web компоненты
- Можно видео добавить или апы
- Улучшения по таблицам, почти Excel ячейки.
- Теперь можно делать A4 финансовую отчетность, так как появилась возможность использовать pivot table with custom styling for totals and sub-totals
- custom sorting
- custom tooltips
- wildcard search
- alerts
- можно PDF рассылки делать

И еще много чего. С одной стороны мы видим огромное количество фич, которые в большинстве являются базовыми для любого BI решения, а с другой стороны как-то не понятно в чем преимущество продукта, кроме как интеграции с другими AWS продуктами.

Интересно, кто-нибудь использует у себя QS?
Forwarded from Время Валеры
После работы в больших корпорациях и стартапах, я начал работать в чем-то среднем, уже не стартап, но еще не корпорация и как следcтвие, набросал следующее

A note about redundancy and efficiency in the Data Science department

In theoretical computer science, the CAP theorem states that any distributed data store can only provide two of the following three guarantees:
Consistency - Every read receives the most recent write or an error.
Availability - Every request gets a (non-error) response without the guarantee that it contains the most recent write.
Partition tolerance - The system continues to operate despite an arbitrary number of messages being dropped (or delayed) by the network between nodes.
When a network partition failure happens, it must be decided whether to cancel the operation and thus decrease the availability but ensure consistency or proceed with the operation and therefore provide availability but risk inconsistency.

I review the team structure as very close to this, but with different criteria: efficiency and redundancy. As computer science describes, redundancy means having extra or duplicate resources available to support the primary system. It is a backup or reserve system that can step in if the primary system fails. The reserve resources are redundant as they are not being used if everything is working correctly.

What does it mean to the team structure? From what I have seen, the company usually evolve from being efficient to becoming redundant. However, neither being too efficient nor too redundant is good.

Why being too efficient is not good?

If you are too efficient and cover many things with few people, you are at risk. If something happens to these people - the company is in trouble. If your team is 100% efficient and something critical happens - the team cannot cover it. Otherwise, the team is not 100% efficient. The team member does not have time to relax, and the team is relaxed. When people are relaxed, they become curious, explore, come up with new ideas, develop new skills, and be happy overall.

Why being too redundant is not good?

I found that the most challenging in life is to keep balance. Redundance is good - it provides reliability, security, room for improvement and a margin to outlast the crisis. However, too much redundancy creates sloppiness, bad team flow and repel top performers, as it deteriorates the overall vibe and feeling of doing a meaningful and impactful job.

Thus we need to keep the right balance between efficiency and redundancy.
Как ускорить расчет витрин с помощью материализаций

Несколько лет назад мы выбрали Snowflake как сервис для нашей дата-платформы. С ростом объемов данных до сотен миллионов строк (спойлер: а затем и до десятков миллиардов), мы задались вопросом: «Как тратить меньше времени на расчет запросов для ежедневной отчетности?». Идеальным вариантом было использование материализованных представлений, позволяющих обращаться к предварительно вычисленным результатам расчета витрин гораздо быстрее, чем к исходным данным.

Мы могли отдать управление нашим пайплайном таким популярным сегодня инструментам для трансформации данных, как, например, dbt, Matillion или Dataform. Однако, в начале 2020 года ни у одного из них не было возможности тонкой кастомизации под нужды Snowflake и ManyChat. К тому же, нам не хотелось платить за еще один сторонний инструмент. Так, мы приняли решение изобрести собственный велосипед для работы с материализацией данных. Именно об этом я сегодня и расскажу.

PS ManyChat как флагман строительства отечественного снежного хранилища, но для западной компании🤩
Всем привет!
Завтра (13 декабря) в 20:00 по мск вебинар по Greenplum
Спикер - Дмитрий Павлов.
Дмитрий админит сообщество Greenplum в России, а также является руководителем направления по развитию Data Platform в Yandex.Cloud.
Greenplum — аналитическая колоночная массивно-параллельная СУБД, предназначена для сложной аналитики по большим объёмам данных.
https://youtu.be/TupXHhdSrhg
Важное сообщение про vulnerability log4j. Многие системы для аналитики, больших данных и инжиниинга данных используют этот пакет:

Yesterday, December 9, 2021, a very serious vulnerability in the popular Java-based logging package Log4j was disclosed. This vulnerability allows an attacker to execute code on a remote server; a so-called Remote Code Execution (RCE). Because of the widespread use of Java and Log4j this is likely one of the most serious vulnerabilities on the Internet since both Heartbleed and ShellShock.

Больше информации: https://blog.cloudflare.com/inside-the-log4j2-vulnerability-cve-2021-44228/

Сейчас все облачные вендоры засуетились и пишут письма своим клиентам о том, что они знают проблему и делают патч. Если у вас Hadoop, Hive, Spark или еще чего использует этот пакет, отличная возможность проявить себя и прикрыть угрозу.
👍1
В этом уроке мы узнаем про термин Операционная Аналитика, и чем он отличается от традиционной аналитики. Заодно мы посмотрим на три самых популярных решения на рынке – Splunk, Azure Data Explorer и Kusto.

Если кратко, то такие системы и решения не являются главными для Инженера Данных или BI инженера. Для BI инженера операционная аналитика –это про еще один источник данных, с которым придется работать.

А для инженера данных, решения операционной аналитики могут быть полезны по многим причинам, мы можем собирать машинные данные (логи) о работе наших data pipelines, ETL, Big Data и тп, мы можем забирать данные из решений операционной аналитики и загружать в хранилище данных или озеро. А иногда, нас просят создать NoSQL решение данных на основе Elastic Stack. (меня никогда не просили, но вдруг!)

В этом видео вы узнаете:
- Что такое операционная аналитика и ее роль в решениях BI/DW/BigData
- Основы и историю Splunk- Про Azure Data Explorer и Kusto
- Про ElasticStack
- Основные кейсы использования операционной аналитики и примеры из опыта 

На лабораторной работе я покажу как получить Splunk, ADX и ElasticSearch.

Дополнительные материалы:
- [Вебинар Data Learn про Azure Data Explorer](https://youtu.be/CAdkL9vM6Do)
- [Elastic Search Tutorial]( https://www.elastic.co/guide/en/elasticsearch/reference/current/getting-started.html)
- [Splunk Tutorial]( https://docs.splunk.com/Documentation/Splunk/8.2.3/SearchTutorial/WelcometotheSearchTutorial)
- [Splunk уходит из России (совсем)](https://habr.com/ru/post/441004/)
- [Год без Splunk — как американская компания изменила рынок аналитики машинных данных в РФ и кого оставила после себя](https://habr.com/ru/post/484904/)
- [Splunk — общее описание платформы, базовые особенности установки и архитектуры]( https://habr.com/ru/company/tssolution/blog/323814/)
- [Quickstart: Create an Azure Data Explorer cluster and database](https://docs.microsoft.com/en-us/azure/data-explorer/create-cluster-database-portal)
- [1.Elastic stack: анализ security логов. Введение](https://habr.com/ru/company/tssolution/blog/480570/)
- [2. Elastic stack: анализ security логов. Logstash](https://habr.com/ru/company/tssolution/blog/481960/)
- [3. Elastic stack: анализ security логов. Дашборды](https://habr.com/ru/company/tssolution/blog/482054/)
Мы тут обсуждали новый продукт хранилищ данных, который уже наделал шуму - Firebolt. Можете посмотреть интересный доклад с конференции Coalesce - Firebolt Deep Dive - Next generation performance with dbt (Premier Sponsor)
Инжиниринг Данных pinned «Про канал: Я (Дмитрий Аношин LinkedIn telegram) уже больше 15 лет занимаюсь аналитикой, из них 5 лет был в Амазоне, работал в нескольких командах, включая Alexa AI (в Бостоне) и Customer Behaviour Analytics (в Сиэтле). Поучаствовал в действительно инновационных…»