data будни – Telegram
data будни
1.45K subscribers
120 photos
1 video
2 files
237 links
работаю инженером данных и пишу в основном про это.

Профильные ссылки с коротким резюме (статьи, доклады, подкасты), иногда «софтовое» — например, про поиск работы.
Download Telegram
👨‍🔧 разобрался с Terraform

спустя пару лет после моего первого знакомства с infrastructure-as-a-code наконец-то достался проект где можно попрактиковаться.


⌘⌘⌘

в Кларне всё на AWS, для управления архитектурой используют CloudFormation или Terraform; у нас в команде — последний.

почему вообще дата инженер занимается инфрой? в команде образовалось провал по компетенциям: есть несколько разрабов, пара аналитиков и менеджер, а вот деплоить инфру, получается, некому; сейчас приходиться закрывать техлиду на сдачу от других дел. Вызвался помочь с этим, потому что самому было интересно как это всё работает


⌘⌘⌘

за один проект удалось покопаться в разных инструментах AWS-стэка (+ DataDog для мониторинга):

- S3 — тут и сам ТФ хранит свои стейты, Афина хранит результаты запросов, а ещё там будут лежать файлы для Glue таблиц

- Glue — тут храниться мета-информация для баз и таблиц (данные которых лежат на S3)

- Lake Formation — новая тема от AWS для раздачи прав и полномочий на доступы к базам и таблицам

- Lambda функции — тут реализована логика по прекладыванию данных (плюс задаётся отдельная роль)

- CloudWatch — набор правил для запуска Лямбы с нужными параметрами

- DataDog — метрики, мониторы с алертами и дешы для мониторинга

- Secrets Ьanager — тут хранятся ключи для доступа к DadaDog


⌘⌘⌘

в результате получается такая логика:

1. готовим s3-бакеты (сразу с нужными тэгами для правильной аллокации костов)

2. в Glue создаём таблицы над бакетами — причём часть таблиц пошарена с другого аккаунта

3. через LakeFormation создаём нужные доступы, в том числе для кросс-акаунт и кросс-регион

4. Python-код для Лямбды пакуется, форматируется, валидируется и отправляет в облако как новый Layer

5. CloudWatch правило триггерит Лямбду с нужным набором параметров и та переваривает очередной кусок данных

6. на выходе у Лямбды данные и набор метрик, отправленных в DataDog

7. по этим метрикам настроены мониторы и алерты в нужный Слак-канал
🔥5👍3
data будни
👨‍🔧 разобрался с Terraform спустя пару лет после моего первого знакомства с infrastructure-as-a-code наконец-то достался проект где можно попрактиковаться. ⌘⌘⌘ в Кларне всё на AWS, для управления архитектурой используют CloudFormation или Terraform; у…
и отдельно заморочился и настроил себе (и коллегам!) удобный Developer Experience — сохранил основные команды для работы с ТФ в Makefile:

- авторизация с нужной стейджинг-ролью для локальной разработки

- инит терраформа с хранением стейта в staging s3 (для централизированного доступа и хранения)

- форматирование и валдиация тф-конфига

- подготовка плана и вывод его в консоль для глазуальной проверки

- деплой на стейджинг с нужными значениями параметров


такая настройка сильно сократила первичную настройку окружения для работы с репозиторием цикл и обратной связи для дебага и тестирования
🔥4👍32
🤯 ChatGPT научилась смотреть, слушать и быстро отвечать

нахожусь под впечатлением от вчерашней презентации OpenAI — они показали новую модель, а ещё обновление приложения.

теперь ChatGPT совсем даже не чат, а вполне себе собеседник: добавили возможность включать камеру в приложении и попросить описать что она видит

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

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

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

крайне воодушевляет как технические усилия влияют на опыт конечного пользователя! есть на что равняться по-нашему, по-инженерски!
5👍5🔥3
🏌️ RAG

однажды в коменты пришёл читатель Семён и пошутил что-то про RAG. Я тогда ничего не понял, но на всякий случай молча кивнул типа «да-да, я в курсе! во дают!1»

чтобы в следующий раз не попасть впросак, решил таки сделать домашку и погуглить что за зверь этот ваш раг. В интернетах нашёл красиво свёрстаное (аж захотелось купить что они там продают) и главное доступное объяснение:
https://gradient.ai/blog/rag-101-for-enterprise


