Изменение потока данных
Изменение отображения и настроек для потока данных
Каждый поток данных имеет соответствующую шаблон индекса. Отображения и настройки индекса из этого шаблона применяются к новым индексам, созданным для потока. Это включает первый поддерживающий индекс потока, который автоматически генерируется при создании потока.
Перед созданием потока данных рекомендуется тщательно оценить, какие отображения и настройки включить в этот шаблон.
Если позже вам понадобится изменить отображения или настройки для потока данных, у вас есть несколько вариантов:
Если ваши изменения включают модификации существующих отображений полей или статических настроек индекса, часто требуется переиндексация для применения изменений к поддерживающим индексам потока данных. Если вы уже выполняете переиндексацию, вы можете использовать ту же процедуру для добавления новых отображений полей и изменения динамических настроек индекса. См. Использование переиндексации для изменения отображений или настроек.
Добавление нового отображения поля в поток данных
Чтобы добавить отображение для нового поля в поток данных, выполните следующие действия:
-
Обновите шаблон индекса, используемый потоком данных. Это гарантирует, что новое отображение поля будет добавлено в будущие поддерживающие индексы, созданные для потока.
Например,
my-data-stream-template— это существующий шаблон индекса, используемыйmy-data-stream.Следующий запрос на создание или обновление шаблона индекса добавляет отображение для нового поля,
message, в шаблон.resp = client.indices.put_index_template( name="my-data-stream-template", index_patterns=[ "my-data-stream*" ], data_stream={}, priority=500, template={ "mappings": { "properties": { "message": { "type": "text" } } } }, ) print(resp)response = client.indices.put_index_template( name: 'my-data-stream-template', body: { index_patterns: [ 'my-data-stream*' ], data_stream: {}, priority: 500, template: { mappings: { properties: { message: { type: 'text' } } } } } ) puts responseconst response = await client.indices.putIndexTemplate({ name: "my-data-stream-template", index_patterns: ["my-data-stream*"], data_stream: {}, priority: 500, template: { mappings: { properties: { message: { type: "text", }, }, }, }, }); console.log(response);PUT /_index_template/my-data-stream-template { "index_patterns": [ "my-data-stream*" ], "data_stream": { }, "priority": 500, "template": { "mappings": { "properties": { "message": { "type": "text" } } } } }Добавляет отображение для нового поля
message. -
Используйте API для обновления отображения, чтобы добавить новое отображение поля в поток данных. По умолчанию это добавляет отображение в существующие поддерживающие индексы потока, включая индекс записи.
Следующий запрос API для обновления отображения добавляет новое отображение поля
messageвmy-data-stream.resp = client.indices.put_mapping( index="my-data-stream", properties={ "message": { "type": "text" } }, ) print(resp)response = client.indices.put_mapping( index: 'my-data-stream', body: { properties: { message: { type: 'text' } } } ) puts responseconst response = await client.indices.putMapping({ index: "my-data-stream", properties: { message: { type: "text", }, }, }); console.log(response);PUT /my-data-stream/_mapping { "properties": { "message": { "type": "text" } } }Чтобы добавить отображение только в индекс записи потока, установите параметр запроса API обновления отображения
write_index_onlyв значениеtrue.Следующий запрос обновления отображения добавляет новое отображение поля
messageтолько в индекс записиmy-data-stream. Новое отображение поля не добавляется в другие поддерживающие индексы потока.resp = client.indices.put_mapping( index="my-data-stream", write_index_only=True, properties={ "message": { "type": "text" } }, ) print(resp)response = client.indices.put_mapping( index: 'my-data-stream', write_index_only: true, body: { properties: { message: { type: 'text' } } } ) puts responseconst response = await client.indices.putMapping({ index: "my-data-stream", write_index_only: "true", properties: { message: { type: "text", }, }, }); console.log(response);PUT /my-data-stream/_mapping?write_index_only=true { "properties": { "message": { "type": "text" } } }
Изменение существующего отображения поля в потоке данных
Документация для каждого параметра отображения указывает, можно ли обновить его для существующего поля с помощью API обновления отображения. Чтобы обновить эти параметры для существующего поля, выполните следующие действия:
-
Обновите шаблон индекса, используемый потоком данных. Это гарантирует, что обновленное отображение поля будет добавлено в будущие поддерживающие индексы, созданные для потока.
Например,
my-data-stream-template— это существующий шаблон индекса, используемыйmy-data-stream.Следующий запрос на создание или обновление шаблона индекса изменяет аргумент параметра отображения поля
host.ipignore_malformedнаtrue.resp = client.indices.put_index_template( name="my-data-stream-template", index_patterns=[ "my-data-stream*" ], data_stream={}, priority=500, template={ "mappings": { "properties": { "host": { "properties": { "ip": { "type": "ip", "ignore_malformed": True } } } } } }, ) print(resp)response = client.indices.put_index_template( name: 'my-data-stream-template', body: { index_patterns: [ 'my-data-stream*' ], data_stream: {}, priority: 500, template: { mappings: { properties: { host: { properties: { ip: { type: 'ip', ignore_malformed: true } } } } } } } ) puts responseconst response = await client.indices.putIndexTemplate({ name: "my-data-stream-template", index_patterns: ["my-data-stream*"], data_stream: {}, priority: 500, template: { mappings: { properties: { host: { properties: { ip: { type: "ip", ignore_malformed: true, }, }, }, }, }, }, }); console.log(response);PUT /_index_template/my-data-stream-template { "index_patterns": [ "my-data-stream*" ], "data_stream": { }, "priority": 500, "template": { "mappings": { "properties": { "host": { "properties": { "ip": { "type": "ip", "ignore_malformed": true } } } } } } }Изменяет значение поля
host.ipignore_malformedнаtrue. -
Используйте API обновления отображения, чтобы применить изменения отображения к потоку данных. По умолчанию это применяет изменения к существующим поддерживающим индексам потока, включая индекс записи.
Следующий запрос API обновления отображения нацелен на
my-data-stream. Запрос изменяет аргумент параметра отображения поляhost.ipignore_malformedнаtrue.resp = client.indices.put_mapping( index="my-data-stream", properties={ "host": { "properties": { "ip": { "type": "ip", "ignore_malformed": True } } } }, ) print(resp)response = client.indices.put_mapping( index: 'my-data-stream', body: { properties: { host: { properties: { ip: { type: 'ip', ignore_malformed: true } } } } } ) puts responseconst response = await client.indices.putMapping({ index: "my-data-stream", properties: { host: { properties: { ip: { type: "ip", ignore_malformed: true, }, }, }, }, }); console.log(response);PUT /my-data-stream/_mapping { "properties": { "host": { "properties": { "ip": { "type": "ip", "ignore_malformed": true } } } } }Чтобы применить изменения отображения только к индексу записи потока, установите параметр запроса API put mapping
write_index_onlyв значениеtrue.Следующий запрос обновления отображения изменяет отображение поля
host.ipтолько для индекса записиmy-data-stream. Изменение не применяется к другим поддерживающим индексам потока.resp = client.indices.put_mapping( index="my-data-stream", write_index_only=True, properties={ "host": { "properties": { "ip": { "type": "ip", "ignore_malformed": True } } } }, ) print(resp)response = client.indices.put_mapping( index: 'my-data-stream', write_index_only: true, body: { properties: { host: { properties: { ip: { type: 'ip', ignore_malformed: true } } } } } ) puts responseconst response = await client.indices.putMapping({ index: "my-data-stream", write_index_only: "true", properties: { host: { properties: { ip: { type: "ip", ignore_malformed: true, }, }, }, }, }); console.log(response);PUT /my-data-stream/_mapping?write_index_only=true { "properties": { "host": { "properties": { "ip": { "type": "ip", "ignore_malformed": true } } } } }
За исключением поддерживаемых параметров отображения, не рекомендуется изменять отображение или тип данных поля существующих полей, даже в шаблоне соответствия индекса потока данных или его поддерживающих индексах. Изменение отображения существующего поля может привести к недействительности любых уже проиндексированных данных.
Если вам необходимо изменить отображение существующего поля, создайте новый поток данных и переиндексируйте данные в него. См. Использование переиндексации для изменения отображений или настроек.
Изменение динамической настройки индекса для потока данных
Чтобы изменить динамическую настройку индекса для потока данных, выполните следующие действия:
-
Обновите шаблон индекса, используемый потоком данных. Это гарантирует, что настройка будет применена к будущим поддерживающим индексам, созданным для потока.
Например,
my-data-stream-template— это существующий шаблон индекса, используемыйmy-data-stream.Следующий запрос на создание или обновление шаблона индекса изменяет настройку индекса
index.refresh_intervalшаблона на30s(30 секунд).resp = client.indices.put_index_template( name="my-data-stream-template", index_patterns=[ "my-data-stream*" ], data_stream={}, priority=500, template={ "settings": { "index.refresh_interval": "30s" } }, ) print(resp)response = client.indices.put_index_template( name: 'my-data-stream-template', body: { index_patterns: [ 'my-data-stream*' ], data_stream: {}, priority: 500, template: { settings: { 'index.refresh_interval' => '30s' } } } ) puts responseconst response = await client.indices.putIndexTemplate({ name: "my-data-stream-template", index_patterns: ["my-data-stream*"], data_stream: {}, priority: 500, template: { settings: { "index.refresh_interval": "30s", }, }, }); console.log(response);PUT /_index_template/my-data-stream-template { "index_patterns": [ "my-data-stream*" ], "data_stream": { }, "priority": 500, "template": { "settings": { "index.refresh_interval": "30s" } } }Изменяет настройку
index.refresh_intervalна30s(30 секунд). -
Используйте API обновления настроек индекса, чтобы обновить настройку индекса для потока данных. По умолчанию это применяет настройку к существующим поддерживающим индексам потока, включая индекс записи.
Следующий запрос API обновления настроек индекса обновляет настройку
index.refresh_intervalдляmy-data-stream.resp = client.indices.put_settings( index="my-data-stream", settings={ "index": { "refresh_interval": "30s" } }, ) print(resp)response = client.indices.put_settings( index: 'my-data-stream', body: { index: { refresh_interval: '30s' } } ) puts responseconst response = await client.indices.putSettings({ index: "my-data-stream", settings: { index: { refresh_interval: "30s", }, }, }); console.log(response);PUT /my-data-stream/_settings { "index": { "refresh_interval": "30s" } }
Чтобы изменить настройку index.lifecycle.name, сначала используйте API удаления политики ILM, чтобы удалить существующую политику ILM. См. Переключение политик жизненного цикла.
Изменение статического параметра индекса для потока данных
Статические параметры индекса могут быть установлены только при создании базового индекса. Вы не можете обновить статические параметры индекса с помощью API обновления параметров индекса.
Чтобы применить новое статическое значение к будущим базовым индексам, обновите шаблон индекса, используемый потоком данных. Настройка автоматически применяется к любому базовому индексу, созданному после обновления.
Например, my-data-stream-template — это существующий шаблон индекса, используемый my-data-stream.
Следующие запросы создания или обновления шаблона индекса добавляют новые sort.field и sort.order index параметры в шаблон.
resp = client.indices.put_index_template(
name="my-data-stream-template",
index_patterns=[
"my-data-stream*"
],
data_stream={},
priority=500,
template={
"settings": {
"sort.field": [
"@timestamp"
],
"sort.order": [
"desc"
]
}
},
)
print(resp) response = client.indices.put_index_template(
name: 'my-data-stream-template',
body: {
index_patterns: [
'my-data-stream*'
],
data_stream: {},
priority: 500,
template: {
settings: {
'sort.field' => [
'@timestamp'
],
'sort.order' => [
'desc'
]
}
}
}
)
puts response const response = await client.indices.putIndexTemplate({
name: "my-data-stream-template",
index_patterns: ["my-data-stream*"],
data_stream: {},
priority: 500,
template: {
settings: {
"sort.field": ["@timestamp"],
"sort.order": ["desc"],
},
},
});
console.log(response); PUT /_index_template/my-data-stream-template
{
"index_patterns": [ "my-data-stream*" ],
"data_stream": { },
"priority": 500,
"template": {
"settings": {
"sort.field": [ "@timestamp"],
"sort.order": [ "desc"]
}
}
} | Добавляет параметр индекса | |
| Добавляет параметр индекса |
При необходимости вы можете произвести сброс потока данных, чтобы немедленно применить настройку к индексу записи потока данных. Это повлияет на любые новые данные, добавленные в поток после сброса. Однако это не повлияет на существующие базовые индексы потока данных или существующие данные.
Чтобы применить изменения статических параметров к существующим базовым индексам, необходимо создать новый поток данных и переиндексировать ваши данные в него. См. Использование переиндексации для изменения отображений или настроек.
Использование переиндексации для изменения отображений или настроек
Вы можете использовать переиндексацию для изменения отображений или настроек потока данных. Это часто требуется для изменения типа данных существующего поля или обновления статических параметров индекса для базовых индексов.
Чтобы переиндексировать поток данных, сначала создайте или обновите шаблон индекса, чтобы он содержал желаемые изменения отображений или настроек. Затем вы можете переиндексировать существующий поток данных в новый поток, соответствующий шаблону. Это применяет изменения отображений и настроек в шаблоне к каждому документу и базовому индексу, добавленному в новый поток данных. Эти изменения также влияют на любой будущий базовый индекс, созданный новым потоком.
Выполните следующие действия:
-
Выберите имя или шаблон индекса для нового потока данных. Этот новый поток данных будет содержать данные из вашего существующего потока.
Вы можете использовать API разрешения индекса, чтобы проверить, соответствует ли имя или шаблон каким-либо существующим индексам, псевдонимам или потокам данных. В случае совпадения, следует рассмотреть использование другого имени или шаблона.
Следующий запрос к API разрешения индекса проверяет наличие существующих индексов, псевдонимов или потоков данных, начинающихся с
new-data-stream. Если таких нет, можно использовать шаблон индексаnew-data-stream*для создания нового потока данных.resp = client.indices.resolve_index( name="new-data-stream*", ) print(resp)response = client.indices.resolve_index( name: 'new-data-stream*' ) puts response
const response = await client.indices.resolveIndex({ name: "new-data-stream*", }); console.log(response);GET /_resolve/index/new-data-stream*
API возвращает следующий ответ, указывающий, что ни один существующий целевой объект не соответствует этому шаблону.
{ "indices": [ ], "aliases": [ ], "data_streams": [ ] } -
Создайте или обновите шаблон индекса. Этот шаблон должен содержать отображения и настройки, которые вы хотите применить к базовым индексам нового потока данных.
Этот шаблон индекса должен соответствовать требованиям к шаблону потока данных. Он также должен содержать ранее выбранное имя или шаблон индекса в свойстве
index_patterns.Если вы добавляете или изменяете только несколько элементов, рекомендуем создать новый шаблон, скопировав существующий и внеся необходимые изменения.
Например,
my-data-stream-template— это существующий шаблон индекса, используемыйmy-data-stream.Следующий запрос к API создания или обновления шаблона индекса создаёт новый шаблон индекса,
new-data-stream-template.new-data-stream-templateбазируется наmy-data-stream-template, с внесёнными изменениями:- Шаблон индекса в
index_patternsсоответствует любому индексу или потоку данных, начинающемуся сnew-data-stream. - Отображение поля
@timestampиспользует тип данных поляdate_nanosвместо типа данныхdate. - Шаблон включает настройки индекса
sort.fieldиsort.order, которые отсутствовали в исходном шаблонеmy-data-stream-template.
resp = client.indices.put_index_template( name="new-data-stream-template", index_patterns=[ "new-data-stream*" ], data_stream={}, priority=500, template={ "mappings": { "properties": { "@timestamp": { "type": "date_nanos" } } }, "settings": { "sort.field": [ "@timestamp" ], "sort.order": [ "desc" ] } }, ) print(resp)response = client.indices.put_index_template( name: 'new-data-stream-template', body: { index_patterns: [ 'new-data-stream*' ], data_stream: {}, priority: 500, template: { mappings: { properties: { "@timestamp": { type: 'date_nanos' } } }, settings: { 'sort.field' => [ '@timestamp' ], 'sort.order' => [ 'desc' ] } } } ) puts responseconst response = await client.indices.putIndexTemplate({ name: "new-data-stream-template", index_patterns: ["new-data-stream*"], data_stream: {}, priority: 500, template: { mappings: { properties: { "@timestamp": { type: "date_nanos", }, }, }, settings: { "sort.field": ["@timestamp"], "sort.order": ["desc"], }, }, }); console.log(response);PUT /_index_template/new-data-stream-template { "index_patterns": [ "new-data-stream*" ], "data_stream": { }, "priority": 500, "template": { "mappings": { "properties": { "@timestamp": { "type": "date_nanos" } } }, "settings": { "sort.field": [ "@timestamp"], "sort.order": [ "desc"] } } }Изменяет отображение поля
@timestampна тип данных поляdate_nanos.Добавляет настройку индекса
sort.field.Добавляет настройку индекса
sort.order. - Шаблон индекса в
-
Используйте API создания потока данных для ручного создания нового потока данных. Имя потока данных должно соответствовать шаблону индекса, определённому в свойстве
index_patternsнового шаблона.Не рекомендуется индексировать новые данные для создания этого потока данных. Позже вы переиндексируете старые данные из существующего потока данных в этот новый. Это может привести к одному или нескольким базовым индексам, содержащим смесь новых и старых данных.
Смешивание новых и старых данных в потоке данных
Хотя смешивание новых и старых данных безопасно, оно может повлиять на сохранение данных. Если вы удалите старые индексы, вы можете случайно удалить базовый индекс, содержащий как новые, так и старые данные. Чтобы предотвратить преждевременную потерю данных, вам необходимо сохранить такой базовый индекс до тех пор, пока вы не будете готовы удалить его новейшие данные.
Следующий запрос к API создания потока данных нацелен на
new-data-stream, который соответствует шаблону индекса дляnew-data-stream-template. Поскольку ни один существующий индекс или поток данных не использует это имя, этот запрос создаёт поток данныхnew-data-stream.resp = client.indices.create_data_stream( name="new-data-stream", ) print(resp)response = client.indices.create_data_stream( name: 'new-data-stream' ) puts response
const response = await client.indices.createDataStream({ name: "new-data-stream", }); console.log(response);PUT /_data_stream/new-data-stream
- Если вы не хотите смешивать новые и старые данные в новом потоке данных, приостановите индексацию новых документов. Хотя смешивание старых и новых данных безопасно, оно может повлиять на сохранение данных. См. Смешивание новых и старых данных в потоке данных.
-
Если вы используете ILM для автоматизации перехода, уменьшите интервал опроса ILM. Это гарантирует, что текущий индекс записи не станет слишком большим, ожидая проверки перехода. По умолчанию ILM проверяет условия перехода каждые 10 минут.
Следующий запрос к API настройки кластера уменьшает настройку
indices.lifecycle.poll_intervalдо значения1m(одна минута).resp = client.cluster.put_settings( persistent={ "indices.lifecycle.poll_interval": "1m" }, ) print(resp)response = client.cluster.put_settings( body: { persistent: { 'indices.lifecycle.poll_interval' => '1m' } } ) puts responseconst response = await client.cluster.putSettings({ persistent: { "indices.lifecycle.poll_interval": "1m", }, }); console.log(response);PUT /_cluster/settings { "persistent": { "indices.lifecycle.poll_interval": "1m" } } -
Переиндексируйте данные в новый поток данных с помощью
op_typecreate.Если вы хотите разбить данные в порядке их первоначального индексирования, вы можете выполнить отдельные запросы переиндексирования. Эти запросы переиндексирования могут использовать отдельные базовые индексы в качестве источника. Вы можете использовать API получения потока данных для получения списка базовых индексов.
Например, вы планируете переиндексировать данные из
my-data-streamвnew-data-stream. Однако вы хотите отправить отдельный запрос переиндексирования для каждого базового индекса вmy-data-stream, начиная со старейшего базового индекса. Это сохранит порядок, в котором данные изначально были индексированы.Следующий запрос к API получения потока данных получает информацию о
my-data-stream, включая список его базовых индексов.resp = client.indices.get_data_stream( name="my-data-stream", ) print(resp)response = client.indices.get_data_stream( name: 'my-data-stream' ) puts response
const response = await client.indices.getDataStream({ name: "my-data-stream", }); console.log(response);GET /_data_stream/my-data-stream
Свойство
indicesответа содержит массив текущих базовых индексов потока. Первый элемент массива содержит информацию о старейшем базовом индексе потока.{ "data_streams": [ { "name": "my-data-stream", "timestamp_field": { "name": "@timestamp" }, "indices": [ { "index_name": ".ds-my-data-stream-2099.03.07-000001", "index_uuid": "Gpdiyq8sRuK9WuthvAdFbw", "prefer_ilm": true, "managed_by": "Unmanaged" }, { "index_name": ".ds-my-data-stream-2099.03.08-000002", "index_uuid": "_eEfRrFHS9OyhqWntkgHAQ", "prefer_ilm": true, "managed_by": "Unmanaged" } ], "generation": 2, "status": "GREEN", "next_generation_managed_by": "Unmanaged", "prefer_ilm": true, "template": "my-data-stream-template", "hidden": false, "system": false, "allow_custom_routing": false, "replicated": false, "rollover_on_write": false } ] }Первый элемент массива
indicesдляmy-data-stream. Этот элемент содержит информацию о старейшем базовом индексе потока,.ds-my-data-stream-2099.03.07-000001.Следующий запрос к API переиндексирования копирует документы из
.ds-my-data-stream-2099.03.07-000001вnew-data-stream. Свойствоop_typeзапроса равноcreate.resp = client.reindex( source={ "index": ".ds-my-data-stream-2099.03.07-000001" }, dest={ "index": "new-data-stream", "op_type": "create" }, ) print(resp)response = client.reindex( body: { source: { index: '.ds-my-data-stream-2099.03.07-000001' }, dest: { index: 'new-data-stream', op_type: 'create' } } ) puts responseconst response = await client.reindex({ source: { index: ".ds-my-data-stream-2099.03.07-000001", }, dest: { index: "new-data-stream", op_type: "create", }, }); console.log(response);POST /_reindex { "source": { "index": ".ds-my-data-stream-2099.03.07-000001" }, "dest": { "index": "new-data-stream", "op_type": "create" } }Вы также можете использовать запрос для переиндексирования только подмножества документов в каждом запросе.
Следующий запрос к API переиндексирования копирует документы из
my-data-streamвnew-data-stream. Запрос используетrangeзапрос, чтобы переиндексировать только документы с отметкой времени за последнюю неделю. Обратите внимание, что свойствоop_typeзапроса равноcreate.resp = client.reindex( source={ "index": "my-data-stream", "query": { "range": { "@timestamp": { "gte": "now-7d/d", "lte": "now/d" } } } }, dest={ "index": "new-data-stream", "op_type": "create" }, ) print(resp)response = client.reindex( body: { source: { index: 'my-data-stream', query: { range: { "@timestamp": { gte: 'now-7d/d', lte: 'now/d' } } } }, dest: { index: 'new-data-stream', op_type: 'create' } } ) puts responseconst response = await client.reindex({ source: { index: "my-data-stream", query: { range: { "@timestamp": { gte: "now-7d/d", lte: "now/d", }, }, }, }, dest: { index: "new-data-stream", op_type: "create", }, }); console.log(response);POST /_reindex { "source": { "index": "my-data-stream", "query": { "range": { "@timestamp": { "gte": "now-7d/d", "lte": "now/d" } } } }, "dest": { "index": "new-data-stream", "op_type": "create" } } -
Если вы ранее изменили интервал опроса ILM, измените его обратно на исходное значение после завершения переиндексирования. Это предотвращает ненужную нагрузку на главный узел.
Следующий запрос к API настройки кластера сбрасывает настройку
indices.lifecycle.poll_intervalдо её значения по умолчанию.resp = client.cluster.put_settings( persistent={ "indices.lifecycle.poll_interval": None }, ) print(resp)response = client.cluster.put_settings( body: { persistent: { 'indices.lifecycle.poll_interval' => nil } } ) puts responseconst response = await client.cluster.putSettings({ persistent: { "indices.lifecycle.poll_interval": null, }, }); console.log(response);PUT /_cluster/settings { "persistent": { "indices.lifecycle.poll_interval": null } } - Возобновите индексацию, используя новый поток данных. Поиски в этом потоке данных теперь будут запрашивать ваши новые данные и переиндексированные данные.
-
После проверки того, что все переиндексированные данные доступны в новом потоке данных, вы можете безопасно удалить старый поток.
Следующий запрос API удаления потока данных удаляет
my-data-stream. Этот запрос также удаляет базовые индексы потока и все данные, которые они содержат.resp = client.indices.delete_data_stream( name="my-data-stream", ) print(resp)response = client.indices.delete_data_stream( name: 'my-data-stream' ) puts response
const response = await client.indices.deleteDataStream({ name: "my-data-stream", }); console.log(response);DELETE /_data_stream/my-data-stream
Обновить или добавить псевдоним к потоку данных
Используйте API псевдонимов, чтобы обновить существующие псевдонимы потока данных. Изменение существующих псевдонимов потока данных в его шаблоне индекса не повлияет.
Например, псевдоним logs указывает на один поток данных. Следующий запрос меняет поток для псевдонима. Во время этой смены псевдониму logs не требуется время простоя, и он никогда не указывает на оба потока одновременно.
resp = client.indices.update_aliases(
actions=[
{
"remove": {
"index": "logs-nginx.access-prod",
"alias": "logs"
}
},
{
"add": {
"index": "logs-my_app-default",
"alias": "logs"
}
}
],
)
print(resp) response = client.indices.update_aliases(
body: {
actions: [
{
remove: {
index: 'logs-nginx.access-prod',
alias: 'logs'
}
},
{
add: {
index: 'logs-my_app-default',
alias: 'logs'
}
}
]
}
)
puts response const response = await client.indices.updateAliases({
actions: [
{
remove: {
index: "logs-nginx.access-prod",
alias: "logs",
},
},
{
add: {
index: "logs-my_app-default",
alias: "logs",
},
},
],
});
console.log(response); POST _aliases
{
"actions": [
{
"remove": {
"index": "logs-nginx.access-prod",
"alias": "logs"
}
},
{
"add": {
"index": "logs-my_app-default",
"alias": "logs"
}
}
]
}
© 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/modify-data-streams.html