Загрузка данных

_images/scheme_connect.png

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

Для обеспечения возможности настройки автоматизированных процедур загрузки данных из внешних файлов и баз данных внешних информационных систем были разработаны 1C, OData и ODBC коннекторы, коннекторы к файлам формата MS Excel (xls, xlsx). Коннектор к источнику данных настраивается средствами пользовательского интерфейса.

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

Перейти к работе с коннекторами можно через главное меню системы — пункт “Коннекторы”.

_images/connectors_01.png

По клику на слово “Коннекторы” откроется список коннекторов, существующих в системе. Про каждый коннектор указана дата создания и последнего изменения. По клику на название коннектора откроется страница работы с ним.

Страница работы с коннектором

На открывшейся странице есть верхнее меню с кнопками, позволяющими:

  • загрузить данные
  • создать новый коннектор
  • открыть коннектор
  • сохранить коннектор
  • открыть настройки коннектора
  • открыть настройки периодической загрузки данных
  • перейти к просмотру загруженных таблиц
  • открыть соответствующую страницу документации
  • удалить коннектор (видна только при работе с уже сохраненными в системе коннекторами)
_images/connectors_02.png

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

_images/connectors_02-1.png

Создание нового коннектора

Для создания нового коннектора нужно кликнуть в главном меню системы на плюсик в строке “Коннекторы”

_images/connectors_29.png

Или на странице работы с коннектором нужно нажать на кнопку “Новый”.

_images/connectors_03.png

Во всплывающем окне потребуется ввести название нового коннектора и выбрать его тип (XLS, 1С, OData.v3, коннектор к БД по ODBC, MS SQL Server, Oracle, MySQL, PostgreSQL, Firebird).

_images/connectors_03-1.png

XLS-коннектор

Если выбран XLS-коннектор, необходимо, нажав на кнопку “Выберите файл”, выбрать нужный файл в формате xls или xlsx, который закрепляется за коннектором. Когда появится надпись “Файл загружен” под кнопкой выбора файла, нажать кнопку “ОК”. Начнется первичная обработка данных системой.

_images/connectors_04.png

Разные листы одного xls-файла будут рассмотрены системой как разные таблицы с данными. При этом названия таблиц будут совпадать с названиями листов в файле.

Обратите внимание, что при загрузке данных, первая строка таблицы рассматривается как заголовки столбцов (названия будущих показателей в системе). Поэтому столбцы, в которых первая строка пуста, не будут загружены.

В случае если Excel-файл размещен в интернете, можно указать его адрес. Для этого нужно переключить “Тип подключения” с “Файл” на “URL” и ввести адрес.

_images/connectors_56.png

Чекбокс “Дополнительные заголовки” позволяет задать http-заголовки.

ODBC-коннектор

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

  • База данных доступна с сервера, где размещена QuBeQu. Если вы используете QuBeQu на qubequ.com, то это означает, что сервер БД должен разрешать подключения с внешних ip-адресов. Если же QuBeQu используется на вашем сервере, то достаточно обеспечить доступ только между вашим сервером и БД.
  • В базе данных должен быть пользователь, который имеет права на чтение необходимых таблиц. При настройке подключения вам нужно будет ввести пользователя и пароль для доступа к БД. Вы можете использовать те же параметры доступа, что уже настроены в БД, но мы рекомендуем добавить отдельного пользователя для доступа из qubequ, и дать ему минимально необходимые права.

Для настройки подключения к базе данных по ODBC в поле “Коннектор к” необходимо выбрать значение “БД по ODBC”. Затем нужно заполнить поле “Название” для последующей работы с коннектором.

Выбор значения “Способ предпросмотра” влияет на объем загружаемых данных и, как следствие, на скорость загрузки коннектора.

_images/connectors_58.png

В этом поле выбирается способ предпросмотра таблиц в БД:

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

В случае, если в поле “Подключение” выбрано значение “строка подключения”, то в текстовое поле ниже необходимо ввести строку подключения.

