Forwarded from karpov.courses
Невероятно, но факт: в ClickHouse появилась поддержка оконных функций!
Почему это важно? ClickHouse – это база данных, созданная специально для аналитиков, а аналитические задачи не всегда решаются без оконных функций. Самые ловкие и умелые писали аналоги на словарях, лямбда-функциях и подзапросах, но всё же это считалось велосипедом и могло потребовать переписывать код под новую задачу. Отсутствие оконных функций часто звучало в обсуждениях баз данных для аналитиков и было одним из ключевых аргументов, почему не ClickHouse.
Пока что оконные функции находятся в альфа-версии и поддерживают не весь спектр параметров в сравнении с, например, PostgreSQL, но начало положено. Тем более ClickHouse – opensource база, так что ожидается, что при поддержке сообщества их быстро доделают до стандартов индустрии.
Ну и напомним, что ClickHouse является основной базой в нашем модуле по SQL. Мы обновили версию, так что студенты уже могут покрутить оконки на нашем кластере:)
Почему это важно? ClickHouse – это база данных, созданная специально для аналитиков, а аналитические задачи не всегда решаются без оконных функций. Самые ловкие и умелые писали аналоги на словарях, лямбда-функциях и подзапросах, но всё же это считалось велосипедом и могло потребовать переписывать код под новую задачу. Отсутствие оконных функций часто звучало в обсуждениях баз данных для аналитиков и было одним из ключевых аргументов, почему не ClickHouse.
Пока что оконные функции находятся в альфа-версии и поддерживают не весь спектр параметров в сравнении с, например, PostgreSQL, но начало положено. Тем более ClickHouse – opensource база, так что ожидается, что при поддержке сообщества их быстро доделают до стандартов индустрии.
Ну и напомним, что ClickHouse является основной базой в нашем модуле по SQL. Мы обновили версию, так что студенты уже могут покрутить оконки на нашем кластере:)
Forwarded from настенька и графики
Приятные оттенки серого для разнообразия. Серый вообще топ цвет для визуализаций, когда нужно делать фокус на чем-то одном (тогда серым делаете все категории, а какую-то выделяете другим более ярким). Связка серый+синий уже немного классическая, но часто берут самые дефолтные серый и синий, а вот такие оттенки могут сделать виз ещё симпатичнее 🦭
Не все используют GUI при работе с системой контроля версий, и для коммита файлов приходится вводить не одну команду в терминал, а смена веток нередко приводит к путанице.
А у GitHub есть API, который позволяет создавать репозитории, получать информацию о пользователях, отправлять и обновлять файлы и многое другое. В сегодняшнем материале пишем скрипт, который автоматизирует отправку коммитов при помощи запросов к GitHub API:
https://leftjoin.ru/all/github-api/
А у GitHub есть API, который позволяет создавать репозитории, получать информацию о пользователях, отправлять и обновлять файлы и многое другое. В сегодняшнем материале пишем скрипт, который автоматизирует отправку коммитов при помощи запросов к GitHub API:
https://leftjoin.ru/all/github-api/
leftjoin.ru
Пишем скрипт для автоматизации коммитов GitHub
Лучшие практики использования 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.
Некоторые советы действительно ценные. Из того, что реально встречалось на практике особенно выделил бы один, так как в свое время удалось существенно оптимизировать время выполнения запроса:
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.
Metabase | Business Intelligence, Dashboards, and Data Visualization
Best practices for writing SQL queries | Metabase Learn
SQL best practices: a brief guide to writing better SQL queries.
Для работы с SQL-кодом и подключением к разным базам данных я достаточно давно использую DBeaver, это довольно удобный инструмент для работы с большим количеством разнообразных БД, у которого есть Community версия (читай, бесплатная).
И вот наткнулся на CloudBeaver (от создателей, разумеется), который умеет все то же самое через браузер.
И вот наткнулся на CloudBeaver (от создателей, разумеется), который умеет все то же самое через браузер.
Fivetran прислали письмо, в котором рассказывают про свою конференцию Modern Data Stack на ЕMEA, которая состоится 25го мая.
Думал, как это увязать с аналитикой и понял, что, наверное, никак, но и не поделиться не могу 🙂 Если кто-то вдруг заскучал по старому плееру Winamp, поддержка которого прекращена, поностальгируйте и скрасьте свой день с веб-версией Winamp ⚡️⚡️⚡️
webamp.org
Webamp • Winamp in your browser
Winamp reimplemented in HTML5 and JavaScript
Forwarded from DataEng
Про Query Plan в PostgreSQL: https://arctype.com/blog/postgresql-query-plan-anatomy/
Продолжаем цикл материалов про работу с веб-фреймворком Dash. Ранее мы рассказывали про развертывание дашбордов на AWS Elastic Beanstalk. Если у вас уже есть виртуальная машина на Amazon EC2, то дашборд можно развернуть как веб-приложение на вашем инстансе. О том, как это сделать, читайте в новом материале на нашем сайте:
https://leftjoin.ru/all/deploy-dashboard-ec2/
https://leftjoin.ru/all/deploy-dashboard-ec2/
LEFT JOIN
Деплой дашборда на виртуальной машине Amazon EC2
Мы уже рассказывали о том, как развернуть дашборд с помощью сервиса Elastic Beanstalk от Amazon Web Services. В этом материале расскажем как развертывать дашборды на виртуальной машине Amazon EC2. Подготовка Начало работы с платформой AWS и создание сервера…
Любопытное аналитическое исследование о том, как поменялась предвзятость судей к гостевым командам в виду отсутствия зрителей на стадионе с момента начала COVID.
#link
#link
RunRepeat - Athletic shoe reviews
Referees’ Home-Bias in Football Disappears without Audience [Study]
We analyzed referees’ performances in 1283 games from the top four Eu
Анализа данных с помощью SQL
Достаточно прикольный и полезный гайд по использованию SQL для анализа данных вместо Pandas.
Автор делится рядом любоптных идей: train/test split, линейная регрессия (оказывается, есть по умолчанию в PostgreSQL) и много других полезностей, собранных в одном месте, рекомендую!
Кстати, Mode когда-то тоже предлагали несколько изощренный способ построения регрессии с помощью SQL.
#link
Достаточно прикольный и полезный гайд по использованию SQL для анализа данных вместо Pandas.
Автор делится рядом любоптных идей: train/test split, линейная регрессия (оказывается, есть по умолчанию в PostgreSQL) и много других полезностей, собранных в одном месте, рекомендую!
Кстати, Mode когда-то тоже предлагали несколько изощренный способ построения регрессии с помощью SQL.
#link
Hakibenita
Practical SQL for Data Analysis
What you can do without Pandas
И немножко околокликхаусных новостей:
▪ Altinity рассказывает об использовании Superset на Clickhouse (погдлядел в @superset_ru). Материал в нескольких частях.
▪ Создан профайл для работы с Clickhouse через dbt, ссылка на github (сам нашел).
Еще не тестировали, но очень интересно.
▪ Altinity рассказывает об использовании Superset на Clickhouse (погдлядел в @superset_ru). Материал в нескольких частях.
▪ Создан профайл для работы с Clickhouse через dbt, ссылка на github (сам нашел).
Еще не тестировали, но очень интересно.
Altinity | Run open source ClickHouse® better
Visualizing ClickHouse® Data with Apache Superset, Part 1: Installation
Superset offers creative displays for ClickHouse data. Learn how to install Superset and connect to ClickHouse servers.
А вот Дмитрий в комментариях пишет о результатах тестирования профайла dbt для Clickhouse.
Forwarded from Дмитрий Володин
Тестировали профайл клика для dbt. Сырой, особенно тяжко, если клик on cluster, потому что этот функционал не реализован. Но если клик на одной ноде - всё ок.
Также есть проблемы с тем, что настройки подключения не передать в профайле. Лечится созданием специальной роли по dbt скрипты, чтобы использовались подходящие настройки.
Ну и хочется материализации специфичные для кликхауса. Типа матпредставлений и, может быть, движков таблиц кафка и прочих подобных. Думаем допиливать под себя.
В движках, кстати, есть проблема. В конфиге модели указывается просто *MergeTree, без скобок, соответственно без параметров. Мне бывает нужно в ReplacingMergeTree указать таймстемп, особенно если оставить надо не последнюю пришедшую запись.
Резюме краткое: многое лечится кастомными макросами, благо dbt использует те, что в проекте, если находит несколько с одинаковым именем. Но хочется, чтобы адаптер не заглох. Будем контрибьютить, если
Также есть проблемы с тем, что настройки подключения не передать в профайле. Лечится созданием специальной роли по dbt скрипты, чтобы использовались подходящие настройки.
Ну и хочется материализации специфичные для кликхауса. Типа матпредставлений и, может быть, движков таблиц кафка и прочих подобных. Думаем допиливать под себя.
В движках, кстати, есть проблема. В конфиге модели указывается просто *MergeTree, без скобок, соответственно без параметров. Мне бывает нужно в ReplacingMergeTree указать таймстемп, особенно если оставить надо не последнюю пришедшую запись.
Резюме краткое: многое лечится кастомными макросами, благо dbt использует те, что в проекте, если находит несколько с одинаковым именем. Но хочется, чтобы адаптер не заглох. Будем контрибьютить, если
Timescale DB подняли инвестиции в размере 40 млн долларов. В статье о том, что Timescale DB — это Postgres для Time Series data, что вообще такое Time series data и как появилась Timescale DB.
Timescale Blog
$40 million to help developers measure everything that matters
We just raised a $40M Series B to bring our relational database for time-series to developers everywhere. Learn how we got started and what’s still yet to come 🚀.
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/
Это весной вышла альфа-версия 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/
LEFT JOIN
В Python 3.10 появился pattern matching
Этот материал — перевод статьи «How to use structural pattern matching in Python» В новом релизе Python 3.10 появились операторы case/match, которые отвечают за реализацию в языке синтаксиса pattern-matching. Python, несмотря на его простоту и популярность…
Библиотека Clustergram для Python
Интересный пост про библиотеку Clustergram для Python. При построении кластеризации методом K-Means число кластеров заранее неизвестно и традиционный подход предполагает построение так называемого Elbow-chart (да, локоть), который показывает общую внутригрупповую сумму квадратов для разного числа кластеров. Этот график не очень информативен для принятия однозначного решения по поводу числа кластеров.
Предлагаемая библиотека усовершенствует подход к обнаружению числа кластеров: позволяет визуализировать разбиение на кластеры и толщиной линии отображает дополнительную информацию, получаемую от этого разбиения.
Интересный пост про библиотеку Clustergram для Python. При построении кластеризации методом K-Means число кластеров заранее неизвестно и традиционный подход предполагает построение так называемого Elbow-chart (да, локоть), который показывает общую внутригрупповую сумму квадратов для разного числа кластеров. Этот график не очень информативен для принятия однозначного решения по поводу числа кластеров.
Предлагаемая библиотека усовершенствует подход к обнаружению числа кластеров: позволяет визуализировать разбиение на кластеры и толщиной линии отображает дополнительную информацию, получаемую от этого разбиения.
Статья про то, как AirBnb добились констистентности метрик. Внутри про используемые решения и про их архитектуру данных.
#link
#link
Medium
How Airbnb Achieved Metric Consistency at Scale
Part-I: Introducing Minerva — Airbnb’s Metric Platform
Рекомендации по использованию PostgreSQL в качестве хранилища данных. Внутри статьи любопытная ссылка на предостережение по использованию CTE в PostgreSQL (все от того же автора, на которого недавно ссылался по SQL для анализа данных)
Narrator Data Blog | Narrator.ai
Using PostgreSQL as a Data Warehouse
With some tweaking Postgres can be a great data warehouse. Here's how to configure it.
Часто для ML-моделей нужно подготовить датасет: масштабировать или нормализовать признаки, чтобы получить корректные результаты работы алгоритма. Такого рода подготовку можно провести прямо в процессе выгрузки данных из БД.
В новом материале мы собрали несколько методов для нормализации атрибутов средствами SQL сразу двумя способами: через подзапрос и с помощью оконной функции.
https://leftjoin.ru/all/data-scaling-with-sql/
В новом материале мы собрали несколько методов для нормализации атрибутов средствами SQL сразу двумя способами: через подзапрос и с помощью оконной функции.
https://leftjoin.ru/all/data-scaling-with-sql/
leftjoin.ru
Нормализация данных через запрос в SQL