Where is data, Lebowski – Telegram
Where is data, Lebowski
237 subscribers
83 photos
2 videos
83 links
Канал про разное в data-мире:
- от библиотек визуализации до data egineering
- от графиков до элементов разработки
- от .csv до API
Download Telegram
​​
from models import ExtractorResource


class MockExtractor:
def init(self, integration_metadata: dict):
self.integration_metadata = integration_metadata

def get_resources(self):
for idx in range(5):
yield ExtractorResource(path=f'mock_s3_file_{idx}.csv')

ps: можно заматить, экстрактор реализован как генератор (yield) - в конкретном случае не так важно, тк экстрактор не отдает сами данные, а только ссылки (путь на S3 или url и тд)

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

Каждый из классов имеет единственный аргумент = содержимое yml конфига и ничего более (но это не точно 😉), то есть все необходимые параметры должны быть описаны
в теле самого yml в нужной секции, например, у меня получилось так для экстрактора:

    tasks:
extractor:
MockExtractor:
src_s3_conection_id: reddit_s3_connection_id
src_s3_bucket: raw-public
src_s3_prefix_template: reddit/{dm_date}
src_s3_partition_fmt: '%Y-%m-%d'


Осталось встроить наши классы в даг, используем TaskFlow API, пример для экстратора:

@task
def _extractor(extractor: t.Callable) -> t.List[str]:
extractor_obj = extractor(
intergation_metadata=intergation_metadata
)

return [resource.dict for resource in extractor_obj.get_resources()]

# извлекаем общую структуру тасок
tasks_meta = intergation_metadata.get("tasks", {})

# извлекаем extractor
extractor_name, extractor_params = list(tasks_meta.get("extractor").items())[0]

if not extractor_params:
extractor_params = {}

logging.info([extractor_name, extractor_params])
extractor = globals()[extractor_name]

# возвращаем список объектов
ext_resources = extractor.override(task_id=f"extractor{extractor_name}")(
extractor=extractor)

Комментарии:
- декораторная таска принимает только саму фукнцию или класс в нашем случае
- имя экстратора получаем из ямла
- все экстраторы импортируются from extractors import *
- из словаря globals() получаем объект нужного экстрактора по имени из ямла
- если параметров экстратора нет, то подставляют пустой словарь
- resource.dict - нужно, тк XComm не знает как сериализовать нашу модель ресурса, поэтому воспользуемся атрибутом dict. Соответственно внутри таски transform_and_save обратно создадим ресурс

Логика для трансформера и saver сохраняется, добавляется только обработка ситуации,
когда трансформер сохраняет сам объекты и отдает только пути (пустой TransformerResource.content). Как показала практика: такое нередко
встречается.

Остальное обдумываем сами или заглядываем в репу.

И после загрузки в AirFlow получаем красоту в UI - repo

#walle
#framework
#automate
🔥4👍1
Пост Новогоднего настроения 😎
.
Нравиться ли вам, когда ПО меняет иконки или добавляет новогодних эффектов.
Примеры на скрине:
- dbeaver
- confluence
- polaris (управление умной бытовой техникой)
.
У меня вызывает это детский восторг 😛 + 100500 к силе 💪, приятно что пользовательский опыт становиться положительным.
А как вам такие новогодние изменения? Если есть еще примеры кидайте в комменты...

#ny #2025
🔥2🎄2
Последний рабочий день уходящего года прошёл под девизом песни БГ Этот поезд в огне 🚂
.
А как прошёл ваш день, перетащили всё задачки в Done😉

#work #meme #ny
🔔Там на невиданных дорожках...
.
Первое доброе дело в новом году - расчищенная дорожка 🏖
.
Пусть в новом году у вас будут прямые дорожки и пути к вашим мечтам и достижениям🙌
Пусть на расчищенных дорожках вас встретят те двери, которые вы хотели открыть или те, в которые хотели заглянуть👀
.
(как и в конце этой дорожки есть баня) Пусть новый год позволит вам обновиться до желаемых высот или очистится от суеты и увидеть эти высоты, будьте счастливы🔥☕️