⌘⌘⌘

что нужно, чтобы сделать своего чатбота на ллм? помимо самой ллм, конечно.

я так понял*, ллм из коробки будет знать много чего из общего мира, но конкретно про вашу специфику — неоч

* для экономии места я не буду перед каждым абзацем вставлять «я так понял», но представьте, что оно там есть и это будет справедливо показывать уровень моего знания о предмете

RAG — это сокращение от retrieval-augmented generation, типа генерация ответа с обогащением релевантной информацией; т.е. помимо общего знания в ллм добавляется релевантного контекста: например, вики компании.


⌘⌘⌘

плюшки:

→ добавляет свежие факты и документы, появившиеся после горизонта обучения модели

→ с дополнительным контекстом модель меньше галлюцинирует

→ косты меньше, чем у файн-тюнинга; причём как по деньгам, так и по времени и технической экспертизе


⌘⌘⌘

примеры, когда RAG будет полезен:

- чатбот сапорта: будет знать последний статус заказа и чётко расскажет про варианты доставки;

- поиск по базе знаний: например, по вики компании — что там по удалённой работе

- рекомендации: выдать самые последние статьи в соответствие с персональными характеристиками.


⌘⌘⌘

как можно улучшить ответы ллм? товарищи в статье приводят три метода:
1. prompt engineering
2. fine-tuning
3. и, собственно, RAG


prompt engineering — дёшево и сердито, низкий порог входа. Не нужны ресурсы на до-обучение.

fine-tuning — нужны ресурсы, время и корпус для до-обучения (?). Как результат более глубокие знания доменной области (например, медицина или финансы)

RAG — нужны ресурсы и специальная подготовка данных в векторной базе данных. На выходе обогащение ответов последними обновлениями и релевантным внутренним контекстом



⌘⌘⌘


чтобы RAG смог «читать» дополнительный контекст, его предварительно надо перевести в вектора (эмбединги, да?), эти вектора хранятся в специализированных базах данных.

целевой процесс обогащения сгенерированного ответа выглядит примерно так:

- (подразумевается, что уже) есть векторная база, заполненная подготовленными эмбедингами

- запрос пользователя переводится в вектора и в векторной базе ищутся семантически похожие данные

- эти релевантные данные добавляются в исходный запрос как дополнительный контекст

- на основе запроса и контекста генерируется ответ пользователю


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


⌘⌘⌘

буду рад, если покажете где я наврал — век учись!

что меня привлекло в подходе: среди всех приведённых вариантов допиливания моделей RAG выглядит как чисто дата-инженерская задача.

получается, надо взять какие-то данные, как-то их трансформировать, где-то похранить и потом предоставить для удобного пользования. И, естественно, нужно как можно чаще, по́лно и без ошибок! Ничего не напоминает?)
👍7🔥2
🗿 этому каналу не хватало лица!

вы могли заметить, что тут помимо сухих ссылок стало больше появляться всяких «что вижу вокруг», «что про это думаю» и «помогите разобраться дурачку»

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

как и любой подобный чатик, канал может затихнуть на месяц, а потом начать выдавать по посту-два в день ¯\_(ツ)_/¯

кажется чуток странным вести в таком духе анонимный канал (там правда подписано, но официально-то мы друг другу не представлены!)

в общем вот:
🔥13👍32😁1
👋 я — Саша Михайлов: муж, отец, латентный рационалист, иногда сноубордист и любитель поиграть по воскресениям в доту. В октябре 2023 переехал в Стокгольм 🇸🇪 и работаю инженером данных в местном финтехе Klarna


§ про работу

собственно, те самые data будни!

до 30 лет работал менеджером по логистике — следил, чтобы контейнеры из Китая и фуры из Европы исправно привозили нужные товары.

потом отучился на аналитика данных в Практикуме (в самой первой когорте, хе-хе), после него два месяца искал первую работу по новому профилю.

работу нашёл в отделе маркетинга торгового центра — спасибо ребятам за доверие! помню, как пришёл к ним готовый анализировать их данные с пандасом наперевес… а данных-то и не было! их мне как раз и предстояло собрать >_>

