Pull to refresh
14
17
Send message

Определяем доли и коэффициенты проникновения с помощью DAX

Level of difficultyEasy
Reading time4 min
Views1.1K

Привет, Хабр! Одной из важных задач в аналитических запросах является расчет долей, который позволяет узнать, какая часть записей из общего количества по всей таблице соответствует какому-либо критерию. Также нередко полезными оказываются коэффициенты проникновения (в общем-то тоже являющиеся долями). Они позволяют оценить продажи, найти взаимосвязи признаков и сделать много еще чего полезного. Чтобы проводить такого рода расчеты идеально подходит язык DAX. Если Вам интересно, насколько это удобно и как именно сделать это в DAX — добро пожаловать под кат :)

Читать далее
Total votes 2: ↑2 and ↓0+2
Comments0

Работа с календарями в BI — с DAX и без него

Reading time7 min
Views1.6K

Привет, Хабр! При работе с Business Intelligence и дашбордами практически в любой предметной области встречаются даты и календари, поэтому от выбора представления дат и их составных частей (день, месяц, квартал, полугодие, год и т.д.), ключей дат и таблицы с датами зависит производительность всех дашбордов. В этой статье я расскажу о том, как можно оптимизировать работу с датами в Visiology — с использованием DAX и без него. Интересно? Добро пожаловать под кат! :)

Читать далее
Total votes 7: ↑7 and ↓0+10
Comments0

Оценка кардинальности полей таблицы

Reading time7 min
Views1.5K

Привет, Хабр! В SQL запросах важно ориентироваться в количестве записей в таблицах и в плане выполнения запроса. Это позволяет, например, уменьшить количество записей при выполнении запроса при помощи группировки GROUP BY. В случае работы над каждым SQL запросом вручную, это можно проверить в среде разработки. Но в случае генерации SQL запросов автоматически появляется задача проверки количества уникальных записей для одного или нескольких полей таблицы, иными словами, кардинальности. В частном случае, при наличии сильных линейных связей между полями таблицы или даже "полей-дубликатов", количество уникальных записей в двух полях практически равно количеству уникальных записей в одном поле, т.е. кардинальность двух линейно зависимых полей таблицы практически равна кардинальности одного поля. В связи с этим актуально применение коэффициентов парной и множественной корреляции при расчете кардинальности нескольких полей. Интересны статистические методы при расчете кардинальности? Добро пожаловать :)

Читать далее
Total votes 3: ↑3 and ↓0+5
Comments6

Подсчет уникальных значений поля в ClickHouse

Reading time4 min
Views2.4K

Привет, Хабр! Существуют разные задачи в IT, многие решаются алгоритмически или условно за счет архитектурных решений. Среди всего многообразия задач также интересны задачи, решаемые с применением статистических методов.

Одной из таких задач является приближенный расчет количества уникальных значений в поле таблицы (или кардинальности). Казалось бы, практическая польза от быстрого расчета количества уникальных значений поля без больших затрат памяти невелика, однако это позволяет, например, построить оптимальный с точки зрения производительности SQL запрос с этим полем, или использовать это поле в UI (например, элемент с бесконечной прокруткой или элемент с поиском при значительном количестве уникальных значений, а не отображение конечного списка) и т.д. Задача может быть эффективно решена в СУБД, обладающей соответствующими инструментами, поэтому будет рассмотрен ClickHouse.

Интересно решение задачи расчета количества уникальных значений столбца в ClickHouse? Добро пожаловать :)

Читать далее
Total votes 6: ↑6 and ↓0+8
Comments0

ДАКСуем вместе: три колбасных примера для реальной аналитики

Reading time15 min
Views2.6K

Привет, Хабр!

