Инжиниринг Данных – Telegram
Инжиниринг Данных
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
А вот colab notebook с тренингом по Pandas.

The pandas library is very popular among data scientists, quants, Excel junkies, and Python developers because it allows you to perform data ingestion, exporting, transformation, and visualization with ease. But if you are only familiar with Python, pandas may present some challenges. Since pandas is inspired by Numpy, its syntax conventions can be confusing to Python developers.

У автора есть классное repo с датасетами.
🔥38👍9
На днях общался с CEO&Founder Meltano. Рассказал ему как использую его продукт и послушал про их планы.

Meltano это open source продукт, которые умеет из коробки делать E(extract) и L(load), отлично работает в связке с dbt.

Видение meltano - data platform, да и вообще аналитическое решение - это software product. Инфраструктура как код, CI/CD, и все в лучших традициях разработки ПО.

Например, если вам нужно сделать полностью Open Source решение, то вы можете использовать:
- Meltano/Airbyte для Ingestion
- dbt для трансформации данных внутри хранилища
- Airflow/Dagster/Prefect - для расписания ETL job
- Superset/Redash для BI (есть еще ряд технологий).

Звучит просто, но на деле это сложно, вам нужно знать:
- язык программирования
- основы DevOps
- bash/shell
- командную строку
- Docker
и, наверно еще чего-то.

Если у вас есть профильное образование по Computer Science, то вам будет все очень просто, а вот если вы инженер конструктор или специалист по маркетингу ваш Learning Curve займет не один год. Поэтому вам проще начать с low-code/no-code приложения, и потом уже при стабильном доходе развиваться дальше.

Кстати, этот товарищ из Нидерландов и живет в Mexico City (Мексика) и ему там нравится, так что может быть Мексика не плохой вариант, люди там явно попроще и более открытые.

Их видение продукта создать аналитическое решение (ETL, BI, DW), которое будет полностью описано как код. Уже сейчас Meltano это платформа, которая умеет запускать dbt и дружит с Airflow.

Они начинали создавать Meltano Academy, но потом подзабили. Очень заинтересованы, чтобы я на русском сделал такой проектик для datalearn.
👍73🔥20👏3🤔1
😁91🤔1
Прошел очередной workshop на O'Reilly - Bash Shell Scripting in 4 Hours. Хороший обзор команд bash. Я их часто видел, но не понимал зачем они, просто делал COPY-PASTE. Могу точно сказать, что после 4х часов, могу теперь читать и понимать Shell скрипты намного лучше. По материалам:
- Презентация
- Гит с примерами

Хотелось бы так же ответить на важный вопрос для новичков, особенно кто начинает Data Learn. У нас в требованиях есть "bash/shell". Мне всегда казалась, что это очень confusing.

Во-первых, из книги THE LINUX COMMAND LINE:

When we speak of the command line, we are really referring to the shell. The shell is a program that takes keyboard commands and passes them to the operating system to carry out. Almost all Linux distributions supply a shell program from the GNU Project called bash. The name is an acronym for bourne-again shell, a reference to the fact that bash is an enhanced replacement for sh, the original Unix shell program written by Steve Bourne.

Когда мы запускаем на компьютере terminal, как правило это ZSH на Mac или PowerShell на Windows. И это называется terminal emulator.

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

С помощью bash shell мы можем создавать программы, почти как в питоне, с циклами, переменными и функциями, но это не нужно на начальном уровне.

Самое сложное, что мне приходилось делать, это использовать bash shell скрипт, чтобы подключиться к менеджеру паролей, выгрузить секреты с использованием FOR оператора и загрузить их в Environment Variables, чтобы я смог передать их в Docker Compose.

Уверен кейсов много, но не стоит сильно заморачиваться, если не понимаете. Вам точно нужно:
- создание папки mkdir
- увидеть содержимое файла cat file
- простой редактор текста nano my_file.txt
- изменение прав доступа к папке файлу chmod
- список файлов и папок ls (ls -la)
- перемещение по папкам cd (cd .. - обратно)
- запускать скрипт ./noscript.sh или командой source
- скачивать git repo - git clone <URL> и ряд команд для создание branch, commit, push.
- иногда нужно работать с Environment Variables, например на mac os и linux они обозначаются $MY_VAR

