Hisoka-X commented on code in PR #9860: URL: https://github.com/apache/seatunnel/pull/9860#discussion_r2347370518
########## docs/zh/concept/connector-v2-features.md: ########## @@ -1,83 +1,76 @@ # Connector V2 功能简介 -## Connector V2 和 V1 之间的不同 +## Connector V2 和 V1 的区别 -从 https://github.com/apache/seatunnel/issues/1608 我们添加了 Connector V2 特性。 -Connector V2 是基于SeaTunnel Connector API接口定义的连接器。不像Connector V1, V2 支持如下特性: +SeaTunnel 在 [issue#1608](https://github.com/apache/seatunnel/issues/1608) 中引入了 Connector V2 特性。 +Connector V2 基于 SeaTunnel Connector API 接口开发,相比 Connector V1,具有以下优势: -* **多引擎支持** SeaTunnel Connector API 是引擎独立的API。基于这个API开发的连接器可以在多个引擎上运行。目前支持Flink和Spark引擎,后续我们会支持其它的引擎。 -* **多引擎版本支持** 通过翻译层将连接器与引擎解耦,解决了大多数连接器需要修改代码才能支持新版本底层引擎的问题。 -* **流批一体** Connector V2 可以支持批处理和流处理。我们不需要为批和流分别开发连接器。 -* **多路复用JDBC/Log连接。** Connector V2支持JDBC资源复用和共享数据库日志解析。 -* **多模态数据集成** Connector V2 支持多模态数据集成,包括结构化和非结构化文本数据、视频、图像、二进制文件等。 +* **多引擎支持:** SeaTunnel Connector API 是一套与引擎无关的接口定义。基于该接口开发的连接器可在多个引擎上运行。目前已支持 Flink 和 Spark 引擎,后续将支持更多引擎。 +* **多引擎版本支持:** 通过引入翻译层实现连接器与引擎的解耦,解决了连接器需要频繁修改代码以适配新版本引擎的问题。 +* **流批一体:** Connector V2 同时支持批处理和流处理模式,无需为不同模式单独开发连接器。 +* **资源复用:** Connector V2 支持 JDBC 连接复用以及数据库日志解析的共享机制。 +* **多模态数据集成:** Connector V2 支持多种数据类型的集成,包括结构化数据、非结构化文本、视频、图像及二进制文件等。 ## Source Connector 特性 -Source connector有一些公共的核心特性,每个source connector在不同程度上支持它们。 +Source connector 具有一系列核心特性,各个连接器对这些特性的支持程度不同。 -### 精确一次(exactly-once) +### 精确一次(Exactly-Once) -如果数据源中的每条数据仅由源向下游发送一次,我们认为该source connector支持精确一次(exactly-once)。 +当 source connector 能够确保每条数据仅被发送一次到下游时,即具备精确一次特性。 -在SeaTunnel中, 我们可以保存读取的 **Split** 和它的 **offset**(当时读取的数据被分割时的位置,例如行号, 字节大小, 偏移量等) 作为检查点时的 **StateSnapshot** 。 如果任务重新启动, 我们会得到最后的 **StateSnapshot** -然后定位到上次读取的 **Split** 和 **offset**,继续向下游发送数据。 +SeaTunnel 通过在检查点中保存 **Split** 和其 **offset**(数据读取位置,如行号、字节位置、偏移量等)作为 **StateSnapshot**,实现精确一次语义。当任务重启时,系统会根据最近的 **StateSnapshot** 恢复到上次的读取位置,继续发送数据。 -例如 `File`, `Kafka`。 +典型支持示例:`File`、`Kafka`。 -### 列投影(column projection) +### 列投影(Column Projection) -如果连接器支持仅从数据源读取指定列(请注意,如果先读取所有列,然后通过元数据(schema)过滤不需要的列,则此方法不是真正的列投影) +连接器支持仅从数据源读取指定列时,称为支持列投影。注意,如果是先读取所有列再通过元数据(schema)过滤不需要的列,则不属于真正的列投影。 -例如 `JDBCSource` 可以使用sql定义读取列。 +例如,`JDBCSource` 可以通过 SQL 定义读取列;而 `KafkaSource` 则是从主题中读取所有内容后再使用 `schema` 过滤不必要的列,后者不是真正的列投影。 -`KafkaSource` 从主题中读取所有内容然后使用`schema`过滤不必要的列, 这不是真正的`列投影`。 - -### 批(batch) +### 批(Batch) 批处理作业模式,读取的数据是有界的,当所有数据读取完成后作业将停止。 -### 流(stream) +### 流(Stream) 流式作业模式,数据读取无界,作业永不停止。 -### 并行性(parallelism) +### 并行性(Parallelism) -并行执行的Source Connector支持配置 `parallelism`,每个并发会创建一个任务来读取数据。 -在**Parallelism Source Connector**中,source会被分割成多个split,然后枚举器会将 split 分配给 SourceReader 进行处理。 +支持配置 `parallelism` 的 Source Connector 可以并行执行,每个并发实例会创建一个任务来读取数据。 +在**Parallelism Source Connector**中,source 会被分割成多个 split,然后枚举器会将 split 分配给 SourceReader 进行处理。 -### 多模态(multimodal) +### 多模态(Multimodal) -支持多模态数据集成,包括结构化和非结构化文本数据、视频、图像、二进制文件等。 +支持多种数据类型的集成,包括结构化数据、非结构化文本、视频、图像及二进制文件等。 -### 支持用户自定义split +### 支持用户自定义分片 -用户可以配置分割规则。 +允许用户自定义数据分片规则。 ### 支持多表读取 -支持在一个 SeaTunnel 作业中读取多个表。 - -## Sink Connector 的特性 +支持在单个 SeaTunnel 作业中读取多张数据表。 -Sink connector有一些公共的核心特性,每个sink connector在不同程度上支持它们。 +## Sink Connector 特性 -### 精确一次(exactly-once) +Sink connector 具有一系列核心特性,各个连接器对这些特性的支持程度不同。 -当任意一条数据流入分布式系统时,如果系统在整个处理过程中仅准确处理任意一条数据一次,且处理结果正确,则认为系统满足精确一次一致性。 +### 精确一次(Exactly-Once) -对于sink connector,如果任何数据只写入目标一次,则sink connector支持精确一次。 通常有两种方法可以实现这一目标: +在分布式系统中,当任何一条数据在整个处理流程中只被准确处理一次,且结果正确时,即实现了精确一次语义。 -* 目标数据库支持key去重。例如 `MySQL`, `Kudu`。 -* 目标支持 **XA 事务**(事务可以跨会话使用,即使创建事务的程序已经结束,新启动的程序也只需要知道最后一个事务的ID就可以重新提交或回滚事务)。 然后我们可以使用 **两阶段提交** 来确保 * 精确一次**。 例如:`File`, `MySQL`. +对于 sink connector,精确一次意味着任何数据都只会被写入目标系统一次。通常可通过以下两种方式实现: -### cdc(更改数据捕获,change data capture) +* 目标数据库支持键值去重,如 `MySQL`、`Kudu` 等。 +* 目标系统支持 **XA 事务**(事务可跨会话使用,即使创建事务的程序已终止,新程序只需知道最后的事务 ID 即可提交或回滚事务)。通过 **两阶段提交** 机制确保精确一次,如 `File`、`MySQL` 等。 -如果sink connector支持基于主键写入行类型(INSERT/UPDATE_BEFORE/UPDATE_AFTER/DELETE),我们认为它支持cdc(更改数据捕获,change data capture)。 - -### 支持多表读取 +### CDC(变更数据捕获) -支持在一个 SeaTunnel 作业中写入多个表,用户可以通过[配置占位符](./sink-options-placeholders.md)动态指定表的标识符。 +支持基于主键的行级操作(INSERT/UPDATE_BEFORE/UPDATE_AFTER/DELETE)的 sink connector 具备 CDC 能力。 -### 多模态(multimodal) +### 多表写入 -支持多模态数据集成,包括结构化和非结构化文本数据、视频、图像、二进制文件等。 Review Comment: you missed this. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