поскольку там я был единственным дата-инженером, приходилось собирать советы по чатикам <3 и сильно помог вводный курс по ДЕ от Димы Аношина

после того как чуток освоился на работе и насмотрелся курсов, нашёл вторую — уже более айтишную — работу в консалтинге Epoch8. Там помогал разворачивать облачные двх для клиентов. Узнал как правильно это всё делать: разворачивать инфру, раскладывать данные по слоям, вот это всё.

тем временем продолжал учиться и закончил курс Практикума по бэкенд-разработке на Питоне: подтянул программирование на примере веб-приложения на джанго.

там ↑ заботал алгосики и смог пройти все ступени собесов в Яндекс (приходил в общее ДВХ Такси, но почти сразу нас отделили в ДВХ Доставки). В составе лихой дата-бригады обслуживать ДВХ на всю компанию.

→ после мобилизации решил попробовать завести трактор и тут снова нашёлся подходящий курс от Практикума: английский для разработчиков. Там рассказали как работают и ищут работу на английском — и сразу на практике отрабатывал полученные знания, откликаясь и проходя тамошние собесы.

одна из нескольких ниточек привела к офферу в шведский финтех и мы с супругой решили попробовать пожить-поработать в другой стране

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


§ фан-факты обо мне

до того как податься в айти, думал стать дизайнером

✓ спарсил сайт из гугл-таблиц, чтобы сделать красивый чек-лист с треком личного прогресса

чтобы стать дата-инженером, я учился на дата-аналитика (а целился вообще в дата-саенс!)

опознал человека по данным с его фитнес-трекера

✓ помог Роме Бунину достать данные из движка блога, чтобы он сделал клёвый виз

✓ приходил гостем в подкаст Data Heroes

после переезда в Стокгольм, спарсил емейлы детских садов нашего района и отранжировал их по дальности от дома, чтобы записать сына в ближайший детский сад

моё лицо висит на главной Практикума

у меня есть тату, разработанная нейросетью


а в комментах открою один страшный блоггерский секрет!
🔥38👍1210😁2
🎠 астрологи объявили неделю ии

поэтому вот три ссылки в тему; ссылки получились по возрастающему уровню сложности — можно найти на свой вкус


I. подкаст «вы находитесь здесь»

мастерски сделанный подкаст от студии Либо/Либо про историю изучения машинного обучения: первые автоматоны, первые соревнования по распознаванию текста и картинок, первые гонки беспилотных машин и т.д.

всё разбито на идеальные серии по ~25 минут — удобно слушать в дороге или на обеде. Каждая серия раскрывает свою тему. Рекомендую.

https://libolibo.ru/nowyouarehere


II. выпуск Подлодки про приложения на ллм

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

вот все жалуются, что сети иногда галлюцинируют; на самом деле это не так — сети галлюцинируют 100% времени. Это суть их работы — придумывать ответ, которого до этого не было.

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

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

как правильно замечает гость, самое сложно в работе с ллм — задать нужный вопрос, т.е. найти применение этому инструменту (я примерно здесь!)

прошлись по методам промпт-инжиниринга — как можно быстро улучшить выдачу от нейросети:

→ базовый метод — жать кнопку «ответить снова» пока ответ не будет устраивать; вполне рабочий вариант для старта, рано или поздно сеть может догаллюционировать до приемлемого ответа

→ ещё сильно помогает добавить к вопросу пример ожидаемого ответа; никто не знает, почему это работает, но кажется это подксказывает сети в какой области собственных знаний найти подходящий ответ

→ если попросить сеть рассуждать по шагам, то вероятность промежуточной ошибки снижается

→ к цепочке рассуждений можно попросить добавить больше одного варианта и выбрать подходящий — из цепочки получится дерево рассуждений

→ langchain — если ответ сети отправить на проверку другой сети, это тоже снизит вероятность явного бреда (на бинарные вопросы сеть отвечает с бо́льшим успехом)

https://news.1rj.ru/str/podlodkanews/1313


III. большой обзор подходов к промпт-инжинирингу

Seattle Data Guy ретвитнул рестакнул большую статью. Я прочитал где-то треть и мозг уже вспух. Похоже на научный пейпер: рассмотрены все подходы к улучшению ответов ллм, всё по порядку и по полочкам. И на некоторые топики есть отдельные лонгриды.

