Дашборды и BI
前往频道在 Telegram
Канал про BI, DWH, DE. Кейсы использования различных инструментов, полезные и авторские материалы Админ @ivanov_analyst
显示更多俄罗斯326 340未指定类别
938
订阅者
无数据24 小时
+37 天
+1130 天
帖子存档
Сегодня рассуждал о вопросе «Что такое BI?». Как бы я ответил на него, если меня спросили и надо было ответить максимально быстро, но при этом емко.
Интересно узнать ваши варианты ответа на этот вопрос, а после я поделюсь своим и постараюсь раскрыть его.
Напишите свои ответы в комментариях
Где бесплатно изучить Apache Superset?
Хочу поделиться с вами своей подборкой материалов, которые можно использовать для изучения такого BI инструмента как Apache Superset. Советую посмотреть, даже если не планируете пока его использовать, в целом достаточно интересно. Используется на различных проектах как альтернатива тройке мировых лидеров BI инструментов.
1️⃣ Как всегда на первом месте официальная справка
2️⃣ Для тех кто любит видео ролики, открытый курс от Ростелекома
3️⃣ Почитать на русском языке можно в документации у Сбера
4️⃣ А для тех, кто любит локальные pdf файлы, есть руководство (см. вложение)
Если вы еще не знаете, что представляет из себя Apache Superset, то на официальном сайте можно познакомиться с ним
Superset is fast, lightweight, intuitive, and loaded with options that make it easy for users of all skill sets to explore and visualize their data, from simple line charts to highly detailed geospatial charts
После некоторого перерыва на следующей неделе планирую публикацию материалов:
- про создание скрипта на Python для ETL процессов
- про библиотеки визуализации данных
- про процесс документирования мер, созданных в Power BI
OLAP - online analytical processing
Если вы работаете с BI или занимаетесь анализом данных, то могли использовать или слышать про OLAP, иногда можно встретить определение как «кубы данных».
OLAP - технология обработки данных, заключающаяся в подготовке суммарной (агрегированной) информации на основе больших массивов данных, структурированных по многомерному принципу. Реализации технологии OLAP являются компонентами программных решений класса Business Intelligence.При использовании OLAP в BI данные содержатся в таких кубах в памяти компьютеров (локального или сервера) за счет чего увеличивается скорость обработки запросов и дашборд перестраивается в режиме реального времени по клику на его различных интерактивных элементах. Чтобы понять принципы работы таких кубов необходимо изменить подход к хранению данных от привычного реляционного к многомерному. Не всегда это сделать просто, т. к. понятие «куб» условно, на самом деле такая модель может и не быть классическим кубом, какой он представляется в нашем воображении. Когда у меня возникла необходимость изучения этого вопроса я пытался найти ответы в различных источниках. Больше всего мне понравились следующие лекции, в которых даются фундаментальные знания и максимально подробно освещается эта тема: https://www.youtube.com/watch?v=xD5sbSjAY-Q ММД-1. OLAP-куб: концепция многомерной модели https://www.youtube.com/watch?v=1rL1XlS7oK4 ММД-2. OLAP-куб: измерения Надеюсь они будут полезны и вам
Перенос в prod доработанного дашборда
Сегодня хочу поделиться своим личным опытом и советом по этой теме. Я работаю на крупном проекте, где в Power BI Service используется много рабочих областей, одна из которых является тестовой, а еще одна продуктивной. Все изменения по запросам от бизнеса происходят в тестовой рабочей области, после проверки и принятия правок дашборды переносятся в продуктивную среду.
Перенос дашбордов между рабочими областями осуществляется с помощью функциональной возможности
Deployment pipeline коллегами, которые отвечают «за порядок» в облачном Power BI Service. Чтобы перенести дашборд с одной рабочей области на продуктивную мне необходимо подготовить запрос для этой команды.
Объем данных в дашбордах и их сложность сильно зависят от задачи, для которой они создавались. Где-то много визуализаций, где-то используется только модель для работы в Excel.
Периодически возникает необходимость внести правки или в визуальную составляющую, или поправить / добавить меру для расчета показателя, иногда изменить структуру таблицы или поправить модель данных. Выполнив свою работу, я прошу коллег перенести дашборд в прод.
Не всегда бывает удобно обращаться к ним по вопросу какой-то мелкой доработки, т.к. от них требуется полноценное участие в процессе переноса, не зависимо от объема проделанной мной работы.
Чтобы экономить время коллег обсуждайте изначально с бизнес-пользователями пул доработок, которые необходимо выполнить с дашбордом. Таким образом: 1️⃣ вы будете выполнять больший объем работы по одному из дашбордов 2️⃣ результат будет иметь большую ценность 3️⃣ ресурсы команды будут использоваться более оптимальноКонечно, иногда есть единичные доработки или крайне редкие и для них эта рекомендация не так актуальна, но, когда работа ведется в активной стадии разработки дашборда такой подход помогает. Кто сталкивался с тем, что часто просят что-то поправить в дашборде ставьте 🔥
Как устроена работа с DWH в Lamoda
Data Warehouse (DWH) — это централизованное хранилище данных, агрегирующее данные из разных систем-источников, на которых можно проводить анализ исторических и текущих данных.
DWH состоит из пяти слоев:
▫️ Data Layer (DL)
▫️ Intelligence Layer (IL)
▫️ Business Layer (BL)
▫️ Metadata Layer (ML)
▫️ Operational Data Store (ODS Report)
Читать полностью здесь
JSON — формат обмена и хранения данных
Итак, продолжаем разбирать тему работы с API (начало здесь).
Как правило, ответ на запрос приходит в формате JSON (JavaScript Object Notation). Если очень просто сказать о нем, то это массив данных где данные хранятся в виде пар:
ключ : значение.
Можно использовать множество типов данных, от обычных текстовых строк, до сложных структур. Но везде принцип будет прост: зная ключ можем обратиться и получить значение.
Вот пример выпадающего меню для работы с файлом:
{"menu": {
"id": "file",
"value": "File",
"popup": {
"menuitem": [
{"val": "New", "click": "New()"},
{"val": "Open", "click": "Open()"},
{"val": "Close", "click": "Close()"}
]
}
}}
JSON используется не только для передачи данных, но и для хранения структурированных данных в файлах, поэтому одной из возможностей BI систем может быть получение данных из таких файлов. Файлы можно хранить как локально, так и размещать в интернете (важно следить за безопасностью!).
Используя JSON можно передать свойства одного объекта, например, пользователя, а можно сразу несколько пользователей. Это экономит ресурсы. Представьте, что у нас несколько десятков пользователей, можно получить данные по каждому отдельными запросами, тогда их количество равно числу пользователей, а можно одним запросом всех или несколько.
Работая с JSON файлами лучше использовать редактор, который умеет его форматировать. Если все данные сжать в одну строку, она будет практически не читаема. Я использую Notepad++ , в котором есть плагины упрощающие работу.
Аналогично и при работе с API, например, в Postman можно посмотреть на результат запроса в удобном виде.
Где можно почитать про JSON:
🔗 www.json.org
🔗 ru.wikipedia.org
🔗 developer.mozilla.org
🔗 www.w3schools.com
После того, как результат в формате JSON получен его нужно обработать. Сделать это можно разными способами. Например, в Python есть специализированная библиотека JSON, с помощью которой можно "распарсить" или "разобрать" полученные данные. В следующий раз поговорим об этой темеЧто такое API и для чего его можно использовать
Основным источником информации у меня является сервис, в котором логируется время по выполнению отдельных задач сотрудниками на проектах. Нужно каким-то образом забрать из него необходимую информацию. Как это сделать?
С помощью API. Большинство сервисов предоставляют такую возможность. Через API можно взаимодействовать с ними и получать от них нужные данные.
API – Application Programming Interface, программный интерфейс приложенияКак правило, чтобы получить что-то от сервиса нужно отправить запрос используя API. Для этого необходимо обратиться на некоторый специальный URL адрес с дополнительными параметрами и получить ответ. Делается это с помощью POST или GET метода. Вот пример фрагмента адреса для получения списка пользователей, в нем нет никаких параметров, он вернет всех пользователей https://example.kaiten.ru/api/latest/users Если вы думаете, что любой желающий может подобрать адрес и получить данные с сервиса, вы ошибаетесь. Существуют методы авторизации, чтобы исключить бесконтрольный доступ. О них мы поговорим позже. Чтобы отправлять запросы можно использовать различные инструменты. Например, можно с помощью скрипта на Python или через low-code ETL инструмент. Иногда, можно даже через адресную строку браузера. Если нужно просто проверить корректность запроса, отладить его или посмотреть, что он возвращает рекомендую использовать специальную программу Postman. В ней очень удобно формировать запросы, указывать методы, параметры запроса и авторизации. О ней мы тоже поговорим позже.
Итак, чтобы забрать откуда-то данные мы можем использовать API системы источника. Формируем запрос - отправляем. Получаем результат, обрабатываем и сохраняем для использованияВ следующий раз планирую рассказать, в каком виде приходят данные, при запросах по API. Если интересно, поддержите 🔥 Для решения своей задачи я выбрал Python скрипты, но в развитие темы и вариантов решения помимо этого буду использовать: - облачные функции - Apache Airflow - Apache NiFi
Выполнение реального проекта заказчика
У меня в работе находится интересный проект суть которого в оценке эффективности работы сотрудников компании, предоставляющей консалтинговые услуги.
Каждый сотрудник выполняет фиксацию затраченного времени в рамках некоторой задачи на проекте. По итогам работы месяца выставляется счет на оплату затраченных на проект часов. Стоимость работы часа сотрудника может различаться.
Первоначальная задача сделать управленческий дашборд для оценки эффективности работы по проектам и контроля за объемом часов на проектах.В рамках работы от меня требуется: ▫️ разобраться с API системы учета задачи и времени ▫️ спроектировать логическую и физическую модель данных ▫️настроить ETL процесс ▫️сформировать витрины ▫️визуализировать данных Я решил, что решать задачу буду разными подходами и инструментами. Единственное что пока будет постоянным, это база данных: PostgreSQL Если вам будет интересно следить за ходом работы по проекту накидайте 🔥 под этим постом
Как узнать, что нужно изучать для интересующей специализации и быть в курсе потребностей рынка труда?
Данный метод работает не только если вы хотите сменить профиль или специализацию, он помогает оставаться в тренде по текущей позиции и понимать потребности HR рынка.
Например, вам стала интересна специализация дата-инженера или хотите посмотреть, что происходит на рынке BI аналитиков. Заходите на HH, в поиске вводите
BI или дата-инженер. На ваш запрос получите ответ в виде списка вакансий. Теперь их можно изучать.
Выбираете подходящую вакансию (лучше выбирать от крупных кампаний), как правило описание вакансии состоит из нескольких блоков, нам из них интересны "Требования к кандидату", "Мы ожидаем от вас" и т.п. Обычно эти блоки оформлены в виде списка требований по знаниям технологий и инструментов, а также описание soft-навыков к кандидату.
Копируйте содержимое блока в любой текстовый редактор. Через 5-10 просмотренных вакансий вы уже будете понимать, что встречается чаще всего, но если продолжаете просмотр, то также продолжайте копировать эти блоки.
После того как просмотрите нужное вам число вакансий (обычно 10-15 вполне хватает), переходите к тому тексту, который у вас получился в результате копирования требований. Далее нужно сгруппировать их по смыслу, например, по названию инструмента или навыку.
Проведя кластеризацию вы получите описания по каждой технологии или навыку. Остается изучить каждый блок и сформулировать его содержание в одно предложение.В результате работы у вас на руках будт актуальные на рынке требования к кандидату по интересующей вас позиции. Далее можно: 1️⃣ успокоиться, поняв, что вы все знаете ) 2️⃣ пойти подтянуть знания, которые вы считаете не достаточными у себя 3️⃣ приступить к изучению новых технологий и инструментов 4️⃣ понять куда движется рынок и подумать как не отстать от него Чтобы результаты были более точными при разборе вакансий выбирайте из результатов поиска те (либо составляйте запрос так, чтобы получить интересующий вас срез вакансий), которые больше всего соответствуют вашим требованиям. Например, при поиске по запросу Superset вы можете получить вакансии, где ищут специалиста под этот BI инструмент (то, что мы и искали), так и те, где в описании есть формулировка "желателен опыт работы в BI инструментах, например, Superset, Power BI, DataLens и другие" (это не то, но можно тоже посмотреть). Накидайте 🔥 если публикация была интересна
6 бесплатных тренажеров по SQL
Сегодня хочу поделиться с вами подборкой тренажеров, где можно бесплатно порешать задачи по SQL (на платном тарифе может быть больше задач и функционала тренажера). Может пригодиться, если вы изучаете SQL, готовитесь к собеседованию или просто хотите освежить этот язык в памяти.
📌 sqltest.online - тренажер с возможностью выбора категории задачи. Например, агрегации, вложенные подзапросы и т.п. При желании можно выбирать задачи по уровю сложности. Задачи на английском языке
📌 sql-ex.ru - наверное самый известный тренажер. Встречал его в рекомендациях по подготовке к собеседованиям во многих компаниях
📌 sql-academy.org - много бесплатных задач. Если знакомы с SQL на среднем и выше уровнях можно найти интересные задачи. При оплате открываются реальные тестовые задачи
📌 itresume.ru - интересные задачи, разные уровни сложности
📌 stepik.org - не совсем тренажер, скорее бесплатный курс с множеством разнообразных задач. Для начинающих и повторения может быть полезен
📌 leetcode.com - мой фаворит, на английском языке. При оформлении подписки дополнительно открываются интересные задачи с реальных тестовых заданий всем известных компаний. Можно посмотреть на решения и обсуждение других пользователей
Даже если вы знаете SQL и активно применяете его в работе я бы посоветовал иногда решать задачки из тренажеров, чтобы, условно, посмотреть на использование SQL с другой стороны.Ведь обычно в своей работе приходится решать однотипные задачи, которые со временем могут быть доведены до автоматизма. А новые задачи потребуют "включить" мышление и по другому посмотреть на использование SQL
Fundamentals of Data Visualization. Claus Wilke
Книга задумана как руководство по созданию визуализаций, которые точно отражают данные, рассказывают историю и выглядят профессионально. Оно выросло из моего опыта работы со студентами в моей лаборатории над тысячами визуализаций данных. С годами я заметил, что одни и те же проблемы возникают снова и снова. Я попытался собрать накопленные знания в результате этих взаимодействий в форме этой книгиОдна из лучших книг по визуализации данных. Электронную версию книги можно почитать в свободном доступе на сайте автора
Бесплатная книга по визуализации данных в Power BI
Коллеги, эксперты по Power BI, подготовили и выложили в открытый доступ книгу по визуализации даных в Power BI. Описанное в ней можно применять не только в Power BI, но и в других инструментах, т.к. правила визуализации едины
DataLens скоро будет доступен по подписке!
С 23 апреля появляются два тарифа для использования DataLens. Будет интересно посмотреть на возможности платного тарифа.
Community — для небольших проектов и некоммерческого использования. Это базовая версия сервиса, которая была и остаётся бесплатной для всех, без ограничений на число пользователей и объём данных.
Business — для корпоративных внедрений и бизнес-задач. Среди дополнительных возможностей: приоритетная поддержка, SLA, корпоративные учётные записи и SSO, стилизация UI и другие. За 990 рублей в месяц за активного пользователя.
В информационном сообщении утверждается, что до 1 июня 2024 года можно попробовать тариф Business бесплатно.
❓ Кто что думает по этому вопросу?
Как BI специалисту организовать свою работу
Сначала определим из каких основных задач складывается работа BI специалиста:
📌 сбор требований по разработке дашбордов и по доработке существующих
📌 изучение источников информации (данных)
📌 формирование моделей для дашборда (или группы дашбордов)
📌 визуализация данных
📌 презентация своей работы
📌 обучение бизнес заказчиков работе с дашбордом
Понимая, что необходимо в целом делать можно детализировать каждую из задач и исходя из этого выстраивать свою работу.
✔️ Например, если требуется разработка нового дашборда, то обязательно сначала стоит пообщаться с бизнесом, собрать его пожелания и требования, выяснить какие источники информации используются и пр. После этого можно взять время на разработку прототипа дашборда и построение модели, после чего вернуться к бизнесу и показать свои предложения.
✔️ Если поставлена задача по доработке дашборда, то стоит начать с изучения наличия необходимых данных в текущей модели поскольку доработку можно разделить на две группы:
1️⃣ изменить/добавить визуальную составляющую, показатель и пр., что не требует вмешательства в модель и набор дынных
2️⃣ добавить показатель, измерение или фильтр, которых нет в модели
В первом случае задачу можно решить быстро, а вот второй потребует большего времени и ресурсов
Планировать свою загрузку и задачи, которые необходимо решить можно на примере основных этапов, описанных выше.
Если вы работаете на проекте и сами принимаете решение о пуле задач, которые необходимо выполнить у вас должен быть перечень задач, которые находятся в текущем спринте, а также некоторый «запас» задач в случае возникновения «простоя» (например, придется ждать данных)Если же все задачи закрыты и кажется, что все сделано, то всегда можно заняться оформлением документации по дашбордам
На следующей неделе планирую несколько публикаций по разным темам от источников данных, до построения процессов разработки и организации работы. Будет интересно!
Польза от телеграм каналов
Заметил, что количество подписчиков телеграм каналов как правило не отражает полезность и актуальность информации в них. Зачастую авторы размещают ссылки на сторонние ресурсы со статьями или видео материалы. При этом некоторые каналы с относительно не большим количеством подписчиков не заслуженно остаются в тени. У меня в подборке есть несколько таких, как правило подписчиков на них менее одной тысячи, но контент эксклюзивный, интересный и нет рекламы.
Один из таких каналов ведут коллеги из BI продукта Analytic Workspace. Несколько примеров публикаций:
Гештальт как основа визуального восприятия
Мифы Data Driven
Также ребята постоянно проводят мероприятия с приглашением экспертов из различных BI и Data Driven областей. Вот, например, с экспертом из Сбера обсуждали подходы к построению DWH.
В общем, последите за каналом @awbi_ru
Один из типов источников - данные в формате JSON
Очень часто используется при работе с API различных систем, из которых, в том числе, необходимо забирать данные для последующей работы с дашбордом. Как правило данные от таких систем возвращаются в JSON формате, но иногда может потребоваться и отправка запроса на получение данных также в этом формате.
JSON - текстовый формат обмена данными, основанный на JavaScript.
Сложного ничего в нем нет. Простая схема:
ключ - значение. Могут быть использованы вложенные ключи, что дает возможность построить сложные структуры данных. Пример данных в формате JSON:
{
"artistname" : "Scorpions",
"albums" : [
{
"albumname" : "Machine Head",
"year" : "1972"
},
{
"albumname" : "Machine Head",
"year" : "1972"
}
]
}
После того как получены данные в JSON формате (не важно по API или просто прочитан файл) их нужно обработать. Наилучшим вариантом будет сложить все данные в хранилище и уже с ним работать далее (если речь идет про дашборды). Но можно использовать и Python для обработки данных, например для генерации датасета.
Использование JSON формата дает следующие преимущества:
1️⃣ Может использоваться с любым языком программирования. Как правило в них есть встроенные библиотеки для его обработки
2️⃣ Обеспечивает структурированное хранение информации о некотором объекте или объектах
3️⃣ Можно прочитать данные в текстовом редакторе, без использования средств для расшифровки данных