- Elasticsearch 指南其他版本
- 8.17 中的新功能
- Elasticsearch 基础
- 快速入门
- 设置 Elasticsearch
- 升级 Elasticsearch
- 索引模块
- 映射
- 文本分析
- 索引模板
- 数据流
- 摄取管道
- 别名
- 搜索您的数据
- 重新排名
- 查询 DSL
- 聚合
- 地理空间分析
- 连接器
- EQL
- ES|QL
- SQL
- 脚本
- 数据管理
- 自动缩放
- 监视集群
- 汇总或转换数据
- 设置高可用性集群
- 快照和还原
- 保护 Elastic Stack 的安全
- Watcher
- 命令行工具
- elasticsearch-certgen
- elasticsearch-certutil
- elasticsearch-create-enrollment-token
- elasticsearch-croneval
- elasticsearch-keystore
- elasticsearch-node
- elasticsearch-reconfigure-node
- elasticsearch-reset-password
- elasticsearch-saml-metadata
- elasticsearch-service-tokens
- elasticsearch-setup-passwords
- elasticsearch-shard
- elasticsearch-syskeygen
- elasticsearch-users
- 优化
- 故障排除
- 修复常见的集群问题
- 诊断未分配的分片
- 向系统中添加丢失的层
- 允许 Elasticsearch 在系统中分配数据
- 允许 Elasticsearch 分配索引
- 索引将索引分配过滤器与数据层节点角色混合,以在数据层之间移动
- 没有足够的节点来分配所有分片副本
- 单个节点上索引的分片总数已超过
- 每个节点的分片总数已达到
- 故障排除损坏
- 修复磁盘空间不足的数据节点
- 修复磁盘空间不足的主节点
- 修复磁盘空间不足的其他角色节点
- 启动索引生命周期管理
- 启动快照生命周期管理
- 从快照恢复
- 故障排除损坏的存储库
- 解决重复的快照策略失败问题
- 故障排除不稳定的集群
- 故障排除发现
- 故障排除监控
- 故障排除转换
- 故障排除 Watcher
- 故障排除搜索
- 故障排除分片容量健康问题
- 故障排除不平衡的集群
- 捕获诊断信息
- REST API
- API 约定
- 通用选项
- REST API 兼容性
- 自动缩放 API
- 行为分析 API
- 紧凑和对齐文本 (CAT) API
- 集群 API
- 跨集群复制 API
- 连接器 API
- 数据流 API
- 文档 API
- 丰富 API
- EQL API
- ES|QL API
- 功能 API
- Fleet API
- 图表探索 API
- 索引 API
- 别名是否存在
- 别名
- 分析
- 分析索引磁盘使用量
- 清除缓存
- 克隆索引
- 关闭索引
- 创建索引
- 创建或更新别名
- 创建或更新组件模板
- 创建或更新索引模板
- 创建或更新索引模板(旧版)
- 删除组件模板
- 删除悬挂索引
- 删除别名
- 删除索引
- 删除索引模板
- 删除索引模板(旧版)
- 存在
- 字段使用情况统计信息
- 刷新
- 强制合并
- 获取别名
- 获取组件模板
- 获取字段映射
- 获取索引
- 获取索引设置
- 获取索引模板
- 获取索引模板(旧版)
- 获取映射
- 导入悬挂索引
- 索引恢复
- 索引段
- 索引分片存储
- 索引统计信息
- 索引模板是否存在(旧版)
- 列出悬挂索引
- 打开索引
- 刷新
- 解析索引
- 解析集群
- 翻转
- 收缩索引
- 模拟索引
- 模拟模板
- 拆分索引
- 解冻索引
- 更新索引设置
- 更新映射
- 索引生命周期管理 API
- 推理 API
- 信息 API
- 摄取 API
- 许可 API
- Logstash API
- 机器学习 API
- 机器学习异常检测 API
- 机器学习数据帧分析 API
- 机器学习训练模型 API
- 迁移 API
- 节点生命周期 API
- 查询规则 API
- 重新加载搜索分析器 API
- 存储库计量 API
- 汇总 API
- 根 API
- 脚本 API
- 搜索 API
- 搜索应用程序 API
- 可搜索快照 API
- 安全 API
- 身份验证
- 更改密码
- 清除缓存
- 清除角色缓存
- 清除权限缓存
- 清除 API 密钥缓存
- 清除服务帐户令牌缓存
- 创建 API 密钥
- 创建或更新应用程序权限
- 创建或更新角色映射
- 创建或更新角色
- 批量创建或更新角色 API
- 批量删除角色 API
- 创建或更新用户
- 创建服务帐户令牌
- 委托 PKI 身份验证
- 删除应用程序权限
- 删除角色映射
- 删除角色
- 删除服务帐户令牌
- 删除用户
- 禁用用户
- 启用用户
- 注册 Kibana
- 注册节点
- 获取 API 密钥信息
- 获取应用程序权限
- 获取内置权限
- 获取角色映射
- 获取角色
- 查询角色
- 获取服务帐户
- 获取服务帐户凭据
- 获取安全设置
- 获取令牌
- 获取用户权限
- 获取用户
- 授予 API 密钥
- 具有权限
- 使 API 密钥失效
- 使令牌失效
- OpenID Connect 准备身份验证
- OpenID Connect 身份验证
- OpenID Connect 注销
- 查询 API 密钥信息
- 查询用户
- 更新 API 密钥
- 更新安全设置
- 批量更新 API 密钥
- SAML 准备身份验证
- SAML 身份验证
- SAML 注销
- SAML 失效
- SAML 完成注销
- SAML 服务提供商元数据
- SSL 证书
- 激活用户配置文件
- 禁用用户配置文件
- 启用用户配置文件
- 获取用户配置文件
- 建议用户配置文件
- 更新用户配置文件数据
- 具有用户配置文件权限
- 创建跨集群 API 密钥
- 更新跨集群 API 密钥
- 快照和还原 API
- 快照生命周期管理 API
- SQL API
- 同义词 API
- 文本结构 API
- 转换 API
- 使用情况 API
- Watcher API
- 定义
- 迁移指南
- 发行说明
- Elasticsearch 版本 8.17.0
- Elasticsearch 版本 8.16.1
- Elasticsearch 版本 8.16.0
- Elasticsearch 版本 8.15.5
- Elasticsearch 版本 8.15.4
- Elasticsearch 版本 8.15.3
- Elasticsearch 版本 8.15.2
- Elasticsearch 版本 8.15.1
- Elasticsearch 版本 8.15.0
- Elasticsearch 版本 8.14.3
- Elasticsearch 版本 8.14.2
- Elasticsearch 版本 8.14.1
- Elasticsearch 版本 8.14.0
- Elasticsearch 版本 8.13.4
- Elasticsearch 版本 8.13.3
- Elasticsearch 版本 8.13.2
- Elasticsearch 版本 8.13.1
- Elasticsearch 版本 8.13.0
- Elasticsearch 版本 8.12.2
- Elasticsearch 版本 8.12.1
- Elasticsearch 版本 8.12.0
- Elasticsearch 版本 8.11.4
- Elasticsearch 版本 8.11.3
- Elasticsearch 版本 8.11.2
- Elasticsearch 版本 8.11.1
- Elasticsearch 版本 8.11.0
- Elasticsearch 版本 8.10.4
- Elasticsearch 版本 8.10.3
- Elasticsearch 版本 8.10.2
- Elasticsearch 版本 8.10.1
- Elasticsearch 版本 8.10.0
- Elasticsearch 版本 8.9.2
- Elasticsearch 版本 8.9.1
- Elasticsearch 版本 8.9.0
- Elasticsearch 版本 8.8.2
- Elasticsearch 版本 8.8.1
- Elasticsearch 版本 8.8.0
- Elasticsearch 版本 8.7.1
- Elasticsearch 版本 8.7.0
- Elasticsearch 版本 8.6.2
- Elasticsearch 版本 8.6.1
- Elasticsearch 版本 8.6.0
- Elasticsearch 版本 8.5.3
- Elasticsearch 版本 8.5.2
- Elasticsearch 版本 8.5.1
- Elasticsearch 版本 8.5.0
- Elasticsearch 版本 8.4.3
- Elasticsearch 版本 8.4.2
- Elasticsearch 版本 8.4.1
- Elasticsearch 版本 8.4.0
- Elasticsearch 版本 8.3.3
- Elasticsearch 版本 8.3.2
- Elasticsearch 版本 8.3.1
- Elasticsearch 版本 8.3.0
- Elasticsearch 版本 8.2.3
- Elasticsearch 版本 8.2.2
- Elasticsearch 版本 8.2.1
- Elasticsearch 版本 8.2.0
- Elasticsearch 版本 8.1.3
- Elasticsearch 版本 8.1.2
- Elasticsearch 版本 8.1.1
- Elasticsearch 版本 8.1.0
- Elasticsearch 版本 8.0.1
- Elasticsearch 版本 8.0.0
- Elasticsearch 版本 8.0.0-rc2
- Elasticsearch 版本 8.0.0-rc1
- Elasticsearch 版本 8.0.0-beta1
- Elasticsearch 版本 8.0.0-alpha2
- Elasticsearch 版本 8.0.0-alpha1
- 依赖项和版本
Elastic GraphQL 连接器参考
编辑Elastic GraphQL 连接器参考
编辑Elastic GraphQL 连接器是使用 Elastic 连接器框架 以 Python 编写的。查看此连接器的源代码。
可用性和先决条件
编辑此连接器在 Elastic 8.14.0 中引入,可作为自管理的自管理连接器使用。
要使用此连接器,请满足所有自管理连接器的先决条件。重要的是,您必须在您自己的基础设施上部署连接器服务。您有两种部署选项
- 从源代码运行连接器服务。如果您熟悉使用 Python 并希望在本地快速迭代,请使用此选项。
- 在 Docker 中运行连接器服务。如果您想将连接器部署到服务器,或使用容器编排平台,请使用此选项。
此连接器处于技术预览阶段,可能会发生更改。其设计和代码不如正式 GA 功能成熟,并且按原样提供,不提供任何保证。技术预览功能不受官方 GA 功能的支持 SLA 的约束。
用法
编辑要在 UI 中设置此连接器,请在搜索 → 连接器下创建新连接器时,选择GraphQL磁贴。
如果您已经熟悉连接器的工作方式,您也可以使用连接器 API。
有关其他操作,请参阅Kibana 中的连接器 UI。
使用 Docker 部署
编辑您可以使用 Docker 将 GraphQL 连接器部署为自管理连接器。请按照以下说明操作。
步骤 1:下载示例配置文件
下载示例配置文件。您可以手动下载或运行以下命令
curl https://raw.githubusercontent.com/elastic/connectors/main/config.yml.example --output ~/connectors-config/config.yml
如果您的目录名称不同,或者您想使用不同的配置文件名,请记得更新 --output
参数值。
步骤 2:更新您的自管理连接器的配置文件
使用以下设置更新配置文件以匹配您的环境
-
elasticsearch.host
-
elasticsearch.api_key
-
connectors
如果您正在针对 Dockerized 版本的 Elasticsearch 和 Kibana 运行连接器服务,您的配置文件将如下所示
# When connecting to your cloud deployment you should edit the host value elasticsearch.host: http://host.docker.internal:9200 elasticsearch.api_key: <ELASTICSEARCH_API_KEY> connectors: - connector_id: <CONNECTOR_ID_FROM_KIBANA> service_type: graphql api_key: <CONNECTOR_API_KEY_FROM_KIBANA> # Optional. If not provided, the connector will use the elasticsearch.api_key instead
使用 elasticsearch.api_key
是推荐的身份验证方法。但是,您也可以使用 elasticsearch.username
和 elasticsearch.password
来验证您的 Elasticsearch 实例。
注意:您可以通过简单地取消注释配置文件中的特定设置并修改其值来更改其他默认配置。
步骤 3:运行 Docker 镜像
使用以下命令运行带有连接器服务的 Docker 镜像
docker run \ -v ~/connectors-config:/config \ --network "elastic" \ --tty \ --rm \ docker.elastic.co/enterprise-search/elastic-connectors:8.17.0.0 \ /app/bin/elastic-ingest \ -c /config/config.yml
有关更多详细信息,请参阅 elastic/connectors
存储库中的 DOCKER.md
。
在官方注册表中查找所有可用的 Docker 镜像。
我们还有一个使用 Docker Compose 的快速启动自管理选项,因此您可以一次启动所有必需的服务:Elasticsearch、Kibana 和连接器服务。有关更多信息,请参阅 elastic/connectors
存储库中的此 README。
配置
编辑配置 GraphQL 连接器
编辑请注意以下配置字段
-
http_endpoint
(必需) - GraphQL 端点的基本 URL。示例:
https://api.xyz.com/graphql
-
http_method
(必需) -
GET
或POST
。 -
authentication_method
(必需) - 从
No Auth
、Basic Auth
和Bearer Token
中选择。 -
username
- 使用基本身份验证时必需。
-
password
- 使用基本身份验证时必需。
-
token
- 使用持有者令牌身份验证时必需。
-
graphql_query
(必需) -
用于从源提取数据的查询。可以包含在
graphql_variables
字段中提供的变量。连接器会将查询中的变量替换为graphql_variables
中的值,并向源发出 GraphQL 查询。示例:
query getUser($id: ID!) { user(id: $id) { name email } }
-
graphql_variables
-
包含 GraphQL 查询中使用的变量的键/值对的 JSON 对象。连接器会将查询中的变量替换为此处提供的值,并向源发出 GraphQL 查询。
示例:
对于 GraphQL 查询
query getUser($id: ID!) { user(id: $id) { name } }
- 其中
graphql_variables
的值为{"id": "123"}
- 连接器将执行
query getUser { user(id: "123") { name } }
从源提取数据
- 其中
-
graphql_object_to_id_map
(必需) -
GraphQL 响应对象到索引及其 ID 字段之间的 JSON 映射。连接器将提取每个对象(JSON 键)的数据,并使用提供的 ID 字段(JSON 值)将该对象索引到 Elasticsearch 中。连接器将索引映射中指定的每个对象的所有字段。使用点
(.)
表示法来指定从 GraphQL 响应根到所需对象的完整路径。示例:
GraphQL 查询
query getUser { organization { users{ user_id name email} } }
从源提取所有可用用户。要将每个用户索引为单独的文档,请按如下方式配置此字段。{ "organization.users": "user_id" }
在此示例中,
user_id
在每个用户文档中都是唯一的。因此,我们将user_id
设置为organization.users
的值。此字段中提供的路径应仅包含 JSON 对象,而不包含列表。
-
headers
-
包含要与每个 GraphQL 请求一起发送的自定义标头的 JSON 对象
{ "content-type": "Application/json" }
-
pagination_model
(必需) -
此字段指定连接器要使用的分页模型。连接器支持
No pagination
和Cursor-based pagination
分页模型。对于基于游标的分页,请在您想要的节点(
分页键
)处的查询中添加pageInfo {endCursor hasNextPage}
和after
参数变量。将带有变量的after
查询参数用于遍历页面。此字段的默认值为No pagination
。示例对于
Cursor-based pagination
,查询应如下例所示query getUsers($cursor: String!) { sampleData { users(after: $cursor) { pageInfo { endCursor hasNextPage } nodes { first_name last_name address } } } }
pagination_key
的值为sampleData.users
,因此它必须包含-
pageInfo {endCursor hasNextPage}
- 使用基于游标的分页时带有变量的
after
参数
-
-
pagination_key
(必需) -
指定哪个 GraphQL 对象用于分页。使用
.
来提供对象从响应根的完整路径。示例:
-
organization.users
-
-
connection_timeout
- 指定等待 GraphQL 源响应的最大时间(以秒为单位)。默认值为 30 秒。
文档和同步
编辑连接器基于 GraphQL 查询和 GraphQL 对象列表同步对象和实体。
同步类型
编辑默认情况下,所有连接器都支持完整同步。
此连接器当前不支持增量同步。
同步规则
编辑基本同步规则对于所有连接器都是相同的,并且默认情况下可用。
高级同步规则
编辑当前版本中此连接器不提供高级同步规则。
连接器客户端操作
编辑端到端测试
编辑连接器框架使操作员能够使用 Docker Compose 对真实数据源运行功能测试。您不需要运行 Elasticsearch 实例或 GraphQL 源即可运行此测试。
有关更多详细信息,请参阅连接器测试。
要对 GraphQL 连接器执行 E2E 测试,请运行以下命令
$ make ftest NAME=graphql
为了加快测试速度,请添加 DATA_SIZE=small
标志
make ftest NAME=graphql DATA_SIZE=small
默认情况下,DATA_SIZE=MEDIUM
。
已知问题
编辑- 每个文档都将在每次同步中更新。
- 如果同一字段名称在不同对象中存在不同的类型,则连接器可能会引发映射解析器异常。
有关所有连接器的已知问题列表,请参阅已知问题。
故障排除
编辑请参阅故障排除。
安全性
编辑请参阅安全性。