Какими бы хорошими ни были модель данных и пайплайны, если входные данные неверны, то данные в хранилище будут непригодны для использования (Garbage In, Garbage Out).
Очень важно убедиться в том, что входные данные соответствуют твоим ожиданиям, прежде чем использовать их в своих конвейерах обработки данных. Используй приведённые ниже пять вертикалей для определения ожиданий от входных данных.
После того как данные определены, убедись, что входные данные соответствуют ожиданиям, прежде чем приступать к их обработке. Если ты выявил какие-либо проблемы, то совместно с вышестоящими командами займись их решением (такие формализованные проверки называются контрактами на работу с данными).
Никогда не используй плохие данные для построения моделей данных, независимо от реакции вышестоящих команд, поскольку ответственность за плохие данные будет лежать на тебе и только на тебе
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥3
"Цифры выглядят по-разному" - это серьёзная проблема, с которой сталкивается большинство команд, работающих с данными. Разница в используемых данных, их свежести или в том, как конечный пользователь рассчитал метрику, - это распространённые источники проблем несоответствия метрик. Чтобы решить эту проблему, воспользуйся приведёнными ниже шагами.
Please open Telegram to view this post
VIEW IN TELEGRAM
Getdbt
What is data lineage? | dbt Developer Hub
Data lineage provides a holistic view of how data moves through an organization, where it’s transformed and consumed.
❤🔥2
Если заинтересованные стороны будут знать, зачем, что и как нужно делать для создания хранилища данных, они будут с интересом (или, по крайней мере, с пониманием) относиться к потенциальным обновлениям, которые облегчат им жизнь. Можно создать безупречное хранилище данных, но если команда разработчиков не донесет его необходимость и важность до широкой аудитории в компании, оно никогда не станет главным приоритетом для руководства. Чем больше вовлечённость заинтересованных сторон, тем больше ресурсов (времени, инженеров) ты получишь.
Четыре шага, которые позволят тебе максимально увеличить шансы на создание эффективного хранилища данных:
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥4
Ты можешь контролировать то, над чем работаешь, но если ты заметил эти (в дополнение к обычным признакам) красные флаги и они не меняются, лучше перейти на новую работу.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥4
Утопии данных не существует, не существует мифической зрелой организации, в которой хранилище данных было бы идеальным, и всегда будут возникать проблемы с данными. Но мы, инженеры данных, имеем возможность и несём ответственность за устранение неполадок, создание отличного хранилища данных и обеспечение доступности данных для компании.
Напомню, что рассмотрели:
1. Понять суть бизнеса
2. Сделать данные удобными для использования с помощью правильной модели данных
3. Хорошие входные данные необходимы для хорошего хранилища данных
4. Определить источник истины (SOT) и проследить его использование
5. Держать заинтересованные стороны в курсе событий для достижения большего эффекта
6. Следить за "красными флагами" на уровне организации 🚩
В следующий раз, когда ты будешь создавать/совершенствовать хранилище данных, используй приведённые выше концепции в качестве отправной точки для создания хранилища данных, которое будет работать без сбоев и с удовольствием.
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
DE
1️⃣ Понимай бизнес
Прежде чем приступить к проектированию любой системы, необходимо в первую очередь узнать, как твоя компания зарабатывает деньги. Понимание экономических аспектов деятельности компании, таких как её клиенты, партнёры и продаваемые продукты…
Прежде чем приступить к проектированию любой системы, необходимо в первую очередь узнать, как твоя компания зарабатывает деньги. Понимание экономических аспектов деятельности компании, таких как её клиенты, партнёры и продаваемые продукты…
❤🔥6
Представь, что ты построила из лего большую замечательную коробку для хранения своих игрушек. Эта коробка упорядочивает твои игрушки: куклы в одном углу, машинки в другом, кубики в третьем и так далее. В SQL (языке запросов для баз данных) такие "коробочки" называются таблицами.
Теперь, чтобы что-то изменить в конструкции этой коробки, например, добавить еще один отсек или разделитель, тебе нужно использовать специальные блоки и инструменты. В мире баз данных это называется DDL, что означает "язык описания данных".
Давай разберемся, как работает DDL:
Каждое действие с DDL, это как специальное волшебное заклинание, которое изменяет структуру твоей "коробочки" точно и аккуратно, точно как тебе нужно. Все эти изменения помогают лучше упорядочивать информацию (твои игрушки), чтобы ты могла легко найти то, что тебе нужно.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥4
Forwarded from Афонасьев Евгений - IT, Python и вот это все
Tinkoff Python Meetup - Екатеринбург
Разблокируй это! Что такое nogil?
Сегодня выступаю с докладом на первом публичном python митапе от Тинькофф. Расскажу про GIL, как он появился, зачем, и как можно от него избавиться. Надеюсь, получится интересно. Для зрителей собрал все материалы по теме в одном месте.
Полезные материалы к докладу
- Григорий Петров - GIL в Python: зачем он нужен и как с этим жить | https://www.youtube.com/watch?v=AWX4JnAnjBE | Отличный доклад на тему того, чем является GIL, и зачем он нужен
- Guido van Rossum: Will Python ever remove the GIL? | https://www.youtube.com/watch?v=m4zDBk0zAUY&t=186s | Из первых уст. Создатель языка говорит зачем появился GIL, и почему его еще не удалили
- UnderstandingGIL | https://www.dabeaz.com/python/UnderstandingGIL.pdf | доклад 2010 года от Дэвида Бизли про GIL во втором питоне, а как он изменился в третьем. Много очень интересных особенностей реализации
- PEP 703 – Making the Global Interpreter Lock Optional in CPython | https://peps.python.org/pep-0703
- Keynote: Multithreaded Python without the GIL - presented by Sam Gross | https://www.youtube.com/watch?v=9OOJcTp8dqE | Автор PEP-703 рассказывает про свой подход отказа от GIL
- Обсуждение PEP и решение о его принятии со стороны python core developers | https://discuss.python.org/t/a-steering-council-notice-about-pep-703-making-the-global-interpreter-lock-optional-in-cpython/30474
- PEP 684 – A Per-Interpreter GIL | https://peps.python.org/pep-0684/ | альтернативный подход к решению проблем с GIL
- Афонасьев Евгений - А побыстрее можно? | https://www.youtube.com/watch?v=sX7nub8g3GA&list=PLRdS-n5seLRr-pYwibC3KqEdjZz_hzSUS&index=15&ab_channel=ВидеосмероприятийIT-People | доклад про оптимизации в работе с байтокодом, в рамках него я подробно рассказываю, что такое байткод и как с ним работает cpython
- Афонасьев Евгений - адаптируйся или умри | https://www.youtube.com/watch?v=yizjlvz-nfk&list=PLQC2_0cDcSKCsTQHo9lEH9cZQowiBOgS-&index=8 | в рамках доклада подробно разбирается, как работает Specializing Adaptive Interpreter
Reference Implementation
- https://github.com/colesbury/nogil-3.12
- https://github.com/colesbury/nogil
CPython internals
- https://devguide.python.org/internals/compiler про компиляцию python кода в байткод
- https://devguide.python.org/internals/interpreter/ как работает интерпретатор
Разблокируй это! Что такое nogil?
Сегодня выступаю с докладом на первом публичном python митапе от Тинькофф. Расскажу про GIL, как он появился, зачем, и как можно от него избавиться. Надеюсь, получится интересно. Для зрителей собрал все материалы по теме в одном месте.
Полезные материалы к докладу
- Григорий Петров - GIL в Python: зачем он нужен и как с этим жить | https://www.youtube.com/watch?v=AWX4JnAnjBE | Отличный доклад на тему того, чем является GIL, и зачем он нужен
- Guido van Rossum: Will Python ever remove the GIL? | https://www.youtube.com/watch?v=m4zDBk0zAUY&t=186s | Из первых уст. Создатель языка говорит зачем появился GIL, и почему его еще не удалили
- UnderstandingGIL | https://www.dabeaz.com/python/UnderstandingGIL.pdf | доклад 2010 года от Дэвида Бизли про GIL во втором питоне, а как он изменился в третьем. Много очень интересных особенностей реализации
- PEP 703 – Making the Global Interpreter Lock Optional in CPython | https://peps.python.org/pep-0703
- Keynote: Multithreaded Python without the GIL - presented by Sam Gross | https://www.youtube.com/watch?v=9OOJcTp8dqE | Автор PEP-703 рассказывает про свой подход отказа от GIL
- Обсуждение PEP и решение о его принятии со стороны python core developers | https://discuss.python.org/t/a-steering-council-notice-about-pep-703-making-the-global-interpreter-lock-optional-in-cpython/30474
- PEP 684 – A Per-Interpreter GIL | https://peps.python.org/pep-0684/ | альтернативный подход к решению проблем с GIL
- Афонасьев Евгений - А побыстрее можно? | https://www.youtube.com/watch?v=sX7nub8g3GA&list=PLRdS-n5seLRr-pYwibC3KqEdjZz_hzSUS&index=15&ab_channel=ВидеосмероприятийIT-People | доклад про оптимизации в работе с байтокодом, в рамках него я подробно рассказываю, что такое байткод и как с ним работает cpython
- Афонасьев Евгений - адаптируйся или умри | https://www.youtube.com/watch?v=yizjlvz-nfk&list=PLQC2_0cDcSKCsTQHo9lEH9cZQowiBOgS-&index=8 | в рамках доклада подробно разбирается, как работает Specializing Adaptive Interpreter
Reference Implementation
- https://github.com/colesbury/nogil-3.12
- https://github.com/colesbury/nogil
docker run -it nogil/python
pyenv install nogil-3.9.10-1
CPython internals
- https://devguide.python.org/internals/compiler про компиляцию python кода в байткод
- https://devguide.python.org/internals/interpreter/ как работает интерпретатор
❤🔥3
- Слушай, вот скажи мне, почему вы, разработчики, никогда не можете адекватно оценить время, необходимое для реализации проекта?
- Это очень просто. Вот смотри. Тебе надо разгрузить машину. За сколько ты управишься?
- Где-то за час.
- Это КАМАЗ.
- Четыре часа.
- Гружёный песком.
- Ну-у... часов двенадцать.
- Инструментов никаких нет, только руки и ноги.
- Ну, пару суток.
- На дворе - минус сорок.
- Четверо суток.
- КАМАЗ вообще находится под водой.
- Блин, что ты мелешь? Ты же постоянно новые условия вводишь! Надо говорить всё сразу и конкретно! И вообще, чем всякую хрень тут нести, давай-ка, быстренько оцени этот проект.❤🔥13
Forwarded from DataEng
Apache Airflow в Adyen
Люблю статьи про реальные кейсы использования технологий. Давеча встретил статью Apache Airflow at Adyen: Our journey and challenges to achieve reliability at scale. Adyen это известная в узких кругах платёжная система (кажется даже публичная компания). Статья про использование Airflow в высоконагруженной системе, где жизненно необходимо чтобы система была отказоустойчивой, масштабируемой и при это не сильно сложной. Рекомендую для ознакомления.
Люблю статьи про реальные кейсы использования технологий. Давеча встретил статью Apache Airflow at Adyen: Our journey and challenges to achieve reliability at scale. Adyen это известная в узких кругах платёжная система (кажется даже публичная компания). Статья про использование Airflow в высоконагруженной системе, где жизненно необходимо чтобы система была отказоустойчивой, масштабируемой и при это не сильно сложной. Рекомендую для ознакомления.
Medium
Apache Airflow at Adyen: Our journey and challenges to achieve reliability at scale
A blog post by Jorrick Sleijster and Natasha Shroff
❤🔥3