в целом, список тем такой же как в подкасте Подлодки — можно либо слушать, либо читать

https://substack.com/home/post/p-143156742
👍4🔥4
data будни pinned «👋 я — Саша Михайлов: муж, отец, латентный рационалист, иногда сноубордист и любитель поиграть по воскресениям в доту. В октябре 2023 переехал в Стокгольм 🇸🇪 и работаю инженером данных в местном финтехе Klarna § про работу собственно, те самые data будни!…»
😱 забанили в LinkedIn

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

каждый день я стабильно искал дата-вакансии и откликался сначала на интересные, а потом и просто на все более-менее подходящие. Из всех откликов на мои холодные запросы так никто и не ответил — оно и понятно, в те месяцы у них кажется был особо большой наплыв соискателей.

однажды, зайдя в линкедин, я увидел просьбу подтвердить свою личность. Прислав им в форму скан паспорта (О_о), они обещали ответить в ближайшее время. Спустя сколько-то дней пришло письмо, что «ваш аккаунт заблокирован по причине нарушений правил»

от неожиданность я растерялся, но всё же попросил их уточнить что за правила и постарался убедить, что никаких правил я не нарушал (по крайней мере сознательно). Потом подумал, что наверное так говорит каждый: даже тот, кто нарушал — вряд ли те приходят с повинной.

через 14 дней получил сухую копипасту в ответ, что мол конкретные причины мы не называем, т.к. это может быть использовано во зло. так что адьос!

⌘⌘⌘

интересная особенность бана в линкедине, что (видимо) он относиться не к аккаунту, а к персоне. по крайней мере, у меня сложилось такое впечатление — первым делом я зарегал акк на другую почту. Заполнил профиль и историю работ.

на следующий день этот новый акк забанили по той же схеме.

тогда я попробовал зарегать следующий. Уже с новым телефоном. Бан на следующий день. Новый акк с рабочей почты — тоже бан. Когда появился шведская симка я сделал ещё одну попытку, но результат остался тем же.

⌘⌘⌘

понятно, что по ту стороны коммерческая организация, которая вправе придумывать любые правила пользования своими услугами; и, регистрируясь, мы все жмём галочку и «подписываем» этот контракт.

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

как бы теперь Кларна не оказалась моим последним местом работы >_>
💩13👀41👍1
🍅 middle →→→ senior

https://seattledataguy.substack.com/p/how-to-grow-from-mid-level-to-senior

y Seattle Data Guy гостевой пост про то с какой стороны подходить к прыжку от мидла к синьору. Резонирует с тем что я вижу вокруг и как представляю свой путь в сторону помидорства


⌘⌘⌘


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

непрекращающееся развитие — всегда готов научиться чему-то новому и рассказать об интересном

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

→ направления на подумать: вдумчивые и развивающие код-ревью, парное программирование и другие сессии обмена опытом; улучшение процесса онбординга


⌘⌘⌘

работать над действительно важными для компании штуками: ведь неважно сколько кафок с куберами задействовано, если пользователей — ноль

→ направления на подумать: интересоваться целями компании, смотреть вширь от проекта: апстрим и даунстрим


⌘⌘⌘

овнершип и ответственность. Увидел проблему — взял и решил. Не скидывать ответственность на других.

→ направления на подумать: оставлять поляну после себя чуть лучше, чем была до; планомерная работа над документацией проекта; помогаешь преодолевать блоки у задачи


⌘⌘⌘

да! и не забыть рассказать тимлиду про свои хотелки, составить и провалидировать конкретный план с явными сроками; а после — не забыть задокументировать результаты своей бурной деятельность

→ направления на подумать: вести список достижений и сделанных задач, брать инициативу на 1:1 встречах с лидом, искать самые больные места и предлагать решения
👍15🔥7
😱 етл-таски в очереди по ~23 часа

в Яндекс Го была довольно стандартная (да ведь?) дата-архитектура: были дата-лейк на YT и DWH на Greenplum. Вначале все данные попадали в лейк, там как-то предобрабатывалось и потом можно было залить в GP для всяких там джойнов и прочих оптимальных доступов.

Два наблюдения:

- между YT и GP случались заторы — данные туда-сюда заливались немаленькие и задача перекладывания джейсонов между базами довольно нетривиальная

