Триафлай за 3 шага

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

Шаг 1. Доступ к Системе

Для начала работы необходимо:
  • веб-браузер (желательно google chrome или firefox последних версий);

  • доступ к развернутой системе Triafly (url адрес системы);

  • логин и пароль пользователя для входа в систему.

Далее для простоты будем рассматривать работу под пользователем-администратором системы.

Шаг 2. Загрузка данных

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

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

Примечание

Поскольку для пользователя показатель Название является идентификатором элемента в справочнике, необходимо обеспечивать уникальность значений данного показателя в рамках одного справочника.

  1. Показатель Период - системный показатель, используется в случаях, когда у данных есть временной разрез. Для того, чтобы анализировать данные, имеющие временной разрез, рекомендуется использовать именно этот показатель, потому что он допускает агрегацию по временным интервалам (с дней на месяцы и т.п.), а также использование одного и того же показателя позволит анализировать вместе данные, загруженные из разных источников. Показатели c типом «Дата и время» менее удобны в качестве разреза данных.

Предупреждение

Не используйте показатели с типом «Дата и время», если вы хотите анализировать данные во временном разрезе. Используйте показатель с типом «Период». Минимальная единица «Периода» - день.

Итак, для начала работы необходимо загрузить некоторый набор исходных данных, которые мы будем анализировать. Загрузка данных возможна несколькими способами:

  1. С помощью коннектора к внешнему источнику данных (к БД или из файла)

  2. С помощью импорта данных в реестры или формы

Проще всего загрузить данные, если они находятся в excel или csv файлах. В нашем случае источником является excel-файл, поэтому будем использовать xls-коннектор.

Примечание

По умолчанию ожидается, что данные в excel файлах представлены в формате, аналогичном csv. Т.е. первая строка - заголовки, далее находятся данные построчно. В случае, если данные представлены в другом виде (в таблицах или не с первой строки или столбцы описывают значение одного и того же показателя при разных значениях признаков), можно либо преобразовать исходный файл к необходимому виду, либо воспользоваться функционалом кастомизированной выборки из excel-файла.

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

В нашем случае структура данных выглядит следующим образом:

_images/quickstart_diagram.png

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

Примечание

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

Итак, приступим к загрузке данных.

  1. Создадим xls-коннектор. Первым делом выберем таблицу «Товары». Начинаем грузить данные со справочников, чтобы при загрузке основного блока данных, они уже существовали в Системе.

Для таблицы товаров важно установить следующие настройки:

  • В настройках самой таблицы необходимо отметить чекбокс «Загрузка в справочник», чтобы все загруженные объекты оказались в одном справочнике товаров

  • Столбец «Наименование» необходимо загружать в системный показатель Название, чтобы пользователь ориентировался по наименованиям товаров

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

  • Столбец «Категория» - загружаем в новый показатель из справочника, разрешить добавлять элементы (чтобы справочник категорий наполнился автоматически при загрузке)

_images/quickstart_first_table.png

Примечание

Если загружаемая таблица - это справочник, в разрезе которого мы хотим анализировать другие данные, то необходимо в настройках таблицы поставить чекбокс «Загрузка в справочник». Название созданного при загрузке справочника будет соответствовать названию таблицы. Не забудьте выбрать столбец, который будет грузиться в показатель Название, иначе таким справочником будет невозможно пользоваться.

После задания этих настроек можно загружать данные из выбранной таблицы. После окончания загрузки в Системе произойдет следующее:

  • Будет создано два справочника: «Категории» и «Товары»;

  • Будут созданы показатели: «Категории» (из справочника «Категории»), «Товары» (из справочника «Товары»), «SKU» (строковый);

  • Будет создана :ref:`точка восстановления <recovery-point>`перед загрузкой данных (чтобы в случае ошибки можно было откатиться).

  1. Теперь можно загружать данные по продажам.

