Where is data, Lebowski – Telegram
Where is data, Lebowski
237 subscribers
83 photos
2 videos
83 links
Канал про разное в data-мире:
- от библиотек визуализации до data egineering
- от графиков до элементов разработки
- от .csv до API
Download Telegram
А как у вас обстоит дело с поиском багов?
Признавайтесь, вы же только и делаете, что используете `print`ы😀
😁3
Forwarded from Инжиниринг Данных (Dmitry)
This media is not supported in your browser
VIEW IN TELEGRAM
Какую штуку нашел😎
Пакет ipython-sql

SQL внутри Jupyter. Magic %%sql позволяет писать SQL-запросы прямо в ячейке Jupyter и получать результат в виде pd.DataFrame, всё как мы любим❤️

Подготовил для вас google colab, в нем автоматически подготавливается БД (ну а вдруг её у вас нет😉) и показаны примеры работы с расширением.

Расширение имеет право на жизнь, но есть минусы:
- нет подсветки синтаксиса SQL (да, к хорошему привыкаешь быстро)
- нашлись ошибки (расширение падает с ошибкой при использовании оконных функций)

Попробуйте посмотреть🤨
#python #sql #jupyter
👍5
Картинка, для привлечения внимания к следующему посту (красота простой графики)🤝
🔥1
Пиу-пиу, сегодня по SQLite💡

Иногда создается впечатление, что её считают недосубд😥
Да, у нее есть особенности, основные:
- нет многопользовательского управления (всё на плечах файловой системы)
- нет многопользовательского доступа (читать могут несколько, а вот писать только 1 процесс)
- у нее нет сервера, поэтому производительность настроить не получится (какая есть), но если нужно повысить производительность приложений читающих напрямую с диска, то лучше использовать SQLite.
- ключевая особенность - это встраиваемая бд

