🔋 Труба данных – Telegram
🔋 Труба данных
3.99K subscribers
330 photos
5 videos
9 files
449 links
Авторский канал обо всем, что происходит в мире работы с данными: хранение, обработка, визуализация, как мы принимаем решения и как мы становимся профессионалами в работе с данными.

Автора канала - @SimonOsipov
Download Telegram
https://architecturenotes.co/

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

Есть бесплатные посты, но большинство по подписке, $89 в год.

Из бесплатных и релевантных, например, про шардирование https://architecturenotes.co/database-sharding-explained/

@ohmydataengineer
🔥8💩1
https://www.youtube.com/watch?v=x1RVNGDSdw4

Мы вот тут строим Data Lake и DWH, меряемся объемами данных и у кого стриминг самый реалтайм.
А по ссылке выше - финал мирового чемпионата по Excel. Просто, совсем другой мир анализа данных.
И даже игры делают в Excel (одно из заданий) и всякий тулинг поверх него. Потыкайте в видос, там есть таймкоды.


@ohmydataengineer
7👍6🔥2💩1
Вот это я и моя команда 😂

@ohmydataengineer
🔥18👍4💩2
Data Engineering в разных компаниях. Конкретно в этот раз в Ayden

https://medium.com/adyen/data-engineering-at-adyen-ccded12a6eb

Возможно, кто-то помнит, что какое-то время назад я выступал на конференции с докладом про то, насколько разные бывают задачи у Data Engineers и насколько разные это позиции. Проводя найм сейчас себе в команду, заметил закономерность: на рынке Израиля, например, DE это подавляющее количество задач на SQL и какой-то моделлинг данных, и при этом мало программирования на Python или любом другом языке.

Поэтому это очень важно смотреть и узнавать, а как работают DE в других компаниях, какие бывают задачи и требования, чтобы ваши знания и навыки оставались актуальными. Например, Ayden c болот, это финтех-конкурент Stripe. По ссылке выше - общее описание того, как они работают и мне в глаза бросилось 2 вещи

- data engineers are developers first -> 70% времени ребята все-таки пишут код
- we do not write ‘raw’ SQL in our day to day job -> почти все трансформации отданы на откуп PySpark
- we do not have to ensure there are enough airflow workers, or that we need to ingest raw data from event streams -> есть отдельная команда, которая поддерживает платформу (Airflow и все остальные тулзы) и вставку сырых данных

@ohmydataengineer
👍81
Рефакторинг по возможности

https://martinfowler.com/bliki/OpportunisticRefactoring.html

Статья - древняя (почти 12 лет), но до сих пор актуальная (как и большея часть книг Мартина Фаулера). Рефакторинг по возможности, это когда вы делали один тикет, заметили какую-то небольшую ерунду в коде, которую можно быстро поправить - взяли и прибрались. Как у скаутов: “Всегда оставляй место после себя чуть чище, чем оно было до тебя”.

Очень клевый подход, я его разделяю, но у него есть две проблемы, о которых автор упоминает

- Как не провалится в кроличью нору, когда ты, прибираясь в коде, видишь ерунду за ерундой, и ты просто теряешься в этом рефакторинге
- Это требует хорошего покрытия тестами (дабы не поломать что-то случайно) и культуру разработки и подходы в код ревью, в которой такое поведение будут поддерживать, а не ругаться, что у вас в одном PR все намешано.


@ohmydataengineer
👍62
Классика бигдаты в пятничном юморе 😂

@ohmydataengineer
👍18🔥3
Что там с modern data stack?

https://mattpalmer.io/posts/hot-takes/

Ох уж сколько мне этих статей попадалось и продолжает попадаться! Кто-то продолжает восхвалять, а кто-то начинает ругать уже все подряд. Очередной взгляд на вещи, короткая выдержка оттуда