Если это умеете, считайте вы знаете командную строку на должном уровне!🐒

PS когда много работаешь с командной строкой, понимаешь насколько неудобно все на Windows, лучше уж Mac OS или Linux для работы с данными.

Кстати, недавно открыл для себя плагин - OH MY ZSH, есть такой же и для Power Shell. Теперь одно удовольствие смотреть на командную строку и работать в ней.
👍67👏4🤬3🥰1🤔1
Новости аналитики

Welcome to the world PyScript - недавно были новости про Python в HTML, и вот Anaconda уже рассказывает про PyScript - PyScript is a framework that allows users to run Python and create rich applications in the browser by simply using special HTML tags provided by the framework itself.


Choosing a Data Catalog - дата каталог, business glossary и data lineage - все это элементы data governance. У меня уже есть неудачный опыт использования Azure Purview, поэтому стал смотреть в сторону Open Source решений. Пока мне понравился OpenMetadata от Uber. В статье автор рассматривает разные решения и подходы для документации аналитического решения - Documentation coming from analytics teams must enable anyone to quickly find and understand any data asset they’re looking for to deliver value.

Data Vault Techniques on Snowflake: Immutable Store, Virtual End Dates - Snowflake готовит серию постов про Best Practices построения data vault.

What Is Well-Modeled Data for Analysis? - автор рассматривает важность моделирования данных в хранилище данных.

Data for Product Managers (Part 1/2) - я часто говорил, что data команде нужен не начальник аналитики, а product manager, который будет управлять data продуктами. В статье рассматривают чем же занимается product manager в контексте аналитики.

Tuning Whatnot’s Data Platform for Speed and Scale - компания Whatnot рассказывает про свое аналитическое решение, технологии и принципы data engineering.
👍27🥰2
From Junior Software Engineer to Engineering Manager: a 10-year career path review. - статья про карьерный путь инженера. Несмотря на то, что он iOS разработчик, его опыт применим для карьеры любого инженера.

"Do I want to switch to a more Senior or Principle Engineer position or to an Engineering Management one?"
"How could the Engineering Management role be a great opportunity for me, my team, and my skills?"
"Why is Engineering Management difficult for your confidence?"
"Why do I feel lonely as a manager?"
🤔10👍5😁1
Data Engineering is about making data usable - отличный вариант и вообще не важно как мы это делаем, на SQL, Python или еще чего.

Правда автор умолчал про момент один - кто ему этот Jupyter Hub установил, если без инфраструктуры, то это уже для меня analytics engineer, а если мы сами сделали end to end решение, которое собирает данные, хранит и трансформирует, чтобы “making data usable”, то уже data engineer.
👍33👏1
Как все быстро меняется, совсем недавно акции Амазон стоили 3500US$ за штуку, а теперь 2200. И в такой же пропорции упал весь tech. Акции Tesla и Microsoft просели. Amazon вообще показал квартал с отрицательной прибылью. Сегодня, Netflix уволил 150 человек, хотя они были образцом успешной компании с максимальной оплатой инженерного труда. Facebook тоже не ice. Крипта упала. Если раньше все акции любой технологической компании росли вверх, то теперь пузырь стал сдуваться💨 Так то весь мир трещит по швам.

Зато вот Microsoft, наоборот сообщил, что надо всем поднять зарплату в 2 раза! Это неожиданно, так как Microsoft платит меньше всех из всех компаний. Как раз в мае в Microsoft будет Performance review, вот и проверим.
👍53🤔23🔥10
Для всех фанатов Tableau, сейчас идет конференция по Tableau и вчера была презентация новых фич, если кратко, то можно ознакомиться здесь - Power your analytics advantage—new product innovations from Tableau Conference 2022

Запись Dev on Stage вы можете найти здесь.
👏10🔥3🤔2
Давно хотел рассказать забавный момент.

Когда я работал инженером в Amazon Alexa в Бостоне, точнее в Кембридж (их разделяет река), я был единственным инженером. Я работал с несколькими BI инженерами, которые строили все дашборды "на лету", то есть без хранилища данных. Вся логика была на SQL, никакой историчности, очень медленно и сложно. Так же, данные тянулись из трех регионов AWS, и где-то потом склеивались в файлах и SQL😱