- одного не самого инженера могло быть достаточно, чтобы сделать GP плохо ( :wave: ) — как-то ко мне пришёл наш ДБА и попросил засунуть в остановить свой запрос и немного его оптимизировать перед следующим запуском

⌘⌘⌘


Проблема, видимо, распространённая, так как в Кларне схожая картина: есть лейк на S3/Athena и DWH в Redshift. По умолчанию все данные заливаются в Редшифт и там уже обрабатываются.

Дата платформа хотела как лучше и сделала удобный фреймоврк по клепанию Airflow-тасков: нужно всего лишь написать sql-файлики и добавить их в yaml по нужной форме. Вуаля! и ваш даг уже задеплоен Дженкинсом в коммунальный Airflow.

Фреймворк получися удобным и всё больше дата-инженеров и аналитиков стали добавлять свои тасочки. В начале задержек не было, потом очередь стала больше и свободные слоты в пуле Редшифта заполнились.

Начались очереди на запуск тасков — квадратик таска в Airflow никак не хочет становиться ярко-зелёным, хотя ДАГ запущен.

Задержки в очереди всё росли и росли; и к текущему моменту нельзя с точностью сказать когда запуститься твой таск. При кроне в 7 утра он может начать работать в 10, 18 или даже завтра! О новый дивный мир!

⌘⌘⌘


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

Но, видимо, в какой-то момент что-то пошло не так. Коммунальное и доступное привело к ситуациям, когда дата-саентист жалуется в поддержке, что его запрос выдаёт ошибку. Начинают разбираться и оказывается что он пытается скопировать к себе во временную таблицу все заказы за пять лет — и не просто инкрементально, а через drop-create каждый раз!

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

⌘⌘⌘


у команды платформы тоже не хватет рук на всё: несколько человек не могут уследить за поделками тысячи! при этом предмодерация каждой джобы здесь тоже не сработает — сломается демократизация и тот самый селф-сервис, куда все так стремятся.

и сейчас всеми силами пытаются исправить это бутылочное горлышко в виде Редшифта и перевести таски на Афину или Спарк с выделенным компьютом.

ещё из альтернативных предложений — каждая команда может заказать себе выделенный кластер Redshift Serverless. Всё то же самое, только ваше собственное: ни с кем делиться не надо и локтями толкаться в очереди не придётся.
👍12😁10
👷 решения из реального мира

один из источников данных для нашей команды — внешние API. Каждый день мы запрашиваем новые данные и иногда пере-запрашиваем исторические.

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

собрались мы, значит, и стали думать как такого избегать.

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

… но лямдбу-то надо ещё написать, плюс она будет сама по себе отжирать из тех же лимитов на запросы. А потом всё это поддерживать…

тут выходит менеджер и предлагает просто написать вежливое письмо с просьбой сбросить лимиты.

и представляете — сработало! сбросили лимит ещё и подняли порог на следующий месяц!

получается, вместо того, чтобы писать код и приносить сложность в систему, достаточно было «просто спросить»
😁26🔥12👍11
🙅 no more* AI

* вольный перефраз оригинального заголовка
https://ludic.mataroa.blog/blog/i-will-fucking-piledrive-you-if-you-mention-ai-again/

коллега скинул отрезвляющую и фомо-утоляющую статейку (спасибо, Игорь!)

ключевая мысль статьи — «вам не нужен AI только если вы не ресёрсч лаборатория» — звучит очень свежей посреди этого аи-хайпа вокруг


⌘⌘⌘

вашей компании не нужен AI! скорее всего в ваших продуктах уже достаточно аи: ваш антивирус сканирует файлы, фаерволл определеяет подозрительные по аномалиям (а почта исправно фильтрует спам)

ведь по факту получается, что вы тащите в свой прод экспериментальную (!) технологию с недетерменированным выводом (!!), в которой у вас нет экспертизы (!!!) и вы не умеете её разворачивать и поддерживать (!!!!)

вместо этого автор предлагает пойти проверить что-то более приземлённое и релевантное: например, актуальность и сохранность бэкапов своих баз — на удивление частый кейс в его опыте

слепое использование ко-пайлота в компании не повысит уровень кода (только его количество, хе-хе)


