Записки охотника

Отчет о потерянных и найденных питомцах

Собственные разработки
Рвав-рвав, с вами социально-ответственный собака Смайл!

В связи с прошедшим Днем рождения, а также в рамках постоянной работы над собой, мы рады представить вам свою очередную разработку — отчет c кодовым названием «Мониторинг питомцев».
Отчет построен по данным российской базы чипированных животных, а данные, представленные в отчете — общего характера.
Собака Смайл выражает благодарность коллеге хозяина Дмитрию Власову за помощь в создании процедуры парсинга исходных данных.
Описание разработки, за исключением процедуры парсинга, представлено ниже.


Power BI Report
Лист 1: общая статистика

Отчет реализован при помощи DAX и Power Query, при этом:

  • Источником данных для отчета является «Web» («Интернет»), то есть web-станицы, соединенные в определенной последовательности, и представленные при помощи функций на уровне Power Query в табличном виде.
  • Географические данные, используемые в отчете, представляют собой «очищенные» позиции, то есть эти данные отличаются от оригинала. Очистка данных производилась большей частью вручную, на уровне DAX, поскольку у человеков просто неисчерпаемая фантазия.

Рвав-рвав, отступление из серии «Накипело».
Собака Смайл узнал очень много в процессе обработки данных, оказывается, столица нашего государства может писаться следующим образом:
— «MOSKOV» — тут слов нет, мало того, что английский, так еще и с 2-мя (!) ошибками;
— «ГРАД МОСКОВСКИЙ» — куда уж нам без пафоса, так и хочется сказать: «Человек, у тебя, вообще-то, друг потерялся…"в качестве фидбэка получил информацию, что это такой Жилой комплекс, но тогда еще хуже: «Как люди должны это понять?»;
— «ТВЕРСКАЯ УЛИЦА» — таки-да, товарищи, это тоже «МОСКВА» (Смайл понял из контекста), но мы же с вами и так все в курсе, где это… И ничего, что такая же улица, как минимум, в Петербурге есть (рядом с Таврическим садом, если что).

  • Все показатели рассчитаны при помощи мер.

Разработка содержит 5 листов:

  • Лист «Общие данные» — общая информация о потерянных и найденных питомцах по России и странам мира.
  • Лист «ГЕО — Мир» — детальная информация по странам мира, за исключением России, с выделением ТОП-5 в рейтинге.
  • Лист «ГЕО — регионы России» — детальная информация по регионам России, с выделением ТОП-5 в рейтинге.
  • Лист «Породы» — детальная информация по конкретным породам питомцев, с выделением ТОП-5 в рейтинге.
  • Лист «Подробности» — персонифицированная информация о конкретном питомце, с указанием номера чипа / клейма для облегчения его идентификации.

Используемые элементы:

  • Скрывающаяся панель фильтров (стандартный функционал).
  • Кнопки.
  • Иконки.
  • Иконки, интегрированные в стандартный элемент визуализации «Срез».
  • В качестве элементов визуализации используются: «Карточка», «Диаграмма дерева», «Кольцевой график», «Карта», «Многострочная карточка», «Диаграмма ленты».

Процесс разработки:

  • Получение данных из веб-источника, и их обработка.
Цитата разработчика:
«…Подготовка данных для отчета осуществляется с помощью Power Query. На входе получаем URL к узловой странице с потерянными или найденными животными. Узловые страницы ведут на по страничное представление списков потерянных или найденных животных в формате «html». На каждой странице содержится одна или несколько таблиц с карточкой животного. С помощью преобразования Power Query и написанного ряда функций Power Query данные загружаются в модель.
Ключевые функции:
— Web. Contents — для загрузки данных;
— List. Accumulate — для прохождения и обработки в «цикле» каждой страницы и поиска последней заполненной страницы."
Исходные данные собираются в 2-х таблицах — «Потерянные питомцы» и «Найденные питомцы».
  • Создана таблица «Субъекты России» — справочник федеральных округов, субъектов и административных центров России.
  • Создана таблица «Время года» — справочник по временам года, имеющий ссылку URL на соответствующую иконку.
  • Создана таблица «Статус питомца» — справочник по состоянию питомца, имеющий ссылку URL на соответствующую иконку.
  • Создана таблица «Меры» — техническая таблица, созданная для удобства, складываем туда меры (по старинке), хоть теперь можно их группировать при помощи каталогов.
  • Создана таблица «Вид питомца» — справочник по градации питомцев, имеющий ссылку URL на соответствующую иконку.
  • Создана таблица «Пол питомца» — справочник, содержащий пол питомца, также имеющий ссылку URL на соответствующую иконку.

Рвав-рвав, на этом работы с Power Query завершены.

  • На уровне модели данных создана таблица «Календарь» — базовая таблица, определяющая набор дат для расчета.
  • Создана таблица «Объявления» — таблица, содержащая консолидированные данные по питомцам, с текущей меткой их статуса.
  • Создана таблица «Геопозиция» — справочник, содержащий очищенные географические данные, о которых упоминалось выше.
  • Следующим этапом является проверка связей получившейся модели данных, и их корректировка в случае необходимости. Схема модели представлена ниже:


  • Затем при помощи DAX начинаем формировать нужные аналитические разрезы, например, производим расчет количества случаев потери и нахождения питомцев.
  • Последний шаг разработки — это дизайн, отчет построен на использовании стандартных элементов.

Особенности разработки:

  • В связи с разнообразием в вариациях обозначения географических данных, периодически необходимо дополнять справочник вручную, собака Смайл будет этим по возможности заниматься, как и, собственно, обновлением отчета.
  • Для размещения иконок непосредственно в элементе «Slicer» («Срез»), изображения должны быть доступны по URL. В данном случае, они размещены в облаке.

Рвав-рвав, всем хорошей погоды!
Ваш Смайл