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