Выберем в коннекторе таблицу с продажами. В ней необходимо установить следующие настройки:

  • Столбец «Дата и время» загружаем в существующий системный показатель Период.

  • Столбец «SKU» помечаем как обязательный. Загружаем в существующий (созданный на предыдущем шаге) показатель Товары (не в SKU), но в настройках необходимо задать параметр «На какое поле ссылаемся?» = SKU. Таким образом, данный столбец определяет связь со справочником товаров, и в Системе будет создана именно такая связь, но в качестве идентификатора товара будет использован показатель SKU, а не показатель Название.

  • Столбец «Наименование товара» пропускаем, так как связь с товарами задается предыдущим столбцом «SKU».

  • Столбец «Магазин» загружаем в новый показатель с типом справочник, добавляем элементы при загрузке.

  • Столбец «Количество» загружаем в новый показатель, тип «целое».

  • Столбец «Сумма» новый показатель, тип «число» (или «денежный», в данном случае разницы нет).

_images/quickstart_second_table.png

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

_images/quickstart_error.png

Исправить ошибку можно следующими способами:

  • Расширить справочник товаров, добавив туда новый элемент с идентификатором «sku_0»: это можно сделать через интерфейс Системы, открыв справочник и добавив туда новую строку;

  • Пропустить невалидную строку: для этого в настройках загрузки столбца можно поставить чекбокс «пропускать строку при ошибке»

  • Исправить значение «sku_0 «в процессе загрузки на другое: для этого можно добавить преобразование на столбец вида:

    if str(field)==»sku_0»: return «sku_1» else: return field

В нашем случае пропустим строку с ошибкой: поставим соответствующий чекбокс и повторно загрузим данные.

В данном случае загрузка опять завершится с ошибкой, т.к. Система не смогла автоматически распознать формат даты и времени для загрузки в показатель «период».

_images/quickstart_second_error.png

Для исправления формата данных добавим преобразование на поле «дата и время», обрезающее время:

return field.split(" ")[0]

В результате загрузка будет выполнена без ошибок.

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

Кроме того, загруженные данные можно просмотреть и отредактировать непосредственно со страницы настройки коннектора.

Возможные проблемы при загрузке данных

  1. Ключи неуникальны

    В случае, если указанный набор ключей не уникален в блоке данных, данные не будут загружены в Систему. Решить проблему можно несколькими способами:
    • Удалить дубликаты из исходного файла

    • Добавить в ключи еще одно поле, обеспечивающее уникальность

    • В настройках таблицы установить чекбокс «пропускать дубликаты» - тогда будет загружена только первая запись, остальные будут пропущены

  2. В справочнике нет элемента

    Если в справочнике не найден нужный элемент:
    • Можно разрешить добавление новых значений в справочник при загрузке

    • Поправить данные в исходном файле

    • Добавить элемент в справочник вручную

  3. В справочнике присутствует более одного подходящего элемента

    Такое сообщение может возникнуть, если одно из полей в данных является ссылкой на справочник, но не на его название, а на идентификатор, или какой-то другой признак. При этом признак не уникален среди элементов справочника. Тогда при загрузке Система не может однозначно определить, к какому именно элементу справочника привязать объект. Для решения проблемы необходимо обеспечить уникальность ссылки на элемент справочника:
    • Исправить вручную идентификаторы в справочнике

    • Выбрать другое поле для ссылки на справочник

  4. Необходимо объединить несколько полей в одно или разбить одно поле на несколько

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

  5. Формат значений не соответствует типу показателя

    Для решения проблемы необходимо задать преобразование данных в поле, приводящее их к нужному виду.

  6. В данных встречаются разные написания одной и той же сущности

    Для решения необходимо задать преобразование, приводящее разные написания к одному и тому же эталонному варианту.

  7. Необходимо выборочно загрузить данные

    Для пропуска некоторых строк при загрузке можно описать условие пропуска в скрипте преобразования данных и сгенерировать исключение «Skip» при выполнении условий.

  8. Не понятен статус загрузки

    Загрузка данных происходит асинхронно, ее статус отображается в Журнале загрузок. Даже если вы закрыли или обновили вкладку, данные будут продолжать загружаться.

Шаг 3. Построение отчета

