API обновления фильтрации коннекторов
Данная функциональность находится в стадии бета-тестирования и может быть изменена. Дизайн и код менее зрелые, чем официальные функции GA, и предоставляются как есть без гарантий. Функции бета-версии не подпадают под SLA поддержки официальных функций GA.
Обновляет черновик конфигурации коннектора и помечает состояние проверки черновика как edited. Черновик фильтрации активируется после проверки работающей службой Elastic Connector.
Свойство фильтрации используется для настройки правил синхронизации (как базовые, так и расширенные) для коннектора. Дополнительные сведения см. в разделе Правила синхронизации.
Чтобы начать работу с API коннекторов, ознакомьтесь с нашим обучающим пособием.
Запрос
PUT _connector/<connector_id>/_filtering
Предварительные условия
- Для синхронизации данных с использованием самостоятельных коннекторов вам необходимо развернуть службу Elastic Connector на вашей собственной инфраструктуре. Эта служба запускается автоматически в Elastic Cloud для управляемых Elastic коннекторов.
- Параметр
connector_idдолжен ссылаться на существующий коннектор. - Черновик фильтрации активируется после проверки работающей службой Elastic Connector, параметр
draft.validation.stateдолжен бытьvalid. - Если после попытки проверки
draft.validation.stateравноinvalid, проверьтеdraft.validation.errorsи устраните любые проблемы.
Параметры пути
-
<connector_id> - (Обязательно, строка)
Тело запроса
-
rules -
(Необязательно, массив объектов) Массив базовых правил синхронизации, каждый из которых имеет следующие под-атрибуты:
-
id(Обязательно, строка)
Уникальный идентификатор правила. -
policy(Обязательно, строка)
Указывает политику, например,includeилиexclude. -
field(Обязательно, строка)
Поле в документе, к которому применяется это правило. -
rule(Обязательно, строка)
Тип правила, например,regex,starts_with,ends_with,contains,equals,<,>и т. д. -
value(Обязательно, строка)
Значение, используемое совместно с правилом для сопоставления содержимого поля документа. -
order(Обязательно, число)
Порядок применения правил. Первое совпавшее правило применяет свою политику. -
created_at(Необязательно, дата и время)
Отметка времени, когда правило было добавлено. По умолчаниюnowUTC. -
updated_at(Необязательно, дата и время)
Отметка времени последнего редактирования правила. По умолчаниюnowUTC.
-
-
advanced_snippet -
(Необязательно, объект) Используется для расширенной фильтрации во время запроса, со следующими под-атрибутами:
-
value(Обязательно, объект или массив)
Объект/массив JSON, передаваемый непосредственно коннектору для расширенной фильтрации. -
created_at(Необязательно, дата и время)
Отметка времени создания этого JSON-объекта. По умолчаниюnowUTC. -
updated_at(Необязательно, дата и время)
Отметка времени последнего редактирования этого JSON-объекта. По умолчаниюnowUTC.
-
Коды ответов
-
200 - Черновик фильтрации коннектора был успешно обновлен.
-
400 -
connector_idне был предоставлен или запрос имел неправильный формат. -
404(Отсутствуют ресурсы) - Коннектор, соответствующий
connector_id, не найден.
Примеры
В следующем примере обновляются базовые правила синхронизации для коннектора Google Диск с идентификатором my-g-drive-connector. Все файлы Google Диска с расширением .txt будут пропущены:
resp = client.connector.update_filtering(
connector_id="my-g-drive-connector",
rules=[
{
"field": "file_extension",
"id": "exclude-txt-files",
"order": 0,
"policy": "exclude",
"rule": "equals",
"value": "txt"
},
{
"field": "_",
"id": "DEFAULT",
"order": 1,
"policy": "include",
"rule": "regex",
"value": ".*"
}
],
)
print(resp) const response = await client.connector.updateFiltering({
connector_id: "my-g-drive-connector",
rules: [
{
field: "file_extension",
id: "exclude-txt-files",
order: 0,
policy: "exclude",
rule: "equals",
value: "txt",
},
{
field: "_",
id: "DEFAULT",
order: 1,
policy: "include",
rule: "regex",
value: ".*",
},
],
});
console.log(response); PUT _connector/my-g-drive-connector/_filtering
{
"rules": [
{
"field": "file_extension",
"id": "exclude-txt-files",
"order": 0,
"policy": "exclude",
"rule": "equals",
"value": "txt"
},
{
"field": "_",
"id": "DEFAULT",
"order": 1,
"policy": "include",
"rule": "regex",
"value": ".*"
}
]
} {
"result": "updated"
} В следующем примере обновляются расширенные правила синхронизации для коннектора MySQL с идентификатором my-sql-connector. Расширенные правила синхронизации специфичны для каждого типа коннектора. Обратитесь к документации по коннекторам, поддерживающим расширенные правила синхронизации, для синтаксиса и примеров.
resp = client.connector.update_filtering(
connector_id="my-sql-connector",
advanced_snippet={
"value": [
{
"tables": [
"users",
"orders"
],
"query": "SELECT users.id AS id, orders.order_id AS order_id FROM users JOIN orders ON users.id = orders.user_id"
}
]
},
)
print(resp) const response = await client.connector.updateFiltering({
connector_id: "my-sql-connector",
advanced_snippet: {
value: [
{
tables: ["users", "orders"],
query:
"SELECT users.id AS id, orders.order_id AS order_id FROM users JOIN orders ON users.id = orders.user_id",
},
],
},
});
console.log(response); PUT _connector/my-sql-connector/_filtering
{
"advanced_snippet": {
"value": [{
"tables": [
"users",
"orders"
],
"query": "SELECT users.id AS id, orders.order_id AS order_id FROM users JOIN orders ON users.id = orders.user_id"
}]
}
} {
"result": "updated"
} Обратите внимание, что вы также можете обновить черновик rules и advanced_snippet в одном запросе.
После обновления черновика его состояние проверки устанавливается в edited. Затем служба коннектора проверит правила и сообщит состояние проверки как invalid или valid. Если состояние равно valid, черновик фильтрации будет активирован работающей службой Elastic Connector.
© 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/update-connector-filtering-api.html