This is an automated email from the ASF dual-hosted git repository.
github-merge-queue[bot] pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/seatunnel.git
The following commit(s) were added to refs/heads/dev by this push:
new 9aeb282b2d [Docs] Fix option and config inaccuracies across transform,
Zeta engine and connector docs (#12423)
9aeb282b2d is described below
commit 9aeb282b2d20052db523c5b0cfe54fa8d397ce5e
Author: Jast <[email protected]>
AuthorDate: Sun Oct 25 14:33:43 2026 +0000
[Docs] Fix option and config inaccuracies across transform, Zeta engine and
connector docs (#12423)
Co-authored-by: jast <[email protected]>
Co-authored-by: David Zollo <[email protected]>
Co-authored-by: Claude Sonnet 5.5 <[email protected]>
---
docs/en/connectors/sink/AmazonDynamoDB.md | 2 +-
docs/en/engines/zeta/stain-trace.md | 4 +-
docs/en/engines/zeta/telemetry.md | 13 ++-
docs/en/transforms/embedding.md | 4 +-
docs/en/transforms/filter-rowkind.md | 2 +-
docs/en/transforms/llm.md | 31 +++---
docs/zh/connectors/sink/AmazonDynamoDB.md | 2 +-
docs/zh/connectors/sink/Doris.md | 176 ++++++++++++++++++++++++++++++
docs/zh/engines/zeta/rest-api-v2.md | 7 ++
docs/zh/engines/zeta/stain-trace.md | 4 +-
docs/zh/engines/zeta/telemetry.md | 11 ++
docs/zh/transforms/embedding.md | 2 +
docs/zh/transforms/filter-rowkind.md | 2 +-
docs/zh/transforms/llm.md | 7 +-
14 files changed, 239 insertions(+), 28 deletions(-)
diff --git a/docs/en/connectors/sink/AmazonDynamoDB.md
b/docs/en/connectors/sink/AmazonDynamoDB.md
index 93261bedb5..c4721790f6 100644
--- a/docs/en/connectors/sink/AmazonDynamoDB.md
+++ b/docs/en/connectors/sink/AmazonDynamoDB.md
@@ -32,7 +32,7 @@ The target table must already exist. The connector writes
each row as a DynamoDB
| secret_access_key | string | yes | - | AWS secret access
key. |
| table | string | yes | - | DynamoDB table
name to write to. |
| batch_size | int | no | 25 | Records buffered
for one batch write request. |
-| multi_table_sink_replica | int | no | - | Sink writer
replicas for each table. |
+| multi_table_sink_replica | int | no | 1 | Sink writer
replicas for each table. |
| max_retries | int | no | 10 | Retries for
unprocessed items. Must be at least `0`. |
| retry_base_delay_ms | long | no | 100 | Initial retry
backoff delay in milliseconds. |
| retry_max_delay_ms | long | no | 5000 | Maximum retry
backoff delay in milliseconds. |
diff --git a/docs/en/engines/zeta/stain-trace.md
b/docs/en/engines/zeta/stain-trace.md
index 8474064d7d..91686b9be2 100644
--- a/docs/en/engines/zeta/stain-trace.md
+++ b/docs/en/engines/zeta/stain-trace.md
@@ -69,7 +69,7 @@ Edit `seatunnel.yaml`:
seatunnel:
engine:
stain-trace-enabled: true
- stain-trace-sample-interval: 100000 # Sample 1 out of 100k records
+ stain-trace-sample-rate: 100000 # Sample 1 out of 100k records
stain-trace-file-base-path: /data/seatunnel/traces # Required for local
trace files; no default
```
@@ -119,7 +119,7 @@ open report.html
| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| stain-trace-enabled | boolean | false | Master switch to enable tracing |
-| stain-trace-sample-interval | int | 100000 | Sample 1 out of every N records
|
+| stain-trace-sample-rate | int | 100000 | Sample 1 out of every N records.
The legacy name `stain-trace-sample-interval` is still accepted as a
backward-compatible alias |
| stain-trace-max-traces-per-second-per-worker | int | 50 | Max traces per
worker per second |
| stain-trace-max-entries-per-trace | int | 32 | Max stage entries per trace |
| stain-trace-propagate-to-all-splits | boolean | false | Propagate to all
split outputs |
diff --git a/docs/en/engines/zeta/telemetry.md
b/docs/en/engines/zeta/telemetry.md
index 1048758360..a1323de696 100644
--- a/docs/en/engines/zeta/telemetry.md
+++ b/docs/en/engines/zeta/telemetry.md
@@ -21,6 +21,17 @@ seatunnel:
## Metrics
+> [!NOTE]
+> The metrics endpoints are served through the Hazelcast REST API, which is
**disabled by default** in the shipped
+> `config/hazelcast.yaml`. Before scraping, enable it in `hazelcast.yaml` on
every node:
+>
+> ```yaml
+> hazelcast:
+> network:
+> rest-api:
+> enabled: true
+> ```
+
The metric text of prometheus can be obtained from
`http://{instanceHost}:5801/hazelcast/rest/instance/metrics`.
The metric text of openMetrics can be obtained from
`http://{instanceHost}:5801/hazelcast/rest/instance/openmetrics`.
@@ -146,7 +157,7 @@ These metrics are exported by the active master only;
scraping a worker node's e
| job_thread_pool_queueTaskCount | Gauge | **address**, server instance
address,for example: "127.0.0.1:5801" | The queueTaskCount of seatunnel
coordinator job's executor cached thread pool |
| job_thread_pool_completedTask_total | Counter | **address**, server instance
address,for example: "127.0.0.1:5801" | The completedTask of seatunnel
coordinator job's executor cached thread pool |
| job_thread_pool_task_total | Counter | **address**, server instance
address,for example: "127.0.0.1:5801" | The taskCount of seatunnel coordinator
job's executor cached thread pool |
-| job_thread_pool_rejection_total | Counter | **address**, server instance
address,for example: "127.0.0.1:5801" | The rejectionCount of seatunnel
coordinator job's executor cached thread pool |
|
+| job_thread_pool_rejection_total | Counter | **address**, server instance
address,for example: "127.0.0.1:5801" | The rejectionCount of seatunnel
coordinator job's executor cached thread pool |
### Report Metrics Operation
diff --git a/docs/en/transforms/embedding.md b/docs/en/transforms/embedding.md
index 206d78161f..7b2b27b15b 100644
--- a/docs/en/transforms/embedding.md
+++ b/docs/en/transforms/embedding.md
@@ -48,11 +48,13 @@ you can choose `CUSTOM` to implement requests and
retrievals for custom embeddin
### api_key
The API key for authenticating requests to the embedding service. This is
typically provided by the model provider when
-you register for their service.
+you register for their service. For `AMAZON` this is the IAM access key. This
option is required when `model_provider`
+is `AMAZON`, `OPENAI`, `DOUBAO` or `QIANFAN`, and not required for other
providers.
### secret_key
The secret key used for additional authentication. Some providers may require
this for secure API requests.
+This option is required when `model_provider` is `AMAZON` or `QIANFAN`.
### single_vectorized_input_number
diff --git a/docs/en/transforms/filter-rowkind.md
b/docs/en/transforms/filter-rowkind.md
index d372e8a28f..14946b2a1b 100644
--- a/docs/en/transforms/filter-rowkind.md
+++ b/docs/en/transforms/filter-rowkind.md
@@ -23,7 +23,7 @@ The row kinds to include
The row kinds to exclude.
-You can only config one of `include_kinds` and `exclude_kinds`.
+You must configure exactly one of `include_kinds` and `exclude_kinds`;
configuring both is not allowed.
### common options [string]
diff --git a/docs/en/transforms/llm.md b/docs/en/transforms/llm.md
index 8609e54d02..1b7f169092 100644
--- a/docs/en/transforms/llm.md
+++ b/docs/en/transforms/llm.md
@@ -10,21 +10,21 @@ more.
## Options
-| name | type | required | default value |
-|------------------------|--------|----------|---------------|
-| model_provider | enum | yes | |
-| output_data_type | enum | no | String |
+| name | type | required
| default value |
+|----------------------------|--------|---------------------------------------|---------------|
+| model_provider | enum | yes
| |
+| output_data_type | enum | no
| String |
| strict_boolean_output | boolean | no | false |
-| output_column_name | string | no | llm_output |
-| prompt | string | yes | |
-| inference_columns | list | no | |
-| model | string | yes | |
-| api_key | string | yes | |
-| api_path | string | no | |
-| custom_config | map | no | |
-| custom_response_parse | string | no | |
-| custom_request_headers | map | no | |
-| custom_request_body | map | no | |
+| output_column_name | string | no
| llm_output |
+| prompt | string | yes
| |
+| inference_columns | list | no
| |
+| model | string | yes
| |
+| api_key | string | yes | |
+| api_path | string | no
| |
+| custom_config | map | no
| |
+| custom_response_parse | string | no
| |
+| custom_request_headers | map | no
| |
+| custom_request_body | map | no
| |
### model_provider
@@ -32,7 +32,6 @@ The model provider to use. The available options are:
OPENAI, DOUBAO, DEEPSEEK, KIMIAI, MICROSOFT, ZHIPU, CUSTOM
> tips: If you use Microsoft, please make sure api_path cannot be empty
-
### output_data_type
The data type of the output data. The available options are:
@@ -116,6 +115,8 @@ If you use an OpenAI model, please refer to
https://developers.openai.com/api/do
The API key to use for the model provider.
If you use OpenAI model, please refer
https://help.openai.com/en/articles/4936850-how-to-create-and-use-an-api-key
for how to get the API key.
+This option is required when `model_provider` is `OPENAI`, `DOUBAO` or
`MICROSOFT`.
+
This option is not used when `model_provider` is `CUSTOM`; in that case the
request is fully described by `custom_config`.
### api_path
diff --git a/docs/zh/connectors/sink/AmazonDynamoDB.md
b/docs/zh/connectors/sink/AmazonDynamoDB.md
index 8d0fde0d4d..21e32a9c3e 100644
--- a/docs/zh/connectors/sink/AmazonDynamoDB.md
+++ b/docs/zh/connectors/sink/AmazonDynamoDB.md
@@ -32,7 +32,7 @@ Amazon DynamoDB 写入连接器用于将 SeaTunnel 数据行写入 DynamoDB 表
| secret_access_key | string | 是 | - | AWS secret access key。 |
| table | string | 是 | - | 要写入的 DynamoDB 表名。 |
| batch_size | int | 否 | 25 | 一次批量写入请求缓存的记录数。 |
-| multi_table_sink_replica | int | 否 | - | 每张表对应的 Sink Writer 副本数。 |
+| multi_table_sink_replica | int | 否 | 1 | 每张表对应的 Sink Writer 副本数。 |
| max_retries | int | 否 | 10 | 未处理 item 的最大重试次数,必须大于等于 `0`。 |
| retry_base_delay_ms | long | 否 | 100 | 初始重试等待时间,单位毫秒。 |
| retry_max_delay_ms | long | 否 | 5000 | 最大重试等待时间,单位毫秒。 |
diff --git a/docs/zh/connectors/sink/Doris.md b/docs/zh/connectors/sink/Doris.md
index 65fa3fad23..b85c4feddc 100644
--- a/docs/zh/connectors/sink/Doris.md
+++ b/docs/zh/connectors/sink/Doris.md
@@ -478,6 +478,182 @@ sink {
}
```
+### 自定义 SQL 预处理
+
+当 `data_save_mode = "CUSTOM_PROCESSING"` 时,`custom_sql` 中配置的 SQL
会在同步任务读取数据之前在目标
+Doris 集群上执行。这样可以在连接器常规写入路径之外准备、清理或初始化目标表。此后连接器仍通过
+Stream Load 写入数据。
+
+```hocon
+env {
+ parallelism = 1
+ job.mode = "BATCH"
+}
+
+source {
+ FakeSource {
+ row.num = 100
+ schema = {
+ fields {
+ F_ID = bigint
+ F_INT = int
+ F_BIGINT = bigint
+ }
+ }
+ }
+}
+
+sink {
+ Doris {
+ fenodes = "doris_e2e:8030"
+ username = root
+ password = ""
+ database = "e2e_sink"
+ table = "doris_e2e_unique_table"
+ data_save_mode = "CUSTOM_PROCESSING"
+ custom_sql = "INSERT INTO e2e_sink.doris_e2e_unique_table (F_ID, F_INT,
F_BIGINT) VALUES (1, 123, 1234567890123);"
+ sink.enable-2pc = true
+ sink.label-prefix = "test_custom_sql"
+ save_mode_create_template = """CREATE TABLE IF NOT EXISTS
`${database}`.`${table}` (${rowtype_fields}) ENGINE=OLAP UNIQUE KEY (`F_ID`)
DISTRIBUTED BY HASH (`F_ID`) PROPERTIES ("replication_allocation" =
"tag.location.default: 1")"""
+ doris.config = {
+ format = "json"
+ read_json_by_line = "true"
+ }
+ }
+}
+```
+
+### CDC 与 Schema 变更
+
+该示例展示 MySQL-CDC 以 `schema-changes.enabled = true` 流式写入 Doris,使上游 MySQL 源的加列、
+类型扩宽等 DDL 变更能同步应用到目标 Doris 表。
+
+```hocon
+env {
+ parallelism = 1
+ job.mode = "STREAMING"
+ checkpoint.interval = 2000
+}
+
+source {
+ MySQL-CDC {
+ server-id = 5652-5657
+ username = "st_user_source"
+ password = "mysqlpw"
+ table-names = ["shop.products"]
+ url = "jdbc:mysql://mysql_cdc_e2e:3306/shop"
+
+ schema-changes.enabled = true
+ }
+}
+
+sink {
+ Doris {
+ fenodes = "doris_cdc_e2e:8030"
+ username = "root"
+ password = ""
+ database = "shop"
+ table = "products"
+ sink.label-prefix = "test-cdc"
+ sink.enable-2pc = true
+ sink.enable-delete = true
+ doris.config {
+ format = "json"
+ read_json_by_line = "true"
+ }
+ }
+}
+```
+
+### 多表
+
+#### 示例 1
+
+```hocon
+env {
+ parallelism = 1
+ job.mode = "STREAMING"
+ checkpoint.interval = 5000
+}
+
+source {
+ Mysql-CDC {
+ url = "jdbc:mysql://127.0.0.1:3306/seatunnel"
+ username = "root"
+ password = "******"
+
+ table-names = ["seatunnel.role","seatunnel.user","galileo.Bucket"]
+ }
+}
+
+transform {
+}
+
+sink {
+ Doris {
+ fenodes = "doris_cdc_e2e:8030"
+ username = root
+ password = ""
+ database = "${database_name}_test"
+ table = "${table_name}_test"
+ sink.label-prefix = "test-cdc"
+ sink.enable-2pc = "true"
+ sink.enable-delete = "true"
+ doris.config {
+ format = "json"
+ read_json_by_line = "true"
+ }
+ }
+}
+```
+
+#### 示例 2
+
+```hocon
+env {
+ parallelism = 1
+ job.mode = "BATCH"
+}
+
+source {
+ Jdbc {
+ driver = oracle.jdbc.driver.OracleDriver
+ url = "jdbc:oracle:thin:@localhost:1521/XE"
+ user = testUser
+ password = testPassword
+
+ table_list = [
+ {
+ table_path = "TESTSCHEMA.TABLE_1"
+ },
+ {
+ table_path = "TESTSCHEMA.TABLE_2"
+ }
+ ]
+ }
+}
+
+transform {
+}
+
+sink {
+ Doris {
+ fenodes = "doris_cdc_e2e:8030"
+ username = root
+ password = ""
+ database = "${schema_name}_test"
+ table = "${table_name}_test"
+ sink.label-prefix = "test-cdc"
+ sink.enable-2pc = "true"
+ sink.enable-delete = "true"
+ doris.config {
+ format = "json"
+ read_json_by_line = "true"
+ }
+ }
+}
+```
+
## 常见问题
### Doris Sink 支持自动建表吗?
diff --git a/docs/zh/engines/zeta/rest-api-v2.md
b/docs/zh/engines/zeta/rest-api-v2.md
index d4f8406e61..404db94d8d 100644
--- a/docs/zh/engines/zeta/rest-api-v2.md
+++ b/docs/zh/engines/zeta/rest-api-v2.md
@@ -1851,6 +1851,13 @@ Checkpoint 信息字段:
</details>
+#### 字段说明
+
+| 字段 | 说明 |
+| --- | --- |
+| `pipelineId` | 该记录所属的 pipeline ID。 |
+| `checkpoint` | 上文所述的 Checkpoint 元数据。 |
+
------------------------------------------------------------------------------------------
### 获取作业实时可观测性指标(内存时序,realtime)
diff --git a/docs/zh/engines/zeta/stain-trace.md
b/docs/zh/engines/zeta/stain-trace.md
index fd1b607d14..8e940fda0f 100644
--- a/docs/zh/engines/zeta/stain-trace.md
+++ b/docs/zh/engines/zeta/stain-trace.md
@@ -69,7 +69,7 @@ StainTrace 是 SeaTunnel 的数据血缘与端到端性能追踪系统,用于
seatunnel:
engine:
stain-trace-enabled: true
- stain-trace-sample-interval: 100000 # 每 10 万条采样 1 条
+ stain-trace-sample-rate: 100000 # 每 10 万条采样 1 条
stain-trace-file-base-path: /data/seatunnel/traces # 本地追踪文件目录,必须显式配置,默认不启用
```
@@ -117,7 +117,7 @@ open report.html
| 参数 | 类型 | 默认值 | 说明 |
|-----|------|--------|------|
| stain-trace-enabled | boolean | false | 启用追踪的主开关 |
-| stain-trace-sample-interval | int | 100000 | 每 N 条记录采样 1 条 |
+| stain-trace-sample-rate | int | 100000 | 每 N 条记录采样 1 条。旧名称
`stain-trace-sample-interval` 仍作为兼容别名被接受 |
| stain-trace-max-traces-per-second-per-worker | int | 50 | 每个 Worker 每秒最大追踪数 |
| stain-trace-max-entries-per-trace | int | 32 | 每条追踪最大阶段条目数 |
| stain-trace-propagate-to-all-splits | boolean | false | 是否传播到所有分裂输出 |
diff --git a/docs/zh/engines/zeta/telemetry.md
b/docs/zh/engines/zeta/telemetry.md
index 25a56b430a..e27b2afa91 100644
--- a/docs/zh/engines/zeta/telemetry.md
+++ b/docs/zh/engines/zeta/telemetry.md
@@ -22,6 +22,17 @@ seatunnel:
## 指标
+> [!NOTE]
+> 指标接口通过 Hazelcast REST API 提供,而发行包中 `config/hazelcast.yaml` 默认**关闭**了 REST
API。
+> 抓取指标前,需要在每个节点的 `hazelcast.yaml` 中启用它:
+>
+> ```yaml
+> hazelcast:
+> network:
+> rest-api:
+> enabled: true
+> ```
+
Prometheus 的指标文本可通过
`http://{instanceHost}:5801/hazelcast/rest/instance/metrics` 获取。
OpenMetrics 的指标文本可通过
`http://{instanceHost}:5801/hazelcast/rest/instance/openmetrics` 获取。
diff --git a/docs/zh/transforms/embedding.md b/docs/zh/transforms/embedding.md
index 5e7cd95e18..c0cd0d6991 100644
--- a/docs/zh/transforms/embedding.md
+++ b/docs/zh/transforms/embedding.md
@@ -46,10 +46,12 @@ Embedding 转换插件利用 embedding 模型将文本和多模态数据转换
### api_key
用于验证 embedding 服务请求的API密钥。通常由模型提供商在你注册他们的服务时提供,对于使用`AMAZON` 模型则对应IAM access
key。
+当 `model_provider` 为 `AMAZON`、`OPENAI`、`DOUBAO` 或 `QIANFAN` 时该选项必填,其他提供商无需配置。
### secret_key
用于额外验证的密钥。一些提供商可能要求此密钥以确保API请求的安全性。
+当 `model_provider` 为 `AMAZON` 或 `QIANFAN` 时该选项必填。
### single_vectorized_input_number
diff --git a/docs/zh/transforms/filter-rowkind.md
b/docs/zh/transforms/filter-rowkind.md
index bea844a544..47ef0ded08 100644
--- a/docs/zh/transforms/filter-rowkind.md
+++ b/docs/zh/transforms/filter-rowkind.md
@@ -23,7 +23,7 @@ FilterRowKind 转换插件用于按 RowKind 过滤数据。
要排除的行类型。
-您只能配置 `include_kinds` 和 `exclude_kinds` 中的一个。
+您必须且只能配置 `include_kinds` 和 `exclude_kinds` 中的一个,不能同时配置。
### common options [string]
diff --git a/docs/zh/transforms/llm.md b/docs/zh/transforms/llm.md
index b342a83f08..7853d72eff 100644
--- a/docs/zh/transforms/llm.md
+++ b/docs/zh/transforms/llm.md
@@ -8,7 +8,7 @@ LLM 转换插件利用大型语言模型(LLM)的能力处理数据,将输
## 属性
-| 名称 | 类型 | 是否必须 | 默认值 |
+| 名称 | 类型 | 是否必须 | 默认值 |
|------------------------| ------ | -------- |-------------|
| model_provider | enum | yes | |
| output_data_type | enum | no | String |
@@ -17,7 +17,7 @@ LLM 转换插件利用大型语言模型(LLM)的能力处理数据,将输
| prompt | string | yes | |
| inference_columns | list | no | |
| model | string | yes | |
-| api_key | string | yes | |
+| api_key | string | yes | |
| api_path | string | no | |
| custom_config | map | no | |
| custom_response_parse | string | no | |
@@ -30,7 +30,6 @@ LLM 转换插件利用大型语言模型(LLM)的能力处理数据,将输
OPENAI,DOUBAO,DEEPSEEK,KIMIAI,MICROSOFT, ZHIPU, CUSTOM
> tips: 如果使用 Microsoft, 请确保 api_path 配置不能为空
-
### output_data_type
输出数据的数据类型。可用选项为:
@@ -111,6 +110,8 @@ transform {
用于模型提供者的 API 密钥。
如果使用 OpenAI 模型,请参考
https://help.openai.com/en/articles/4936850-how-to-create-and-use-an-api-key
文档了解如何获取 API 密钥。
+当 `model_provider` 为 `OPENAI`、`DOUBAO` 或 `MICROSOFT` 时该选项必填。
+
当 `model_provider` 为 `CUSTOM` 时,不会使用此选项,此时请求完全由 `custom_config` 描述。
### api_path