This is an automated email from the ASF dual-hosted git repository.
wanghailin 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 de44573482 [Doc][Improve] translate Redis/Paimon related chinese
document (#8584)
de44573482 is described below
commit de445734820e6637be6a5db71234376fd596c5e6
Author: lyne <[email protected]>
AuthorDate: Wed Feb 5 16:26:39 2025 +0800
[Doc][Improve] translate Redis/Paimon related chinese document (#8584)
---
docs/zh/connector-v2/source/Paimon.md | 224 ++++++++++++++++++++++++++
docs/zh/connector-v2/source/Redis.md | 295 ++++++++++++++++++++++++++++++++++
2 files changed, 519 insertions(+)
diff --git a/docs/zh/connector-v2/source/Paimon.md
b/docs/zh/connector-v2/source/Paimon.md
new file mode 100644
index 0000000000..27d546a138
--- /dev/null
+++ b/docs/zh/connector-v2/source/Paimon.md
@@ -0,0 +1,224 @@
+# Paimon
+
+> Paimon 源连接器
+
+## 描述
+
+用于从 `Apache Paimon` 读取数据
+
+## 主要功能
+
+- [x] [批处理](../../concept/connector-v2-features.md)
+- [x] [流处理](../../concept/connector-v2-features.md)
+- [ ] [精确一次](../../concept/connector-v2-features.md)
+- [ ] [列投影](../../concept/connector-v2-features.md)
+- [ ] [并行度](../../concept/connector-v2-features.md)
+- [ ] [支持用户自定义分片](../../concept/connector-v2-features.md)
+
+## 配置选项
+
+| 名称 | 类型 | 是否必须 | 默认值 |
+|-------------------------|--------|----------|---------------|
+| warehouse | String | 是 | - |
+| catalog_type | String | 否 | filesystem |
+| catalog_uri | String | 否 | - |
+| database | String | 是 | - |
+| table | String | 是 | - |
+| hdfs_site_path | String | 否 | - |
+| query | String | 否 | - |
+| paimon.hadoop.conf | Map | 否 | - |
+| paimon.hadoop.conf-path | String | 否 | - |
+
+### warehouse [string]
+
+Paimon warehouse 路径
+
+### catalog_type [string]
+
+Paimon Catalog 类型,支持 filesystem 和 hive
+
+### catalog_uri [string]
+
+Paimon 的 catalog uri,仅当 catalog_type 为 hive 时需要
+
+### database [string]
+
+需要访问的数据库
+
+### table [string]
+
+需要访问的表
+
+### hdfs_site_path [string]
+
+`hdfs-site.xml` 文件地址
+
+### query [string]
+
+读取表格的筛选条件,例如:`select * from st_test where id > 100`。如果未指定,则将读取所有记录。
+
+目前,`where` 支持`<, <=, >, >=, =, !=, or, and,is null, is not null`,其他暂不支持。
+
+由于 Paimon 限制,目前不支持 `Having`, `Group By` 和 `Order By`,未来版本将会支持 `projection` 和
`limit`。
+
+注意:当 `where` 后的字段为字符串或布尔值时,其值必须使用单引号,否则将会报错。例如 `name='abc'` 或 `tag='true'`。
+
+当前 `where` 支持的字段数据类型如下:
+
+* string
+* boolean
+* tinyint
+* smallint
+* int
+* bigint
+* float
+* double
+* date
+* timestamp
+
+### paimon.hadoop.conf [string]
+
+hadoop conf 属性
+
+### paimon.hadoop.conf-path [string]
+
+指定 'core-site.xml', 'hdfs-site.xml', 'hive-site.xml' 文件加载路径。
+
+## Filesystems
+
+Paimon 连接器支持向多个文件系统写入数据。目前,支持的文件系统有 `hdfs` 和 `s3`。
+如果使用 `s3` 文件系统,可以在 `paimon.hadoop.conf`
中配置`fs.s3a.access-key`、`fs.s3a.secret-key`、`fs.s3a.endpoint`、`fs.s3a.path.style.access`、`fs.s3a.aws.credentials.provider`
属性,数仓地址应该以 `s3a://` 开头。
+
+## 示例
+
+### 简单示例
+
+```hocon
+source {
+ Paimon {
+ warehouse = "/tmp/paimon"
+ database = "default"
+ table = "st_test"
+ }
+}
+```
+
+### Filter 示例
+
+```hocon
+source {
+ Paimon {
+ warehouse = "/tmp/paimon"
+ database = "full_type"
+ table = "st_test"
+ query = "select c_boolean, c_tinyint from st_test where c_boolean= 'true'
and c_tinyint > 116 and c_smallint = 15987 or
c_decimal='2924137191386439303744.39292213'"
+ }
+}
+```
+
+### S3 示例
+```hocon
+env {
+ execution.parallelism = 1
+ job.mode = "BATCH"
+}
+
+source {
+ Paimon {
+ warehouse = "s3a://test/"
+ database = "seatunnel_namespace11"
+ table = "st_test"
+ paimon.hadoop.conf = {
+ fs.s3a.access-key=G52pnxg67819khOZ9ezX
+ fs.s3a.secret-key=SHJuAQqHsLrgZWikvMa3lJf5T0NfM5LMFliJh9HF
+ fs.s3a.endpoint="http://minio4:9000"
+ fs.s3a.path.style.access=true
+
fs.s3a.aws.credentials.provider=org.apache.hadoop.fs.s3a.SimpleAWSCredentialsProvider
+ }
+ }
+}
+
+sink {
+ Console{}
+}
+```
+
+### Hadoop 配置示例
+
+```hocon
+source {
+ Paimon {
+ catalog_name="seatunnel_test"
+ warehouse="hdfs:///tmp/paimon"
+ database="seatunnel_namespace1"
+ table="st_test"
+ query = "select * from st_test where pk_id is not null and pk_id < 3"
+ paimon.hadoop.conf = {
+ fs.defaultFS = "hdfs://nameservice1"
+ dfs.nameservices = "nameservice1"
+ dfs.ha.namenodes.nameservice1 = "nn1,nn2"
+ dfs.namenode.rpc-address.nameservice1.nn1 = "hadoop03:8020"
+ dfs.namenode.rpc-address.nameservice1.nn2 = "hadoop04:8020"
+ dfs.client.failover.proxy.provider.nameservice1 =
"org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider"
+ dfs.client.use.datanode.hostname = "true"
+ }
+ }
+}
+```
+
+### Hive catalog 示例
+
+```hocon
+source {
+ Paimon {
+ catalog_name="seatunnel_test"
+ catalog_type="hive"
+ catalog_uri="thrift://hadoop04:9083"
+ warehouse="hdfs:///tmp/seatunnel"
+ database="seatunnel_test"
+ table="st_test3"
+ paimon.hadoop.conf = {
+ fs.defaultFS = "hdfs://nameservice1"
+ dfs.nameservices = "nameservice1"
+ dfs.ha.namenodes.nameservice1 = "nn1,nn2"
+ dfs.namenode.rpc-address.nameservice1.nn1 = "hadoop03:8020"
+ dfs.namenode.rpc-address.nameservice1.nn2 = "hadoop04:8020"
+ dfs.client.failover.proxy.provider.nameservice1 =
"org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider"
+ dfs.client.use.datanode.hostname = "true"
+ }
+ }
+}
+```
+
+## Changelog
+
+如果要读取 paimon 表的 changelog,首先要为 Paimon 源表设置 `changelog-producer`,然后使用 SeaTunnel
流任务读取。
+
+### Note
+
+目前,批读取总是读取最新的快照,如需读取更完整的 changelog 数据,需使用流读取,并在将数据写入 Paimon
表之前开始流读取,为了确保顺序,流读取任务并行度应该设置为 1。
+
+### Streaming read 示例
+```hocon
+env {
+ parallelism = 1
+ job.mode = "Streaming"
+}
+
+source {
+ Paimon {
+ warehouse = "/tmp/paimon"
+ database = "full_type"
+ table = "st_test"
+ }
+}
+
+sink {
+ Paimon {
+ warehouse = "/tmp/paimon"
+ database = "full_type"
+ table = "st_test_sink"
+ paimon.table.primary-keys = "c_tinyint"
+ }
+}
+```
diff --git a/docs/zh/connector-v2/source/Redis.md
b/docs/zh/connector-v2/source/Redis.md
new file mode 100644
index 0000000000..8e30d87579
--- /dev/null
+++ b/docs/zh/connector-v2/source/Redis.md
@@ -0,0 +1,295 @@
+# Redis
+
+> Redis 源连接器
+
+## 描述
+
+用于从 `Redis` 读取数据
+
+## 主要功能
+
+- [x] [批处理](../../concept/connector-v2-features.md)
+- [ ] [流处理](../../concept/connector-v2-features.md)
+- [ ] [精确一次](../../concept/connector-v2-features.md)
+- [ ] [列投影](../../concept/connector-v2-features.md)
+- [ ] [并行度](../../concept/connector-v2-features.md)
+- [ ] [支持用户自定义分片](../../concept/connector-v2-features.md)
+
+## 配置选项
+
+| 名称 | 类型 | 是否必须 | 默认值 |
+|---------------------|--------|--------------------|--------|
+| host | string | 是 | - |
+| port | int | 是 | - |
+| keys | string | 是 | - |
+| batch_size | int | 是 | 10 |
+| data_type | string | 是 | - |
+| user | string | 否 | - |
+| auth | string | 否 | - |
+| db_num | int | 否 | 0 |
+| mode | string | 否 | single |
+| hash_key_parse_mode | string | 否 | all |
+| nodes | list | `mode=cluster` 时必须 | - |
+| schema | config | `format=json` 时必须 | - |
+| format | string | 否 | json |
+| common-options | | 否 | - |
+
+### host [string]
+
+redis 主机地址
+
+### port [int]
+
+redis 端口号
+
+### hash_key_parse_mode [string]
+
+指定 hash key 解析模式, 支持 `all` `kv` 模式, 用于设定连接器如何解析 hash key。
+
+当设定为 `all` 时,连接器会将 hash key 的值视为一行并根据 schema config 配置进行解析,当设定为 `kv` 时,连接器会将
hash key 的每个 kv 视为一行,并根据 schema config 进行解析。
+
+例如,如果 hash key 的值如下设置:
+
+```text
+{
+ "001": {
+ "name": "tyrantlucifer",
+ "age": 26
+ },
+ "002": {
+ "name": "Zongwen",
+ "age": 26
+ }
+}
+
+```
+
+如果 `hash_key_parse_mode` 设置为 `all` 模式,且 schema config 如下所示,将会生成下表数据:
+
+```hocon
+schema {
+ fields {
+ 001 {
+ name = string
+ age = int
+ }
+ 002 {
+ name = string
+ age = int
+ }
+ }
+}
+
+```
+
+| 001 | 002 |
+| ------------------------------- | ------------------------- |
+| Row(name=tyrantlucifer, age=26) | Row(name=Zongwen, age=26) |
+
+如果 `hash_key_parse_mode` 设置为 `kv` 模式,且 schema config 如下所示,将会生成下表数据:
+
+```hocon
+schema {
+ fields {
+ hash_key = string
+ name = string
+ age = int
+ }
+}
+
+```
+
+| hash_key | name | age |
+| -------- | ------------- | ---- |
+| 001 | tyrantlucifer | 26 |
+| 002 | Zongwen | 26 |
+
+hash key 中的每个 kv 将会被视为一行并被发送给上游。
+
+**提示:连接器将使用 scheme config 的第一个字段信息作为每个 kv 中每个 k 的字段名称**
+
+### keys [string]
+
+keys 模式
+
+### batch_size [int]
+
+表示每次迭代尝试返回的键的数量,默认值为 10。
+
+**提示:Redis 连接器支持模糊键匹配,用户需要确保匹配的键类型相同**
+
+### data_type [string]
+
+redis 数据类型, 支持 `key` `hash` `list` `set` `zset`。
+
+- key
+
+> 将每个 key 的值将作为单行数据发送给下游。
+> 例如,key 对应的值为 `SeaTunnel test message`,则下游接收到的数据为 `SeaTunnel test
message`,并且仅会收到一条信息。
+
+- hash
+
+> hash 键值对将会被格式化为 json,并以单行数据的形式发送给下游。
+> 例如,hash 值为 `name:tyrantlucifer age:26`,则下游接收到的数据为 `{"name":"tyrantlucifer",
"age":"26"}`,并且仅会收到一条信息。
+
+- list
+
+> list 中的每个元素都将作为单行数据向下游发送。
+> 例如,list 值为 `[tyrantlucier, CalvinKirs]`,则下游接收到的数据为 `tyrantlucifer` 和
`CalvinKirs`,并且仅会收到两条信息。
+
+- set
+
+> set 中的每个元素都将作为单行数据向下游发送。
+> 例如,set 值为 `[tyrantlucier, CalvinKirs]`,则下游接收到的数据为 `tyrantlucifer` 和
`CalvinKirs`,并且仅会收到两条信息。
+
+- zset
+
+> zset 中的每个元素都将作为单行数据向下游发送。
+> 例如,zset 值为 `[tyrantlucier, CalvinKirs]`,则下游接收到的数据为 `tyrantlucifer` 和
`CalvinKirs`,并且仅会收到两条信息。
+
+### user [string]
+
+Redis 认证身份用户,当连接到加密集群时需要使用
+
+### auth [string]
+
+Redis 认证密钥,当连接到加密集群时需要使用
+
+### db_num [int]
+
+Redis 数据库索引 ID,默认将连接到 db 0
+
+### mode [string]
+
+Redis 模式,`single` 或 `cluster`,默认值为 `single`
+
+### nodes [list]
+
+Redis 节点信息,在 cluster 模式下使用,必须设置为以下格式:
+
+["host1:port1", "host2:port2"]
+
+### format [string]
+
+上游数据格式,目前仅支持 `json` `text`,默认为 `json`
+
+当指定格式为 `json` 时,还需要指定 scheme option,例如:
+
+当上游数据如下时:
+
+```json
+{"code": 200, "data": "get success", "success": true}
+
+```
+
+需要指定 schema 为如下配置:
+
+```hocon
+schema {
+ fields {
+ code = int
+ data = string
+ success = boolean
+ }
+}
+
+```
+
+连接器将会生成如下格式数据:
+
+| code | data | success |
+| ---- | ----------- | ------- |
+| 200 | get success | true |
+
+当指定格式为 `text` 时,连接器不会对上游数据做任何处理,例如:
+
+当上游数据如下时:
+
+```json
+{"code": 200, "data": "get success", "success": true}
+
+```
+
+连接器将会生成如下格式数据:
+
+| content |
+| -------------------------------------------------------- |
+| {"code": 200, "data": "get success", "success": true} |
+
+### schema [config]
+
+#### fields [config]
+
+Redis 数据的 schema 字段列表
+
+### common options
+
+源连接器插件通用参数,详情请参见 [Source Common Options](../source-common-options.md)
+
+## 示例
+
+简单使用示例:
+
+```hocon
+Redis {
+ host = localhost
+ port = 6379
+ keys = "key_test*"
+ data_type = key
+ format = text
+}
+```
+
+```hocon
+Redis {
+ host = localhost
+ port = 6379
+ keys = "key_test*"
+ data_type = key
+ format = json
+ schema {
+ fields {
+ name = string
+ age = int
+ }
+ }
+}
+```
+
+读取 string 类型并附加到 list 示例:
+
+
+```hocon
+source {
+ Redis {
+ host = "redis-e2e"
+ port = 6379
+ auth = "U2VhVHVubmVs"
+ keys = "string_test*"
+ data_type = string
+ batch_size = 33
+ }
+}
+
+sink {
+ Redis {
+ host = "redis-e2e"
+ port = 6379
+ auth = "U2VhVHVubmVs"
+ key = "string_test_list"
+ data_type = list
+ batch_size = 33
+ }
+}
+```
+
+## Changelog
+
+### 2.2.0-beta 2022-09-26
+
+- Add Redis Source Connector
+
+### next version
+
+- [Improve] Support redis cluster mode connection and user authentication
[3188](https://github.com/apache/seatunnel/pull/3188)
+- [Bug] Redis scan command supports versions 5, 6, 7
[7666](https://github.com/apache/seatunnel/pull/7666)
\ No newline at end of file