Для меня сразу стало очевидно, что нужно хранилище данных, интегрировать данные вместе, из SQL запросов сделать data pipelines и все автоматизировать, что я и сделал на базе Redshift. Можно сказать, что это было мини хранилище для конкретных кейсов и одним из источников был папа Redshift (центральное хранилище данных для бизнес метрик Alexa).

В то время LakeHouse был еще в зародыше, а GDPR требования нужно было соблюдать (удаление клиентских данных). Мы могли легко удалить данные из базы данных и практически нереально удалить customer_id из озера данных на S3. Поэтому папа (а может мама) Redshift работал из последних сил на максималках - 128 нод dc2 (compute optimized). Явно не справляясь с нагрузкой.

Однажды меня попросили пересчитать все данные в нашем локальном Redshift за 2 года. То есть мне нужно выполнить 730 циклов наших запросов (один день за раз, иначе запрос не справляется). Я решил не заморачиваться и через API сервис внутреннего ETL инструмента запусти 730 джобов параллельно.

Главный недостаток Redshift - concurrency (кол-во одновременных запросов). Оказалось мои 730 запросов заняли очередь этого редшифта и больше никто не мог им пользоваться несколько дней. Команда поддержки тоже не понимала, что не так, так как "редшифт же работает". Потом они нашли виновных😊

Но это не самое главное. Стало очевидно, что нужно копировать логику к себе и строить независимую платформу. Для этого я потратил пару месяцев на создание Press Release, в котором написал, почему мы это делаем, сколько стоит, какие преимущества и тп.

Самый приятный момент в этой истории - выбор кодового названия платформы. Идея была простая, есть основное файловое хранилище данных Alexa, а я создаю платформу, которая как бы рядом, что напомнило мне Землю и Луну (луна в данном случае спутник земли). Да еще русские запустили первый спутник в космос - "Спутник -1". 🛰

Это был в конце 2018. Название платформы "Sputnik" всем понравилось и плотно вошло в обиход за пределами нашей команды вверх по вертикали. Советская космонавтика тоже всем понравилась.

Ну а дальше вы знаете, первая вакцина от Covid - Спутник и далее по списку.

Недавно разговаривал с коллегой, кто пришел на мое место, он доложил, что Спутник еще живет, хотят его название confusing.😎
👍98😁28🔥22🤬2
Вышла новая книга - Data Algorithms with Spark. Я ее еще давно приметил.

In each chapter, author Mahmoud Parsian shows you how to solve a data problem with a set of Spark transformations and algorithms. You'll learn how to tackle problems involving ETL, design patterns, machine learning algorithms, data partitioning, and genomics analysis. Each detailed recipe includes PySpark algorithms using the PySpark driver and shell noscript.

1. Introduction To Spark And PySpark
2. Transformations In Action
3. Mapper Transformations
4. Reductions In Spark
5. Partitioning Data
6. Graph Algorithms
7. Interacting With External Data Sources
8. Ranking Algorithms
9. Classic Data Design Patterns
10. Practical Data Design Patterns
👍566
dbt известны своей относительной простотой, так как дает возможность создавать все трансформации данных на SQL. Согласно их roadmap на 2022 год, они добавляют поддержку Python - Python-language dbt models
🔥47👍11
Готовлю загадки для дня рождения дочки. Загадки почему-то напомнили собеседования FAANG и другие компании с замороченными вопросами😂

Примеры:
• Что было «завтра», а будет «вчера»? (сегодня)
• Что принадлежит вам, но другие используют это чаще? (ваше имя)
• У броненосца две передние ноги, две задние, да еще две левые и две правые. Сколько ног всего? (четыре)
• Каких камней нет ни в одном море? (Сухих)
• Какая птица из яйца родится, а яйца не несёт? (петух)
• Как далеко в глубь леса может забежать заяц? (до середины, дальше уже выбегает из леса)
• Может ли страус назвать себя птицей? (нет, страусы не разговаривают)
• Что не вместится даже в самую большую кастрюлю? (крышка от этой кастрюли)