_images/connectors_57.png

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

  • Имя БД
  • Сервер БД
  • Пользователь БД
  • Пароль к БД
  • Схема БД

Oracle, MS SQL Server, Firebird, PostgreSQL

Для создания коннектора к Oracle, MS SQL Server, Firebird, PostgreSQL в поле “Коннектор к” необходимо выбрать соответствующее значение. Остальные настройки повторяют описанные в пункте ODBC-коннектор.

OData-коннектор

Коннектор предназначен для работы с сервисами по протоколу OData версии 3.0.

После того, как в окне создания нового коннектора выбран тип “OData.v3-коннектор”, в поле URL необходимо указать адрес сервиса для подключения и нажать кнопку “Ок”.

_images/connectors_36.png

Проверить подключение можно с помощью тестового адреса http://services.odata.org/V3/OData/OData.svc

Для доступа к сервису, использующему Basic Auth для аутентификации, имя пользователя и пароль необходимо включить в строку адреса в формате:

1С-коннектор

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

При создании коннектора в поле “Коннектор к” нужно выбрать значение “1С” и заполнить поле “Название” для последующей работы с коннектором.

Выбор способа предпросмотра таблиц из базы 1С влияет на объем загружаемых данных и скорость загрузки коннектора:

  • Все таблицы и данные — загружается список всех таблиц, после этого асинхронно подгружается содержимое каждой таблицы (позволяет видеть количество элементов в таблицах).
  • Только названия таблиц — загружаются названия всех таблиц 1C, содержимое загружается только для выбранных таблиц.
  • Только настроенные таблицы — имеет смысл лишь для уже настроенного коннектора: будут загружены уже настроенные таблицы и ничего кроме них. Самый быстрый вариант загрузки.

После заполнения полей “Коннектор к”, “Название” и выбора способа предпросмотра можно нажать кнопку “Ок”.

_images/1c_01.png

Затем система предложит перейти в настройки коннектора для скачивания файлов.

_images/1c_02.png

Для этого нужно нажать шестеренку с настройками коннектора.

_images/1c_03.png

И загрузить zip-архив на компьютер, где установлен 1С.

_images/1c_04.png

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

Дальнейшие действия нужно произвести на компьютере с загруженным архивом и 1С:

  1. Распаковать архив. Копия этой инструкции содержится в файле INSTALL.html в составе архива.
  2. В файле “connector.conf” нужно указать путь к базе 1С в параметре path_1c, например, C:\1C\1Cv82\Бухгалтерия\ Его можно узнать в стартовом окне 1С в свойствах нужной базы. Если на компьютере несколько баз 1С, то на каждую нужно создавать отдельный коннектор. Если 1С использует SQL базу данных, то необходимо указать название сервера и название базы в параметрах srvr_1c и ref_1c соответственно.
  3. Также в файле “connector.conf” нужно указать логин и пароль для доступа к вашей базе 1С. Затем нужно сохранить файл.
  4. После этого можно запустить файл “connector1c.exe”, при запросе брандмауэра разрешить приложению доступ в сеть.

Если при последнем шаге возникает ошибка “Не найдена библиотека MSVCR100.dll” (например, это может происходить на Windows Server 2008, и старых версиях Windows), необходимо установить Visual C++ 2010 Redistributable Package (x86), который можно бесплатно скачать с сайта Microsoft: http://www.microsoft.com/en-us/download/details.aspx?id=5555. Важно установить именно эту, x86, версию пакета, даже для x64 операционной системы.

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

_images/1c_06.png

Рядом с exe-файлом появится log-файл с журналом событий “connector.log”. Коннектор готов к работе, о его активности и ошибках можно узнать из log-файла.

_images/1c_07.png

После того, как стало понятно что коннектор работает, его рекомендуется добавить как сервис, чтобы он продолжал работу после перезапуска Windows. Для этого нужно сначала выключить запущенный коннектор (нажать правой кнопкой мыши на иконку приложения в трее и выбрать “Quit”), а затем запустить от имени администратора файл “add_service.bat”, расположенный в папке коннектора. Узнать статус сервиса, остановить или снова запустить его можно при помощи других bat файлов в той же папке.