После загрузки можно построить отчет по загруженным данным. Для этого достаточно открыть аналитическую панель и выбрать показатели Сумма и Количество.

_images/quickstart_report.png

Часто возникающие вопросы

Что делать, если данные загружены неверно?

Если один из столбцом загружен неверно, необходимо сначала удалить загруженные значения, потом перенастроить коннектор и загрузить данные заново. В случае, если в загруженных данных есть ключи, достаточно удалить вместе с данными только один неверно загруженный показатель. Далее перенастроить коннектор (сохранив ключи) и заново загрузить данные в Систему.

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

Примечание

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

Для загрузки одного и того же блока данных могут быть использованы разные коннекторы, в которых используются одни и те же показатели и справочники.

Как удалить загруженные данные?

Есть несколько способов удалить загруженные данные:

  • Удалить коннектор «вместе с данными»;

    Если после загрузки по созданным справочникам и показателям были построены отчеты, автоматически удалить коннектор вместе с данными не получится - сначала необходимо удалить все созданные сущности.

  • Построить реестры, включающие в себя все загруженные объекты и удалить их. После этого удалить показатели и справочники;

  • Откатить Систему до точки восстановления (она автоматически создается перед загрузкой данных);

Предупреждение

Откат Системы к точке восстановления безвозвратно отменит все произведенные с того момента операции. Данный функционал рекомендуется применять только в процессе первичной настройки Системы, до запуска в эксплуатацию.

Загруженные данные задвоились

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

Почему после удаления коннектора могут остаться используемые в нем показатели и справочники?

Если справочник или показатель был создан в Системе не в процессе загрузки данных из этого коннектора, либо был изменен после загрузки данных, то при удалении коннектора вместе с данными, он не будет удален из Системы. Можно удалить такие сущности вручную.

Как объединить данные из разных источников или таблиц?

Данные можно объединять с разными целями:

  1. Когда под объединением подразумевается расширение состава атрибутов справочника, загруженного из одного источника, данными из другого источника (например: таблица с брендами товаров и таблица с категориями товаров).

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

  1. Когда есть разные блоки данных, которые хочется анализировать в одних и тех же разрезах (например: данные по остаткам товаров в магазинах и данные по продажам товаров в магазинах).

В таком случае достаточно просто использовать одни и те же показатели-справочники с магазинами и товарами в обеих таблицах. Физически данные по продажам и остаткам будут лежать в разных объектах, но поскольку у них будут одни и те же признаки, их можно будет вывести в одном отчете.

Как задать иерархию в справочнике?

Для создания иерархического справочника необходимоЮ чтобы у каждого объекта была задана ссылка на объект-родитель. То есть надо добавить в справочник показатель, принимающий значения из этого же справочника и задать его значения. Далее, добавить свойство показателю из этого справочника, что он является иерархическим, и указать каким показателем задается иерархия.

Как задать порядок элементов справочника?

Для задания порядка вывода элементов справочника необходимо задать значение системного показателя «Порядковый номер» всем элементам справочника.

Как удалить показатель?

Чтобы удалить показатель необходимо: 1. Обеспечить, чтобы данный показатель не использовался ни в каких отчетах, реестрах, справочниках и т.п. Для этого в паспорте показателя можно просмотреть все сущности, в которых он используется, и отредактировать их. 2. Обеспечить, чтобы не было ни одного объекта в Системе с заданным значением этого показателя. Для этого достаточно построить реестр из одного столбца - этого показателя и удалить все объекты, либо очистить значения в столбце (доступно только если показатель необязательный в реестре и есть другие обязательные столбцы)

Предупреждение

Обратите внимание, что при удалении строки из реестра, удаляются не только значения в видимых столбцах но и весь объект целиком. Это может привести к случайному удалению важных данных. Перед удалением убедитесь, что к объектам не привязаны какие-либо нужные свойства через добавление необязательных столбцов в реестр, либо через просмотр блоков данных.

Как удалить справочник?

Для удаления справочника необходимо сначала удалить показатели, принимающие значения из этого справочника. После этого удалить все элементы справочника и удалить сам справочник из списка справочников.