Можете добавить к себе в список вопросов для кандидатов🦧
👍176😁55🎉25🔥19🤔4
Инфраструктура как Код (Infrastructure as Code) - Модель «Инфраструктура как код (IaC)», которую иногда называют «программируемой инфраструктурой», — это модель, по которой процесс настройки инфраструктуры аналогичен процессу программирования ПО. По сути, она положила начало устранению границ между написанием приложений и созданием сред для этих приложений. Приложения могут содержать скрипты, которые создают свои собственные виртуальные машины и управляют ими. Это основа облачных вычислений и неотъемлемая часть DevOps. (Источник - Инфраструктура как код, выигрываем на масштабе)

Есть еще такое определение (нужна же практика иностранного языка) - Infrastructure as Code provides a way to describe or declare what infrastructure looks like using code. The declarative nature of Infrastructure as Code is sometimes referred to as the desired state. In the code, you describe the result of the infrastructure and how it should look after the code runs. The code then builds out the infrastructure as described. Any deviation from this declared state can be remediated using the denoscription of the infrastructure as code.

IaC - часть DevOps. Уже многие из вас попробовали создавать ресурсы в AWS, Azure, GCP или даже в Яндекс облаке. Когда мы создаем 1-3 ресурса, потыкать мышкой нам не западло, а вот если надо сделать 50 виртуальных машин, да еще дополнительные сервисы к ним, и потом все продублировать на среду разработки, тестирования и в продакшн, то можно приуныть.

Поэтому ленивые умные люди изобрели возможность описывать инфраструктуру как код.

Лидер тут безусловно - Terraform (ждем когда можно будет в яндексе создавать ресурсы в терраформ).

Terraform allows writing denoscriptions of infrastructure using very human-readable and intuitive denoscriptions of resources using blocks, arguments, and expressions. These denoscriptions of infrastructure in code allow quickly building, changing, modifying, and versioning infrastructure.

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

у Microsoft все всегда по-своему, и у них есть Azure Bicep - Fundamentally it is a transpiler, taking a new language and translating that into ARM templates like you can do any other time to deploy on Azure. If you have multiple different languages, you could have a situation where something is supported in one language but not the other.

Если вы уже работали в Azure, то возможно заметили, каждый раз как создаете новый ресурс, у вас в конце есть ARM template - это JSON файл, который описывает конфигурацию Azure ресурса(ов). А bicep - это user-friendly интерфейс, чтобы уйти подальше от практически non human readable json и к более практичному подходу, почти как у terraform.

Мне "повезло" в двойне, с одной стороны мне надо описать всю инфраструктуру на Azure, которую я так долго и усердно кликал мышкой, с помощью Azure Bicep, а с другой стороны мне нужно создать Terraform template для EMR, SageMaker, Glue, Redshift и кучи других AWS сервисов.
👍23🥰1🤬1
А вот слайды тренинга по Azure Bicep. Вдруг вы очень сильно любите Azure 🤪
👍6👏1🤬1
Мужик рассказывает какой он молодец, пришел на встречу, а на доске нарисованы всякие сервисы модные для стриминга, больших данных и тп. И он спрашивает - а что вы будете делать с данными?

Да ктож его знает, пока не придумали - отвечают инженеры

Тогда смелый мужичек взял стерку и все стер, оставил только S3 и Athena (Serverless SQL engine). И сказал им - раз не знаете, не надо усложнять, начните easy и как поймете, что бизнес хочет делать с данными, так и построите полноценное решение. А если будет все медленно - купите Snowflake.

Мораль простая, мы как инженеры, любим все усложнять, пробовать новые тулы, рисовать красивые архитектуры, и часто забываем, что нужно бизнесу, или вообще зачем мы это делаем. (1й модуль даталерн).
👍89🔥21😁32
А что касается Athena и S3 тут есть другая проблема. У нас как раз такой случай, в течение 2х лет ребята строили решение на Athena + DBT + S3. И теперь это technical debt, и мы не можем перейти на что-то нормальное.

