LEFT JOIN – Telegram
LEFT JOIN
45K subscribers
944 photos
28 videos
6 files
1.2K links
Понятно про анализ данных, технологии, нейросети и, конечно, SQL.

Услуги — leftjoin.ru
Курсы по аналитике — https://stepik.org/users/431992492

Автор — @valiotti
Реклама — @valiotti

Перечень РКН: https://tapthe.link/PpkTHavwS
Download Telegram
Forwarded from karpov.courses
Невероятно, но факт: в ClickHouse появилась поддержка оконных функций!

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

Пока что оконные функции находятся в альфа-версии и поддерживают не весь спектр параметров в сравнении с, например, PostgreSQL, но начало положено. Тем более ClickHouse – opensource база, так что ожидается, что при поддержке сообщества их быстро доделают до стандартов индустрии.

Ну и напомним, что ClickHouse является основной базой в нашем модуле по SQL. Мы обновили версию, так что студенты уже могут покрутить оконки на нашем кластере:)
Согласен с @kuandi! Мы в Петербурге умеем до 50 таких оттенков серого отличать 😎
Приятные оттенки серого для разнообразия. Серый вообще топ цвет для визуализаций, когда нужно делать фокус на чем-то одном (тогда серым делаете все категории, а какую-то выделяете другим более ярким). Связка серый+синий уже немного классическая, но часто берут самые дефолтные серый и синий, а вот такие оттенки могут сделать виз ещё симпатичнее 🦭
Не все используют GUI при работе с системой контроля версий, и для коммита файлов приходится вводить не одну команду в терминал, а смена веток нередко приводит к путанице.

А у GitHub есть API, который позволяет создавать репозитории, получать информацию о пользователях, отправлять и обновлять файлы и многое другое. В сегодняшнем материале пишем скрипт, который автоматизирует отправку коммитов при помощи запросов к GitHub API:

https://leftjoin.ru/all/github-api/
Лучшие практики использования SQL по версии Metabase.

Некоторые советы действительно ценные. Из того, что реально встречалось на практике особенно выделил бы один, так как в свое время удалось существенно оптимизировать время выполнения запроса:
Prefer EXISTS to IN
If you just need to verify the existence of a value in a table, prefer EXISTS to IN, as the EXISTS process exits as soon as it finds the search value, whereas IN will scan the entire table. IN should be used for finding values in lists.

Metabase довольно интересный инструмент, на одном из проектов используем его, надо бы записать видео в продолжение Гайда по BI.
Если у кого-то есть время и интерес поисследовать Metabase, а также записать видео, пишите мне в DM: @valiotti.
Для работы с SQL-кодом и подключением к разным базам данных я достаточно давно использую DBeaver, это довольно удобный инструмент для работы с большим количеством разнообразных БД, у которого есть Community версия (читай, бесплатная).

И вот наткнулся на CloudBeaver (от создателей, разумеется), который умеет все то же самое через браузер.
Fivetran прислали письмо, в котором рассказывают про свою конференцию Modern Data Stack на ЕMEA, которая состоится 25го мая.
Думал, как это увязать с аналитикой и понял, что, наверное, никак, но и не поделиться не могу 🙂 Если кто-то вдруг заскучал по старому плееру Winamp, поддержка которого прекращена, поностальгируйте и скрасьте свой день с веб-версией Winamp ⚡️⚡️⚡️
Forwarded from DataEng
Продолжаем цикл материалов про работу с веб-фреймворком Dash. Ранее мы рассказывали про развертывание дашбордов на AWS Elastic Beanstalk. Если у вас уже есть виртуальная машина на Amazon EC2, то дашборд можно развернуть как веб-приложение на вашем инстансе. О том, как это сделать, читайте в новом материале на нашем сайте:

https://leftjoin.ru/all/deploy-dashboard-ec2/
Анализа данных с помощью SQL
Достаточно прикольный и полезный гайд по использованию SQL для анализа данных вместо Pandas.
Автор делится рядом любоптных идей: train/test split, линейная регрессия (оказывается, есть по умолчанию в PostgreSQL) и много других полезностей, собранных в одном месте, рекомендую!

Кстати, Mode когда-то тоже предлагали несколько изощренный способ построения регрессии с помощью SQL.

#link
И немножко околокликхаусных новостей:
Altinity рассказывает об использовании Superset на Clickhouse (погдлядел в @superset_ru). Материал в нескольких частях.
Создан профайл для работы с Clickhouse через dbt, ссылка на github (сам нашел).
Еще не тестировали, но очень интересно.
А вот Дмитрий в комментариях пишет о результатах тестирования профайла dbt для Clickhouse.
Тестировали профайл клика для dbt. Сырой, особенно тяжко, если клик on cluster, потому что этот функционал не реализован. Но если клик на одной ноде - всё ок.

Также есть проблемы с тем, что настройки подключения не передать в профайле. Лечится созданием специальной роли по dbt скрипты, чтобы использовались подходящие настройки.

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

В движках, кстати, есть проблема. В конфиге модели указывается просто *MergeTree, без скобок, соответственно без параметров. Мне бывает нужно в ReplacingMergeTree указать таймстемп, особенно если оставить надо не последнюю пришедшую запись.

Резюме краткое: многое лечится кастомными макросами, благо dbt использует те, что в проекте, если находит несколько с одинаковым именем. Но хочется, чтобы адаптер не заглох. Будем контрибьютить, если
Pattern matching в Python

Это весной вышла альфа-версия Python 3.10, в которой, помимо прочего, реализовано структурное сопоставление шаблонов (structural pattern matching).

Раньше как таковой конструкции типа switch/case в Python не существовало. Насущные проблемы решались с помощью конструкции if/elif/else или поиском по словарю. Такие конструкции объемны и затрудняют читабельность кода.

Pattern matching в новой версии Python реализован через конструкцию match/case. Станет ли это панацеей для разработчиков, судить рано. Но как применяется match/case на практике уже можно посмотреть в нашем переводе статьи от InfoWorld.

https://leftjoin.ru/all/pattern-matching-v-python/
Библиотека Clustergram для Python

Интересный пост про библиотеку Clustergram для Python. При построении кластеризации методом K-Means число кластеров заранее неизвестно и традиционный подход предполагает построение так называемого Elbow-chart (да, локоть), который показывает общую внутригрупповую сумму квадратов для разного числа кластеров. Этот график не очень информативен для принятия однозначного решения по поводу числа кластеров.
Предлагаемая библиотека усовершенствует подход к обнаружению числа кластеров: позволяет визуализировать разбиение на кластеры и толщиной линии отображает дополнительную информацию, получаемую от этого разбиения.
Статья про то, как AirBnb добились констистентности метрик. Внутри про используемые решения и про их архитектуру данных.

#link
Рекомендации по использованию PostgreSQL в качестве хранилища данных. Внутри статьи любопытная ссылка на предостережение по использованию CTE в PostgreSQL (все от того же автора, на которого недавно ссылался по SQL для анализа данных)
Часто для ML-моделей нужно подготовить датасет: масштабировать или нормализовать признаки, чтобы получить корректные результаты работы алгоритма. Такого рода подготовку можно провести прямо в процессе выгрузки данных из БД.

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

https://leftjoin.ru/all/data-scaling-with-sql/