#ny #newyear #2025
🎄4🔥1
​​🎅 Разибраем подарки от деда Мороза
.
Одним из приятных подарков стала книга Никаких правил.Уникальная культура Netflix📚. Давно было желание её прочесть или схожую с ней про историю Netflix Инсайдерская история - учиться надо у лучших или на своих ошибах.
.
Книга рассказывает о корпоративных правилах, затрагивая историю становления и развития компании. Показывает как менялись или появлялись правила, объясняет их смысл, всё это подается с интересными историями, показывающими правила в действии или, наоборот, куда приводит отсутствие таковых.
.
Правила довольно интересные: от тех, которые сразу вызывают отторжение до принимаемых абсолютно, но чем больше ты погружаешься в них, то тем сильнее ты проникаешься отторженными и начинаешь их принимать - довольно удивительное наблюдение.
.
Давайте вместе погружаться в мир корпоративных правил Netflix 🙌

#netflix #book
🔥3
На старт, внимание, марш -> Никаких правил от Netflix🔥

Сначала правило -> краткое описание -> думаем, обсуждаем

#netflix #norules
👍1
🗣 Говори то, что думаешь (с благими намерениями)
.
Многие из нас бывали в ситуациях, когда действия/идеи коллег вызывают желание высказать критику, но скорее всего по следующим причинам выбираем тактичное молчание:
- Вы боитесь, что вас не поддержат
- Вы не хотите, чтобы за вами закрепилась репутация скандалиста
- Вы не хотите неприятных разговоров
- Вы не хотите расстроить или обидеть коллег
- ...


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

.
Кажется, что в такой дозволенности можно наговорить, что угодно, испортить отношения с коллегами и тд. Доказательная база такова: в 2014 году агенство Zenger Folkman опросило ~1000 человоек. Примерно четверть скаазали, что критика гораздо эффективнее помогает исправить недочеты и добиться успеха, несмотря на то, что позвала дарит блаженство. Большинство не отметило никакого влияния на позвалы на качество их работы. Что еще интересного было в том опросе:
- 57% респондентов предпочли бы получать конструктвную критику, а не положительные отзывы
- 72% сочли, что если бы им чаще указывали на недочеты, качество их работы улучшилось бы
- 92% согласились с высказываением: "Грамотная критика помогает"
.
С этой цели компания Netflix постоянно работает со своими сотрудниками в части как правильно высказывать и принимать критику, на основе этих работ сложилась некая система правил.
.
Четыре правила откровенности
1️⃣ Для критика:
- Стремись помочь: критиковать нужно с благими намерениями, срывать злость, унижать собеседника или преследовать собственные интересы недопустимо. Нужно объяснить, каким образом перемена в поведении поможет адресату критики или всей команде
- Предлагай конкретные меры: необходимо указать что именно должен изменить адресат критики

2️⃣ Для адресата:
- Будь благодарен: получив критическое замечание, нужно справиться с естественной реакцией присихики (напряжение, инстинктивная зашита, подготовка к ответному удару) и спросить себя: "Как я могу проявить благодарность за отзыв о моей работе" - выслушать, тщательно обдумать, воздержаться от протестов и возражений
- Прими или отклони: Замечаний или критики может быть множество, вы не обязаны принимать их все как руководство к действию. Вежливо и искренно поблагодарите критика, но и вы, и он должны понимать: следовать или нет - выше и только ваше решение
.

Ну что, как вам правило, есть тут здравое зерно?
#netflix #norules
👍3
Серия правил продолжется...

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

#netflix #norules
👍1
🏖Избавляемся от графика опусков
.

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

.

Давай скажем, что порядок предоставления отпусков у нас называется: "Возьми сам!"

