+++
title = "Типы и параметры преобразования"
weight = 300
+++

# Типы и параметры преобразования

Harvest поставляется со следующими преобразованиями:

- [Типы и параметры преобразования](#типы и параметры преобразования)
  - [Уменьшить](#уменьшить)
  - [Слияние](#слияние)
  - [Фильтровать данные по имени](#фильтровать данные по имени)
  - [Фильтровать данные по запросу](#фильтровать данные по запросу)
  - [Упорядочить поля](#упорядочить поля)
  - [Присоединиться по полю (внешнее соединение)](#присоединиться по полю-внешнее соединение)
  - [Добавить поле из расчета](#добавить поле из расчета)
  - [Метки к полям](#метки к полям)
    - [Имя поля значения](#имя поля значения)
    - [Поведение слияния](#поведение слияния)
  - [Сортировать по](#сортировать по)
  - [Группировка по](#группировка по)
  - [Объединить поля](#объединить поля)
  - [Ряды в строки](#ряды в строки)
  - [Фильтровать данные по значению](#фильтровать данные по значению)
  - [Переименовать по регулярному выражению](#переименовать по регулярному выражению)

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

## Уменьшить

Преобразование _reduce применит вычисление к каждому полю во фрейме и вернет одно значение.  Поля времени удаляются при применении
этого преобразования.

Рассмотрим входные данные:

Запрос A:

| Время | Температура | Время безотказной работы |
| ------------------- | ------- | ------- |
| 2020-07-07 11:34:20 | 12.3    | 256122  |
| 2020-07-07 11:24:20 | 15.4    | 1230233 |

Запрос B:

| Время | AQI | Ошибки |
| ------------------- | ------- | ------ |
| 2020-07-07 11:34:20 | 6.5     | 15     |
| 2020-07-07 11:24:20 | 3.2     | 5      |

Понижающий трансформатор имеет два режима:
- ** Ряды в строки -** Создает строку для каждого поля и столбец для каждого вычисления.
- ** Уменьшить поля -** Сохраняет существующую структуру фрейма, но сворачивает каждое поле в одно значение.

Например, если вы использовали вычисления **First** и **Last** с преобразованием **Рядов в строки**, то
результатом будет:

| Поле | Первое | Последнее |
| ------- | ------- | ------- |
| Температура | 12.3 | 15.4 |
| Время безотказной работы | 256122 | 1230233 |
| AQI | 6.5 | 3.2 |
| Ошибки | 15 | 5 |

** Уменьшение полей ** с помощью ** Последнего ** вычисления
приводит к получению двух фреймов, каждый из которых содержит одну строку:

Запрос A:

| Температура | Время безотказной работы |
| ------- | ------- |
| 15.4    | 1230233 |

Запрос B:

| AQI | Ошибки |
| ------- | ------ |
| 3.2     | 5      |



## Слияние

> ** Примечание:** Это преобразование доступно в Harvest 7.1+.

Используйте это преобразование, чтобы объединить результат нескольких запросов в один результат. Это полезно при использовании визуализации панели таблиц. Значения, которые могут быть объединены, объединяются в одну строку. Значения можно объединить, если общие поля содержат одни и те же данные. Для получения дополнительной информации обратитесь к [Табличной панели]({{< relref "../визуализации/таблица/_index.md" >}}).

В приведенном ниже примере у нас есть два запроса, возвращающих табличные данные. Перед применением преобразования он визуализируется в виде двух отдельных таблиц.

Запрос A:

| Время | Работа | Время безотказной работы |
| ------------------- | ------- | --------- |
| 2020-07-07 11:34:20 | узел | 25260122 |
| 2020-07-07 11:24:20 | postgre | 123001233 |

Запрос B:

| Время | Работа | Ошибки |
| ------------------- | ------- | ------ |
| 2020-07-07 11:34:20 | узел | 15 |
| 2020-07-07 11:24:20 | postgre | 5 |

Вот результат после применения преобразования слияния.

| Время | Задание | Ошибки | Время безотказной работы |
| ------------------- | ------- | ------ | --------- |
| 2020-07-07 11:34:20 | узел | 15 | 25260122 |
| 2020-07-07 11:24:20 | postgre | 5 | 123001233 |

## Фильтровать данные по имени

Используйте это преобразование, чтобы удалить части результатов запроса.

Harvest отображает поле **Идентификатор **, за которым следуют поля, возвращаемые вашим запросом.

Вы можете применять фильтры одним из двух способов:

- Введите регулярное выражение.
- Щелкните поле, чтобы переключить фильтрацию по этому полю. Отфильтрованные поля отображаются темно-серым текстом, нефильтрованные поля имеют белый текст.

В приведенном ниже примере я удалил поле Min из результатов.

Вот исходная таблица запросов. (Это потоковые данные, поэтому цифры меняются со временем и между скриншотами.)

{{< рисунок src="/static/img/docs/transformations/filter-name-table-before-7-0.png" класс="docs-image-no-shadow" максимальная ширина = "1100 пикселей" >}}

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

{{< рисунок src="/static/img/docs/transformations/filter-name-table-after-7-0.png" класс="docs-image-no-shadow" максимальная ширина = "1100 пикселей" >}}

Вот тот же запрос, использующий визуализацию статистики.

{{< рисунок src="/static/img/docs/transformations/filter-name-stat-after-7-0.png" класс="docs-image-no-shadow" максимальная ширина = "1100 пикселей" >}}

## Фильтровать данные по запросу

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

Harvest отображает идентификационные буквы запроса темно-серым текстом. Щелкните идентификатор запроса, чтобы переключить фильтрацию. Если буква запроса белая, то отображаются результаты. Если буква запроса темная, то результаты скрыты.

В приведенном ниже примере панель содержит три запроса (A, B, C). Я удалил запрос B из визуализации.

{{< рисунок src="/static/img/docs/transformations/filter-by-query-stat-example-7-0.png" класс="docs-image--no-shadow" максимальная ширина = "1100 пикселей" >}}

> ** Примечание:** Это преобразование недоступно для Graphite, поскольку этот источник данных не поддерживает сопоставление возвращаемых данных с запросами.

## Упорядочить поля

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

> ** Примечание:** Это преобразование работает только в панелях с одним запросом. Если ваша панель содержит несколько запросов, то вы должны либо применить преобразование внешнего соединения, либо удалить дополнительные запросы.

Harvest отображает список полей, возвращаемых запросом. Ты можешь:

- Измените порядок полей, наведя курсор на поле. Курсор превращается в руку, и затем вы можете перетащить поле на новое место.
- Скрыть или показать поле, щелкнув значок глаза рядом с названием поля.
- Переименуйте поля, введя новое имя в поле **Переименовать <поле>**.

В приведенном ниже примере я скрыл поле значения и переименовал Max и Min.

{{< рисунок src="/static/img/docs/transformations/organize-fields-stat-example-7-0.png" класс="docs-image--no-shadow" максимальная ширина = "1100 пикселей" >}}

## Объединение по полю (внешнее объединение)

Используйте это преобразование для объединения нескольких временных рядов из результирующего набора по полю.

Это преобразование особенно полезно, если вы хотите объединить запросы, чтобы можно было вычислять результаты по полям.

В приведенном ниже примере у меня есть шаблонный запрос, отображающий данные временных рядов с нескольких серверов в табличной визуализации. Я могу просматривать результаты только одного запроса за раз.

{{< рисунок src="/static/img/docs/transformations/join-fields-before-7-0.png" класс="docs-image--no-shadow" максимальная ширина = "1100 пикселей" >}}

Я применил преобразование для объединения результатов запроса с использованием поля времени. Теперь я могу выполнять вычисления, объединять и упорядочивать результаты в этой новой таблице.

{{< рисунок src="/static/img/docs/transformations/join-fields-after-7-0.png" класс="docs-image--no-shadow" максимальная ширина = "1100 пикселей" >}}

## Добавить поле из расчета

Используйте это преобразование, чтобы добавить новое поле, вычисленное из двух других полей. Каждое преобразование позволяет вам добавлять одно новое поле.

- ** Режим -** Выберите режим:
  - ** Уменьшить строку -** Применить выбранный расчет к каждой строке выбранных полей независимо.
  - ** Бинарный опцион -** Примените базовую математическую операцию (суммирование, умножение и т.д.) К значениям в одной строке из двух выбранных полей.
- ** Имя поля -** Выберите имена полей, которые вы хотите использовать при вычислении для нового поля.
- **Расчет -** Если вы выберете режим ** Уменьшить строку**, то появится поле **Вычисление**. Щелкните по полю, чтобы просмотреть список вариантов расчета, которые вы можете использовать для создания нового поля. Для получения информации о доступных вычислениях обратитесь к [Списку вычислений]({{< relref "../calculations-list.md " >}}).
- **Операция -** Если вы выберете режим **Бинарный опцион**, то появятся поля ** Операция**. Эти поля позволяют выполнять базовые математические операции со значениями в одной строке из двух выбранных полей. Вы также можете использовать числовые значения для двоичных операций.
- **Псевдоним -** (необязательно) Введите название вашего нового поля. Если вы оставите это поле пустым, то имя поля будет соответствовать вычислению.
- ** Заменить все поля -** (Необязательно) Выберите этот параметр, если вы хотите скрыть все остальные поля и отобразить в визуализации только ваше вычисляемое поле.

В приведенном ниже примере я добавил два поля вместе и назвал их Sum.

{{< рисунок src="/static/img/docs/transformations/add-field-from-calc-stat-example-7-0.png" класс="docs-image--no-shadow" максимальная ширина = "1100 пикселей" >}}

## Метки к полям

Это преобразование преобразует результаты временных рядов, включающие метки или теги, в структуру таблицы, где каждая метка становится отдельным полем.

Дан результат запроса двух временных рядов:

* Серия 1: Сервер меток =Сервер A, Центр обработки данных =EU
* Серия 2: Сервер меток =Сервер B, Центр обработки данных =EU

Это привело бы к такой таблице, как эта:

| Время | Сервер | Центр обработки данных | Значение |
| ------------------- | -------- | ---------- | ----- |
| 2020-07-07 11:34:20 | Сервер A | EU | 1 |
| 2020-07-07 11:34:20 | Сервер B | EU | 2 |

### Имя поля значения

Если вы выбрали Сервер в качестве **Имени поля значения**, то вы получите одно поле для каждого значения метки сервера.

| Время | Центр обработки данных | Сервер A | Сервер B |
| ------------------- | ---------- | -------- | -------- |
| 2020-07-07 11:34:20 | ЕС | 1 | 2 |

### Поведение при слиянии

Преобразователь меток в поля внутренне представляет собой два отдельных преобразования. Первый действует на отдельные серии и извлекает метки для полей. Второе - это преобразование [merge](#merge), которое объединяет все результаты в единую таблицу. Преобразование слияния пытается объединить все совпадающие поля. Этот шаг слияния является обязательным и не может быть отключен.