🚫Все limitations (https://runebook.dev/ru/docs/sqlite/limits) по-русски

Она точно вам подойдет, если вы хотите:
- поработать с данными самостоятельно, но не хочется плодить CSV\JSON
- хотите почувствовать себя Data Engineer и реализовывать модели данных\pipelines и тд
- создать petproject используя Flask\Django или другой web-framework

Если заглянуть в доку, то обнаружим что весьма крупные компании пользуются этой крошкой:
-🗳 DropBox - на клиентской стороне
- 📱Во всех Android смартфонах используется SQLite
- 🐍она включена в стандартную библиотеку нашего любимого Python
Полный список тут

(https://www.sqlite.org/famous.html) И напоследок список ресурсов, ознакомьтесь ближе с этой маленькой, но такой БОЛЬШОЙ субд:
- Интервью (https://habr.com/ru/company/macloud/blog/566396/) с создателем SQLite
- Цикл (https://habr.com/ru/post/149356/) статей
- Это вам не игрушка
(https://habr.com/ru/post/547448/)
- Антон Жиянов создал обучающий курс (https://antonz.ru/sqlite-course/)(а еще он существенно расширил возможности SQLite, его telegram (https://news.1rj.ru/str/sqliter) канал)
👍2
А вы используете линтеры?✏️

Линтер - программа, которая сделает ваш код как у синьора-помидора🍅
Если на пальцах, для Python - линтер проверит соблюдение правил PEP8 (вы же помните, что они есть или пишите спагетти-код🍝) и выдаст рекомендации по улучшению, ну или сам поправит.

Вводная про линтеры

К чему это всё, прочел статью Груг, против сложности, автор которой потрудился и проверил весь Python-код в статьях на хабре - рекомендую к прочтению, можно найти много практических советов😉

Из полезного:
- у автора есть сервис по авторевью кода (там навороченный линтер, как мелкий брюзга проверить ваш код)
- по результатам есть описание типовых ошибок
- если не хотите ждать авторевью (оно занимает до 24 часов), устанавливаете flake8, качаете авторский .flake8 и начинаете улучшать свой код
......................

Помните в посте выше про ipython-sql мы писали
немного кода, я собрал его в py-файл и отправил на проверку, результат по ссылке или кратко:
- отсутствуют аннотации типов (да, еще не добрался до их применения)
- ненужный код
- лишнее создание объектов

Оценка - 2️⃣.7️⃣8️⃣% при общей в по всем ревью 8.5% - отличный результат🥇

В общем готовьте код правильно!
👍2
Как же без картинки, спагетти-кода🙃
🤣1
🎙Хей-хей, сегодня небольшой квиз

И не говорите, что вы не любите порешать интересные задачки на Python или SQL🤩

Не часто в описании вакансии встретишь намеки на тестовое, а тут на днях обнаружил такое:


Напишите запрос, который найдет три машины, получившие наибольшее кол-во чаевых в апреле 2022 года.
Выведите, как изменялась эта сумма в последующие месяцы в процентах по сравнению с предыдущим в таблице со столбцами:
- taxi_id
- year_month
- tips_sum
- tips_changes

В качестве источника используйте bigquery-public-data.chicago_taxi_trips


Устроим небольшой SQL challenge💪

В комменты добавлю видео где найти этот датасет 🎥

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

Итого в решении должно быть:
- запрос 1 (топ 3 машины)
- запрос 2 (сравнение величины чаевых за месяц с предыдущим в процентах)
- будет круто если график изменения чаевых реализуете в виде дашборд 📈 (варианты: Tableau Public, Google Data Studio, Yandex DataLens, Redash) и поделитесь ссылкой


Ну, что погнали😉

#sql #dashboard #challenge
👍2🐳1
☝️Как говорил известный герой Случайности не случайны

Начав новый рабочий ML проект, через пару дней наткнулся на стартующий курс от ODS - ML System Design Course.
Естественно вписался, думал, послушаю лекции, узнаю чего нового, а тут активностей накидали:
- 🎥 Видео лекции
- 📝 За время курса (до середины января 2023) необходимо подготовить доклад\tutorial (в идеале статья habr\medium) на выбранную тему (например, Airflow или DVC)
- 📆 все студенты собираются в команды и будут пилит pet-project. К окончанию курса, должно быть работающее MVP
- 📚 куча дополнительных материалов, только успевай читать

Первая лекция прошла - она была обо всем по-немногу (что будет в курсе, чего не будет). Тк участвую в достаточном кол-ве ML проектов, то меня привлек слайд про управление ML проектами (рисунок будет в комментариях).
Приглянулся двухфазный подход к ML проектам:
- 🕔 Discovery (фиксированное время). За отведенное время выполняем research по данным, генерим гипотезы, проверяем, формулируем и тд. Так сказать готовим почву для второго этапа
- 🚰 Delivery (фиксированные задачи). Задачи выявленные в ходе research здесь обретают форму и результаты.

Кажется, так просто и понятно, но объяснить заказчику необходимость Discovery бывает очень трудно, тк ему кажется, что всё это как бы прилагается и задача (которую он придумал) точно решается.
👍2
Пятница плавно подошла к своему вечеру😎

Люблю когда всё ОК....
👌2🍾1
Навеяно просмотром фильма Человек, который изменил всё 📺
Хороший однако фильм и посвящен отчасти нашим data-делам.

В общем рекомендую к просмотру, ну и знать статистику тоже рекомендую😉

#mem
👍3😁2
This media is not supported in your browser
VIEW IN TELEGRAM
И снова Python-интересности 🧐

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

Смотрите видео и не попадайтесь на такие уловки💡
#python #test #unittest
Кажется, я нашел, на что еще можно смотреть бесконечно😍

Вот что бывает, когда есть умелые руки и современные технологии:
- Python
- raspberry pi
- шепотка DeepLearning (хотя там может просто библиотека OpenCV)

🐔🐔🐔

https://pikabu.ru/story/turel_protiv_kur_9528819?utm_source=linkshare&utm_medium=sharing

#video #почтимем
Черный лебедь🦢

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

Чтобы обсуждение не ушло далеко, я решил бегло просмотреть данные и понять так ли это. Немного контекста: данные находятся в контуре заказчика, до которого надо пройти небольшие круги ада с VPN + RDS —> то есть не самый приятный и удобный способ посмотреть данные.

Данные просмотрены 👀, говорю коллегам: Параметр изменяется реже 1 раза в неделю, дискуссия прерывается, конфа заканчиватся.

Но сомнения от быстрого просмотра не дали мне покоя, пошел писать SQL для подсчета кол-ва изменений по недельно. Результат ☝️ на картинке: При крайне низкой вероятности 1 изменения в неделю я показаательно попал в эту цифру (это несомненно успешный успех)🙃
.
.
💡 Не делайте поспешных выводов из анализа на скорую руку
😁2
Неделя черных лебедей🦢

Последний месяц активно использую классный тул - SQLpad (ну почти "ай") для первичного анализа\проверки гипотез.

В кратце - ребята из Авито поняв, что известные клиенты нещадно плодят запросы к метаданным СУБД и приводят к деградации производительности, написали свой клиент - почитать тут.

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

Лебединая песня: в конфиге нет отметки о том, что PostgreSQL поддерживается (текст на черном фоне), поэтому и живу с SQLite. Сегодня в очередной раз гулял по документации и увидел то, что в верхней рамке - а слона-то я и не заметил 🤨

Остаётся только проверить👀
Всем внимательности и мира🌎
👍2🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
☝️Привет, любителям SQL

Все знают, что ключевые слова (SELECT\FROM\HAVING\....) следует писать в UPPER CASE.

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

Нет, так делать не стоит. Облегчить себе жизнь можно просто настроив IDE. Я использую DBeaver: заходим в настройки, пара кликов мыши и вуаля -> смотрим в видео 🎥

А в целом вопрос форматирования SQL запросов всегда актуален, для этого рекомендую статью 📒

А вы форматируете, SQL?
👍5
А вот и мерч👕

По осени цыплят считают, а я принял участие в курсе ML System Design от сообщества ods.

Чуть позже расскажу, что было и чем всё закончилось, а пока красивая футболка.
👏4
ODS - ML System Design
.
Курс, посвященный проектированию ML систем с точки зрения софта, железа и бизнеса. Говоря проще: как жить дальше после получения обученной модельки.
.
Общее взаимодействие такое:
📍Участники выбирают какую-либо тему (например, бот рекомендаций игр, распознавание SQL, сервис сравнения цен и др)
📍Объединяются в команды
📍Слушают лекции, читают презентации и допматериал
📍🪚 Пилят свой проект в соответствии с полученными знаниями
🪣 Пытаются всеми правдами и неправдами дотащить проект до прода защиты
📍По пути могут разбираются в одной из выбранных тем (отличный прицип научился сам - научи других)
📍Презентуют проект
.
Восторженные крики, радость, мерч и вот это вот всё в конце😎
.
🍩Из приятных бонусов:
- поработать в команде
- получить новые знания\упорядочить старые
- собрать систему вместе
- получить отличный Design Doc
.
🏆Итог: 8 место среди всех проектов, сумевших дойти до конца (~40), отличная футболка и общее понимание устройства ML системы.

#ods #mlsystemdesign #part1
👍3🔥1
ODS - ML System Design 2️⃣
.
Чем занималась команда
.
Громкое название проекта - Voice Teacher - аудио анализ вашей речи с указанием слов филлеров, их процента и возможностью улучшения речи.
.
Удалось реализовать
- прием аудисообщений
- анализ на существование слов-филлеров
- отправка результата пользователю
.
Архитектура
- микросервисы:
- моделька - FastAPI
- база - FastAPI
- бот
- развернуто на YCloud

Для всего используется старый добрый Python🤟
.
Организация совместной работы
1. Кодовая база - github. Описаны правила создания веток (например, все исследовательские ветки именовались по шаблону exp-author_name-N)
2. Общие идеи, тикеты, рисунки - miro
3. Документы - Google Docs
4. Общение\обсуждение - чат Телеграмм, Zoom для онлайн обсуждений
.
#ods #mlsystemdesign #part2
🔥1
ODS - ML System Design 3️⃣
.
Что не получилось
.
🔻не досмотрел все лекции - предновогодний декабрь не давал много времени на просмотр лекций - это будет наверстано
🔺выбранная тема для доклада - workflow фреймворк luigi (тот что разработал Spotify).
Предпочтения были такие:
- хотел про Airflow, но не успел, его уже заняли
- был куплен вводный курс, соответственно хотел и курс добить и оформить в виде статьи

Курс добить удалось, а статья не вышла - это и есть вторая недоделка по курсу ML System Design
.
🤞Торжественно обязуюсь досмотреть все лекции и написать статью про luigi.
.
Какие еще оркестраторы\workflow managers есть:
- prefect
- dagster (один из участников делал доклад)
- airflow
——————————————————-

Познакомится с задачами и инструментами Data Engineer на практике можно в водной части курса DE. А для тех, кто любит зависать в терминале, ковырятся в логах и перекладывать JSONы, можно рекомендовать пройти полностью курс. 😉

#mlsystemdesign #part3 #ods
👍1