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

 

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

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

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

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

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

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

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

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

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

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

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

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

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