Сегодня я хотел бы поговорить подробнее о языке DAX, который активно применяется продвинутыми аналитиками во всем мире. Но я уверен, что сфера использования этого мощного инструмента охватывает не только суперпрофессионалов. Именно DAX делает аналитику доступнее для бизнес-пользователей, которые могут сделать сложные расчеты без познаний в программировании вообще. В этой статье мы рассмотрим три примера, в которых DAX помогает гораздо проще и быстрее решить типовые задачи, с которыми сталкиваются аналитики. Использовали ли Вы DAX раньше — неважно! Тех, кто впервые слышит о DAX, я постараюсь порадовать примерами, а опытных пользователей приглашаю к дискуссии.

Читать далее
Total votes 14: ↑12 and ↓2+14
Comments4

Пример DAX с точки зрения реляционной алгебры

Level of difficultyEasy
Reading time3 min
Views1.8K

Привет, Хабр!

Существует множество инструментов для решения задач Business Intelligence, одним из удобных инструментов является функциональный язык DAX, позволяющий работать с различными СУБД и выполнять достаточно сложные аналитические расчеты.

Поскольку язык DAX в рамках Power BI способен работать со множеством различных СУБД (например Oracle, MS SQL, MySQL, PostgreSQL, ClickHouse и т. д.), т. е. работает со множеством диалектов SQL, то в некотором смысле DAX является «надмножеством SQL» и приближается в этом смысле к реляционной алгебре. В данной статье приводится разбор типичного DAX для получения записи этого DAX в нотации реляционной алгебры. Интересующимся погружением в DAX и его реляционное представление — добро пожаловать :)

Читать далее
Total votes 6: ↑6 and ↓0+10
Comments2

Преимущества DAX на примере коэффициента проникновения

Level of difficultyEasy
Reading time2 min
Views1.4K

Привет, Хабр! В рамках Business Intelligence для расчета KPI и других статистических характеристик могут использоваться различные средства. Универсальным и мощным инструментом является язык DAX, в этой статье я хочу показать его преимущества на примере популярной задачи расчета коэффициента проникновения в Power BI.

Если интересна аналитика с DAX - то добро пожаловать! :)

Читать далее
Total votes 4: ↑4 and ↓0+7
Comments2

Примеры использования state функций в ClickHouse

Level of difficultyEasy
Reading time3 min
Views2.1K

Существуют базы данных различного вида, и для колоночных баз данных, таких как, например, ClickHouse, характерны особые инструменты для вычислений аггрегированных значений.

Из документации ClickHouse не всегда легко сразу понять ценность функций для имплементации бизнес-логики, в частности, ценность функции runningAccumulate. Например, несмотря на богатые возможности runningAccumulate, неотформатированный код и имена вида k и sum_k из документации могут немного ввести в заблуждение.

Если Вам интересно рассмотреть state функции ClickHouse на паре примеров с более понятной логикой, то добро пожаловать :)

Читать далее
Total votes 2: ↑2 and ↓0+3
Comments2

Преимущества DAX на примерах

Level of difficultyEasy
Reading time3 min
Views3.9K

Популярным языком запросов от Microsoft является DAX. В отличие от диалектов SQL, DAX позволяет аналитикам сфокусироваться на решении задач бизнес-аналитики, вместо того, чтобы заниматься рутинными техническими задачами (например, вопросами производительности).

Безусловно, DAX не является панацеей для решения любых задач, но, если честно, ознакомление с этим функциональным языком может быть своего рода открытием, что создать единый язык для всех SQL диалектов - это вообще "doable", причем поддерживаются практически все имеющиеся базы данных многих видов (например, реляционные, колоночные), а также обеспечивается высокая производительность запросов.

В этой статье рассматриваются преимущества DAX на конкретных примерах, таким образом, если Вам интересен Business Intelligence на DAX - добро пожаловать :)

Читать далее
Total votes 8: ↑8 and ↓0+11
Comments6

Внедрение Business Intelligence с нуля — первые шаги

Level of difficultyEasy
Reading time4 min
Views1.9K

Внедрение системы Business Intelligence в рамках компании - одновременно уникально для каждой компании, и в то же время может быть унифицировано за счет использования существующего опыта и знаний. В этой статье приведены базовые принципы построения BI систем, на которые можно ориентироваться, чтобы сэкономить время и получить качественную BI систему для компании. Тем, кому интересны основы BI систем - добро пожаловать :)

В качестве небольшого вступления имеет смысл отметить две особенности BI систем. BI системы основаны на рассчитываемых ключевых показателях эффективности (KPI), но тем не менее, для управления компанией представляет ценность именно система или набор показателей, а не какой-либо единственный показатель. Другой особенностью является то, что BI система аккумулирует данные из различных систем и различной периодичностью, например, финансовые показатели из учетных систем, данные о клиентах из CRM систем или из систем обратной связи с клиентами, и все эти задачи интеграции встают перед компанией, которая внедряет BI.

Рассморим выбор ключевых показателей BI системы "с нуля", что определит суть будущей BI системы компании. Конечно, можно использовать и готовый набор показателей, которые часто имеются для разных предметных областей в различных BI платформах, в этой статье обращается внимание на выбор системы KPI "с нуля".

Популярным подходом к управлению по KPI является сбалансированная система показателей (Balanced Scorecards, BSC), предложенная Р. Капланом и Д. Нортоном в работе "Сбалансированная система показателей" в 1996 году. В книге рекомендуется подход к управлению, основанный на ключевых показателях эффективности (KPI), отслеживающих стратегический прогресс в достижении основных целей по четырем направлениям: финансовые показатели, взаимодействие с клиентами компании, внутренние процессы компании и обучение/рост сотрудников компании.

Читать далее
Total votes 3: ↑3 and ↓0+3
Comments4

Оптимизация CROSS JOIN — первые шаги

Level of difficultyEasy
Reading time3 min
Views5.5K

Различные СУБД предлагают широкий набор разновидностей операторов JOIN для таблиц. Если Вам встретилась проблема с производительностью CROSS JOIN, - например, декартово произведение таблицы с миллионом записей самой на себя, - добро пожаловать, в этой статье перечислены простейшие способы избавиться от CROSS JOIN.

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

Примеры в статье рассматриваются на основе CROSS JOIN из ClickHouse. Текущая версия ClickHouse не оптимизирует CROSS JOIN автоматически. Также стоит отметить, что поскольку часто SQL запросы не пишутся вручную, а, например, собираются по частям программно, то перечисленные далее случаи вполне реальны.

Читать далее
Total votes 3: ↑3 and ↓0+3
Comments15

Business Intelligence — быстрый старт

Level of difficultyEasy
Reading time4 min
Views2.9K

Все мы работаем в разных предметных областях, и бывает усложно уделить время знакомству с BI. Надеюсь, у Вас есть менее получаса на чтение этой статьи и знакомство с примером, а также есть желание провести графический BI анализ на .NET, в таком случае - добро пожаловать.

В этой статье мы создадим .NET приложение для визуализации исторических реальных BI данных компании IBM о стоимости акций на нью-йоркской бирже за последние дни, код примера.

С учетом опыта над зарубежными (MercerInsight) и отечественными (Visiology) BI продуктами, а также над оригинальными BI системами для крупных отечественных IT компаний, у меня, честно говоря, сложилось впечатление, что популярным решением для визуализации и чуть ли не стандартом де-факто являются HighCharts. Безусловно, есть альтернативы (даже условно CrystalReports, DevExpress и т.д.), в этой статье будут использованы именно HighCharts, мы увидим их особенности и преимущества. Также для простоты будет просто обычный JS, но обычно в реальных проектах используются HighCharts в связке с одним из TypeScript фронтендным фреймворком.

Создадим новый MVC .NET проект (например, .NET 8) из .NET CLI и добавим dev HTTPS сертификаты:

Читать далее
Total votes 6: ↑5 and ↓1+6
Comments0

Information

Rating
428-th
Location
Россия
Works in
Date of birth
Registered
Activity

Specialization

Fullstack Developer
Lead