跳到主要内容
版本:Next

Easysearch

Easysearch 源连接器

支持引擎

Spark
Flink
SeaTunnel Zeta

描述

用于从 INFINI Easysearch 读取数据。

使用依赖

依赖 easysearch-client

关键特性

:::提示

支持的引擎

:::

数据类型映射

Easysearch 数据类型SeaTunnel 数据类型
STRING
KEYWORD
TEXT
STRING
BOOLEANBOOLEAN
BYTEBYTE
SHORTSHORT
INTEGERINT
LONGLONG
FLOAT
HALF_FLOAT
FLOAT
DOUBLEDOUBLE
DATELOCAL_DATE_TIME_TYPE

Source 选项

名称类型是否必填默认值描述
hostsarray-Easysearch HTTP 地址。
indexstring-Easysearch 索引名,支持 seatunnel-* 这类通配符匹配。
usernamestring-开启安全认证时使用的用户名。
passwordstring-开启安全认证时使用的密码。
sourcearray-要读取的索引字段。sourceschema 二选一配置。
schemaconfig-SeaTunnel 读取和转换字段时使用的表结构。schemasource 二选一配置。
queryjson{"match_all":{}}用于过滤数据的 Easysearch DSL 查询。
scroll_timestring1mEasysearch 保留 scroll 查询上下文的时间。
scroll_sizeint100每次 scroll 请求最多返回的数据条数。
tls_verify_certificatebooleantrue是否校验 HTTPS 证书。
tls_verify_hostnamebooleantrue是否校验 HTTPS 主机名。
tls_keystore_pathstring-PEM 或 JKS key store 文件路径。
tls_keystore_passwordstring-key store 密码。
tls_truststore_pathstring-PEM 或 JKS trust store 文件路径。
tls_truststore_passwordstring-trust store 密码。
common-optionsconfig-Source 插件通用参数。

hosts [array]

Easysearch 集群 HTTP 地址,格式为 host:port,允许指定多个主机。例如 ["host1:9200", "host2:9200"]

username [string]

安全用户名。

password [string]

安全密码。

index [string]

Easysearch 索引名称,支持 * 通配符匹配。

source [array]

要从索引中读取的字段。

可以通过指定字段 _id 来获取文档 id。如果要把 _id 写入其他 Easysearch 索引,由于 Easysearch 不允许把 _id 当作普通字段写入,需要为 _id 指定别名。

sourceschema 互斥。如果两者都不配置,连接器会从 Easysearch 读取字段映射,并使用索引中的全部映射字段。

query [json]

Easysearch DSL 查询,用于控制读取数据的范围。

scroll_time [String]

Easysearch 为 scroll 请求保留查询上下文的时间。

scroll_size [int]

每次 Easysearch scroll 请求返回的最大数据条数。

schema

数据结构,包括字段名和字段类型。更多详情请参考 Schema 特性

schemasource 互斥。需要用明确的 SeaTunnel 类型定义转换字段时使用 schema。如果两者都不配置,连接器会从 Easysearch 读取字段映射,并使用索引中的全部映射字段。

tls_verify_certificate [boolean]

为HTTPS端点启用证书验证

tls_verify_hostname [boolean]

为HTTPS端点启用主机名验证

tls_keystore_path [string]

PEM或JKS密钥存储的路径。运行SeaTunnel的操作系统用户必须能够读取此文件。

tls_keystore_password [string]

指定密钥存储的密钥密码

tls_truststore_path [string]

PEM或JKS信任存储的路径。运行SeaTunnel的操作系统用户必须能够读取此文件.

tls_truststore_password [string]

指定的信任存储的密钥密码

通用选项

Source 插件通用参数,详见 Source 通用选项

示例

读取指定字段

source {
Easysearch {
hosts = ["localhost:9200"]
index = "seatunnel-*"
source = ["_id", "name", "age"]
query = {"range": {"age": {"gte": 18, "lte": 60}}}
}
}

使用 Schema 和 Query 读取

env {
parallelism = 1
job.mode = "BATCH"
}

source {
Easysearch {
hosts = ["https://e2e_easysearch:9200"]
username = "admin"
password = "admin"
tls_verify_certificate = false
tls_verify_hostname = false

index = "st_index"
query = {"range": {"c_int": {"gte": 10, "lte": 20}}}
schema = {
fields {
c_map = "map<string, tinyint>"
c_array = "array<tinyint>"
c_string = string
c_boolean = boolean
c_tinyint = tinyint
c_smallint = smallint
c_int = int
c_bigint = bigint
c_float = float
c_double = double
c_decimal = "decimal(2, 1)"
c_bytes = bytes
c_date = date
c_timestamp = timestamp
}
}
}
}

sink {
Easysearch {
hosts = ["https://e2e_easysearch:9200"]
username = "admin"
password = "admin"
tls_verify_certificate = false
tls_verify_hostname = false

index = "st_index2"
}
}

SSL (禁用证书验证)

source {
Easysearch {
hosts = ["https://localhost:9200"]
username = "admin"
password = "admin"

tls_verify_certificate = false
}
}

SSL (禁用主机名验证)

source {
Easysearch {
hosts = ["https://localhost:9200"]
username = "admin"
password = "admin"

tls_verify_hostname = false
}
}

SSL (启用证书验证)

source {
Easysearch {
hosts = ["https://localhost:9200"]
username = "admin"
password = "admin"

tls_keystore_path = "${your Easysearch home}/config/certs/http.p12"
tls_keystore_password = "${your password}"
}
}

变更日志