Особенности импорта данных из файлов различных типов

Перед настройкой интеграции ознакомьтесь с особенностями импорта данных из файлов различных типов, описанными в данном разделе. Эти особенности необходимо учитывать при формировании структуры файлов, предназначенных для импорта в R-Vision VM.

Названия столбцов в файлах типов XLSX и CSV, а также ключей в файлах типов XML и JSON, в которых находятся значения атрибутов импортируемой сущности, должны совпадать с идентификаторами этих атрибутов в схеме домена.
  • XLSX

  • CSV

  • JSON

  • XML

Особенности обработки файлов формата XLSX:

Обработка объединенных ячеек

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

Пример файла со списком подразделений:

securityAdministrator LocationVoc

Иван Иванов

Офис 1

Офис 2

Офис 3

В данном случае в результате импорта для подразделений во всех локациях (Офис 1, Офис 2, Офис 3) будет указан один и тот же администратор безопасности — Иван Иванов.

Поддерживаемые разделители

Система поддерживает следующие типы разделителей значений внутри ячеек:

  • запятая — ,;

  • точка с запятой — ;;

  • перенос строки.

Пример:

id deviceName port

1

Хост 1

80, 8080

2

Хост 2

20; 21

3

Хост 3

139

445

Особенности обработки файлов формата CSV:

Поддерживаемый разделитель

Для формата CSV система поддерживает только запятую в качестве разделителя значений.

Использование кавычек для значений со спецсимволами

Значение в CSV-файле следует заключать в кавычки, если оно содержит один или несколько спецсимволов:

  • запятая — ,;

  • кавычки — ';

  • двойные кавычки — ";

  • перенос строки.

При этом:

  • Для ограничения значений в одном CSV-файле используйте только один вид кавычек — одинарные или двойные.

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

Пример:

Верно Неверно
name, ID, ip_address, description
csv1, 1, 10.0.0.1, 'описание, содержащее "текст в кавычках",
с переносом строк'
csv2, 2, 10.0.0.2, описание

Значение поля text в первой строке содержит двойные кавычки, поэтому оно заключено в одинарные. Одинарные кавычки в этом случае выступают ограничителем значения, а двойные — входят в значение поля.

name, ID, ip_address, description
csv1, 1, 10.0.0.1, 'описание, содержащее 'текст в кавычках',
с переносом строк'
csv2, 2, 10.0.0.2, описание

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

Для извлечения данных из структуры файлов система использует язык запросов JSONPath. Основные элементы синтаксиса JSONPath:

Оператор JSONPath Назначение

$

Корневой объект или элемент

@

Текущий объект или элемент

.

Дочерний элемент

..

Оператор рекурсивного спуска, аналогичный E4X

*

Шаблон, которому соответствуют все объекты и элементы независимо от названия

[]

Оператор индекса

[,]

Оператор объединения для альтернативных имен или индексов массива как набора

[start:end:step]

Оператор среза массива, аналогичный таковому в ES4 и Python

?()

Выражение-фильтр или скрипт

()

Выражение-скрипт

Особенности обработки файлов формата XML:

Конвертация XML в JSON

Система конвертирует файлы XML в JSON. При этом атрибуты тегов XML конвертируются в отдельный объект JSON с ключом _attr_, а текст внутри тега — в объект с ключом _text_. Например:

Исходный XML-файл:

<?xml version="1.0" encoding="utf-8"?>
<root>
  <devices>
    <device id="1">
      <deviceName>AD Controller</deviceName>
      <operatingSystem>Microsoft Windows Server 2025</operatingSystem>
      <nodeType>Контроллер домена Active Directory</nodeType>
      <ip_address name="Interface 1">
        10.0.0.1
      </ip_address>
    </device>
    <device id="2">
      <deviceName>Workstation</deviceName>
      <operatingSystem>Microsoft Windows 11</operatingSystem>
      <nodeType>Рабочая станция</nodeType>
      <ip_address name="Interface 2">
        10.0.0.2
      </ip_address>
    </device>
  </devices>
</root>

Результат конвертации в JSON:

{
  "root": {
    "devices": {
      "device": [
        {
          "_attr_": {
            "id": 1
          },
          "deviceName": "AD Controller",
          "operatingSystem": "Microsoft Windows Server 2025",
          "nodeType": "Контроллер домена Active Directory",
          "ip_address": {
            "_text_": "10.0.0.1",
            "_attr_": {
              "name": "Interface 1"
            }
          }
        },
        {
          "_attr_": {
            "id": 2
          },
          "deviceName": "Workstation",
          "operatingSystem": "Microsoft Windows 11",
          "nodeType": "Рабочая станция",
          "ip_address": {
            "_text_": "10.0.0.2",
            "_attr_": {
              "name": "Interface 2"
            }
          }
        }
      ]
    }
  }
}

Язык запросов JSONPath

Для извлечения данных из структуры файлов система использует язык запросов JSONPath. Основные элементы синтаксиса JSONPath:

Оператор JSONPath Назначение

$

Корневой объект или элемент

@

Текущий объект или элемент

.

Дочерний элемент

..

Оператор рекурсивного спуска, аналогичный E4X

*

Шаблон, которому соответствуют все объекты и элементы независимо от названия

[]

Оператор индекса

[,]

Оператор объединения для альтернативных имен или индексов массива как набора

[start:end:step]

Оператор среза массива, аналогичный таковому в ES4 и Python

?()

Выражение-фильтр или скрипт

()

Выражение-скрипт

Была ли полезна эта страница?

Обратная связь