Настройка жизненного цикла потока данных
Настраивает жизненный цикл потока данных для целевых потоков данных.
Предварительные условия
Если в Elasticsearch включены функции безопасности, вам необходимо иметь привилегию manage_data_stream_lifecycle индекса или выше для использования данного API. Дополнительную информацию см. в разделе Права доступа к безопасности.
Запрос
PUT _data_stream/<data-stream>/_lifecycle
Описание
Настраивает жизненный цикл потока данных для целевых потоков данных. Если предоставлено несколько потоков данных, но хотя бы один из них не существует, обновление жизненного цикла завершится неудачей для всех из них, и API вернёт ответ 404.
Параметры пути
-
<data-stream> - (Обязательный, строка) Список потоков данных, разделенных запятыми, для ограничения запроса. Поддерживаются подстановочные знаки (
*). Для выбора всех потоков данных используйте*или_all.
Параметры запроса
-
expand_wildcards -
(Необязательный, строка) Тип потока данных, с которым могут совпадать подстановочные знаки. Поддерживаются значения, разделённые запятыми, такие как
open,hidden. Допустимые значения:-
all,hidden - Совпадает с любым потоком данных, включая скрытые.
-
open,closed - Совпадает с любым нескрытым потоком данных. Потоки данных не могут быть закрыты.
-
none - Подстановочные знаки не принимаются.
По умолчанию
open. -
Тело запроса
-
lifecycle -
(Обязательный, объект)
Свойства
lifecycle-
data_retention - (Необязательный, строка) Если задано, каждый документ, добавленный в этот поток данных, будет храниться не менее этого периода времени. После этого периода документ может быть удалён. Если пусто, каждый документ в этом потоке данных будет храниться неопределённо долго.
-
enabled - (Необязательный, булево) Если задано, включает/выключает жизненный цикл потока данных (
true/false) для этого потока данных. Жизненный цикл потока данных, выключенный (enabled: false), не повлияет на поток данных. По умолчаниюtrue. -
downsampling - (Необязательный, массив) Необязательный массив объектов конфигурации сжатия данных, каждый из которых определяет интервал
after, представляющий, когда подлежащий индекс должен быть сжат (период времени рассчитывается с момента перехода индекса, т.е. время генерации), и интервалfixed_interval, представляющий интервал сжатия (минимальное значениеfixed_intervalравно5m). Можно настроить максимальное количество раундов сжатия данных в 10. См. пример конфигурации ниже.
-
Примеры
В следующем примере настраивается жизненный цикл my-data-stream:
resp = client.indices.put_data_lifecycle(
name="my-data-stream",
data_retention="7d",
)
print(resp) response = client.indices.put_data_lifecycle(
name: 'my-data-stream',
body: {
data_retention: '7d'
}
)
puts response const response = await client.indices.putDataLifecycle({
name: "my-data-stream",
data_retention: "7d",
});
console.log(response); PUT _data_stream/my-data-stream/_lifecycle
{
"data_retention": "7d"
} При успешном обновлении жизненного цикла во всех потоках данных вы получите следующий результат:
{
"acknowledged": true
} Примеры
В следующем примере настраиваются два раунда сжатия данных, первый из которых начинается через один день после перехода подлежащего индекса (или позже, если индекс всё ещё находится в пределах своих временных границ записи времени) с интервалом 10m, а второй — через 7 дней после перехода с интервалом 1d:
resp = client.indices.put_data_lifecycle(
name="my-weather-sensor-data-stream",
downsampling=[
{
"after": "1d",
"fixed_interval": "10m"
},
{
"after": "7d",
"fixed_interval": "1d"
}
],
)
print(resp) response = client.indices.put_data_lifecycle(
name: 'my-weather-sensor-data-stream',
body: {
downsampling: [
{
after: '1d',
fixed_interval: '10m'
},
{
after: '7d',
fixed_interval: '1d'
}
]
}
)
puts response const response = await client.indices.putDataLifecycle({
name: "my-weather-sensor-data-stream",
downsampling: [
{
after: "1d",
fixed_interval: "10m",
},
{
after: "7d",
fixed_interval: "1d",
},
],
});
console.log(response); PUT _data_stream/my-weather-sensor-data-stream/_lifecycle
{
"downsampling": [
{
"after": "1d",
"fixed_interval": "10m"
},
{
"after": "7d",
"fixed_interval": "1d"
}
]
}
© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/data-streams-put-lifecycle.html