Data Engineer – Telegram
Data Engineer
439 subscribers
167 photos
3 videos
105 links
Дата-инженерия в схемах и мемах

По всем вопросам — @mobiledeveloper_bot
Download Telegram
2️⃣ Данные хранятся в различных изолированных источниках, в разных форматах, часто содержат множество ошибок.

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

Для разработчиков на первом месте стоит их продукт, у них есть задачи и им тоже нет дела до нужд аналитики. «Вот тебе подключение, чем отличается Orders от Orders_new или Orders1, сам разберешься. И вообще, это не моя работа...»

Кажется, что качество данных в источнике — забота команды источника, но см. абзац выше. Придется столкнуться с такими артефактами как: тестовые данные, ошибки ввода, результаты багов и т. д. Расстроенные некорректными данными пользователи отчетов придут к вам. Фразы типа «это все источник виноват», не вызовут у них сочувствия, даже не пытайтесь. Скорее наоборот, подобные попытки приведут к потере доверия.

Продолжение следует...
#DataOps
👍71
3️⃣ Недостаточная автоматизация

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

Вот другой случай. Запуск скриптов автоматизирован, но изменения в них накатываются в продуктовой среде специально обученным администратором баз данных, которому лень проверять, что там аналитик “наваял”, даже запустить лишний раз лень.
“Шеф, все пропало, отчет не работает, аналитик уехал в отпуск,” - сказали бы герои легендарной комедии Леонида Гайдая.

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

Продолжение следует...
#DataOps
👍7
4️⃣ «Слабоумие и отвага» (Hope and Heroism в оригинале)

Вышеперечисленные проблемы порождают еще одну: дата-команда живет в режиме «тушения пожаров», где каждый «потушенный пожар» порождает несколько новых. Такой вот рекурсивный common table expression без условия для прекращения.

Очевидно, что в подобном случае дата-команда должна состоять из супергероев, «спешащих на помощь» и появляющихся «только свистни». Однако «чудеса на виражах» случаются только в диснеевских мультфильмах. Жизнь же больше напоминает легенду о Данко Максима Горького. Супергерои быстро выгорают, увольняются, а то и «обнаруживают себя уличными художниками в Амстердаме».

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

Закончить рассказ о проблемах хотелось бы в духе «магазинов на диване»: «Вы устали? Все плохо? Выхода нет? Не спешите с выводами, попробуйте наш чудесный подход всего за 99,99$...»

Продолжение следует...
#DataOps
👍53
Forwarded from 5 minutes of data
Наверное многие видели мем, который называется - The SQL Iceberg.

Энтузиасты решили разобрать каждый уровень этого мема на примере PostgreSQL.
Получилась такая шпаргалка на основе мема в которой кратко рассказывают про основные термины.
Получилось круто 🔥
тык
👍10🔥1🤔1
Для борьбы с вышеперечисленными проблемами существует два простых, очевидных и широко распространенных решения, тем не менее почти никогда правильно не работающих.

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

🔴 "Нам нужно больше людей," - вторит ему другой, не менее эффективный (в общем-то, многие современные управленческие подходы сводят п.2 к п.1, но моя религия не позволяет относиться к людям как к ресурсам). Подбор ведется бессистемно, часто по принципу “возьмем всех лучших с рынка или кого сможем взять”. Встраиванием новичков в команду никто не занимается, так как все заняты “тушением пожаров”. Часто даже задачи поставить некому. В результате получается, что часть сотрудников сильно перегружена, часть страдает от безделья.

Продолжение следует...
#DataOps
6
А теперь переходим непосредственно к DataOps. Суть его сводится к семи простым пунктам

1️⃣ Проверяйте качество данных на каждом шаге потока данных.

2️⃣ Используйте системы контроля версий

3️⃣ Всю разработку ведите в отдельных ветках системы контроля версий и сливайте в основную после ревью, тестов и т. д.

4️⃣ Используйте различные среды для разработки, тестирования и всего остального.

5️⃣ Для каждого шага потока данных создавайте типизированные решения, которые могут быть затем переиспользованы в похожих случаях. Используйте контейнеры. Код, помещенный в контейнер проще переносить между различными средами, кроме того, нет необходимости разбираться с набором инструментов внутри контейнера, достаточно научиться работать с контейнерами.

6️⃣ Параметризируйте свой поток данных, чтобы была возможность запускать поток в различных средах, для различных источников данных, наборов данных и т.д.

