Разворачивание массивов

Преобразование flatten разворачивает поля, содержащие массивы. Для каждого элемента массива оно создаёт отдельную запись: извлечённое значение соседствует с остальными полями исходной записи.

// Любая спецификация представления
{
  ...,
  "transform": [
    {"flatten": ...}, // Разворачивание массивов
    ...
  ],
  ...
}

Свойства преобразования

Свойство Тип Описание
flatten FieldName[] Обязательный массив имён полей, содержащих массивы. Если полей несколько, их массивы должны иметь параллельную структуру, в идеале — одинаковую длину; элементы с одинаковыми индексами объединяются в одну выходную запись. Если длины различаются, используется самый длинный массив, а недостающие элементы дополняются значениями null.
as FieldName[] Необязательный массив имён выходных полей для извлечённых значений. По умолчанию используются соответствующие исходные имена.

Использование

{"flatten": ["foo", "bar"]}

В этом примере разворачиваются поля-массивы "foo" и "bar". Для входных данных:

[
  {"key": "alpha", "foo": [1, 2], "bar": ["A", "B"]},
  {"key": "beta", "foo": [3, 4, 5], "bar": ["C", "D"]}
]

получится результат:

[
  {"key": "alpha", "foo": 1, "bar": "A"},
  {"key": "alpha", "foo": 2, "bar": "B"},
  {"key": "beta", "foo": 3, "bar": "C"},
  {"key": "beta", "foo": 4, "bar": "D"},
  {"key": "beta", "foo": 5, "bar": null}
]

Примеры

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

Простой пример

Два поля разворачиваются одновременно. В выходных записях более короткий массив дополняется значениями null.

Согласованные представления с вложенным временным рядом

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