You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@inlong.apache.org by do...@apache.org on 2022/09/13 10:59:14 UTC

[inlong-website] branch master updated: [INLONG-535][Sort] Add docs for Apache Doris (#536)

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

dockerzhang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/inlong-website.git


The following commit(s) were added to refs/heads/master by this push:
     new 5649c25511 [INLONG-535][Sort] Add docs for Apache Doris (#536)
5649c25511 is described below

commit 5649c255112e4058a8116b16166a7f68fff10f6b
Author: chen.zs <34...@qq.com>
AuthorDate: Tue Sep 13 18:59:09 2022 +0800

    [INLONG-535][Sort] Add docs for Apache Doris (#536)
    
    Co-authored-by: duowan1520 <ch...@dtyunxi.com>
---
 docs/data_node/extract_node/doris.md               | 152 ++++++++++++++++
 docs/data_node/load_node/doris.md                  | 196 +++++++++++++++++++++
 .../current/data_node/extract_node/doris.md        | 150 ++++++++++++++++
 .../current/data_node/load_node/doris.md           | 193 ++++++++++++++++++++
 4 files changed, 691 insertions(+)

diff --git a/docs/data_node/extract_node/doris.md b/docs/data_node/extract_node/doris.md
new file mode 100644
index 0000000000..0987035caf
--- /dev/null
+++ b/docs/data_node/extract_node/doris.md
@@ -0,0 +1,152 @@
+---
+title: Doris
+sidebar_position: 11
+---
+
+import {siteVariables} from '../../version';
+
+## Overview
+
+`Doris Extract` node supports reading data from Doris. This chapter describes how to set up a Doris Extract
+node to run SQL queries against the Doris database.
+
+## Supported Version
+
+| Extract Node	       | Doris version  |                                                                                                                                                                                                                                                                                                                                                                                           
+|---------------------|----------------|
+| [Doris](./doris.md) | 0.13+          |  
+
+## Dependencies
+
+In order to set up the Doris Extract node, the dependency information needed to use build automation tools
+such as Maven or SBT is provided below.
+
+### Maven dependency
+
+<pre><code parentName="pre">
+{`<dependency>
+    <groupId>org.apache.inlong</groupId>
+    <artifactId>sort-connector-doris</artifactId>
+    <version>${siteVariables.inLongVersion}</version>
+</dependency>
+`}
+</code></pre>
+
+## Prepare
+### Create a Doris Extract table
+First create a table `doris_extract_node` in the Doris database, the command is as follows:
+```
+[root@fe001 ~]# mysql -u root -h localhost -P 9030 -p000000
+mysql> use test;
+Reading table information for completion of table and column names
+You can turn off this feature to get a quicker startup with -A
+
+Database changed
+mysql> CREATE TABLE `doris_extract_node` (
+       `id` int(11) NOT NULL COMMENT "user id",
+       `name` varchar(50) NOT NULL COMMENT "user name",
+       `dr` tinyint(4) NULL COMMENT "delete tag"
+       ) ENGINE=OLAP
+       UNIQUE KEY(`id`)
+       COMMENT "OLAP"
+       DISTRIBUTED BY HASH(`id`) BUCKETS 1
+       PROPERTIES (
+       "replication_allocation" = "tag.location.default: 1",
+       "in_memory" = "false",
+       "storage_format" = "V2"
+       );
+Query OK, 0 rows affected (0.03 sec)
+
+mysql> insert into doris_extract_node values(1, 'zhangsan', 0),(2, 'lisi', 0),(3, 'wangwu', 0);
+Query OK, 3 rows affected (0.07 sec)
+{'label':'insert_29d973e9509a48d4-a20e9f0e2d510605', 'status':'VISIBLE', 'txnId':'1032'}
+
+mysql> select * from doris_extract_node;
++------+---------+------+
+| id   | name    | dr   |
++------+---------+------+
+|    1 | zhansan |    0 |
+|    2 | lisi    |    0 |
+|    3 | wangwu  |    0 |
++------+---------+------+
+3 rows in set (0.02 sec)       
+```
+## How to create a Doris Extract Node
+
+### Usage for SQL API
+
+The following example shows how to create a Doris Extract node with `Flink SQL`:
+* connector is `doris`
+```sql
+# Start flink sql-client, load the doris connector jar package
+[root@tasknode001 flink-1.13.5]# ./bin/sql-client.sh -l ./opt/connectors/doris/
+
+-- Create Doris table 'doris_extract_node' using Flink SQL
+Flink SQL> CREATE TABLE doris_extract_node (
+           `id` INT,
+           `name` STRINTG,
+           `dr` TINYINT
+           ) WITH (
+           'connector' = 'doris',
+           'fenodes' = 'localhost:8030',
+           'table.identifier' = 'test.doris_extract_node',
+           'username' = 'root',
+           'password' = '000000'
+           );
+  
+-- query data
+Flink SQL> SELECT * FROM doris_extract_node;
+```
+
+### Usage for InLong Dashboard
+
+TODO: It will be supported in the future.
+
+### Usage for InLong Manager Client
+
+TODO: It will be supported in the future.
+
+## Doris Extract Node Options
+
+| Option                            | Required     | Default           | Type     | Description                                                                                                                                                                                                                                       |
+|-----------------------------------|--------------|-------------------|----------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| connector                         | required     | (none)            | string   | Specify which connector to use, valid values are: `doris`                                                                                                                                                                                         |
+| fenodes                           | required     | (none)            | string   | Doris FE http address, support multiple addresses, separated by commas                                                                                                                                                                            |
+| table.identifier	                 | required     | (none)            | string   | Doris table identifier, eg, db1.tbl1                                                                                                                                                                                                              |
+| username	                         | required     | (none)            | string   | Doris username                                                                                                                                                                                                                                    |
+| password                          | required     | (none)            | string   | Doris password                                                                                                                                                                                                                                    |
+| doris.request.retries             | optional     | 3                 | int      | Number of retries to send requests to Doris                                                                                                                                                                                                       |
+| doris.request.connect.timeout.ms	 | optional     | 30000             | int      | Connection timeout for sending requests to Doris                                                                                                                                                                                                  |
+| doris.request.read.timeout.ms     | optional     | 30000             | int      | Read timeout for sending request to Doris                                                                                                                                                                                                         |
+| doris.request.query.timeout.s     | optional     | 3600              | int      | Query the timeout time of doris, the default is 1 hour, -1 means no timeout limit                                                                                                                                                                 |
+| doris.request.tablet.size         | optional     | Integer.MAX_VALUE | int      | The number of Doris Tablets corresponding to an Partition. The smaller this value is set, the more partitions will be generated. This will increase the parallelism on the flink side, but at the same time will cause greater pressure on Doris. |
+| doris.batch.size                  | optional     | 1024              | int      | The maximum number of rows to read data from BE at one time. Increasing this value can reduce the number of connections between Flink and Doris. Thereby reducing the extra time overhead caused by network delay.                                |
+| doris.exec.mem.limit	             | optional     | 2147483648        | long     | Memory limit for a single query. The default is 2GB, in bytes.                                                                                                                                                                                    |
+| doris.deserialize.arrow.async     | optional     | false             | boolean  | Whether to support asynchronous conversion of Arrow format to RowBatch required for flink-doris-connector iteration                                                                                                                               |
+| doris.deserialize.queue.size	     | optional     | 64                | int      | Asynchronous conversion of the internal processing queue in Arrow format takes effect when doris.deserialize.arrow.async is true                                                                                                                  |
+| doris.read.field	                 | optional     | (none)            | string   | List of column names in the Doris table, separated by commas                                                                                                                                                                                      |
+| doris.filter.query                | optional     | (none)            | string   | Filter expression of the query, which is transparently transmitted to Doris. Doris uses this expression to complete source-side data filtering.                                                                                                   |
+
+## Data Type Mapping
+
+| Doris Type  | Flink Type           |
+|-------------|----------------------|
+| NULL_TYPE   | NULL                 |
+| BOOLEAN     | BOOLEAN              |
+| TINYINT     | TINYINT              |
+| SMALLINT    | SMALLINT             |
+| INT         | INT                  |
+| BIGINT      | BIGINT               |
+| FLOAT       | FLOAT                |
+| DOUBLE      | DOUBLE               |
+| DATE        | STRING               |
+| DATETIME    | STRING               |
+| DECIMAL     | DECIMAL              |
+| CHAR        | STRING               |
+| LARGEINT    | STRING               |
+| VARCHAR     | STRING               |
+| DECIMALV2   | DECIMAL              |
+| TIME        | DOUBLE               |
+| HLL         | Unsupported datatype |
+
+See [flink-doris-connector](https://github.com/apache/doris/blob/1.0.0-rc03/docs/en/extending-doris/flink-doris-connector.md) for more details.
\ No newline at end of file
diff --git a/docs/data_node/load_node/doris.md b/docs/data_node/load_node/doris.md
new file mode 100644
index 0000000000..b2fb3b64bf
--- /dev/null
+++ b/docs/data_node/load_node/doris.md
@@ -0,0 +1,196 @@
+---
+title: ClickHouse
+sidebar_position: 16
+---
+
+import {siteVariables} from '../../version';
+
+## Overview
+
+The `Doris Load` node supports writing data to the Doris database. This document describes how to set up a
+Doris Load node to run SQL queries against the Doris database.
+
+## Supported Version
+
+| Load Node           | Doris version  |                                                                                                                                                                                                                                                                                                                                                                                           
+|---------------------|----------------|
+| [Doris](./doris.md) | 0.13+          |  
+
+## Dependencies
+
+In order to set up the Doris Load node, the dependency information needed to use a build automation tool
+such as Maven or SBT is provided below.
+
+### Maven dependency
+
+<pre><code parentName="pre">
+{`<dependency>
+    <groupId>org.apache.inlong</groupId>
+    <artifactId>sort-connector-doris</artifactId>
+    <version>${siteVariables.inLongVersion}</version>
+</dependency>
+`}
+</code></pre>
+
+## Prepare
+### Create a MySql Extract table
+First create a table `cdc_mysql_source` in the MySql database, the command is as follows:
+```sql
+[root@fe001 ~]# mysql -u root -h localhost -P 3306 -p123456
+mysql> use test;
+Database changed
+mysql> CREATE TABLE `cdc_mysql_source` (
+       `id` int(11) NOT NULL AUTO_INCREMENT,
+       `name` varchar(64) DEFAULT NULL,
+       `dr` tinyint(3) DEFAULT 0,
+       PRIMARY KEY (`id`)
+       );
+Query OK, 0 rows affected (0.02 sec)
+
+mysql> insert into cdc_mysql_source values(1, 'zhangsan', 0),(2, 'lisi', 0),(3, 'wangwu', 0);
+Query OK, 3 rows affected (0.01 sec)
+Records: 3  Duplicates: 0  Warnings: 0
+
+mysql> select * from cdc_mysql_source;
++----+----------+----+
+| id | name     | dr |
++----+----------+----+
+|  1 | zhangsan |  0 |
+|  2 | lisi     |  0 |
+|  3 | wangwu   |  0 |
++----+----------+----+
+3 rows in set (0.07 sec)     
+```
+
+### Create a Doris Load table
+Create a table `cdc_doris_sink` in the Doris database, the command is as follows:
+```sql
+[root@fe001 ~]# mysql -u root -h localhost -P 9030 -p000000
+mysql> use test;
+Reading table information for completion of table and column names
+You can turn off this feature to get a quicker startup with -A
+
+Database changed
+mysql> CREATE TABLE `cdc_doris_sink` (
+       `id` int(11) NOT NULL COMMENT "user id",
+       `name` varchar(50) NOT NULL COMMENT "user name",
+       `dr` tinyint(4) NULL COMMENT "delete tag"
+       ) ENGINE=OLAP
+       UNIQUE KEY(`id`)
+       COMMENT "OLAP"
+       DISTRIBUTED BY HASH(`id`) BUCKETS 1
+       PROPERTIES (
+       "replication_allocation" = "tag.location.default: 1"
+       );
+Query OK, 0 rows affected (0.06 sec)
+```
+
+## How to create a Doris Load Node
+
+### Usage for SQL API
+
+```sql
+[root@tasknode001 flink-1.13.5]# ./bin/sql-client.sh -l ./opt/connectors/mysql-cdc-inlong/ -l ./opt/connectors/doris/
+Flink SQL> SET 'execution.checkpointing.interval' = '3s';
+[INFO] Session property has been set.
+
+Flink SQL> SET 'table.dynamic-table-options.enabled' = 'true';
+[INFO] Session property has been set.
+
+Flink SQL> CREATE TABLE cdc_mysql_source (
+    >   id int
+    >   ,name VARCHAR
+    >   ,dr TINYINT
+    >   ,PRIMARY KEY (id) NOT ENFORCED
+    > ) WITH (
+    >  'connector' = 'mysql-cdc-inlong',
+    >  'hostname' = 'localhost',
+    >  'port' = '3306',
+    >  'username' = 'root',
+    >  'password' = '123456',
+    >  'database-name' = 'test',
+    >  'table-name' = 'cdc_mysql_source'
+    > );
+[INFO] Execute statement succeed.
+
+Flink SQL> CREATE TABLE cdc_doris_sink (
+    > id INT,
+    > name STRING,
+    > dr TINYINT
+    > ) WITH (
+    >  'connector' = 'doris',
+    >  'fenodes' = 'localhost:8030',
+    >  'table.identifier' = 'test.cdc_doris_sink',
+    >  'username' = 'root',
+    >  'password' = '000000',
+    >  'sink.properties.format' = 'json',
+    >  'sink.properties.strip_outer_array' = 'true',
+    >  'sink.enable-delete' = 'true'
+    > );
+[INFO] Execute statement succeed.
+
+-- Support delete event synchronization (sink.enable-delete='true'), requires Doris table to enable batch delete function
+Flink SQL> insert into cdc_doris_sink select * from cdc_mysql_source /*+ OPTIONS('server-id'='5402') */;
+[INFO] Submitting SQL update statement to the cluster...
+[INFO] SQL update statement has been successfully submitted to the cluster:
+Job ID: 5f89691571d7b3f3ca446589e3d0c3d3
+
+```
+
+### Usage for InLong Dashboard
+
+TODO: It will be supported in the future.
+
+### Usage for InLong Manager Client
+
+TODO: It will be supported in the future.
+
+## Doris Load Node Options
+
+| Option                            | Required     | Default           | Type    | Description                                                                                                                                                                                                                                                                                                                                                                                                             |
+|-----------------------------------|--------------|-------------------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| connector                         | required     | (none)            | string  | Specify which connector to use, valid values are: `doris`                                                                                                                                                                                                                                                                                                                                                               |
+| fenodes                           | required     | (none)            | string  | Doris FE http address, support multiple addresses, separated by commas                                                                                                                                                                                                                                                                                                                                                  |
+| table.identifier	                 | required     | (none)            | string  | Doris table identifier, eg, db1.tbl1                                                                                                                                                                                                                                                                                                                                                                                    |
+| username	                         | required     | (none)            | string  | Doris username                                                                                                                                                                                                                                                                                                                                                                                                          |
+| password                          | required     | (none)            | string  | Doris password                                                                                                                                                                                                                                                                                                                                                                                                          |
+| doris.request.retries             | optional     | 3                 | int     | Number of retries to send requests to Doris                                                                                                                                                                                                                                                                                                                                                                             |
+| doris.request.connect.timeout.ms	 | optional     | 30000             | int     | Connection timeout for sending requests to Doris                                                                                                                                                                                                                                                                                                                                                                        |
+| doris.request.read.timeout.ms     | optional     | 30000             | int     | Read timeout for sending request to Doris                                                                                                                                                                                                                                                                                                                                                                               |
+| doris.request.query.timeout.s     | optional     | 3600              | int     | Query the timeout time of Doris, the default is 1 hour, -1 means no timeout limit                                                                                                                                                                                                                                                                                                                                       |
+| doris.request.tablet.size         | optional     | Integer.MAX_VALUE | int     | The number of Doris Tablets corresponding to an Partition. The smaller this value is set, the more partitions will be generated. This will increase the parallelism on the flink side, but at the same time will cause greater pressure on Doris.                                                                                                                                                                       |
+| doris.batch.size                  | optional     | 1024              | int     | The maximum number of rows to read data from BE at one time. Increasing this value can reduce the number of connections between Flink and Doris. Thereby reducing the extra time overhead caused by network delay.                                                                                                                                                                                                      |
+| doris.exec.mem.limit	             | optional     | 2147483648        | long    | Memory limit for a single query. The default is 2GB, in bytes.                                                                                                                                                                                                                                                                                                                                                          |
+| doris.deserialize.arrow.async     | optional     | false             | boolean | Whether to support asynchronous conversion of Arrow format to RowBatch required for flink-doris-connector iteration                                                                                                                                                                                                                                                                                                     |
+| doris.deserialize.queue.size	     | optional     | 64                | int     | Asynchronous conversion of the internal processing queue in Arrow format takes effect when doris.deserialize.arrow.async is true                                                                                                                                                                                                                                                                                        |
+| doris.read.field	                 | optional     | (none)            | string  | List of column names in the Doris table, separated by commas                                                                                                                                                                                                                                                                                                                                                            |
+| doris.filter.query                | optional     | (none)            | string  | Filter expression of the query, which is transparently transmitted to Doris. Doris uses this expression to complete source-side data filtering.                                                                                                                                                                                                                                                                         |
+| sink.batch.size                   | optional     | 10000             | int     | Maximum number of lines in a single write BE                                                                                                                                                                                                                                                                                                                                                                            |
+| sink.max-retries                  | optional     | 1                 | int     | Number of retries after writing BE failed                                                                                                                                                                                                                                                                                                                                                                               |
+| sink.batch.interval               | optional     | 10s               | string  | The flush interval, after which the asynchronous thread will write the data in the cache to BE. The default value is 10 second, and the time units are ms, s, min, h, and d. Set to 0 to turn off periodic writing.                                                                                                                                                                                                     |
+| sink.properties.*                 | optional     | (none)            | string  | The stream load parameters.<br /> <br /> eg:<br /> sink.properties.column_separator' = ','<br /> <br />  Setting 'sink.properties.escape_delimiters' = 'true' if you want to use a control char as a separator, so that such as '\\x01' will translate to binary 0x01<br /><br />  Support JSON format import, you need to enable both 'sink.properties.format' ='json' and 'sink.properties.strip_outer_array' ='true' |
+| sink.enable-delete                | optional     | true              | boolean | Whether to enable deletion. This option requires Doris table to enable batch delete function (0.15+ version is enabled by default), and only supports Uniq model.                                                                                                                                                                                                                                                       |
+
+## Data Type Mapping
+
+| Doris Type  | Flink Type           |
+|-------------|----------------------|
+| NULL_TYPE   | NULL                 |
+| BOOLEAN     | BOOLEAN              |
+| TINYINT     | TINYINT              |
+| SMALLINT    | SMALLINT             |
+| INT         | INT                  |
+| BIGINT      | BIGINT               |
+| FLOAT       | FLOAT                |
+| DOUBLE      | DOUBLE               |
+| DATE        | STRING               |
+| DATETIME    | STRING               |
+| DECIMAL     | DECIMAL              |
+| CHAR        | STRING               |
+| LARGEINT    | STRING               |
+| VARCHAR     | STRING               |
+| DECIMALV2   | DECIMAL              |
+| TIME        | DOUBLE               |
+| HLL         | Unsupported datatype |
+
+See [flink-doris-connector](https://github.com/apache/doris/blob/1.0.0-rc03/docs/en/extending-doris/flink-doris-connector.md) for more details.
\ No newline at end of file
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/data_node/extract_node/doris.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/data_node/extract_node/doris.md
new file mode 100644
index 0000000000..3b1c3bcc7f
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/data_node/extract_node/doris.md
@@ -0,0 +1,150 @@
+---
+title: Doris
+sidebar_position: 11
+---
+
+import {siteVariables} from '../../version';
+
+## 概述
+
+`Doris Extract` 节点 支持从 Doris 中读取数据。本章节介绍如何设置 Doris Extract 节点以对 Doris 数据库运行 SQL 查询。
+
+## 支持的版本
+
+| Extract 节点          | Doris 版本 |                                                                                                                                                                                                                                                                                                                                                                                           
+|---------------------|----------|
+| [Doris](./doris.md) | 0.13+    |  
+
+## 依赖
+
+为了设置 Doris Extract 节点, 下面提供了使用构建自动化工具(例如 Maven 或 SBT)所需要的依赖信息。
+
+### Maven 依赖
+
+<pre><code parentName="pre">
+{`<dependency>
+    <groupId>org.apache.inlong</groupId>
+    <artifactId>sort-connector-doris</artifactId>
+    <version>${siteVariables.inLongVersion}</version>
+</dependency>
+`}
+</code></pre>
+
+## 准备
+### 创建 Doris Extract 表
+先在 Doris 数据库中创建表 `doris_extract_node`, 命令如下:
+```
+[root@fe001 ~]# mysql -u root -h localhost -P 9030 -p000000
+mysql> use test;
+Reading table information for completion of table and column names
+You can turn off this feature to get a quicker startup with -A
+
+Database changed
+mysql> CREATE TABLE `doris_extract_node` (
+       `id` int(11) NOT NULL COMMENT "用户id",
+       `name` varchar(50) NOT NULL COMMENT "昵称",
+       `dr` tinyint(4) NULL COMMENT "逻辑删除"
+       ) ENGINE=OLAP
+       UNIQUE KEY(`id`)
+       COMMENT "OLAP"
+       DISTRIBUTED BY HASH(`id`) BUCKETS 1
+       PROPERTIES (
+       "replication_allocation" = "tag.location.default: 1",
+       "in_memory" = "false",
+       "storage_format" = "V2"
+       );
+Query OK, 0 rows affected (0.03 sec)
+
+mysql> insert into doris_extract_node values(1, 'zhangsan', 0),(2, 'lisi', 0),(3, 'wangwu', 0);
+Query OK, 3 rows affected (0.07 sec)
+{'label':'insert_29d973e9509a48d4-a20e9f0e2d510605', 'status':'VISIBLE', 'txnId':'1032'}
+
+mysql> select * from doris_extract_node;
++------+---------+------+
+| id   | name    | dr   |
++------+---------+------+
+|    1 | zhansan |    0 |
+|    2 | lisi    |    0 |
+|    3 | wangwu  |    0 |
++------+---------+------+
+3 rows in set (0.02 sec)       
+```
+## 如何创建 Doris Extract 节点
+
+### SQL API 用法
+
+下面这个例子展示了如何用 `Flink SQL` 创建一个 Doris Extract 节点:
+* 连接器是 `doris`
+```sql
+# 启动flink sql-client, 加载 doris connector jar包
+[root@tasknode001 flink-1.13.5]# ./bin/sql-client.sh -l ./opt/connectors/doris/
+
+-- 使用 Flink SQL 创建 Doris 表 'doris_extract_node'
+Flink SQL> CREATE TABLE doris_extract_node (
+           `id` INT,
+           `name` STRINTG,
+           `dr` TINYINT
+           ) WITH (
+           'connector' = 'doris',
+           'fenodes' = 'localhost:8030',
+           'table.identifier' = 'test.doris_extract_node',
+           'username' = 'root',
+           'password' = '000000'
+           );
+  
+-- 读取数据
+Flink SQL> SELECT * FROM doris_extract_node;
+```
+
+### InLong Dashboard 用法
+
+TODO: 将在未来支持此功能。
+
+### InLong Manager Client 用法
+
+TODO: 将在未来支持此功能。
+
+## Doris Extract 节点参数
+
+| 参数                                | 是否必选    | 默认值               | 数据类型    | 描述                                                                                                    |
+|-----------------------------------|---------|-------------------|---------|-------------------------------------------------------------------------------------------------------|
+| connector                         | 必选      | (none)            | string  | 指定要使用的连接器 `doris`                                                                                     |
+| fenodes                           | 必选      | (none)            | string  | Doris FE http 地址                                                                                      |
+| table.identifier	                 | 必选      | (none)            | string  | Doris 表名,如:db1.tbl1                                                                                   |
+| username	                         | 必选      | (none)            | string  | 访问 Doris 的用户名                                                                                         |
+| password                          | 必选      | (none)            | string  | 访问 Doris 的密码                                                                                          |
+| doris.request.retries	            | 可选      | 3                 | int     | 向 Doris 发送请求的重试次数                                                                                     |
+| doris.request.connect.timeout.ms	 | 可选      | 30000             | int     | 向 Doris 发送请求的连接超时时间                                                                                   |
+| doris.request.read.timeout.ms	    | 可选      | 30000             | int     | 向 Doris 发送请求的读取超时时间                                                                                   |
+| doris.request.query.timeout.s	    | 可选      | 3600              | int     | 查询 Doris 的超时时间,默认值为1小时,-1表示无超时限制                                                                      |
+| doris.request.tablet.size	        | 可选      | Integer.MAX_VALUE | int     | 一个 Partition 对应的 Doris Tablet 个数。<br/>此数值设置越小,则会生成越多的 Partition。从而提升 Flink 侧的并行度,但同时会对 Doris 造成更大的压力。 |
+| doris.batch.size                  | 可选      | 1024              | int     | 一次从 BE 读取数据的最大行数。增大此数值可减少 Flink 与 Doris 之间建立连接的次数。<br/>从而减轻网络延迟所带来的的额外时间开销。                           |
+| doris.exec.mem.limit	             | 可选      | 2147483648        | long    | 单个查询的内存限制。默认为 2GB,单位为字节                                                                               |
+| doris.deserialize.arrow.async	    | 可选      | false             | boolean | 是否支持异步转换 Arrow 格式到 flink-doris-connector 迭代所需的 RowBatch                                               |
+| doris.deserialize.queue.size	     | 可选      | 64                | int     | 异步转换 Arrow 格式的内部处理队列,当 doris.deserialize.arrow.async 为 true 时生效                                       |
+| doris.read.field	                 | 可选      | (none)            | string  | 读取 Doris 表的列名列表,多列之间使用逗号分隔                                                                            |
+| doris.filter.query                | 可选      | (none)            | string  | 过滤读取数据的表达式,此表达式透传给 Doris。Doris 使用此表达式完成源端数据过滤。                                                        |
+
+## 数据类型映射
+
+| Doris Type  | Flink Type           |
+|-------------|----------------------|
+| NULL_TYPE   | NULL                 |
+| BOOLEAN     | BOOLEAN              |
+| TINYINT     | TINYINT              |
+| SMALLINT    | SMALLINT             |
+| INT         | INT                  |
+| BIGINT      | BIGINT               |
+| FLOAT       | FLOAT                |
+| DOUBLE      | DOUBLE               |
+| DATE        | STRING               |
+| DATETIME    | STRING               |
+| DECIMAL     | DECIMAL              |
+| CHAR        | STRING               |
+| LARGEINT    | STRING               |
+| VARCHAR     | STRING               |
+| DECIMALV2   | DECIMAL              |
+| TIME        | DOUBLE               |
+| HLL         | Unsupported datatype |
+
+请参阅 [flink-doris-connector](https://github.com/apache/doris/blob/1.0.0-rc03/docs/zh-CN/extending-doris/flink-doris-connector.md) 页面以获取更多细节。
\ No newline at end of file
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/data_node/load_node/doris.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/data_node/load_node/doris.md
new file mode 100644
index 0000000000..78760f8975
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/data_node/load_node/doris.md
@@ -0,0 +1,193 @@
+---
+title: ClickHouse
+sidebar_position: 16
+---
+
+import {siteVariables} from '../../version';
+
+## 概览
+
+`Doris Load` 节点支持将数据写入 Doris 数据库。 本文档介绍如何设置 Doris Load 节点以对 Doris 数据库运行 SQL 查询。
+
+## 支持的版本
+
+| Load 节点             | Doris 版本 |                                                                                                                                                                                                                                                                                                                                                                                           
+|---------------------|----------|
+| [Doris](./doris.md) | 0.13+    |  
+
+## 依赖
+
+为了设置 Doris Load 节点, 下面提供了使用构建自动化工具(例如 Maven 或 SBT)所需要的依赖信息。
+
+### Maven 依赖
+
+<pre><code parentName="pre">
+{`<dependency>
+    <groupId>org.apache.inlong</groupId>
+    <artifactId>sort-connector-doris</artifactId>
+    <version>${siteVariables.inLongVersion}</version>
+</dependency>
+`}
+</code></pre>
+
+## 准备
+### 创建 MySql Extract 表
+在 MySql 数据库中创建表 `cdc_mysql_source`, 命令如下:
+```sql
+[root@fe001 ~]# mysql -u root -h localhost -P 3306 -p123456
+mysql> use test;
+Database changed
+mysql> CREATE TABLE `cdc_mysql_source` (
+       `id` int(11) NOT NULL AUTO_INCREMENT,
+       `name` varchar(64) DEFAULT NULL,
+       `dr` tinyint(3) DEFAULT 0,
+       PRIMARY KEY (`id`)
+       );
+Query OK, 0 rows affected (0.02 sec)
+
+mysql> insert into cdc_mysql_source values(1, 'zhangsan', 0),(2, 'lisi', 0),(3, 'wangwu', 0);
+Query OK, 3 rows affected (0.01 sec)
+Records: 3  Duplicates: 0  Warnings: 0
+
+mysql> select * from cdc_mysql_source;
++----+----------+----+
+| id | name     | dr |
++----+----------+----+
+|  1 | zhangsan |  0 |
+|  2 | lisi     |  0 |
+|  3 | wangwu   |  0 |
++----+----------+----+
+3 rows in set (0.07 sec)     
+```
+
+### 创建 Doris Load 表
+在 Doris 数据库中创建表 `cdc_doris_sink`, 命令如下:
+```sql
+[root@fe001 ~]# mysql -u root -h localhost -P 9030 -p000000
+mysql> use test;
+Reading table information for completion of table and column names
+You can turn off this feature to get a quicker startup with -A
+
+Database changed
+mysql> CREATE TABLE `cdc_doris_sink` (
+       `id` int(11) NOT NULL COMMENT "用户id",
+       `name` varchar(50) NOT NULL COMMENT "昵称",
+       `dr` tinyint(4) NULL COMMENT "逻辑删除"
+       ) ENGINE=OLAP
+       UNIQUE KEY(`id`)
+       COMMENT "OLAP"
+       DISTRIBUTED BY HASH(`id`) BUCKETS 1
+       PROPERTIES (
+       "replication_allocation" = "tag.location.default: 1"
+       );
+Query OK, 0 rows affected (0.06 sec)
+```
+
+## 如何创建 Doris Load 节点
+
+### SQL API 用法
+
+```sql
+[root@tasknode001 flink-1.13.5]# ./bin/sql-client.sh -l ./opt/connectors/mysql-cdc-inlong/ -l ./opt/connectors/doris/
+Flink SQL> SET 'execution.checkpointing.interval' = '3s';
+[INFO] Session property has been set.
+
+Flink SQL> SET 'table.dynamic-table-options.enabled' = 'true';
+[INFO] Session property has been set.
+
+Flink SQL> CREATE TABLE cdc_mysql_source (
+    >   id int
+    >   ,name VARCHAR
+    >   ,dr TINYINT
+    >   ,PRIMARY KEY (id) NOT ENFORCED
+    > ) WITH (
+    >  'connector' = 'mysql-cdc-inlong',
+    >  'hostname' = 'localhost',
+    >  'port' = '3306',
+    >  'username' = 'root',
+    >  'password' = '123456',
+    >  'database-name' = 'test',
+    >  'table-name' = 'cdc_mysql_source'
+    > );
+[INFO] Execute statement succeed.
+
+Flink SQL> CREATE TABLE cdc_doris_sink (
+    > id INT,
+    > name STRING,
+    > dr TINYINT
+    > ) WITH (
+    >  'connector' = 'doris',
+    >  'fenodes' = 'localhost:8030',
+    >  'table.identifier' = 'test.cdc_doris_sink',
+    >  'username' = 'root',
+    >  'password' = '000000',
+    >  'sink.properties.format' = 'json',
+    >  'sink.properties.strip_outer_array' = 'true',
+    >  'sink.enable-delete' = 'true'
+    > );
+[INFO] Execute statement succeed.
+
+-- 支持删除事件同步(sink.enable-delete='true'), 需要 Doris 表开启批量删除功能
+Flink SQL> insert into cdc_doris_sink select * from cdc_mysql_source /*+ OPTIONS('server-id'='5402') */;
+[INFO] Submitting SQL update statement to the cluster...
+[INFO] SQL update statement has been successfully submitted to the cluster:
+Job ID: 5f89691571d7b3f3ca446589e3d0c3d3
+
+```
+
+### InLong Dashboard 用法
+
+TODO: 将在未来支持此功能。
+
+### InLong Manager Client 用法
+
+TODO: 将在未来支持此功能。
+
+## Doris Load 节点参数
+
+| 参数                                | 是否必选 | 默认值               | 数据类型     | 描述                                                                                                                                                                                                                                                                                                     |
+|-----------------------------------|------|-------------------|----------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| connector                         | 必选   | (none)            | string   | 指定要使用的连接器 `doris`                                                                                                                                                                                                                                                                                      |
+| fenodes                           | 必选   | (none)            | string   | Doris FE http 地址                                                                                                                                                                                                                                                                                       |
+| table.identifier	                 | 必选   | (none)            | string   | Doris 表名,如:db1.tbl1                                                                                                                                                                                                                                                                                    |
+| username	                         | 必选   | (none)            | string   | 访问 Doris 的用户名                                                                                                                                                                                                                                                                                          |
+| password                          | 必选   | (none)            | string   | 访问 Doris 的密码                                                                                                                                                                                                                                                                                           |
+| doris.request.retries	            | 可选   | 3                 | int      | 向 Doris 发送请求的重试次数                                                                                                                                                                                                                                                                                      |
+| doris.request.connect.timeout.ms	 | 可选   | 30000             | int      | 向 Doris 发送请求的连接超时时间                                                                                                                                                                                                                                                                                    |
+| doris.request.read.timeout.ms	    | 可选   | 30000             | int      | 向 Doris 发送请求的读取超时时间                                                                                                                                                                                                                                                                                    |
+| doris.request.query.timeout.s	    | 可选   | 3600              | int      | 查询 Doris 的超时时间,默认值为1小时,-1表示无超时限制                                                                                                                                                                                                                                                                       |
+| doris.request.tablet.size	        | 可选   | Integer.MAX_VALUE | int      | 一个 Partition 对应的 Doris Tablet 个数。<br/>此数值设置越小,则会生成越多的 Partition。从而提升 Flink 侧的并行度,但同时会对 Doris 造成更大的压力。                                                                                                                                                                                                  |
+| doris.batch.size                  | 可选   | 1024              | int      | 一次从 BE 读取数据的最大行数。增大此数值可减少 Flink 与 Doris 之间建立连接的次数。<br/>从而减轻网络延迟所带来的的额外时间开销。                                                                                                                                                                                                                            |
+| doris.exec.mem.limit	             | 可选   | 2147483648        | long     | 单个查询的内存限制。默认为 2GB,单位为字节                                                                                                                                                                                                                                                                                |
+| doris.deserialize.arrow.async	    | 可选   | false             | boolean  | 是否支持异步转换 Arrow 格式到 flink-doris-connector 迭代所需的 RowBatch                                                                                                                                                                                                                                                |
+| doris.deserialize.queue.size	     | 可选   | 64                | int      | 异步转换 Arrow 格式的内部处理队列,当 doris.deserialize.arrow.async 为 true 时生效                                                                                                                                                                                                                                        |
+| doris.read.field	                 | 可选   | (none)            | string   | 读取 Doris 表的列名列表,多列之间使用逗号分隔                                                                                                                                                                                                                                                                             |
+| doris.filter.query                | 可选   | (none)            | string   | 过滤读取数据的表达式,此表达式透传给 Doris。Doris 使用此表达式完成源端数据过滤。                                                                                                                                                                                                                                                         |
+| sink.batch.size                   | 可选   | 10000             | int      | 单次写 BE 的最大行数                                                                                                                                                                                                                                                                                           |
+| sink.max-retries                  | 可选   | 1                 | int      | 写 BE 失败之后的重试次数                                                                                                                                                                                                                                                                                         |
+| sink.batch.interval               | 可选   | 10s               | string   | Flush 间隔时间,超过该时间后异步线程将缓存中数据写入 BE。 默认值为10秒,支持时间单位 ms、s、min、h和d。设置为0表示关闭定期写入。                                                                                                                                                                                                                            |
+| sink.properties.*                 | 可选   | (none)            | string   | Stream load 的导入参数<br /><br />例如:<br />'sink.properties.column_separator' = ', '<br />定义列分隔符<br /><br />'sink.properties.escape_delimiters' = 'true'<br />特殊字符作为分隔符,'\\x01'会被转换为二进制的0x01<br /><br /> 'sink.properties.format' = 'json'<br />'sink.properties.strip_outer_array' = 'true' <br />JSON格式导入 |
+| sink.enable-delete                | 可选   | true              | boolean  | 是否启用删除。此选项需要 Doris 表开启批量删除功能(0.15+版本默认开启),只支持 Uniq 模型。                                                                                                                                                                                                                                                 |
+## 数据类型映射
+
+| Doris Type  | Flink Type           |
+|-------------|----------------------|
+| NULL_TYPE   | NULL                 |
+| BOOLEAN     | BOOLEAN              |
+| TINYINT     | TINYINT              |
+| SMALLINT    | SMALLINT             |
+| INT         | INT                  |
+| BIGINT      | BIGINT               |
+| FLOAT       | FLOAT                |
+| DOUBLE      | DOUBLE               |
+| DATE        | STRING               |
+| DATETIME    | STRING               |
+| DECIMAL     | DECIMAL              |
+| CHAR        | STRING               |
+| LARGEINT    | STRING               |
+| VARCHAR     | STRING               |
+| DECIMALV2   | DECIMAL              |
+| TIME        | DOUBLE               |
+| HLL         | Unsupported datatype |
+
+请参阅 [flink-doris-connector](https://github.com/apache/doris/blob/1.0.0-rc03/docs/zh-CN/extending-doris/flink-doris-connector.md) 页面以获取更多细节。
\ No newline at end of file