7️⃣ Сочетайте ценностный и инновационый подходы. Здесь имеется в виду, что должно существовать 2 различных по сути потока данных: основной, тот который приносит компании пользу здесь и сейчас, и инновационный — идеи, гипотезы, прототипы, то есть то, что направлено на развитие работы с данными и что возможно будет встроено в текущий поток.

Несложно же?😁

Продолжение следует...
#DataOps
🔥43
А теперь подведем итоги

1️⃣ DataOps является очень важным инструментом в управлении данными и должен внедряться на самых ранних стадиях проекта. «Правильные вещи нужно делать как можно раньше» (Мартин Клеппман, но это не точно)

2️⃣ На мой взгляд, DataOps — это не отдельная профессия, а еще один инструмент в арсенале инженера данных.

3️⃣ Понимание DataOps — очень важно для начинающих инженеров. Тут как с плаванием - переучивать, говорят, гораздо сложнее, чем учиться с нуля. А значит, возникает необходимость изучения систем контроля версий и контейнеризации (Git и Docker) на самом старте карьеры.

4️⃣ Ограничение DataOps заключается в том, что это односторонний подход, основанный на минимизации рисков, направленный только на одного участника жизненного цикла данных — дата-команду. DataOps позволяет ей спать относительно спокойно, зная, что в зоне ее ответственности все под контролем, но не спасает от очень плохих данных в источниках и неадекватных потребителей. Здесь нужно «кое-что абсолютно другое».

The END
#DataOps
👍11
Я здесь изложил свой взгляд на DataOps, если же кто-то хочет составить собстенное мнение, книгу «The DataOps CookBook» можно скачать совершенно бесплатно.

Добавлю сюда еще парочку моих самых любимых цитат.

"We believe that the secret to successful data science is a little about tools and a lot about people and processes."

"A single data engineer should be able to support ten data analysts and scientists."

Последняя должна служить метрикой качества управления данными в компании😁

Ссылка на книгу: https://datakitchen.io/the-dataops-cookbook/
👍4
#мысливслух

«Если уж решился стать архитектором данных, то надо идти в своем увлечении до конца».

Первое, что нужно сделать — «убить в себе инженера». Гнать от себя подальше подленькие мысли, что сделал бы по-другому. Унять зудящие руки, так и тянущиеся что-нибудь написать, типа: create_dag, select * from big_and_wide_table, а то и drop database.

После чего заняться своими непосредственными задачами.
👍7😁2
Rock-n-Roll Until We Die

"Ну что, потрентим на тему “Data Mesh"? (С. А. Жариков "Музыкальная анатомия поколения независимых")

Прежде чем начать погружение в "бирюзовые глубины" Data Mesh, скажу, что для меня это не подход, не методология, не архитектура, а философия, практически смысл жизни, степень веры в децентрализацию, в человеческую целостность и осознанность. Это не кунг-фу, а значит, не может существовать ни лучшего, ни чистого, ни правильного Data Mesh (хотя обязательные условия все же существуют).

Лучше всех главный пререквизит к его внедрению выразил Трент Кримм из The Independent:

"Это сработает, Data Mesh. Ты сменил тактику не сейчас, ты менял ее три сезона. Медленно, но верно выстраивал в команде культуру доверия и поддержки на тысяче незаметных моментов, и это привело к неизбежному, к Data Mesh. Это сработает!"

Свою формулировку предлагают космос-панки из ВИА “Элизиум”: “Чтобы каждый перед каждым был ответственен и честен”. Кому как не им об этом знать? Ведь Data Mesh представляет собой коллаборацию двух далеких друг от друга музыкальных направлений: панк-рока и фри-джаза.

От панк-рока Data Mesh берет приверженность к личной свободе, DIY-философии и принцип "прямого действия". Фри-джаз же некоторые его исследователи характеризуют следующими тезисами: "Фри-джаз — это джаз, в котором музыканты целиком берут на себя ответственность за то, что играют. Фри-джазмены не обращаются к шаблонам и во время исполнения должны согласовывать каждый элемент импровизации с партнерами и т. д. " А не отсюда ли растут корни дата-контрактов? 🤔

И если в вашей компании это сошлось, то есть вероятность появления собственных "керамических псов", а то и "алмазных гончих". Попытки внедрить Data Mesh в неподходящей для этого среде приведут к провалу, как у Нейта Шелли с West Ham United.

Special thanks товарищам Tube & Berger и примкнувшему к ним Richard Judge за чудесную композицию, давшую название новому циклу. А также Александру Петроченкову за книгу о крафтовом пиве.