⌘⌘⌘

отдельно хочется отметить авторский слог, приправленный австралийскими реалиями:

I learned the wisdom of our ancient forebearers. You can hear it too, on freezing nights under the pale moon, when the fire burns low and the trees loom like hands of sinister ghosts all around you - when the wind cuts through the howling of what you hope is a wolf and hair stands on end, you can strain your ears and barely make out:

"Just Use Postgres, You Nerd. You Dweeb."
👍7🔥32
🔍 Data Observability

в Кларне наша команда отвечает за мониторинг монетизации партнёрского трафика. Данные получаем от affiliate networks (на русский вики предлагает перевод как «сеть партнёрских программ»). Сети передают данные по API (в основном).

казалось бы, тривиальная задача — взять данные из АПИ и положить их в базу. В целом так! но есть ньюанс >_>

когда команда начиналась, была одна сеть. Потом добавилась ещё пара. Через какое-то время клиенты начали просить добавить «ещё одну». Спустя несколько лет мы имеем 20+ сетей, к каждой свой коннектор и бегущие джобы.

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

⌘⌘⌘

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

так жить нельзя, подумал я, и из готовых блоков (Airflow + Datadog) наваял сбор метрик по свежести данных в разрезе сетей. Настроил алерты в Датадоге по порогам. Для наглядности там же в Датадоге вывел на деше значения метрик по каждой сети в динамике (с конфигурацией сразу в Terraform).

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

как говорят коллеги, теперь это дешик, с которого начинается утро (по крайней мере для дежурного) — на деше сразу видны тренды, если с какой-то из сетей неполадки (там где не помогли штатные ретраи)

привнёс Data Observability, получается ☝️

⌘⌘⌘

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

и отдельно видно сети, которые мы начали переводить с ежедневного крона на каждый час — чёткие гребешки стали почти плоскими равнинами
👍18🔥123
Andy Pavlo

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

имя Andy Pavlo у меня прочно ассоциируется с базами данных: Andy = databases, databases = Andy

у него есть открытый каталог всех баз данных, где уже есть ссылки на 998 (!) штук
https://dbdb.io/

ещё у него есть был стартап, который помогает тюнить клиентские базы данных с помощью мл: моделька на основе метаданных подкручивает настройки вашего постгреса в цикле с обратной связью. сами данные она не видит.
https://ottertune.com/

и, видимо, для души (и будущих клиентов и сотрудников), он ведёт курс по базам данных в университете CMU

несмотря на то, что курс офлайн в обычном кирпичном университете, все лекции записываются и доступны на ютубе (а ещё иногда в начале играет настоящий диджей!)

вот записи с последнего потока — 2024 год
🔥5👍4
🍎 Andy Pavlo & Amazon Redshift

а теперь к деталям: в Кларне — AWS, поэтому хранилище тут на Redshift. для знакомства с технологией посмотрел соответствующую серию из курса:
https://youtu.be/T9-MM8oHzsM

⌘⌘⌘

в нулевых было несколько проектов по параллелизации Постгреса и к 2010 оставался только один, который не купили.

В 2010 Амазон решила порядочно сэкономить: вместо покупки целого стартапа, они просто в него инвестировали. Это позволило ей получить лицензию на сам код.

→ в 2013 выходит Redshift как продукт

→ в 2016 запускается Athena — доступ через SQL к данным на S3 (типа как Hive, да?)

→ в 2017 добавляется Spectrum — Redshift может напрямую читать данные с S3 без предварительного инджеста данных в свою файловую систему

⌘⌘⌘

ещё Энди высказывает мнение, что Snowflake был «лучше на старте», но у AWS есть привычка измерять всё на свете и на основе данных постоянно улучшать продукт.

по оценке Энди Redshift приносит AWS «миллиарды»; хотя открытых данных нет, но Энди делает оценки исходя из общего профита и примерной доли. Неплохой профит за небольшую инвестицию в 2010-м!

одно из преимуществ AWS — доступ ко всем-всем логам инфры. Отдельный кастомер может мониторить и тюнить свои запросы, а хозяин инфры видит всё и может сравнивать на всей совокупности.
👍7
🛠️ Musk Engineering Algorithm

читаю биографию Илона Маска, нахожу любопытным его подход

