更新连接器过滤 API
编辑更新连接器过滤 API编辑
此功能处于测试阶段,可能会发生变化。其设计和代码不如正式的 GA 功能成熟,因此按原样提供,不作任何保证。测试功能不受正式 GA 功能的服务水平协议 (SLA) 的约束。
更新连接器的草稿 filtering
配置,并将草稿验证状态标记为 edited
。运行中的 Elastic 连接器服务验证后,过滤草稿将被激活。
filtering 属性用于为连接器配置同步规则(基本规则和高级规则)。在同步规则文档中了解更多信息。
要开始使用连接器 API,请查看教程。
请求编辑
PUT _connector/<connector_id>/_filtering
先决条件编辑
- 要使用自管连接器同步数据,您需要在自己的基础架构上部署Elastic 连接器服务。此服务在 Elastic Cloud 上自动为原生连接器运行。
connector_id
参数应引用现有的连接器。- 运行中的 Elastic 连接器服务验证后,过滤草稿将被激活,
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
(可选,日期时间)
添加规则时的时间戳。默认为当前 UTC 时间戳。 -
updated_at
(可选,日期时间)
上次编辑规则时的时间戳。默认为当前 UTC 时间戳。
-
-
advanced_snippet
-
(可选,对象)用于在查询时进行高级过滤,具有以下子属性
-
value
(必填,对象或数组)
直接传递给连接器以进行高级过滤的 JSON 对象/数组。 -
created_at
(可选,日期时间)
创建此 JSON 对象时的时间戳。默认为当前 UTC 时间戳。 -
updated_at
(可选,日期时间)
上次编辑此 JSON 对象时的时间戳。默认为当前 UTC 时间戳。
-
响应代码编辑
-
200
- 连接器草稿过滤已成功更新。
-
400
- 未提供
connector_id
或请求有效负载格式错误。 -
404
(缺少资源) - 找不到与
connector_id
匹配的连接器。
示例编辑
以下示例更新了 ID 为 my-g-drive-connector
的 Google Drive 连接器的草稿基本同步规则。所有扩展名为 .txt
的 Google Drive 文件都将被跳过
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" }
以下示例更新了 ID 为 my-sql-connector
的 MySQL 连接器的草稿高级同步规则。高级同步规则特定于每种连接器类型。有关语法和示例,请参阅支持高级同步规则的连接器的参考。
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 连接器服务将激活草稿过滤。