Продолжение следует...
#datamesh
👍6
Нашел прекрасное на просторах ЛинкедИна. Я в свои годы могу рассказать, как правильно вставать со стула, чтоб в спину не стрельнуло.
Хоть новый курс для синьоров запускай...
😁8👌1
Терпеть не могу "мат на поле" (один раз даже из-за этого уволился😁), но не мог пройти мимо, ибо жизненно. Мазды у меня нет (как и прав), поэтому я обычно отправлялся бегать, будучи хэд оф дата инжиниринг...
🔥7😁3
Сила одного (истЕрия Data Mesh)

«Она ушла в 6 вечера с работы, села в свой автобус и поехала домой. » (ВИА Тараканы - «История создания Data Mesh»)

Жамак Денгани вышла из офиса, села в автобус и уставилась невидящим взглядом на небольшой экран телевизора над сиденьем водителя. Мысли ее блуждали очень далеко, она чувствовала, что приблизилась к решению очень важной проблемы, но ухватить суть никак не получалось.
На экране Стеф Карри забросил очередной трехочковый, высунул капу изо рта, задумчиво пожевал ее, засунул обратно, окинул взглядом ревущие от восторга трибуны и, широко улыбаясь, отступил в оборону.
«Как же у них все просто,» - подумала Жамак, «отнял-отдал-открылся-бросил, вот бы и дата-мире сделать что-то подобное…» И тут ее осенило.

На следующий день Жамак позвонила своему коллеге по Thoughtworks Мартину Фаулеру, гуру IT:

- Жамак, ты с ума сошла? В смысле, устрицы с шампанским? - извини, я отвлекся, думаю об ужине. Я хотел сказать, - в смысле, нужно дать доменам волю самостоятельно управлять своими данными? Это противоречит здравому смыслу.

- Мартин, у русских есть группа Тараканы!, почти как наши Rancid, только круче. В одной из песен у них есть строчки: "Я просто верю в то, что рушить догмы, - лучший способ не стареть". Я словно всю жизнь жила с этим и вот только теперь поняла, что это значит. У меня появился шанс изменить мир, и я ни за что его не упущу.

- Я хоть и родился в Уолсолле, городе Роба Хэлфорда и Нодди Холдера, но русские панки мне тоже по душе. «Может коктейль не долетит, но он запущен и горит.» - как-то так пели мои кумиры из CWT. Действуй, если что я прикрою.

Обрадованная Жамак выключила видеосвязь. Мартин Фаулер откинулся на спинку кресла и вставил в уши наушники. Его земляк, бог heavy-metal, Роб Хэлфорд настойчиво советовал ему, нарушая закон стать ломающим челюсть привычному укладу, ведь он часовой рефакторинга и перед рассветом новой эры в управлении данными должен быть защитником веры.

P.S. Пинта пива нашедшему все песни ВИА Judas Priest в последнем абзаце.
Коллеги из Mathshub решили поддержать тренд на "поговорить о токсичных работодателях". Все по делу.
От себя добавлю, что очень важно следить не только за репутацией компании, но и за ее сотрудниками, за тем, что они делают в публичном пространстве. Есть конференции, есть хабр, есть тг-каналы, linkedin опять же, то есть множество источников для сбора информации. Я вот комментарии люблю читать. И составил для себя список людей и компаний, с которыми работать не хочу. Это не значит, что они плохие, мы просто разные. И сам уже давно спокойно отношусь к тому, что кому-то не подхожу.

https://vc.ru/u/2214539-mathshub/836703-10-priznakov-toksichnoy-kompanii
👍1
#мысливслух

Вторая заповедь тим-лида: "В день выхода нового сотрудника начинай искать ему замену."

Friday, I'm in love😀
😁2💯1
Я впервые про эту фишку узнал в 2013 году. Как сейчас помню, коллега так делала. Уверяла, что их на предыдущей работе DBA заставляли так писать, дескать запросы быстрее работают. Сути она не знала, на плане разницы не было. Чуть позже я услышал версию, что в ранних версиях MS баг был, Merge Join на неравенствах не работал, а 1=1 равенство добавляло и некоторые запросы действительно ускорялись. Баг починили, а привычка осталась. Про то, что так удобнее условия закомментить, я додумался значительно позднее😀

https://news.1rj.ru/str/rockyourdata/4325
👍3😁1
#немогумолчать

Это просто невероятные ощущения, когда тебе в рассылке приходит твоя же статья😁

Всех с пятницей!
👍5🔥5😁1