Перейти к содержанию

Источники данных

Помощник Easy Report умеет делать отчёты на таблицах (ресурсах в терминологии помощника), загруженных из источников данных. Ниже представлен список поддерживаемых источников данных.

Файловые хранилища

  1. Dropbox
  2. Google Drive
  3. Локальные файлы

Для подключения необходимо предоставить разрешение на чтение файлов и папок. Помощник не будет иметь доступ к операциям изменения или удаления Ваших файлов.

Поддерживаемые типы ресурсов

Ресурсами в файловых хранилищах являются файлы в форматах .xlsx и .csv, которые удовлетворяют следующим параметрам:

  1. xlsx

    • Таблица с данными должна располагаться на первом листе.
    • Первая строка на листе должна содержать заголовки.
    • Столбец с датами должен быть в excel-формате "Дата".
  2. csv

    • Необходимо использовать запятую в виде разделителя.
    • Допустимые форматы для дат: DD.MM.YYYY, DD.MM.YY, YYYY.MM.DD, YY.MM.DD (разделители: . - /).

Базы данных

  1. Postgres

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

    • хост
    • порт
    • имя БД
    • имя пользователя
    • пароль пользователя
  2. MySQL

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

    • хост
    • порт
    • имя БД
    • имя пользователя
    • пароль пользователя
  3. MSSQL

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

    • хост
    • порт
    • имя БД
    • имя пользователя
    • пароль пользователя

Поддерживаемые типы ресурсов

Таблицы и представления (view, materialized view). На стороне базы данных необходимо дать пользователю права на чтение данных ресурсов.

Tip

Использование представлений (materialized view) удобно в том случае, если данные в Вашей БД представлены в виде нескольких таблиц.

Поддерживаемые типы данных

  • Целочисленные (int32, int64 и т.д.);
  • Числа с плавающей точкой (float32, float64, double и т.д.);
  • Текстовые (text, string и т.д.);
  • Дата (date, datetime и т.д.).

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

API

  1. JSON API

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

    • основной URL API

      Например, https://api.github.com или https://analyticsreporting.googleapis.com.

    • таймаут

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

    • headers (опционально)

Поддерживаемые типы ресурсов

Для каждого API можно создать произвольное количество ресурсов, указав при их создании разные адреса (path). Именно поэтому основной URL API должен быть максимально общим (например, host вашего источника данных).

JSON-объект следующего формата:

[
    {
        key1: value1,
        key2: value2,
        ...
    },
    {
        key1: value3,
        key2: value4,
        ...
    },
    ...
]

valueN - примитивные типы (cтрока, число, логический, null),
структура Объектов {key1, ..., keyN} всегда одинаковая.

Для загрузки сложных (вложенных) JSON-объектов необходимо трансформировать их к поддерживаемому виду с помощью JSON-парсера - jq.

Пример jq-трансформации

Например, исходный JSON имеет сложную структуру:

[
  {
    "sha": "d25341478381063d1c76e81b3a52e0592a7c997f",
    "commit": {
      "author": {
        "name": "Stephen Dolan",
        "email": "mu@netsoc.tcd.ie",
        "date": "2013-06-22T16:30:59Z"
      },
      "committer": {
        "name": "Stephen Dolan",
        "email": "mu@netsoc.tcd.ie",
        "date": "2013-06-22T16:30:59Z"
      },
      "message": "Merge pull request #162 from stedolan/utf8-fixes\n\nUtf8 fixes. Closes #161",
      "tree": {
        "sha": "6ab697a8dfb5a96e124666bf6d6213822599fb40",
        "url": "https://api.github.com/repos/stedolan/jq/git/trees/6ab697a8dfb5a96e124666bf6d6213822599fb40"
      },
      "url": "https://api.github.com/repos/stedolan/jq/git/commits/d25341478381063d1c76e81b3a52e0592a7c997f",
      "comment_count": 0
    },
    "url": "https://api.github.com/repos/stedolan/jq/commits/d25341478381063d1c76e81b3a52e0592a7c997f",
    "html_url": "https://github.com/stedolan/jq/commit/d25341478381063d1c76e81b3a52e0592a7c997f",
    "comments_url": "https://api.github.com/repos/stedolan/jq/commits/d25341478381063d1c76e81b3a52e0592a7c997f/comments",
    "author": {
      "login": "stedolan",
...

Если вы хотите получить массив объектов такого вида:

[
  {
    "message": "Merge pull request #163 from stedolan/utf8-fixes\n\nUtf8 fixes. Closes #161",
    "name": "Stephen Dolan"
  },
  {
    "message": "Reject all overlong UTF8 sequences.",
    "name": "Stephen Dolan"
  },
  {
    "message": "Fix various UTF8 parsing bugs.\n\nIn particular, parse bad UTF8 by replacing the broken bits with U+FFFD\nand resychronise correctly after broken sequences.",
    "name": "Stephen Dolan"
  },
  ...
]

jq-трансформация будет выглядеть следующим образом:

[.[] | {message: .commit.message, name: .commit.committer.name}]

Более подробное описание возможностей jq вы можете найти по этой ссылке - jq Tutorial.