Загрузка JSON файлов

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

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

В ETL правила разбора данных находятся в справочнике «Правила разбора данных». Для того, чтобы открыть справочник «Правила разбора данных»,перейдите в «Панель функций», разделы «Главное» / «Настройки» / «Установить правила разбора данных»:

Правило разбора данных

Задача правила — указать алгоритму извлечения, где в данных находится нужная информация, в какие поля таблицы-приёмника и с каким типом следует её поместить.

Форма правила:

Описание табличной части правила

  • «Колонка таблицы» (2) — имя колонки таблицы, в которую следует поместить значение из первичных данных.
  • «Тип поля» (3) — тип данных колонки таблицы.
  • «Путь к элементу» (4) — описание пути к элементу внутри первичных данных. Используется формат, специфичный для типа первичных данных. Для «JSON» — используется JSONPath, для «XML» — XMLPath и т.д.
  • «Тип элемента» (5) — ожидаемый тип элемента в первичных данных. Используется для проверки / приведения типа.
    Если тип элемента в первичных данных не соответствует указанному, данные элемента загружены не будут.
    Если выбрать тип элемента аналогичный типу первичных данных (пример: «JSON-json»), то данные элемента будут загружены в оригинальном формате. Таким образом, можно загружать целиком блоки данных, например массив «JSON» можно поместить в одну колонку таблицы с типом «text» или «jsonb». Если тип поля таблицы и тип поля элемента отличаются, будет выполнена попытка приведения типа элемент к типу поля. В ситуациях когда приведение не очевидно, есть варианты для таких типов, например: «Дата строкой (ISO)» подсказывает что данные имеют строковой тип, но представляют собой дату в ISO-формате.
  • «!» (6) — флаг необязательного элемента. Необязательным является такой элемент, данные из которого не нужны сами по себе, а только совместно с данными обязательных элементов. Следовательно, если данных в обязательных элементах не окажется, не обязательные загружены не будут.
  • «По умолчанию» (7) — значение по умолчанию для колонки таблицы. Используется если элемент в данных отсутствует, не содержит значение, или не может быть приведён к типу данных колонки таблицы.
  • «Набор» (1) — произвольное имя, используется для объединения отдельных строк правила в набор. Наборов может быть несколько. Все наборы описывают общую структуру таблицы приёмника, но содержат разные пути к элементам. Позволяет в одну таблицу загружать строки, полученные из разных областей первичных данных.

Общие свойства правила

  • «Тип данных» — тип первичных данных, требуется для выбора алгоритма при разборе данных по правилу.
  • «Кодировка» — позволяет точно указать кодировку элементов с типом «текст» в первичных данных.

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

Открыть конструктор с пустым правилом возможно из формы списка справочника «Правила разбора данных» используя кнопку:

Из формы элемента справочника «Правила разбора данных» можно открыть в конструкторе конкретное правило используя кнопку: