Интересности с SQL
Мой друг, Саша Михайлов, у себя на канале отметил некоторые особенности работы с временем, подробнее почитать можно у него (https://news.1rj.ru/str/data_days/246)💡
В треде были полезные комментарии:
Не сталкивася с таким, поэтому берем в руки научный интерес и проверяет, благо есть на чём.
В сферу моих интересов входит наблюдение за погодой, поэтому берем погодные данные с 2021 года по нв (около 1.8млн строк) и тестируем. Кажется, столько строк будет в самый раз, чтобы оценить важность идеи.
Мой друг, Саша Михайлов, у себя на канале отметил некоторые особенности работы с временем, подробнее почитать можно у него (https://news.1rj.ru/str/data_days/246)💡
В треде были полезные комментарии:
Применение любых функций к полям, участвующим в фильтрации или условии джойна, приводит к проблемам производительности. Оптимизатор не может использовать индексы или, в случае аналитических СУБД, ключи дистрибуции и секционирования. В результате производится полное сканирование таблицы, или большое перераспределение данных, что плохо по определению, для больших таблиц. А предотвратить это достаточно просто — не изменять данные, по которым производишь поиск
Не сталкивася с таким, поэтому берем в руки научный интерес и проверяет, благо есть на чём.
В сферу моих интересов входит наблюдение за погодой, поэтому берем погодные данные с 2021 года по нв (около 1.8млн строк) и тестируем. Кажется, столько строк будет в самый раз, чтобы оценить важность идеи.
🔥3
А вот и поучительная история
от Димы Аношина😉
У меня есть похожая, связана с ML.
Задача: Прогнозировать брак Получил данные, обследовал, составил датасет, ну почти как по учебнику. Попутно выяснилось несколько нюансов процесса, подправил датасет. Навертел моделей и таких и сяких, время 🕒 тестировать.
Прислали данных порцию, почистил, подготовил, кидаю на вход модели, на выходе 💩.
В общем никакие ухищрения не давали качества.
Из статанализа (ещё в самом начале) выудились некоторые зависимости на которых можно построить baseline (очень простой по сути).
Прогнал тест, метрики выше удовлетворительные👍
Итог: не усложняйте с самого начала, найдите простое и объяснимое решение в качестве baseline. Кто знает, может оно и станет лучшим😉
Бритва Оккама; не плодите сущностей сверх необходимых🧐
А вы часто ищете сразу сложные решения?
от Димы Аношина😉
У меня есть похожая, связана с ML.
Задача: Прогнозировать брак Получил данные, обследовал, составил датасет, ну почти как по учебнику. Попутно выяснилось несколько нюансов процесса, подправил датасет. Навертел моделей и таких и сяких, время 🕒 тестировать.
Прислали данных порцию, почистил, подготовил, кидаю на вход модели, на выходе 💩.
В общем никакие ухищрения не давали качества.
Из статанализа (ещё в самом начале) выудились некоторые зависимости на которых можно построить baseline (очень простой по сути).
Прогнал тест, метрики выше удовлетворительные👍
Итог: не усложняйте с самого начала, найдите простое и объяснимое решение в качестве baseline. Кто знает, может оно и станет лучшим😉
Бритва Оккама; не плодите сущностей сверх необходимых🧐
А вы часто ищете сразу сложные решения?
👍1
Forwarded from Инжиниринг Данных (Dmitry)
Мужик рассказывает какой он молодец, пришел на встречу, а на доске нарисованы всякие сервисы модные для стриминга, больших данных и тп. И он спрашивает - а что вы будете делать с данными?
Да ктож его знает, пока не придумали - отвечают инженеры
Тогда смелый мужичек взял стерку и все стер, оставил только S3 и Athena (Serverless SQL engine). И сказал им - раз не знаете, не надо усложнять, начните easy и как поймете, что бизнес хочет делать с данными, так и построите полноценное решение. А если будет все медленно - купите Snowflake.
Мораль простая, мы как инженеры, любим все усложнять, пробовать новые тулы, рисовать красивые архитектуры, и часто забываем, что нужно бизнесу, или вообще зачем мы это делаем. (1й модуль даталерн).
Да ктож его знает, пока не придумали - отвечают инженеры
Тогда смелый мужичек взял стерку и все стер, оставил только S3 и Athena (Serverless SQL engine). И сказал им - раз не знаете, не надо усложнять, начните easy и как поймете, что бизнес хочет делать с данными, так и построите полноценное решение. А если будет все медленно - купите Snowflake.
Мораль простая, мы как инженеры, любим все усложнять, пробовать новые тулы, рисовать красивые архитектуры, и часто забываем, что нужно бизнесу, или вообще зачем мы это делаем. (1й модуль даталерн).
Давно заглядываюсь на разработчиков (привет техническое образование🖐). У меня есть мнение, что
Нашел схожие мысли в статье.
Можно согласиться с автором, да алгоритмы это важно, но кажется важность слишком преувеличена, полагаю, алгоритмы, как и любая технология\вещь\метод и тд. хороши по месту и в нужное время.
Больше интересно такое сравнение автора:
Я предлагаю обобщить эту мысль, по крайней мере, на датастек специальностей: дата инженер\аналитик\специалист DS\ ML\ BI-разработчик и др.
Каждый из них, что-то да готовит хорошо😉 Какие мысли по этому поводу?
мир не сошелся на алгоритмах или нет особого смысла гонять кандидата по алгоритмам. Нашел схожие мысли в статье.
Можно согласиться с автором, да алгоритмы это важно, но кажется важность слишком преувеличена, полагаю, алгоритмы, как и любая технология\вещь\метод и тд. хороши по месту и в нужное время.
Больше интересно такое сравнение автора:
Продуктовый разработчик как повар. Знает, как собрать продукт из хороших полуфабрикатов, как и какие продукты между собой сочетаются, а какие испортят вкус друг друга и вызовут несварение у пользователя. Знает особенности приготовления и уместность в конечном блюде.
Я предлагаю обобщить эту мысль, по крайней мере, на датастек специальностей: дата инженер\аналитик\специалист DS\ ML\ BI-разработчик и др.
Каждый из них, что-то да готовит хорошо😉 Какие мысли по этому поводу?
Журнал «Код» программирование без снобизма
«Программисты, которые умеют писать алгоритмы, — нишевая профессия» — Журнал «Код»
Эта статья будет полезна всем, кто готовится стать продуктовым разработчиком и профессионально создавать софт.
👍2
Прочел вводную статью про dbt - это тот инструмент, который отвечает за
Статья скорее более общая чем конкретная, но понравился подход команды автора к организации хранения SQL скриптов (см рисунок): раскладывать скрипты по папкам, соответствующим назначению.
Пожалуй такой подход можно перенести на организацию любимых
В такой системе немаловажной ролью является название тетрадки, чтобы из него было понятно для его она, при добавлении subfolders по различным операциям (получение\очистка\подготовка датасетов, формирование новых признаков\моделирование....) улучшиться навигация (по крайней мере, при поиске не будут затрагиваться тетрадки совсем из другой историии).
А как вы организуете хранение ваших скриптов\ jupyter-тетрадок🤔
#post #dbt
T в нашей любимой аббревиатуре ETL\ELT (выбрать любимую😍).Статья скорее более общая чем конкретная, но понравился подход команды автора к организации хранения SQL скриптов (см рисунок): раскладывать скрипты по папкам, соответствующим назначению.
Пожалуй такой подход можно перенести на организацию любимых
jupyter notebooks. Сейчас у меня в ходу такая иерархия:
./project folder - корневая папка проекта
- materials folder - папка для артефактов (графики, таблицы, вспомогательные данные, модели, метрики и др.)
- - datasets folder - хранение датасетов
- 1.ipynb
- 2.ipynb
- ...
В такой системе немаловажной ролью является название тетрадки, чтобы из него было понятно для его она, при добавлении subfolders по различным операциям (получение\очистка\подготовка датасетов, формирование новых признаков\моделирование....) улучшиться навигация (по крайней мере, при поиске не будут затрагиваться тетрадки совсем из другой историии).
А как вы организуете хранение ваших скриптов\ jupyter-тетрадок🤔
#post #dbt
Хабр
Что такое dbt и зачем он нужен маркетинг-аналитику
Рано или поздно аналитик сталкивается с проблемой организации данных. Их становится все больше, структура перестает быть прозрачной, а одни и те же SQL-запросы приходится переписывать по несколько...
❤2
Это интересно🤔💭
А вы (не)делаете что-то из списка?
На мой взгляд, пункты про pvalue, AB тесты имеют более высокий уровень, а вот начинать следует со сбора логов.
А вы (не)делаете что-то из списка?
На мой взгляд, пункты про pvalue, AB тесты имеют более высокий уровень, а вот начинать следует со сбора логов.
А как у вас обстоит дело с поиском багов?
Признавайтесь, вы же только и делаете, что используете `print`ы😀
Признавайтесь, вы же только и делаете, что используете `print`ы😀
😁3
This media is not supported in your browser
VIEW IN TELEGRAM
Какую штуку нашел😎
Пакет ipython-sql
SQL внутри Jupyter. Magic
Подготовил для вас google colab, в нем автоматически подготавливается БД (ну а вдруг её у вас нет😉) и показаны примеры работы с расширением.
Расширение имеет право на жизнь, но есть минусы:
- нет подсветки синтаксиса SQL (да, к хорошему привыкаешь быстро)
- нашлись ошибки (расширение падает с ошибкой при использовании оконных функций)
Попробуйте посмотреть🤨
#python #sql #jupyter
Пакет ipython-sql
SQL внутри Jupyter. Magic
%%sql позволяет писать SQL-запросы прямо в ячейке Jupyter и получать результат в виде pd.DataFrame, всё как мы любим❤️Подготовил для вас google colab, в нем автоматически подготавливается БД (ну а вдруг её у вас нет😉) и показаны примеры работы с расширением.
Расширение имеет право на жизнь, но есть минусы:
- нет подсветки синтаксиса SQL (да, к хорошему привыкаешь быстро)
- нашлись ошибки (расширение падает с ошибкой при использовании оконных функций)
Попробуйте посмотреть🤨
#python #sql #jupyter
👍5
Пиу-пиу, сегодня по 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) канал)
Иногда создается впечатление, что её считают недосубд😥
Да, у нее есть особенности, основные:
- нет многопользовательского управления (всё на плечах файловой системы)
- нет многопользовательского доступа (читать могут несколько, а вот писать только 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 часов), устанавливаете
......................
Помните в посте выше про
немного кода, я собрал его в py-файл и отправил на проверку, результат по ссылке или кратко:
- отсутствуют аннотации типов (да, еще не добрался до их применения)
- ненужный код
- лишнее создание объектов
Оценка - 2️⃣.7️⃣8️⃣% при общей в по всем ревью 8.5% - отличный результат🥇
В общем готовьте код правильно!
Линтер - программа, которая сделает ваш код как у синьора-помидора🍅
Если на пальцах, для Python - линтер проверит соблюдение правил PEP8 (вы же помните, что они есть или пишите спагетти-код🍝) и выдаст рекомендации по улучшению, ну или сам поправит.
Вводная про линтеры
К чему это всё, прочел статью Груг, против сложности, автор которой потрудился и проверил весь Python-код в статьях на хабре - рекомендую к прочтению, можно найти много практических советов😉
Из полезного:
- у автора есть сервис по авторевью кода (там навороченный линтер, как мелкий брюзга проверить ваш код)
- по результатам есть описание типовых ошибок
- если не хотите ждать авторевью (оно занимает до 24 часов), устанавливаете
flake8, качаете авторский .flake8 и начинаете улучшать свой код......................
Помните в посте выше про
ipython-sql мы писалинемного кода, я собрал его в py-файл и отправил на проверку, результат по ссылке или кратко:
- отсутствуют аннотации типов (да, еще не добрался до их применения)
- ненужный код
- лишнее создание объектов
Оценка - 2️⃣.7️⃣8️⃣% при общей в по всем ревью 8.5% - отличный результат🥇
В общем готовьте код правильно!
Журнал «Код» программирование без снобизма
Линтер: что это такое и зачем нужно — Журнал «Код»
Линтер — это программа, которая автоматизирует всю эту возню и сама «причёсывает» код по определённым правилам. Даёшь ей чумазый и неуклюжий код, она чистит на уровне каких-то простых правил.
👍2
🎙Хей-хей, сегодня небольшой квиз
И не говорите, что вы не любите порешать интересные задачки на Python или SQL🤩
Не часто в описании вакансии встретишь намеки на тестовое, а тут на днях обнаружил такое:
Устроим небольшой SQL challenge💪
В комменты добавлю видео где найти этот датасет 🎥
Буду ждать ваших решений, если возникнут проблемы, смело пишите в комменты, разберемся🙃
Итого в решении должно быть:
- запрос 1 (топ 3 машины)
- запрос 2 (сравнение величины чаевых за месяц с предыдущим в процентах)
- будет круто если график изменения чаевых реализуете в виде дашборд 📈 (варианты: Tableau Public, Google Data Studio, Yandex DataLens, Redash) и поделитесь ссылкой
➖➖➖➖➖➖➖➖➖➖
Ну, что погнали😉
#sql #dashboard #challenge
И не говорите, что вы не любите порешать интересные задачки на 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 бывает очень трудно, тк ему кажется, что всё это как бы прилагается и задача (которую он придумал) точно решается.
Начав новый рабочий 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