This is an automated email from the ASF dual-hosted git repository.

davidzollo 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 da366cc1fa [Docs][Connector-V2] Improve Google Bigtable connector docs 
(#11371)
da366cc1fa is described below

commit da366cc1fa85cc2b61d014596879e2b2a2b82bf2
Author: Daniel Carter <[email protected]>
AuthorDate: Tue Jul 7 17:51:19 2026 +0800

    [Docs][Connector-V2] Improve Google Bigtable connector docs (#11371)
---
 docs/en/connectors/sink/GoogleBigtable.md   |  46 +++++++++++
 docs/en/connectors/source/GoogleBigtable.md |  36 ++++++++-
 docs/zh/connectors/sink/GoogleBigtable.md   | 114 ++++++++++++++++++++++++++-
 docs/zh/connectors/source/GoogleBigtable.md | 118 +++++++++++++++++++++++++++-
 4 files changed, 307 insertions(+), 7 deletions(-)

diff --git a/docs/en/connectors/sink/GoogleBigtable.md 
b/docs/en/connectors/sink/GoogleBigtable.md
index 55b96cf398..a57905e2bc 100644
--- a/docs/en/connectors/sink/GoogleBigtable.md
+++ b/docs/en/connectors/sink/GoogleBigtable.md
@@ -12,6 +12,7 @@ Writes data to Google Cloud Bigtable using the native 
Bigtable Data v2 Java clie
 
 - [ ] [exactly-once](../../introduction/concepts/connector-v2-features.md)
 - [x] [batch](../../introduction/concepts/connector-v2-features.md)
+- [x] [support multiple table 
write](../../introduction/concepts/connector-v2-features.md)
 
 ## Options
 
@@ -27,6 +28,9 @@ Writes data to Google Cloud Bigtable using the native 
Bigtable Data v2 Java clie
 | version_column      | string  | no       | -             |
 | null_mode           | string  | no       | skip          |
 | batch_mutation_size | int     | no       | 100           |
+| schema_save_mode    | enum    | no       | RECREATE_SCHEMA |
+| data_save_mode      | enum    | no       | APPEND_DATA   |
+| multi_table_sink_replica | int | no       | -             |
 | common-options      |         | no       | -             |
 
 ### project_id [string]
@@ -91,6 +95,22 @@ How to handle `null` field values. Supported: `skip` 
(default), `empty`.
 
 Number of row mutations to accumulate before sending a BulkMutation to 
Bigtable. Default is `100`. Increase for higher throughput at the cost of 
higher per-task memory usage.
 
+### schema_save_mode [enum]
+
+Schema save mode. Only `RECREATE_SCHEMA` is supported now.
+
+The connector does not create Bigtable tables or column families. Create the 
target table and all column families before the job starts.
+
+### data_save_mode [enum]
+
+Data save mode. Only `APPEND_DATA` is supported now.
+
+`DROP_DATA` and `ERROR_WHEN_DATA_EXISTS` are not implemented for this 
connector. If you need a clean target, truncate or recreate the Bigtable table 
before running the job.
+
+### multi_table_sink_replica [int]
+
+The number of sink replicas used for multi-table writing. For details, see 
[Sink Common Options](../common-options/sink-common-options.md).
+
 ### common options
 
 Sink plugin common parameters, please refer to [Sink Common 
Options](../common-options/sink-common-options.md) for details.
@@ -115,6 +135,12 @@ All SeaTunnel types are supported:
 | TIME                         | UTF-8 `HH:mm:ss`                |
 | TIMESTAMP                    | UTF-8 `yyyy-MM-dd HH:mm:ss`     |
 
+:::tip
+
+Bigtable does not have relational columns. The sink writes every non-row-key 
field as a Bigtable cell. The target column family is selected by 
`column_family`; the Bigtable qualifier is the SeaTunnel field name.
+
+:::
+
 ## Example
 
 ### Basic — Application Default Credentials
@@ -171,6 +197,26 @@ sink {
 }
 ```
 
+### Use a version column and empty null values
+
+```hocon
+sink {
+  GoogleBigtable {
+    project_id       = "my-gcp-project"
+    instance_id      = "my-bigtable-instance"
+    table            = "events"
+    rowkey_column    = ["tenant_id", "event_id"]
+    rowkey_delimiter = "#"
+    version_column   = "event_ts"
+    null_mode        = "empty"
+    column_family {
+      all_columns = "data"
+      event_type  = "meta"
+    }
+  }
+}
+```
+
 ## Changelog
 
 <ChangeLog />
diff --git a/docs/en/connectors/source/GoogleBigtable.md 
b/docs/en/connectors/source/GoogleBigtable.md
index b511aa38c7..64e4d2d39c 100644
--- a/docs/en/connectors/source/GoogleBigtable.md
+++ b/docs/en/connectors/source/GoogleBigtable.md
@@ -15,6 +15,12 @@ Reads data from Google Cloud Bigtable using the native 
Bigtable Data v2 Java cli
 - [ ] [exactly-once](../../introduction/concepts/connector-v2-features.md)
 - [ ] [parallelism](../../introduction/concepts/connector-v2-features.md)
 
+:::tip
+
+The source is bounded. It creates one split for the configured table or 
row-key range, so increasing job parallelism does not split one Bigtable scan 
into multiple tablet-range reads.
+
+:::
+
 ## Options
 
 | name             | type   | required | default value |
@@ -50,7 +56,7 @@ Path to the Google Cloud service account JSON key file. If 
omitted, Application
 
 ### rowkey_column [list]
 
-Optional list of field names that should receive the row key value. Declare a 
field named `rowkey` in your schema to capture the raw row key bytes as a 
`BYTES` or `STRING` field.
+Optional list of field names that should receive the row key value. If this 
option is not set, the connector uses a schema field named `rowkey` as the 
row-key field. The row-key field can be declared as `BYTES` or `STRING`.
 
 ### start_rowkey [string]
 
@@ -82,7 +88,7 @@ Source plugin common parameters, please refer to [Source 
Common Options](../comm
 
 ## Schema Mapping
 
-Field names in the SeaTunnel schema must follow the pattern 
`familyName:qualifier`, for example `cf:name` or `stats:age`. The special field 
name `rowkey` maps to the Bigtable row key.
+Field names in the SeaTunnel schema must follow the pattern 
`familyName:qualifier`, for example `cf:name` or `stats:age`. The row-key field 
is controlled by `rowkey_column`; if it is not configured, the special field 
name `rowkey` maps to the Bigtable row key.
 
 | Schema field name | Mapped Bigtable cell        |
 |-------------------|-----------------------------|
@@ -90,6 +96,12 @@ Field names in the SeaTunnel schema must follow the pattern 
`familyName:qualifie
 | `cf:name`         | Column family `cf`, qualifier `name` |
 | `stats:age`       | Column family `stats`, qualifier `age` |
 
+:::tip
+
+The source reads the latest returned cell for each `family:qualifier` field. 
Use `start_timestamp`, `end_timestamp`, and `max_versions` to control the 
Bigtable scan filter. SeaTunnel field types must match the bytes stored in 
Bigtable. For example, numeric values written by this connector are binary 
big-endian values, while `STRING`, `DATE`, `TIME`, `TIMESTAMP`, and `DECIMAL` 
are UTF-8 text.
+
+:::
+
 ## Example
 
 ### Read all rows — Application Default Credentials
@@ -134,6 +146,26 @@ source {
 }
 ```
 
+### Use a custom row-key field name
+
+```hocon
+source {
+  GoogleBigtable {
+    project_id    = "my-gcp-project"
+    instance_id   = "my-bigtable-instance"
+    table         = "events"
+    rowkey_column = ["event_id"]
+    schema {
+      fields {
+        event_id  = STRING
+        "cf:type" = STRING
+        "cf:data" = STRING
+      }
+    }
+  }
+}
+```
+
 ## Changelog
 
 <ChangeLog />
diff --git a/docs/zh/connectors/sink/GoogleBigtable.md 
b/docs/zh/connectors/sink/GoogleBigtable.md
index 65fd4f927d..4d05bc81be 100644
--- a/docs/zh/connectors/sink/GoogleBigtable.md
+++ b/docs/zh/connectors/sink/GoogleBigtable.md
@@ -11,7 +11,8 @@ import ChangeLog from 
'../changelog/connector-google-bigtable.md';
 ## 主要特性
 
 - [ ] [exactly-once](../../introduction/concepts/connector-v2-features.md)
-- [x] [batch](../../introduction/concepts/connector-v2-features.md)
+- [x] [批处理](../../introduction/concepts/connector-v2-features.md)
+- [x] [支持多表写入](../../introduction/concepts/connector-v2-features.md)
 
 ## 参数
 
@@ -27,6 +28,9 @@ import ChangeLog from 
'../changelog/connector-google-bigtable.md';
 | version_column     | string  | 否     | -    |
 | null_mode          | string  | 否     | skip |
 | batch_mutation_size| int     | 否     | 100  |
+| schema_save_mode   | enum    | 否     | RECREATE_SCHEMA |
+| data_save_mode     | enum    | 否     | APPEND_DATA |
+| multi_table_sink_replica | int | 否    | -    |
 | common-options     |         | 否     | -    |
 
 ### project_id [string]
@@ -82,10 +86,58 @@ Google Cloud 服务账号 JSON 密钥文件路径。未设置时使用应用默
 
 ### batch_mutation_size [int]
 
-每次批量提交的行数,默认 `100`。
+每次批量提交的行数,默认 `100`。调大该值可以提高吞吐,但会增加每个任务本地缓存的数据量。
+
+### schema_save_mode [enum]
+
+Schema 保存模式。当前只支持 `RECREATE_SCHEMA`。
+
+连接器不会自动创建 Bigtable 表或列族。运行作业前,需要先在 Bigtable 中创建好目标表和所有会用到的列族。
+
+### data_save_mode [enum]
+
+数据保存模式。当前只支持 `APPEND_DATA`。
+
+本连接器暂不支持 `DROP_DATA` 和 `ERROR_WHEN_DATA_EXISTS`。如果需要干净的目标表,请在运行作业前手动清空或重建 
Bigtable 表。
+
+### multi_table_sink_replica [int]
+
+多表写入时使用的 Sink 副本数。更多说明请参考 [Sink Common 
Options](../common-options/sink-common-options.md)。
+
+### common options
+
+Sink 插件通用参数,详见 [Sink Common Options](../common-options/sink-common-options.md)。
+
+## 数据类型
+
+Bigtable 没有关系型数据库那样的列类型。连接器会按如下格式把 SeaTunnel 字段写入 Bigtable Cell:
+
+| SeaTunnel 类型 | Bigtable 中的保存格式 |
+|----------------|----------------------|
+| TINYINT        | 1 字节二进制 |
+| SMALLINT       | 2 字节大端二进制 |
+| INT            | 4 字节大端二进制 |
+| BIGINT         | 8 字节大端二进制 |
+| FLOAT          | 4 字节 IEEE 754 大端二进制 |
+| DOUBLE         | 8 字节 IEEE 754 大端二进制 |
+| BOOLEAN        | 1 字节,`1` 表示 true,`0` 表示 false |
+| BYTES          | 原始字节 |
+| STRING         | UTF-8 文本 |
+| DECIMAL        | UTF-8 普通数字字符串 |
+| DATE           | UTF-8 `yyyy-MM-dd` |
+| TIME           | UTF-8 `HH:mm:ss` |
+| TIMESTAMP      | UTF-8 `yyyy-MM-dd HH:mm:ss` |
+
+:::tip
+
+Sink 会把非行键字段写成 Bigtable Cell。目标列族由 `column_family` 决定,Bigtable 的列限定符使用 
SeaTunnel 字段名。
+
+:::
 
 ## 示例
 
+### 使用应用默认凭证写入
+
 ```hocon
 sink {
   GoogleBigtable {
@@ -100,6 +152,64 @@ sink {
 }
 ```
 
+### 使用服务账号和复合行键写入
+
+```hocon
+sink {
+  GoogleBigtable {
+    project_id       = "my-gcp-project"
+    instance_id      = "my-bigtable-instance"
+    table            = "events"
+    credentials_path = "/secrets/sa-key.json"
+    rowkey_column    = ["tenant_id", "event_id"]
+    rowkey_delimiter = "#"
+    column_family {
+      all_columns = "data"
+    }
+    batch_mutation_size = 500
+  }
+}
+```
+
+### 写入多个列族
+
+```hocon
+sink {
+  GoogleBigtable {
+    project_id  = "my-gcp-project"
+    instance_id = "my-bigtable-instance"
+    table       = "user_profile"
+    rowkey_column = ["user_id"]
+    column_family {
+      name       = "identity"
+      email      = "identity"
+      age        = "stats"
+      last_login = "stats"
+    }
+  }
+}
+```
+
+### 使用版本列并把空值写成空字节
+
+```hocon
+sink {
+  GoogleBigtable {
+    project_id       = "my-gcp-project"
+    instance_id      = "my-bigtable-instance"
+    table            = "events"
+    rowkey_column    = ["tenant_id", "event_id"]
+    rowkey_delimiter = "#"
+    version_column   = "event_ts"
+    null_mode        = "empty"
+    column_family {
+      all_columns = "data"
+      event_type  = "meta"
+    }
+  }
+}
+```
+
 ## Changelog
 
 <ChangeLog />
diff --git a/docs/zh/connectors/source/GoogleBigtable.md 
b/docs/zh/connectors/source/GoogleBigtable.md
index ea1b4e8190..b690d4496b 100644
--- a/docs/zh/connectors/source/GoogleBigtable.md
+++ b/docs/zh/connectors/source/GoogleBigtable.md
@@ -10,9 +10,16 @@ import ChangeLog from 
'../changelog/connector-google-bigtable.md';
 
 ## 主要特性
 
-- [x] [batch](../../introduction/concepts/connector-v2-features.md)
-- [ ] [parallelism](../../introduction/concepts/connector-v2-features.md)
+- [x] [批处理](../../introduction/concepts/connector-v2-features.md)
+- [ ] [流处理](../../introduction/concepts/connector-v2-features.md)
 - [ ] [exactly-once](../../introduction/concepts/connector-v2-features.md)
+- [ ] [并行度](../../introduction/concepts/connector-v2-features.md)
+
+:::tip
+
+该 Source 是有界读取。当前只会为配置的表或行键范围生成一个切分,所以提高作业并行度不会把一次 Bigtable 扫描拆成多个 tablet 
范围并发读取。
+
+:::
 
 ## 参数
 
@@ -31,12 +38,74 @@ import ChangeLog from 
'../changelog/connector-google-bigtable.md';
 | scan_row_limit  | int    | 否     | -1   |
 | common-options  |        | 否     | -    |
 
+### project_id [string]
+
+Google Cloud 项目 ID。
+
+### instance_id [string]
+
+Bigtable 实例 ID。
+
+### table [string]
+
+要读取的 Bigtable 表名。
+
+### credentials_path [string]
+
+Google Cloud 服务账号 JSON 密钥文件路径。未设置时使用应用默认凭证(ADC)。
+
+### rowkey_column [list]
+
+用于接收 Bigtable 行键的字段名列表。未设置时,连接器默认把名为 `rowkey` 的字段当作行键字段。行键字段可以声明为 `BYTES` 或 
`STRING`。
+
+### start_rowkey [string]
+
+扫描起始行键,包含该行键。未设置时从表起始位置读取。
+
+### end_rowkey [string]
+
+扫描结束行键,不包含该行键。未设置时读取到表末尾。
+
+### start_timestamp [long]
+
+Cell 时间戳过滤的起始值,包含该时间戳,单位是微秒。
+
+### end_timestamp [long]
+
+Cell 时间戳过滤的结束值,不包含该时间戳,单位是微秒。
+
+### max_versions [int]
+
+每个列限定符最多返回的 Cell 版本数。默认值 `1` 表示只读取最新版本。
+
+### scan_row_limit [int]
+
+最多读取的行数。默认值 `-1` 表示不限制。
+
+### common options
+
+Source 插件通用参数,详见 [Source Common 
Options](../common-options/source-common-options.md)。
+
 ### Schema 映射
 
-字段名须使用 `列族:列限定符` 格式,例如 `cf:name`、`stats:age`。特殊字段名 `rowkey` 映射到行键。
+字段名须使用 `列族:列限定符` 格式,例如 `cf:name`、`stats:age`。行键字段由 `rowkey_column` 
控制;如果未配置,特殊字段名 `rowkey` 会映射到 Bigtable 行键。
+
+| SeaTunnel 字段名 | 映射到 Bigtable |
+|-----------------|----------------|
+| `rowkey`        | 行键 |
+| `cf:name`       | 列族 `cf`,列限定符 `name` |
+| `stats:age`     | 列族 `stats`,列限定符 `age` |
+
+:::tip
+
+Source 会读取每个 `列族:列限定符` 字段返回的最新 Cell。可以通过 `start_timestamp`、`end_timestamp` 和 
`max_versions` 控制 Bigtable 扫描过滤条件。SeaTunnel 字段类型需要和 Bigtable 
中保存的字节格式匹配,例如本连接器写入的数字类型是大端二进制,`STRING`、`DATE`、`TIME`、`TIMESTAMP` 和 `DECIMAL` 是 
UTF-8 文本。
+
+:::
 
 ## 示例
 
+### 使用应用默认凭证读取整张表
+
 ```hocon
 source {
   GoogleBigtable {
@@ -54,6 +123,49 @@ source {
 }
 ```
 
+### 使用服务账号扫描行键范围
+
+```hocon
+source {
+  GoogleBigtable {
+    project_id       = "my-gcp-project"
+    instance_id      = "my-bigtable-instance"
+    table            = "events"
+    credentials_path = "/secrets/sa-key.json"
+    start_rowkey     = "2024-01-01#"
+    end_rowkey       = "2024-02-01#"
+    max_versions     = 1
+    schema {
+      fields {
+        rowkey    = STRING
+        "cf:type" = STRING
+        "cf:data" = STRING
+      }
+    }
+  }
+}
+```
+
+### 使用自定义行键字段名
+
+```hocon
+source {
+  GoogleBigtable {
+    project_id    = "my-gcp-project"
+    instance_id   = "my-bigtable-instance"
+    table         = "events"
+    rowkey_column = ["event_id"]
+    schema {
+      fields {
+        event_id  = STRING
+        "cf:type" = STRING
+        "cf:data" = STRING
+      }
+    }
+  }
+}
+```
+
 ## Changelog
 
 <ChangeLog />

Reply via email to