.
Конечно, это классная идея: объявить людям, что они вправе распоряжаться собственной жизнью и могут решать, когда им работать, а когда брать паузу. Логично возникают в кошмара:
1️⃣ Все сотрудники взяли отпуск одновременно и работать некому
2️⃣ Никто не ходит в отпуск и все перерабатывают

Как предлагается преодолеть кошмары:
2️⃣ Если глава компании отдыхает всего пару недель, разумеется, сотрудники будут чувствовать, что свободный график на деле не предполагает особой свободы. В отсутствии единой политики большинство людей смотрят на окружающих и пытаются вычислить "мягкие границы" дозволенного.
Поэтому решение: при желании внедрить в компании свободный график отпусков, начните с себя: Руководители должны регулярно отдыхать сами!
.
1️⃣ .. для успешного ослабления контроля без ущерба для дела необходимо предпринять еще один щаг. Когда отменяется протокол или регламент, то сотрудники не знают, как вести себя. Некоторые впадают в ступор, пока им начальник не объяснит, что конкретно нужно делать, а чего нет. Других опьяняет чувство вседозволенности и они могут повести себя непредстказуемым образом - например, взять отпуск в самое тяжелое для команды время. Руководителю необходимо как можно чаще проговаривать условия, на которых его подчиненные смогли бы поддерживать оптимальное соотношение своей работы и досуга

Рауиональное зерно здесь есть: "глубина" отдыха (скорее речь про его качество, а не кол-во) должна соответствовать кол-ву стресса от рабочего периода.

Что думаете, можно такое построить (безотносительно законодательных мер) или гоу все заполнять просроченные графики отпусков на 2025 год?

#netflix #norules
🔥2
​​💰 Смета дорожных расходов
.
Мне понравились некоторые части правила, которые можно переложить в целом на работу и взаимодействие с коллективом:

1️⃣ Обоснование выбора

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


2️⃣ Свобода, скорость, экономия

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


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

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

#netflix #norules
👍3
И снова деньги, теперь правило про оплату труда🔥

#netflix #norules
🔥1
🤑 Предлагай больше всех
.
Второе правило про деньги и, кажется, самое рискованное 😉

1️⃣ Первая часть его восходит к основному "постулату" Netflix - концентрация таланта (работников меньше, но они наикрутейщие специалисты) -> Плати как рок-звездам\Плати рыночный максимум:


первоклассный разработчик приносит компании не в 10 раз больше прибыли, чем на него тратиться, а примерно раз в 100. ... Билл Гейтс в своих оценках идет еще дальше: программист высочайщей квалификации стоит в десять тысяч раз больше обычного программиста


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


На операционной должности (мойщик окон, водитель) лучший сотрудник стоит раза в 2 больше рядового. Мороженщик-виртуоз, пожалуй, вдвое быстрее наполняет стаканчик...На счету первоклассного водителя вполовину меньше аварий, чем у среднестатистического шофера. Однако прибавочная стоимость, которую может добавить один мороженщик или один водитель единице своей продукции, имеет предел. Так что сотрудникам на операционных должностях можно платить среднюю зарплату, и компания будет функционировать вполне успешно.
... в Netflix от большинсвта сотрудников требуются творческие, нестандартные решения. На любой креативной должности профессионал высочайщего класса ценится как минимум в десят раз выше рядового сотрудника...


Весьма полезными следствиями правила являются:
- минимизация штата
- управление таким штатом профессионалов становиться эффективнее


2️⃣ Премии мешают гибкости


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

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

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


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

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


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


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

Ну что, идеи Netflix не кажутся вам уже безумными🙃

#netflix #norules
А как вы дорабатываете свои инструменты?

#мем #пятничный_мем
👍1
Продолжаем мемное настроение! 😎


#мем #пятничный_мем
💯2👍1
Как это ты пойдешь гулять, а спросить Разрешения😈