Во 1х, оно и так работает и приносит пользу бизнесу. (c Excel так же можно быть)
Во 2х, бэклог из задач от бизнеса растет и уже задача на пол года вперед. Интересный момент, когда было 3 инженера задач было в 4 раза меньше, чем сейчас с командой из 11 инженеров.

Я несколько раз предпринимал попытка миграции на Databricks, Snowflake и Redshift, но все без успешно. Да что там миграция платформы, мы не можем обновить dbt с версии 0.19 на 1.0.1, потому что у нас есть CUSTOM элементы.

Лично для меня все понятно, решение, мягко говоря, не ice. Я бы все удалил и заново построил🏰 чем продолжать кормить монстра и растить technical debt💣.

В конце-концов мое дело маленькое - получать зарплату и приходить на daily standup😇
😁69👏8👍7😢4🥰1
Стоки FAANG компаний продолжают опускаться без лишнего шума. Цифры можете посмотреть и сами, в целом печально, особенно когда это составляющая часть зарплаты. Цены на бензин и продукты выросли, ставка по ипотеки поднялась с 1.6% до 4,5% (это по Канаде), и бум недвижки прошел, когда только ленивый не купил себе 1-2 недвижимости. Кто не успел, тот опоздал. Если раньше можно было выставить дом на продажу и он уйдет в первые выходные на 10-20% больше чем вы хотите, то теперь все наоборот. Это только из моих личных наблюдений.

А если посмотреть на заметки знающих людей из The Information, то там совсем все печально.

Самый топовый VC Sequoia Capital (они инвестировали одни из первых в Google, Apple and Airbnb и знают в этом толк) в 2008 году выпустили известную презентацию из 52 слайдов - RIP Good Times, в которой они объясняли своим подопечным, что происходит и как быть. В 2020 они снова подготовили доклад - “Coronavirus: The Black Swan of 2020.” И снова они говорят о спаде в экономике:

Its latest warning to its portfolio companies takes the form of a 52-slide presentation, a copy of which was viewed by The Information. Sequoia described the current combination of turbulent financial markets, inflation and geopolitical conflict as a “crucible moment” of uncertainty and change. Sequoia told founders not to expect a speedy economic bounceback akin to what followed the start of the pandemic because, it warned, the monetary and fiscal policy tools that propelled that recovery “have been exhausted.” The firm suggested founders move fast to extend runway and to fully examine the business for excess costs. “Don’t view [cuts] as a negative, but as a way to conserve cash and run faster,”

В общем все просто - затяните пояса и не бойтесь увольнять людей пачками, это нормально.

Возможно поэтому мы видим сообщения об увольнении людей и оптимизации бизнеса. Например, PayPal уволил людей - PayPal to cut over 300 jobs from its Irish operations, и это только начало.

• Getir is cutting 14% of staff, or an estimated 4,480 positions, according to Techrunch.
• Gorillas said it would
cut 300 employees.
• Bolt is laying off about 230 workers, according to The New York Post.
• Swedish fintech company Klarna said it would
cut about 500 employees. (10% сотрудников)

Layoffs and hiring pullbacks have spread throughout the tech industry in recent weeks, a sharp reversal from 2021, when firms hired aggressively. Robinhood, Cameo and Netflix are among the companies that have laid off employees, while Meta Platforms, Uber and Coinbase have said they’ll slow down hiring.


Оказывается есть сервис Layoffs.fyi Tracker, в котором можно найти такую информацию. И почему-то на главной странице я сразу вижу "airtable . com’s server IP address could not be found." - наверно уволили дата инженера.

Даже у Илона дела так себе, не может купить какой-то там твитер. - "deal on hold". 🌚

Если раньше все были успешные инвесторы, крипто бароны и landlordы, то теперь оказывается, что все просто плыли по течению изобилия, которое было создано искусственно. Так что дата и аналитика как обычно смогут прояснить картину и понять, что не так. Легких денег на всех не хватит. 🦥

А есть ли хорошие новости? Конечно есть, скоро лето!☀️

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

Как в песни "Мелочи" группы Ленинград:

Кончилась эпоха – сказал мой корешок
Так-то жили плохо, но как-то хорошо
👍71🤔14🔥7🤬1