Теперь можно нажать “Выбрать таблицы” внутри коннектора в QuBeQu и перейти к выбору данных для загрузки (см. следующий пункт).

_images/1c_05.png

Выбор данных для загрузки

После окончания обработки данных из источника, пропадет окно создания коннектора и станет активной кнопка “Выбрать таблицы” в поле работы с таблицами. По клику на нее появится выпадающий список, в котором можно выбрать, какие таблицы из источника данных необходимо загрузить в систему. Интересующие вас таблицы нужно отметить галочками в чек-боксах. Справа от названия каждой из таблиц указано, сколько строк записей она содержит.

_images/connectors_05.png

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

_images/connectors_05-1.png

В ODBC-коннекторе помимо существующих таблиц можно создать новую с помощью произвольного sql-запроса. Для этого нужно нажать на плюсик около селекта “Выбрать таблицы”.

_images/connectors_45.png

В появившемся окне в поле “Название” нужно ввести название таблицы, а в поле “Запрос к источнику данных” написать sql-запрос к БД.

_images/connectors_44.png

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

По нажатию на любую из таблиц в правой области экрана появится информация о выбранной таблице.

_images/connectors_06.png

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

_images/connectors_07.png

Слева в таблице столбцы:

  • с чек-боксами для выбора загружаемых показателей
  • “Название” — название показателей из загружаемой таблицы (берется из первой строки таблицы)
  • “Тип” — указан текущий тип данных показателя
  • “Показатель” — указано название показателя в системе. В этот показатель будут грузиться данные
  • “Ред.” — кнопки редактирования настроек показателей

Справа расположены в транспонированном виде первые три строки с данными из таблицы, с которой ведется работа на настоящий момент.

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

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

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

_images/connectors_08.png

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

_images/connectors_46.png

Откроется окно редактирования таблицы.

_images/connectors_47.png

Если в чекбоксе “Загрузка в справочник” стоит галочка, то таблица будет загружена в справочник. Каждая строка таблицы будет являться элементом справочника. Это нужно для того, чтобы в дальнейшем можно было отделить данные определенного коннектора.

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

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

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

_images/connectors_48.png

Для окончания настройки таблицы необходимо нажать “ОК”.

_images/connectors_49.png

Показатели в системе

В системе существует три вида загрузки данных в показатели системы:

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

В системе реализована возможность как записывать данные в уже существующие показатели, так и создавать новые.