Илона часто сравнивают со Стивом Джобсом:
основатели культовых компаний, визионеры-провидцы, дотошные менеджеры, и оба в жизни что называется asshole

в жизни Джобса был период, когда он управлял двумя компаниями одновременно: Apple и Pixar. Днём накручивал хвосты дизайнерам в Купертино, а после мчал на встречи с командой в Пиксаре. Есть версия, что именно этот период подкосил его здоровье, что в итоге способствовало развитию рака.

не умалая достижений Джобса, Маск — это какой-то следующий уровень: управлять не двумя, а уже шестью семью компаниями одновременно. SpaceX, Tesla, Solar Roof, Neuralink, StarLink, Boring Company, а теперь ещё и Twitter с xAI.

⌘⌘⌘

ниже «алгоритм», опробованный на заводах SpaceX и Tesla, а затем и на следующих компаниях

× SpaceX в составе 500 инженеров смогли запустить свою первую ракету в космос. Счищая наросшие за десятилетия требования, о назначении которых уже никто не помнил, они смогли добиться снижения стоимости полезной массы и привести компанию к прибыльности (и единственной частной космической компании).

× Tesla должна была выйти на сборку 5000 машин в месяц, чтобы экономика вышла в плюс. Через последовательное применение алгоритма к каждому этапу производства Маск смог за несколько месяцев поднять почти в три раза (1800 → 5000), достигнув целевых показателей.

× тот же подход использовали в StarLink, когда первый проект спутника выкинули за негодностью и переделали с нуля: без лишних деталей и упрощённой конструкцией. На 2022 год StarLink была единственная в своём роде компания, предоставляющая «космический» интернет.

⌘⌘⌘

1. ставьте под сомнение каждое требование. Любое требование должно сопровождаться именем человека, который его выдвинул. Никогда не принимайте требование от «отдела»: например, «юридического отдела» или «отдела безопасности»; только от реального человека. Затем вы должны подвергнуть его сомнению, независимо от того, насколько умён автор. Требования от умных людей наиболее опасны, потому что их реже подвергают сомнению. Подход обязателен, даже если требование исходило от меня [Маска]; в этом случае постарайтесь сделать требование менее тупым.

2. удалите любую часть или процесс, который можете. возможно, позже вам придется вернуть их обратно. На самом деле, если потом не придется вернуть хотя бы 10% — значит, вы удалили недостаточно.

3. упрощайте и оптимизируйте; но только после второго шага! Распространенная ошибка — упрощать и оптимизировать часть или процесс, которых не должно существовать.

4. ускоряйте цикл — каждый процесс можно ускорить. Но делайте это только после того, как выполните первые три шага. На заводе Tesla я [Маск] по ошибке тратил много времени на ускорение процессов, которые, как я позже понял, нужно было удалить.

5. автоматизируйте; но только в последнюю очередь. Большая ошибка в Неваде и Фремонте заключалась в том, что я [Маск] начал с попытки автоматизировать каждый шаг. Но нам следовало бы подождать, пока все требования не будут поставлены под сомнение, части и процессы не будут удалены, и пока все ошибки не будут устранены.

⌘⌘⌘

алгоритм скопировал из поста DHH, где он тоже впечатлён книгой и её героем; там же понравился подход — можно не любить человека, но это не мешает у него учиться:

> You can absolutely learn from people you wouldn't want to be. Extracting wisdom from Musk's success does not oblige you to become his disciple or his mirror. Besides, you'd probably fail miserably in an attempt of the latter anyway.
👍13🔥7
💊 реал биг дата!

у меня начинает складываться ощущение, что проблема big data плавно смещается; сначала все боялись этих терабайт данных: как же их хранить, как обрабатывать и искать в них инсайты.

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

теперь же встала другая проблема — среди этих десятков тысяч залитых и нагенерированных сущностей найти ту самую!

× как посчитать активных юзеров за прошлый месяц?

× как узнать сколько было возвратов?

× как понять сколько бизнес заработал? (или потерял!)

если спросить пять коллег, то получишь семь ответов; при этом часть будет пересекаться, а другая — прямо противоречить

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

кстати! давно хотел спросить: а что вы думаете о вопросах в конце постов?
👍86🔥4😁1👀1