Skip to content

Commit

Permalink
[Doc][Improve] support chinese for Feishu.md and HdfsFile.md (apache#…
Browse files Browse the repository at this point in the history
  • Loading branch information
CallMeKingsley97 authored Feb 28, 2024
1 parent 56f13e9 commit 4d0ca15
Show file tree
Hide file tree
Showing 3 changed files with 393 additions and 0 deletions.
66 changes: 66 additions & 0 deletions docs/zh/connector-v2/sink/Feishu.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# 飞书

> 飞书 数据接收器
## 支持的引擎

> Spark<br/>
> Flink<br/>
> SeaTunnel Zeta<br/>
## 主要特性

- [ ] [精确一次](../../../en/concept/connector-v2-features.md)
- [ ] [变更数据捕获](../../../en/concept/connector-v2-features.md)

## 描述

用于通过数据调用飞书的web hooks。

> 例如,如果来自上游的数据是 [`年龄: 12, 姓名: tyrantlucifer`],则 body 内容如下:`{"年龄": 12, "姓名": "tyrantlucifer"}`
**提示:飞书接收器仅支持 `post json`类型的web hook,并且源数据将被视为web hook的正文内容。**

## 数据类型映射

| SeaTunnel 数据类型 | 飞书数据类型 |
|-----------------------------|------------|
| ROW<br/>MAP | Json |
| NULL | null |
| BOOLEAN | boolean |
| TINYINT | byte |
| SMALLINT | short |
| INT | int |
| BIGINT | long |
| FLOAT | float |
| DOUBLE | double |
| DECIMAL | BigDecimal |
| BYTES | byte[] |
| STRING | String |
| TIME<br/>TIMESTAMP<br/>TIME | String |
| ARRAY | JsonArray |

## 接收器选项

| 名称 | 类型 | 是否必需 | 默认值 | 描述 |
|----------------|--------|------|-----|------------------------------------------------------------------------------------|
| url | String || - | 飞书web hook URL |
| headers | Map || - | HTTP 请求头 |
| common-options | || - | 接收器插件常见参数,请参阅 [接收器通用选项](../../../en/connector-v2/source/common-options.md) 以获取详细信息 |

## 任务示例

### 简单示例:

```hocon
Feishu {
url = "https://www.feishu.cn/flow/api/trigger-webhook/108bb8f208d9b2378c8c7aedad715c19"
}
```

## 更新日志

### 2.2.0-beta 2022-09-26

- 添加飞书接收器

200 changes: 200 additions & 0 deletions docs/zh/connector-v2/sink/HdfsFile.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,200 @@
# Hdfs文件

> Hdfs文件 数据接收器
## 支持的引擎

> Spark<br/>
> Flink<br/>
> SeaTunnel Zeta<br/>
## 主要特性

- [x] [精确一次](../../../en/concept/connector-v2-features.md)

默认情况下,我们使用2PC提交来确保"精确一次"

- [x] 文件格式类型
- [x] 文本
- [x] CSV
- [x] Parquet
- [x] ORC
- [x] JSON
- [x] Excel
- [x] 压缩编解码器
- [x] lzo

## 描述

将数据输出到Hdfs文件

## 支持的数据源信息

| 数据源 | 支持的版本 |
|--------|------------------|
| Hdfs文件 | hadoop 2.x 和 3.x |

## 接收器选项

| 名称 | 类型 | 是否必须 | 默认值 | 描述 |
|----------------------------------|---------|------|--------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| fs.defaultFS | string || - |`hdfs://` 开头的 Hadoop 集群地址,例如:`hdfs://hadoopcluster` |
| path | string || - | 目标目录路径是必需的。 |
| tmp_path | string || /tmp/seatunnel | 结果文件将首先写入临时路径,然后使用 `mv` 命令将临时目录提交到目标目录。需要一个Hdfs路径。 |
| hdfs_site_path | string || - | `hdfs-site.xml` 的路径,用于加载 namenodes 的 ha 配置。 |
| custom_filename | boolean || false | 是否需要自定义文件名 |
| file_name_expression | string || "${transactionId}" | 仅在 `custom_filename``true` 时使用。`file_name_expression` 描述将创建到 `path` 中的文件表达式。我们可以在 `file_name_expression` 中添加变量 `${now}``${uuid}`,例如 `test_${uuid}_${now}``${now}` 表示当前时间,其格式可以通过指定选项 `filename_time_format` 来定义。请注意,如果 `is_enable_transaction``true`,我们将在文件头部自动添加 `${transactionId}_`|
| filename_time_format | string || "yyyy.MM.dd" | 仅在 `custom_filename``true` 时使用。当 `file_name_expression` 参数中的格式为 `xxxx-${now}` 时,`filename_time_format` 可以指定路径的时间格式,默认值为 `yyyy.MM.dd`。常用的时间格式如下所示:[y:年,M:月,d:月中的一天,H:一天中的小时(0-23),m:小时中的分钟,s:分钟中的秒] |
| file_format_type | string || "csv" | 我们支持以下文件类型:`text` `json` `csv` `orc` `parquet` `excel`。请注意,最终文件名将以文件格式的后缀结束,文本文件的后缀是 `txt`|
| field_delimiter | string || '\001' | 仅在 file_format 为 text 时使用,数据行中列之间的分隔符。仅需要 `text` 文件格式。 |
| row_delimiter | string || "\n" | 仅在 file_format 为 text 时使用,文件中行之间的分隔符。仅需要 `text` 文件格式。 |
| have_partition | boolean || false | 是否需要处理分区。 |
| partition_by | array || - | 仅在 have_partition 为 true 时使用,根据选定的字段对数据进行分区。 |
| partition_dir_expression | string || "${k0}=${v0}/${k1}=${v1}/.../${kn}=${vn}/" | 仅在 have_partition 为 true 时使用,如果指定了 `partition_by`,我们将根据分区信息生成相应的分区目录,并将最终文件放置在分区目录中。默认 `partition_dir_expression``${k0}=${v0}/${k1}=${v1}/.../${kn}=${vn}/``k0` 是第一个分区字段,`v0` 是第一个分区字段的值。 |
| is_partition_field_write_in_file | boolean || false | 仅当 `have_partition``true` 时使用。如果 `is_partition_field_write_in_file``true`,则分区字段及其值将写入数据文件中。例如,如果要写入Hive数据文件,则其值应为 `false`|
| sink_columns | array || | 当此参数为空时,所有字段都是接收器列。需要写入文件的列,默认值是从 `Transform``Source` 获取的所有列。字段的顺序确定了实际写入文件时的顺序。 |
| is_enable_transaction | boolean || true | 如果 `is_enable_transaction` 为 true,则在将数据写入目标目录时,我们将确保数据不会丢失或重复。请注意,如果 `is_enable_transaction``true`,我们将在文件头部自动添加 `${transactionId}_`。目前仅支持 `true`|
| batch_size | int || 1000000 | 文件中的最大行数。对于 SeaTunnel Engine,文件中的行数由 `batch_size``checkpoint.interval` 共同决定。如果 `checkpoint.interval` 的值足够大,则接收器写入器将在文件中写入行,直到文件中的行大于 `batch_size`。如果 `checkpoint.interval` 很小,则接收器写入器将在新检查点触发时创建一个新文件。 |
| compress_codec | string || none | 文件的压缩编解码器及其支持的细节如下所示:[txt: `lzo` `none`,json: `lzo` `none`,csv: `lzo` `none`,orc: `lzo` `snappy` `lz4` `zlib` `none`,parquet: `lzo` `snappy` `lz4` `gzip` `brotli` `zstd` `none`]。提示:excel类型不支持任何压缩格式。 |
| krb5_path | string || /etc/krb5.conf | kerberos 的 krb5 路径 |
| kerberos_principal | string || - | kerberos 的主体 |
| kerberos_keytab_path | string || - | kerberos 的 keytab 路径 |
| compress_codec | string || none | 压缩编解码器 |
| common-options | object || - | 接收器插件通用参数,请参阅 [接收器通用选项](../../../en/connector-v2/source/common-options.md) 了解详情 |
| max_rows_in_memory | int || - | 仅当 file_format 为 excel 时使用。当文件格式为 Excel 时,可以缓存在内存中的最大数据项数。 |
| sheet_name | string || Sheet${Random number} | 仅当 file_format 为 excel 时使用。将工作簿的表写入指定的表名 |

### 提示

> 如果您使用 spark/flink,为了使用此连接器,您必须确保您的 spark/flink 集群已经集成了 hadoop。测试过的 hadoop 版本是 2.x。如果您使用 SeaTunnel Engine,则在下载和安装 SeaTunnel Engine 时会自动集成 hadoop jar。您可以检查 `${SEATUNNEL_HOME}/lib` 下的 jar 包来确认这一点。
## 任务示例

### 简单示例:

> 此示例定义了一个 SeaTunnel 同步任务,通过 FakeSource 自动生成数据并将其发送到 Hdfs。
```
# 定义运行时环境
env {
parallelism = 1
job.mode = "BATCH"
}
source {
# 这是一个示例源插件 **仅用于测试和演示功能源插件**
FakeSource {
parallelism = 1
result_table_name = "fake"
row.num = 16
schema = {
fields {
c_map = "map<string, smallint>"
c_array = "array<int>"
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(30, 8)"
c_bytes = bytes
c_date = date
c_timestamp = timestamp
}
}
}
# 如果您想获取有关如何配置 seatunnel 的更多信息和查看完整的源端插件列表,
# 请访问 https://seatunnel.apache.org/docs/category/source-v2
}
transform {
# 如果您想获取有关如何配置 seatunnel 的更多信息和查看完整的转换插件列表,
# 请访问 https://seatunnel.apache.org/docs/category/transform-v2
}
sink {
HdfsFile {
fs.defaultFS = "hdfs://hadoopcluster"
path = "/tmp/hive/warehouse/test2"
file_format_type = "orc"
}
# 如果您想获取有关如何配置 seatunnel 的更多信息和查看完整的接收器插件列表,
# 请访问 https://seatunnel.apache.org/docs/category/sink-v2
}
```

### orc 文件格式的简单配置

```
HdfsFile {
fs.defaultFS = "hdfs://hadoopcluster"
path = "/tmp/hive/warehouse/test2"
file_format_type = "orc"
}
```

### text 文件格式的配置,包括 `have_partition``custom_filename``sink_columns`

```
HdfsFile {
fs.defaultFS = "hdfs://hadoopcluster"
path = "/tmp/hive/warehouse/test2"
file_format_type = "text"
field_delimiter = "\t"
row_delimiter = "\n"
have_partition = true
partition_by = ["age"]
partition_dir_expression = "${k0}=${v0}"
is_partition_field_write_in_file = true
custom_filename = true
file_name_expression = "${transactionId}_${now}"
filename_time_format = "yyyy.MM.dd"
sink_columns = ["name","age"]
is_enable_transaction = true
}
```

### parquet 文件格式的配置,包括 `have_partition``custom_filename``sink_columns`

```
HdfsFile {
fs.defaultFS = "hdfs://hadoopcluster"
path = "/tmp/hive/warehouse/test2"
have_partition = true
partition_by = ["age"]
partition_dir_expression = "${k0}=${v0}"
is_partition_field_write_in_file = true
custom_filename = true
file_name_expression = "${transactionId}_${now}"
filename_time_format = "yyyy.MM.dd"
file_format_type = "parquet"
sink_columns = ["name","age"]
is_enable_transaction = true
}
```

### kerberos 的简单配置

```
HdfsFile {
fs.defaultFS = "hdfs://hadoopcluster"
path = "/tmp/hive/warehouse/test2"
hdfs_site_path = "/path/to/your/hdfs_site_path"
kerberos_principal = "[email protected]"
kerberos_keytab_path = "/path/to/your/keytab/file.keytab"
}
```

### 压缩的简单配置

```
HdfsFile {
fs.defaultFS = "hdfs://hadoopcluster"
path = "/tmp/hive/warehouse/test2"
compress_codec = "lzo"
}
```

Loading

0 comments on commit 4d0ca15

Please sign in to comment.