#netflix #norules
👍1😈1
🚫Разрешение без разрешения

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

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


- N - компетентный сотрудник?
- Он способен принимать взвешенные решения?
- Могут ли его усилия положительно повлиять на работу компании/команды в целом?
- Достаточно ли он талантлив, чтобы работать в нашей команде?


Если вы ответили нет хотя бы на один вопрос, N необходимо уволить😳 (слишком резко), но если по всем пунктам да, отойдите в сторонку и дайте N самостоятельно принять решение.

Когда начальник отказывается от роли "последней инстанции", производительность растет, а инновационные процессы ускоряются.
.
Из одного разговора:

...Google, Amazon, Spotify, Airbnb, Netflix. Мы понятия не имеем, почему эти компании так быстро развиваются и перестраиваются. В общем, не знаю, что они пьют там у себя в Netflix, но нам нужно пить тоже самое, заключил он, подняв бокал


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

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

В Netflix родился несложный алгоритм, которого могут придерживаться все сотрудники при наличии авантюрной идеи:
1️⃣ Найти несогласных или социализировать идею
2️⃣ Для большого проекта используй пробный шар
Этап похож на АВ тест или пробный запуск для небольшой доли аудитории с меньшим риском
3️⃣ Собери информацию и сделай ставку
Анализ информации с п1-2 и выбор решения
4️⃣ Выиграешь отпразнуй. Проиграешь - поделись опытом.
Выигрыш: показать, желательно публично, как вы рады, что сотрудник довел дело до конца, невзирая на ваши сомнения. Нужно послать четкий сигнал: "Вы были правы, я ошибался". Тогда сотрудники поймут, что спорить с начальством не только можно, но иногда иногда необходимо.

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

#netflix #norules
👍5
​​🚫Разрешение без разрешения: красивая история


В любом бизнесе испокон веков присутствует элемент азарта. В 1962 году Фредерик Смит подготовил для семинара в Йельском уникверситете работу, где описал службу срочной курьерской доставки.

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

К счатью, Смит бы независимым предпринимателем, и там сама йельская работа стала заделом для службы Fedex, которую он основал в 1971 году. Кроме того, Смит был человеком азартным: когда некий банк отказался выдать остро необходимый кредит никому неизвестной компании, Смит взял последние 5000$ и поехал в Лас-Вегас. Он выиграл 27000$ в блек-джек и 24 из них потратил на топливо для перевозок.


Netflix не отправляет своих сотрудников в казино, но все же старается отчасти привить им авантюрный дух Фреда Смита.

Из воспоминаний:


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


Захотелось сыграть 🪙😉?

#netflix #norules
👍2🤨1
​​🍉 Принес парочку интересных кейсов поведения оптимизатора Greenplum - GPORCA

1️⃣ Плевать я хотел на тип данных

Дано:
1. Таблица партицированная по полю с типом timestamp



PARTITION BY RANGE (date)
(
START ('2025-01-01'::timestamp) INCLUSIVE
END ('2026-01-01'::timestamp) EXCLUSIVE
EVERY (INTERVAL '1 day')
)


При таком отборе дат, оптимизатор отказывается делать Partition Selector:



wh
ere date >= date_trunc('month', date)

ps
: date_trunc('month', date) не меняет тип, он остается timestamp

Но вот так, отлично работает 🤷‍♂️:



where
 date >= date_trunc('month', date)::date



2️⃣
Упс, это вьюха

Дано:
1
. Вьюха, объединяет через union all несколько таблиц
2. Каждая таблица партицирована по одному и тому же полю, допустим date

Partition Selector не работает:



where da
te >= '2025-01-01'::date
and data < '2025-02-01'::date


Но вот
так, отлично взлетает:



where date
between '2025-01-01'::date and '2025-02-01'::date


При этом,
на исходных таблицах оба варианта работают идентично, где логика, GPORCA?


#work #case #greenplum
👍1