Кроме того, существует разделение по типам данных показателей. Типы данных бывают следующими:

  • Число — все вещественные числа (используются для процентных показателей, для тонн, километров и т.д. и т.п., имеет неограниченное число знаков после запятой, в системе по умолчанию отображается 3 первых)
  • Целое — все целые числа (например, для показателей id, числа человек и т.д., не имеет знаков после запятой, незначимые нули не отображаются)
  • Денежный — рекомендуется для денежных показателей. Имеет ровно два знака после запятой.
  • Период — некоторый промежуток времени (день, неделя, месяц и т.д. Записаны промежутки должны быть таким образом: “09.06.2014” (день); “09.06.2014 (неделя)” (неделя — 7 дней, начинающиеся 09.06.2014); “1 д. июнь 2014 г.” (декада); “июнь 2014 г.” (месяц); “2 кв. 2014 г.” (квартал); “1 п. 2014 г.” (полугодие); “2 кв. 2014 г. — 4 кв. 2014 г.” (три квартала); “2014 г. (год)”; “2013/2014 г.” (сельскохозяйственный год — два последних квартала года и два первых следующего)
  • Справочник — показатель принимает значения из фиксированного справочника (например, вид магазинов, статусы заданий, список поставщиков и т.п.)
  • Да/Нет — булевый показатель, в качестве Да воспринимается “1”, “Да”, “да”; в качестве Нет — “0”, “Нет”, “нет”.
  • Строка — любое текстовое значение (например, описание операции, адрес филиала и т.п.) или цифровое (больше десяти знаков, или начинающееся с нулей)

Настройка показателей для загрузки данных

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

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

_images/connectors_09.png

Во всплывающем окне можно выбрать вид показателя:

  • “Значение” — значения этого показателя будут браться непосредственно из ячеек
  • “Ссылка на таблицу” — значение в ячейке загружаемой таблицы будет ссылкой на другую таблицу этого же источника данных (сделать ссылку на таблицу из другого источника невозможно)
  • Задать вычисление поля - подробнее см. Вычисляемые поля в коннекторах.
_images/connectors_10.png

Запись данных в существующие показатели

В случае, если значение показателя берется из ячеек текущей таблицы, можно выбрать — создавать новый показатель или выбирать из уже существующих в системе показателей (кнопки “Новый” и “Выбрать из существующих”)

_images/connectors_11.png

Если нужно выбрать показатель из существующих, то в селекте “Выберите из списка” нужно выбрать соответствующий показатель.

_images/connectors_12.png

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

Создание нового показателя

Если создается новый показатель (кнопка “Новый” в поле “Показатель”), необходимо в селекте “Тип показателя” верно указать тип данных этого показателя.

_images/connectors_13.png

В поле “Название показателя” можно ввести название для показателя, под которым он будет существовать в системе. по умолчанию его название будет совпадать с названием в заголовке столбца таблицы.

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

_images/connectors_30.png

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

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

_images/connectors_31.png

Для сброса выбранного справочника нужно нажать на крестик в правом конце строки выбора справочника.

_images/connectors_32.png

Обратите внимание, что при загрузке данные проходят формато-логический контроль. И если данные не будут соответствовать указанному типу (в числовой показатель вписан текст, в показателе с типом “целое” есть числа с дробной частью и т.д.), то таблица не будет загружена в систему.

Ссылка на другую таблицу

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

_images/connectors_14.png

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

Показатель в этом случае будет брать значения из выбранной таблицы, как из справочника. Корректной работа коннектора будет только в случае, когда ссылка идет на уникальный показатель в другой таблице (уникальным считается показатель, каждое из значений которого единственно в загружаемой таблице. Например, уникальным стоит сделать id записи. Или название магазина. Или название бренда и т.д.).

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

При такой загрузке удобно использовать функцию загрузки только выбранной (одной) таблицы — см. Загрузка одной таблицы.

Настройка параметров загрузки

Под всеми селектами для каждого из показателей (в том же окне настройки показателя) можно указать в чек-боксах:

  • “Обязательное” — при загрузке будет проверяться наличие данных в каждой ячейке этого столбца. Если данных где-то нет, будет выведена ошибка и вся таблица не будет загружена.
  • “Ключ” — при загрузке будет проверяться уникальность (единственность) значения этого показателя, либо сочетания двух и более показателей. Это позволяет избежать дублирования данных в системе. При каждой новой загрузке данных из источника будет происходить обновление существующих данных в соответствии с заданным ключом.
_images/connectors_15.png

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

  • “Разрешено добавление новых значений” — все встреченные новые значения в столбце будут добавлены в справочник. Важно не забывать про эту настройку при первой загрузке показателя-справочника.
  • “Пропускать строку при ошибке” — при ошибке (значение в ячейке этого показателя не встречается в справочнике в системе) будет пропускаться строка, содержащая эту ячейку, целиком. Все остальные строки таблицы будут загружены.
  • “Пропускать поле при ошибке” — при ошибке (значение в ячейке этого показателя не встречается в справочнике в системе) будет пропускаться ячейка с этим показателем (для загружаемого в этой строке объекта данный показатель будет не определен). Данные для остальных показателей из этой строки и остальные строки таблицы будут загружены.
_images/connectors_16.png

Справа от названий чек-боксов указаны иконки, которые будут отображаться в столбце “Тип” в строке показателя в левой таблице основной рабочей области окна для визуализации настроек коннектора.

Вычисляемые поля в коннекторах

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

Это может быть необходимо если в данных содержатся ошибки. Например, лишние пробелы в названиях элементов будущего справочника. Автоматически система воспримет названия “Apple” и “Apple ” (с пробелом в конце) как два разных элемента справочника брендов, хотя очевидно, что подразумевался один и тот же бренд. Вручную обрабатывать огромный справочник товаров долго и тяжело, а система может сделать это автоматически при загрузке данных.

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

Кроме того, может возникнуть необходимость объединить несколько полей в одно (Фамилию, имя и отчество - в одно ФИО), или наоборот, разделить одно поле из базы данных на два и более показателей в системе.

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

Задание вычисления у существующего поля

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

_images/connectors_37.png

Появится текстовое поле “Программа для вычисления”, где на языке Python https://docs.python.org/2/ можно задать необходимые преобразования. Автоматически добавляется преобразование, обрезающие лишние пробелы.

_images/connectors_38.png

Текущее (редактируемое) поле доступно в переменной field, все остальные поля доступны в переменной fields и f, необходимо указание их названия.

Рядом с названием этого поля доступна подсказка по клику по серому вопросительному знаку.

_images/connectors_39.png

Создание нового вычисляемого поля

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

_images/connectors_40.png

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

_images/connectors_41.png

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

После задания всех настроек данного поля, нужно нажать в правом нижнем углу всплывающего окна кнопку “ОК” (или “Отмена”, если сохранять внесенные изменения не нужно).

_images/connectors_42.png

Поле будет добавлено в таблицу с показателями для загрузки данных последним.

_images/connectors_43.png

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

Заполнение поля для вычисления

В этом поле можно ввести программу на языке Python, которая позволит преобразовать данные перед загрузкой, или пропустить некоторые строки.

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

Например, так можно обрезать пробелы в начале и конце текстового поля под названием full_name:

return fields["full_name"].strip()

Или разбить поле по дефису и вернуть первую часть:

return f["full_name"].split('-')[0]

Или отрезать последние два символа строки:

return f["some_name"][:-2] # отрезать первые два символа: [2:]

Следует иметь ввиду, что тип значения, который поступает на обработку, определяется типом в источнике данных, и не зависит от типа показателя. Значения типа datetime.date приводятся к типу datetime.datetime.

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

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

if field.endswith("m"):
    return int(field.rstrip("m ")) * 1024
else:
    return int(field)

Доступен модуль регулярных выражений re — с его помощью можно извлекать фрагменты текста или производить замены. В этом примере извлекается число из поля index, которое возможно содержит и другую информацию:

m = re.search("\d+", f["index"])
if m:
    return m.groups()[0]

Также можно использовать объекты из модуля datetime: timedelta для расчета разницы между моментами времени, и datetime для представления даты и времени. Например, используя встроенную переменную now, можно посчитать, сколько дней прошло с момента создания объекта:

return (now - f["created"]).days

Также есть переменная date, которая содержит текущую дату.

А с помощью функции datetime.strptime можно распознать дату в любом формате, например:

return datetime.strptime(fields["date"], "%Y %m %d")

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

if (now - f["updated"]).seconds > 2 * 3600:
    raise Skip
else: # возвращаем без изменений
    return f["updated"]

Сохранение коннектора

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

_images/connectors_17.png

Либо можно сразу переходить к загрузке данных в систему (кнопка “Загрузить данные”). Настройки коннектора сохранятся автоматически.

_images/connectors_17-1.png

При сохранении коннектора (при загрузке данных или по кнопке “Сохранить”) в системе создаются все новые показатели.

Загрузка данных

По нажатию на кнопку “Загрузить данные”, происходит загрузка всех выбранных данных в систему. Обратите внимание, что загрузка таблиц с большим числом строк может занять значительное время (загрузка таблицы из 6 столбцов и примерно 40 тыс строк занимает около трех с половиной минут).

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

Новые показатели в системе будут созданы даже если ничего не загрузилось.

Справочник из элементов загружаемой таблицы (важно!)

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

Например, при загрузке одностраничного файла Товары.xls будет создан справочник Товары, элементами которого будут строки из этого файла, а также показатель Товары, берущий значения из этого справочника.

Когда создается любой справочник, одно из полей рассматривается как название всей строки. Пусть, например, таблица с товарами имеет такую структуру:

Товар Бренд Категория
Apple iPhone 5C 32Gb white Apple iPhone 5C
Apple iPhone 4 8Gb black Apple iPhone 4

Элементом справочника является одна строка, и системе нужно указать, какое из полей использовать в качестве ее названия. Для этого нужно настроить загрузку названия в показатель “Название”. В данном примере поле “Товар” должно загружаться в “Название”.

Это необходимо для того, чтобы когда потребуется вывести информацию про конкретный элемент справочника (товар), можно было обратиться к элементу справочника по названию, например “Apple iPhone 5C 32Gb white”.

Если ни одно поле не загружается в показатель “Название”, то система будет выводить элементы справочника по id. Другими словами, в отчете вместо “Apple iPhone 5C 32Gb white” будет выводиться непонятное число.

Обновление данных

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

Результат загрузки

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

_images/connectors_18.png

Можно приступать к анализу данных и построению отчетов (подробнее см. в разделе Построение отчетов).

Загрузка одной таблицы

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

Для этого необходимо в выпадающем меню по стрелке вниз на кнопке “Загрузить данные” нажать “Только выбранную таблицу”.

_images/connectors_33.png

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

Все настройки коннектора для других таблиц сохранятся в системе.

Это функция удобна, например, если одно из полей таблицы должно ссылаться на другую таблицу (например поле “Магазин” в таблице “Продажи” ссылается на таблицу “Магазины”, находящуюся в том же файле. Можно либо сделать два отдельных коннектора для каждой из таблиц, либо сначала загрузить отдельно таблицу с магазинами, а затем — таблицу “Продажи” со ссылкой на “Магазины”.

Загрузка справочников

Выше говорилось, что по умолчанию каждая таблица загружается в справочник. Название справочника берется из названия таблицы, а название элементов справочника из того поля, которое загружается в показатель “Название” (см. Справочник из элементов загружаемой таблицы (важно!)). Эту возможность можно использовать для быстрого создания и обновления справочников, в том числе древовидных.

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

_images/connectors_50.png

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

_images/connectors_51.png

В настройках коннектора по такой таблице следует указать, что показатель “Родитель” является ссылкой на эту же таблицу, на показатель “Название”.

_images/connectors_52.png

Важно, чтобы все значения “Родителя” имелись в показателе “Название”, поскольку в “Названии” должны быть все элементы справочника, в т.ч. родительские.

Пока коннектор не сохранен, таблица тоже не сохранена, поэтому в ссылке “Родителя” пишется “Целое”.

_images/connectors_53.png

После сохранения коннектора или загрузки данных ссылка с “Родителя” на текущую таблицу показывается в явном виде.

_images/connectors_54.png

Для того, чтобы убедиться, что справочник действительно получился древовидным, можно открыть этот справочник и увидеть иерархическую структуру значений показателя “Родитель”. Вероятно, для этого придется обновить страницу (ctrl + f5).

_images/connectors_55.png

Настройка периодической загрузки данных

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

_images/connectors_19.png

Откроется окно настройки периодической загрузки данных

В левом столбце “Расписание” указано время и дни, когда должна производиться загрузка, в правом столбце “Таблицы” указано, какие таблицы необходимо загружать в указанное время. Чтобы включить или выключить созданный шаблон периодической загрузки,нужно поставить или снять галочку в чек-боксе рядом с настройкой времени

_images/connectors_20.png

Чтобы указать время и дни, когда необходимо производить загрузку, нужно ввести их в поле “Расписание”. Подсказка о том, как это правильно делать появляется при нажатии на вопросительный знак рядом с заголовком этого столбца.

_images/connectors_21.png

Чтобы настроить, какие таблицы необходимо загружать в это время, нужно нажать на иконку шестеренки в столбце “Таблицы” и галочками в чек-боксах в выпадающем окошке выбрать нужные. В список попадут только те таблицы из источника данных, которые были отмечены галочками как загружаемые.

_images/connectors_22.png

В правом верхнем углу окошка — две кнопки. Кнопка с лупой — открывает строку поиска — удобно при большом количестве загружаемых таблиц в источнике данных. Кнопка с чек-боксом с галочкой выделяет все таблицы и снимает выделение со всех таблиц при повторном нажатии.

_images/connectors_23.png

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

_images/connectors_24.png

Чтобы добавить новую строку с настройкой, нужно нажать на зеленую кнопку “+” внизу окна

Чтобы вернуться к работе с коннекторами после завершения необходимых настроек, нужно нажать кнопку “Ок” внизу окна, либо кнопку “Отмена”, если сохранять измененные настройки не нужно.

_images/connectors_24-1.png

Просмотр загруженных данных

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

_images/connectors_34.png

Откроется реестр с загруженными данными в режиме просмотра (подробнее про работу в этом режиме см. в Режим просмотра/редактирования реестра).

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

_images/connectors_35.png

Открытие и работа с сохраненным коннектором

Для работы с существующими коннекторами нужно нажать на иконку “Открыть”, расположенную слева от поля, где выводится название текущего коннектора, из выпадающего списка выбрать нужный коннектор и кликнуть по его названию. Через некоторое время загрузится выбранный коннектор со всеми настройками. Дальнейшая работа аналогична работе с новым коннектором.

_images/connectors_25.png

Если необходимо обновить настройки коннектора в системе (обновить файл с данными, сменить название коннектора), необходимо нажать кнопку “Настройки” в верхнем меню окна.

_images/connectors_26.png

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

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

Для возврата к работе с коннектором нужно нажать кнопку “ОК” если нужно сохранить изменения, или “Отмена”, если сохранять внесенные изменения не нужно.

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

Также изменить название коннектора можно в поле в верхнем меню на странице работы с коннектором. После изменения названия, нужно нажать кнопку “Сохранить” справа от этого поля.

_images/connectors_26-1.png

Журнал загрузок

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

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

_images/journal_00.png

Откроется страница с реестром загрузок из всех коннекторов.

_images/journal_01.png

В верхней части страницы расположены кнопки:

  • Обновить журнал (предназначена для обновления информации на странице)
  • Сброс настроек размеров заголовков (сбрасывает размеры заголовков до настроек по умолчанию)
  • Экспортировать в xls (экспортирует журнал загрузок в файл MS Excel)
_images/journal_03.png

Работа с таблицей осуществляется также, как с другими таблицами (отчетами и реестрами) - можно менять ширину и высоту заголовков столбцов, применять сортировку по клику на заголовок и т.п.

По клику на ссылку в столбце “Коннектор” откроется страница этого коннектора.

_images/journal_04.png

По клику на ссылку в столбце “Обновляемые таблицы” откроется реестр с загруженными из этой таблицы данными.

_images/journal_05.png

Если в столбце “Статус загрузки данных” указано, что есть ошибки, то эти ошибки выводятся в столбце “Сообщение об ошибках”.

_images/journal_08.png

Обратите внимание, что большие файлы загружаются в несколько заходов, по 10 000 строк.

_images/journal_06.png

Если после загрузки данных коннектор был удален, то запись о загрузке останется, но в столбцах “Коннектор” и “Обновляемые таблицы” будет пусто.

_images/journal_07.png

Удаление коннектора

Для удаления сохраненного в системе коннектора необходимо нажать на кнопку “Удалить коннектор” в правом верхнем углу страницы.

_images/connectors_27.png

Это действие требует подтверждения во всплывающем окне. Также, в этом окне нужно указать — необходимо удалить только коннектор, или коннектор со всеми справочниками, показателями, данными, которые используются в системе только в этом коннекторе. Если второе — нужно сделать активным чек-бокс “Удалить вместе с данными и показателями”.

_images/connectors_28.png

Для подтверждения действия удаления нужно нажать кнопку “Удалить”, для возврата к работе с системой — кнопку “Отмена”.

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