- у dbt нет некоторой функциональности, например column level lineage, которое ей не позволяет стать лучшим инструментом
- Редшифт скатился и больше не конкурент
- DWH все также сложно
- Airflow - окаменелое устарелое 💩. А Airbyte - еще хуже. Поэтому пользуйтесь Mage (https://www.mage.ai/). Его активно форсит пара известных блоггеров, якобы это замена Airflow. Кто-нибудь пробовал?

В общем, как всегда, полезно узнать мнения в других пузырях, но свое лучше формировать опытом.

@ohmydataengineer
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Про базовые концепции тестирования в данных

https://www.datafold.com/blog/the-state-of-data-testing

Если вы находитесь на начальной стадии принятия и внедрения тестирования ваших данных, самые базовые концепции и примеры - это то, что вам нужно: Data Accuracy, Data Completeness, Data Consistency, Data Integrity.

Это скорее базовый уровень, но для начала хватит. А еще можно тыкнуть в твиты автора и посмотреть, а что же другие делают для тестирования данных. Например, клевый ответ “Метод пристального взгляда” (мы так уравнения в 7 классе решали по математике: внимательно смотришь на пример и видишь ответ). Так и тут, скролишь всю табличку, видишь какую-нибудь фигню, значит что-то не то.

@ohmydataengineer
👍9
Ща мы dbt притащим в проект и все полетит! 😂

@ohmydataengineer
🔥16👍1
Шо там по зарплатам?

https://medium.com/@mikldd/europe-data-salary-benchmark-2023-b68cea57923d

Для тех, кто планирует релокацию в Европу (если что, это не про “большие бабки”), полезно знать какие-то ориентиры на рынке, даже не смотря на то, что рынок очень динамичный, разный, вот это все. Очередное исследование рынка и вот забаный момент из него (графички тоже внутри есть по ссылке):

В Германии платят в среднем меньше, например 75% перцентиль в Амстердаме, Лондоне и Дублине платит на 50% больше, чем в Германии. Правда, Амстердам и так большой хаб, Лондон просто жутко дорогой, а Дублин, кажется, сильно перекошен зарплатами Амазона.

Ну а так:

Junior: Медиана $70k и только в бигтехе переваливает за $100k
Mid: Медиана $86k и у 25% больше $100k
Senior: Медиана $113k и у 25% больше $150k

Единственное, не пойму, почему опрос про Европу, но з/п в долларах. Ну и, конечно, это gross.


@ohmydataengineer
👍13
ChatGPT прям в IDE

На деле, конечно, было уже пару десятков плагинов, которые встраивали функциональность ChatGPT в IDE, но я решил не пользоваться ими, довольствуясь лишь GitHub Copilot. Очень хорошо ускоряет разработку, особенно если ты понимаешь, что ты делаешь 🤪

Относительно недавно Github аннонсировали Copilot X с функцией подключения и общения с ChatGPT прямо в IDE. Прям в IDE тыкаешь в строчки кода и говоришь “Помоги мне поправить это дерьмо” и тебе рефактор предложат, сверху тестов накатят…

Осталось только ChatGPT для коммандной строки и все будет шикардос… oh, wait! Это уже тоже есть тут!

Короче, залезть в бету продвинутой версии - вот тут https://github.com/features/preview/copilot-x

P.S. Не пихайте никакую чувствительную информацию в чат-гопоту и гигачад. Только обезличенные кусочки кода. И в копайлоте можете поставить галочку что ваш код не должен учавствовать в улучшении модели, если пока внутри компании не решили, что с этим делать. Следуйте здравому смыслу.

@ohmydataengineer
🔥17👍21
Ох, сколько интересных вещей я через git blame нашел. И еще в эксельке 😂

@ohmydataengineer
🔥20
Alerts Fatigue в качестве данных

https://www.youtube.com/watch?v=hxvVhmhWRJA&

Неплохое видео с последнего(?) Coalece: про то, что тестируют в данных. Assumption (предположение что мы ожидаем увидеть) или Assertion (что мы зафорсили в коде). Неплохой рассказ про то, как у людей устроено DQ и как они задолбались получать уведомления о плохом качестве данных.

Для себя подсмотрел интересную штуку, которая называется Elementary - OOS Data Observability поверх dbt.

@ohmydataengineer
👍4🔥1
Еще немного бубнежа про Modern Data Stack

https://www.rudderstack.com/assets/the-data-maturity-guide.pdf

Продолжая разговор про modern data stack, у ребят из Rudderstack (rudderstack.com, cloud data platrofm) на своем сайте рассказывают, насколько этот ваш MDS сложная концептуальная штука, ничего не понятно и очень много всяких иконок, в том числе их самих. Ключевая цитата там звучит вот так:

Let’s be honest. The modern data stack is an ambiguous concept. It’s confusing and impractical. What we need is a real-world roadmap to help us progressively build more mature data functions. So we developed a practical four-stage framework to guide you along your journey to data maturity.

Поэтому за емейл они предлагают свой гайд по тому, как оценивать свои хотелки и что вам действительно нужно в текущей ситуации из DE инструментов. Сам гайд на 80 страниц, если вам предстоит самим строить какое-то хранилище или вы на пороге того, что надо все нафиг переписать - довольно неплохо описаны всякие подходы и концепции. Ссылок на конкретные инструменты не заметил, а вот примеры типичных проблем и pain points описания - мне понравилось.

Вообще, Data Maturity - головная боль последних моих недель, ибо нужно решить вопросики по всяким стратегиям, подходам и инструментам, а это непросто дается.

@ohmydataengineer
👍13
Сокращения, что, опять?

https://www.getdbt.com/blog/dbt-labs-update-a-message-from-ceo-tristan-handy/

Я почти и не писал про сокращения, но это произошло в релевантной компании: в этот раз 15% сокращает dbt, задело всех, и инженеров тоже.
Из примечательного, в 2020 году компания была 20 человек, в 2021 - 50, а в 2023 - почти 400.


@ohmydataengineer
👍32👎1
Про дальнейшее развитие

https://www.youtube.com/watch?v=wB0ulHmvU7E

Классический вопрос, который мне задавали нескольких последних карьерных консультациях: а что дальше то делать? Куда дальше идти? Куда движется индустрия?
Типичная проблема: IC (расти в техлиды, стаффы, принципалы) или менеджеры (тимлиды, ЕМ и вот это все).

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

Но вот касательно конкретно IC мне очень понравился доклад и статья с Coalesce “Excel at nothing”. Личное ощущение, что в целом, у generalist больше возможностей, влияния и $$$, чем у “специалистов”. В золотые времена компании могли себе позволить нанимать узкоспециализированных профессионалов для “fine-tuning JVM model at deminishig return levels”, а сейчас бОльшая часть компаний смотрит на финансы и на кадры, которые нанимает, поэтому если человек может больше и может это за пределами своего стека технологий (а это еще и софт-скиллы сюда), приоритет будет ему.

По крайней мере, по личному опыту вижу, что именно так и происходит.

(Самое забавное, что я помню как сам задавал этот же вопрос на консультации, правда она была за банкой пива и ребрышками 🤪)

@ohmydataengineer
👍11🔥2
А ты шо, теперь деврел?

Расходился я тут по подкастам, это второй за последний год и, скорее всего, не последний, но ребята из Подлодки пока реагируют как типичный работодатель: мое отклик, прочитали, но не ответили 🤪

С Евгением из @general_it_talks “Тимлид Очевидность” мы знакомы давно, поэтому когда он предложил пообщаться за интересную тему - с удовольствием пришел. Евгений и Виктор ведут подкаст “Кода кода” и мы говорили про “Плохой Код VS Чистая Архитектура”. Вышло очень хорошо.

Кстати, в эту же тему дров подкинул Кирил Мокенвин (создатель Hexlet.io) - https://habr.com/ru/articles/508876/ - Вероятно, хватит рекомендовать «Чистый код». Да, на Хабре, но большей РФ площадки для IT статей нет.

🎧 Слушайте подкаст «Кода кода» в Яндекс музыке, Apple podcasts, VK и много ещё где по ссылке https://kodakoda.mave.digital/ep-49


@ohmydataengineer
👍11💩4
Передаю привет Viz команде, которую очень люблю 😂

@ohmydataengineer
🔥26👍32
https://github.com/modularml/mojo

Говорят, тут у Rust и Python случился ребенок в виде нового, хайпового языка программирования под названием Mojo. То есть там концепции и скорость Rust, а еще можно спокойно притаскивать модули Python:

You can import and write normal Python modules/packages and code.
It looks and feels like Python.
Mojo wants to bring “systems programming” to Python.
Mojo adds `let` and `var` function declarations to give immutability, or not.
Mojo adds those famous `structs`.
The ability to have static typing/checks at compile is available.
Addition of `fn`s instead of `def`s for more immutable, static, and generally stricter methods.
Mojo brings the concepts of borrowing and ownership to immutable `fn`s, in a Rustacian sort of twist into Python.


Мгновенно ютуб начал подсовывать видосы про то, что это будущее DE, сразу вспомнил Хрыча, который всех хотел на Rust пересадить. Но посмотрев на документацию и на примеры - не, не судьба. Все очень жиденько, все так себе, а проблемы, которые пытается решить язык - в Python решаются сторонними модулями и культурой программирования.
Ну а про “Python” медленный уже столько копий сломано….

Короче, не стоит тратить свое время, обычный hype train

@ohmydataengineer
👍74
Все очень любят опросы и обзоры

https://state-of-data.com/

Почему? Потому что это собирает больше всего просмотров.
Сначала я хотел написать свои наблюдения по поводу этого State of Data 2023 отчета, но потом увидел, что Дима уже сделал это, а дублировать контент ради контента мне не особо хочется.
Ничего нового, ничего необычного, “ходуб умер”.
Если очень хочется потратить время, то результаты можно посмотреть.

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

@ohmydataengineer
👍5💩4🔥1