You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by zh...@apache.org on 2020/04/29 01:13:54 UTC

[incubator-doris] branch branch-0.12 updated: [Enhancement] documents rebuild with Vuepress (#3413)

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

zhaoc pushed a commit to branch branch-0.12
in repository https://gitbox.apache.org/repos/asf/incubator-doris.git


The following commit(s) were added to refs/heads/branch-0.12 by this push:
     new 5464ffd  [Enhancement] documents rebuild with Vuepress (#3413)
5464ffd is described below

commit 5464ffde58352d62820d7dc4379d1143e61c84d3
Author: hffariel <52...@qq.com>
AuthorDate: Wed Apr 29 09:13:44 2020 +0800

    [Enhancement] documents rebuild with Vuepress (#3413)
---
 .gitignore                                         |   4 +-
 .travis.yml                                        |  58 ++
 LICENSE.txt                                        |  24 +
 docs/.markdownlint.yml                             |  19 +
 docs/.markdownlintignore                           |   2 +
 docs/.vuepress/config.js                           | 120 ++++
 docs/.vuepress/public/favicon.ico                  | Bin 0 -> 4286 bytes
 .../public}/images/apache-asf-compressed.png       | Bin
 .../public}/images/apache-incubator-logo.png       | Bin
 .../public}/images/apache-incubator.png            | Bin
 .../public}/images/apache_incubator_logo.png       | Bin
 .../public}/images/architecture.png                | Bin
 .../public}/images/asf_logo_wide_small.png         | Bin
 .../public}/images/backend_state.png               | Bin
 .../public}/images/cluster_link_and_migrate_db.png | Bin
 .../public}/images/cluster_namaspace.png           | Bin
 .../public}/images/cpu-flame-demo.svg              |   0
 .../public}/images/cpu-pprof-demo.png              | Bin
 .../public}/images/cpu-pprof-demo.svg              |   0
 .../public}/images/create-pr.png                   | Bin
 .../public}/images/create-pr2.png                  | Bin
 .../public}/images/create-pr3.png                  | Bin
 .../public}/images/dashboard_navibar.png           | Bin
 .../public}/images/dashboard_overview.png          | Bin
 .../public}/images/dashboard_panel.png             | Bin
 .../public}/images/dashboard_row.png               | Bin
 .../public}/images/doris-logo-1.png                | Bin
 .../public}/images/doris-logo-2.png                | Bin
 docs/.vuepress/public/images/doris-logo-only.png   | Bin 0 -> 18959 bytes
 docs/.vuepress/public/images/doris-logo.png        | Bin 0 -> 13630 bytes
 .../public}/images/egg-logo.png                    | Bin
 .../public}/images/egg-logo2.png                   | Bin
 .../public}/images/export_plan_tree_1.png          | Bin
 .../public}/images/export_plan_tree_2.png          | Bin
 .../public}/images/export_status_change.png        | Bin
 .../public}/images/fe_page_index.png               | Bin
 .../public}/images/fe_page_logs.png                | Bin
 .../public}/images/fe_page_queries.png             | Bin
 .../public}/images/fe_page_sessions.png            | Bin
 .../public}/images/fe_page_system.png              | Bin
 .../public}/images/fe_page_system_access.png       | Bin
 .../public}/images/fe_page_system_backends.png     | Bin
 .../public}/images/fe_page_system_brokers.png      | Bin
 .../public}/images/fe_page_system_dbs.png          | Bin
 .../public}/images/fe_page_system_error_hub.png    | Bin
 .../public}/images/fe_page_system_frontends.png    | Bin
 .../public}/images/fe_page_system_jobs.png         | Bin
 .../public}/images/fe_page_system_statistic.png    | Bin
 .../public}/images/fe_page_system_tasks.png        | Bin
 .../public}/images/fork-repo.png                   | Bin
 .../public}/images/graduation-timeline.png         | Bin
 .../public}/images/howtoincubateaproject-thumb.png | Bin
 .../public}/images/howtoincubateaproject.png       | Bin
 .../images/incbuator_feather_egg_logo_crop.png     | Bin
 .../public}/images/incubation-process.png          | Bin
 .../public}/images/incubator_ring_logo.png         | Bin
 .../public}/images/log_replication.jpg             | Bin
 .../public}/images/login-gitter1.png               | Bin
 .../public}/images/login-gitter2.PNG               | Bin
 .../public}/images/metadata_contents.png           | Bin
 .../public}/images/metadata_stream.png             | Bin
 .../public}/images/monitor_arch.png                | Bin
 .../public}/images/multi_tenant_arch.png           | Bin
 .../public}/images/new-pr.png                      | Bin
 .../public}/images/palo_architecture.jpg           | Bin
 .../public}/images/palo_meta.png                   | Bin
 .../public}/images/perf-report-demo.png            | Bin
 .../public}/images/replica_recover.png             | Bin
 .../public}/images/segment_v2.png                  | Bin
 .../public}/images/spark_doris_connector.jpg       | Bin
 .../public}/images/subscribe-mail-list-step1.png   | Bin
 .../public}/images/subscribe-mail-list-step2.png   | Bin
 .../public}/images/subscribe-mail-list-step3.png   | Bin
 .../public}/images/subscribe-mail-list-step4.png   | Bin
 .../public}/images/user_authority.png              | Bin
 docs/.vuepress/sidebar/en.js                       | 441 ++++++++++++++
 docs/.vuepress/sidebar/zh-CN.js                    | 449 ++++++++++++++
 docs/.vuepress/theme/components/Footer.vue         |  53 ++
 docs/.vuepress/theme/components/Home.vue           |  38 ++
 docs/.vuepress/theme/components/NavLinks.vue       |  56 ++
 docs/.vuepress/theme/index.js                      |  21 +
 docs/.vuepress/theme/layouts/Layout.vue            |  38 ++
 docs/Makefile                                      |  43 --
 docs/README.md                                     | 247 ++++++++
 .../alter-table/alter-table-bitmap-index.md        |  79 ---
 .../alter-table/alter-table-rollup.md              | 187 ------
 .../alter-table/alter-table-schema-change.md       | 242 --------
 .../alter-table/alter-table-temp-partition.md      | 244 --------
 .../cn/administrator-guide/alter-table/index.rst   |   9 -
 .../cn/administrator-guide/backup-restore.md       | 179 ------
 .../documentation/cn/administrator-guide/broker.md | 280 ---------
 .../cn/administrator-guide/colocation-join.md      | 441 --------------
 .../cn/administrator-guide/config/fe_config.md     |  34 --
 .../cn/administrator-guide/config/index.rst        |   9 -
 .../cn/administrator-guide/dynamic-partition.md    | 201 ------
 .../cn/administrator-guide/export-manual.md        | 188 ------
 .../http-actions/cancel-label.md                   |  52 --
 .../http-actions/compaction-action.md              |  79 ---
 .../http-actions/fe-get-log-file.md                |  73 ---
 .../http-actions/get-label-state.md                |  52 --
 .../cn/administrator-guide/http-actions/index.rst  |   9 -
 .../http-actions/restore-tablet.md                 |  36 --
 .../documentation/cn/administrator-guide/index.rst |  19 -
 .../load-data/broker-load-manual.md                | 508 ----------------
 .../cn/administrator-guide/load-data/index.rst     |  12 -
 .../load-data/insert-into-manual.md                | 282 ---------
 .../administrator-guide/load-data/load-manual.md   | 210 -------
 .../load-data/routine-load-manual.md               | 292 ---------
 .../load-data/stream-load-manual.md                | 330 ----------
 .../materialized-view/index.rst                    |   9 -
 .../administrator-guide/operation/disk-capacity.md | 141 -----
 .../cn/administrator-guide/operation/index.rst     |   9 -
 .../operation/metadata-operation.md                | 335 ----------
 .../administrator-guide/operation/monitor-alert.md | 302 ---------
 .../administrator-guide/operation/multi-tenant.md  | 232 -------
 .../operation/tablet-meta-tool.md                  | 107 ----
 .../operation/tablet-repair-and-balance.md         | 666 --------------------
 .../operation/tablet-restore-tool.md               |  83 ---
 .../cn/administrator-guide/privilege.md            | 217 -------
 .../cn/administrator-guide/segment-v2-usage.md     | 118 ----
 .../cn/administrator-guide/small-file-mgr.md       |  97 ---
 .../cn/administrator-guide/sql-mode.md             |  69 ---
 .../cn/administrator-guide/time-zone.md            |  84 ---
 .../cn/administrator-guide/variables.md            | 321 ----------
 docs/documentation/cn/community/gitter.md          |  56 --
 .../cn/community/how-to-contribute.md              |  75 ---
 docs/documentation/cn/community/index.rst          |   8 -
 docs/documentation/cn/community/members.md         |  61 --
 docs/documentation/cn/community/pull-request.md    | 252 --------
 docs/documentation/cn/community/release-process.md | 648 --------------------
 .../cn/community/subscribe-mail-list.md            |  62 --
 .../cn/community/verify-apache-release.md          |  81 ---
 .../documentation/cn/developer-guide/debug-tool.md | 266 --------
 .../cn/developer-guide/format-code.md              |  66 --
 docs/documentation/cn/developer-guide/index.rst    |   8 -
 docs/documentation/cn/downloads/downloads.md       |  13 -
 docs/documentation/cn/downloads/index.rst          |  10 -
 .../cn/extending-doris/audit-plugin.md             | 108 ----
 .../cn/extending-doris/doris-on-es.md              | 224 -------
 docs/documentation/cn/extending-doris/index.rst    |   8 -
 .../extending-doris/plugin-development-manual.md   | 291 ---------
 .../cn/extending-doris/user-defined-function.md    | 112 ----
 .../cn/getting-started/advance-usage.md            | 265 --------
 .../cn/getting-started/basic-usage.md              | 374 ------------
 .../cn/getting-started/best-practice.md            | 182 ------
 .../cn/getting-started/data-model-rollup.md        | 631 -------------------
 .../cn/getting-started/data-partition.md           | 290 ---------
 .../cn/getting-started/hit-the-rollup.md           | 287 ---------
 docs/documentation/cn/getting-started/index.rst    |  12 -
 docs/documentation/cn/index.rst                    |  18 -
 docs/documentation/cn/installing/compilation.md    | 101 ----
 docs/documentation/cn/installing/index.rst         |   9 -
 docs/documentation/cn/installing/install-deploy.md | 413 -------------
 docs/documentation/cn/installing/upgrade.md        |  56 --
 .../cn/internal/doris_storage_optimization.md      | 225 -------
 .../cn/internal/grouping_sets_design.md            | 510 ----------------
 docs/documentation/cn/internal/index.rst           |   8 -
 docs/documentation/cn/internal/metadata-design.md  | 119 ----
 docs/documentation/cn/internal/spark_load.md       | 205 -------
 docs/documentation/cn/sql-reference/index.rst      |   9 -
 .../sql-functions/aggregate-functions/avg.md       |  50 --
 .../sql-functions/aggregate-functions/bitmap.md    | 139 -----
 .../sql-functions/aggregate-functions/count.md     |  54 --
 .../aggregate-functions/hll_union_agg.md           |  45 --
 .../sql-functions/aggregate-functions/index.rst    |   8 -
 .../sql-functions/aggregate-functions/max.md       |  39 --
 .../sql-functions/aggregate-functions/min.md       |  39 --
 .../sql-functions/aggregate-functions/ndv.md       |  41 --
 .../aggregate-functions/percentile_approx.md       |  50 --
 .../sql-functions/aggregate-functions/stddev.md    |  46 --
 .../aggregate-functions/stddev_samp.md             |  39 --
 .../sql-functions/aggregate-functions/sum.md       |  39 --
 .../sql-functions/aggregate-functions/var_samp.md  |  38 --
 .../sql-functions/aggregate-functions/variance.md  |  45 --
 .../sql-functions/bitmap-functions/bitmap_and.md   |  48 --
 .../bitmap-functions/bitmap_contains.md            |  48 --
 .../sql-functions/bitmap-functions/bitmap_empty.md |  45 --
 .../bitmap-functions/bitmap_from_string.md         |  56 --
 .../bitmap-functions/bitmap_has_any.md             |  48 --
 .../sql-functions/bitmap-functions/bitmap_hash.md  |  45 --
 .../sql-functions/bitmap-functions/bitmap_or.md    |  48 --
 .../bitmap-functions/bitmap_to_string.md           |  62 --
 .../sql-functions/bitmap-functions/index.rst       |   8 -
 .../sql-functions/bitmap-functions/to_bitmap.md    |  46 --
 .../cn/sql-reference/sql-functions/cast.md         |  75 ---
 .../date-time-functions/convert_tz.md              |  50 --
 .../sql-functions/date-time-functions/curdate.md   |  48 --
 .../date-time-functions/current_timestamp.md       |  42 --
 .../sql-functions/date-time-functions/curtime.md   |  43 --
 .../sql-functions/date-time-functions/date_add.md  |  48 --
 .../date-time-functions/date_format.md             | 153 -----
 .../sql-functions/date-time-functions/date_sub.md  |  48 --
 .../sql-functions/date-time-functions/datediff.md  |  51 --
 .../sql-functions/date-time-functions/day.md       |  42 --
 .../sql-functions/date-time-functions/dayname.md   |  43 --
 .../date-time-functions/dayofmonth.md              |  44 --
 .../sql-functions/date-time-functions/dayofweek.md |  51 --
 .../sql-functions/date-time-functions/dayofyear.md |  44 --
 .../sql-functions/date-time-functions/from_days.md |  42 --
 .../date-time-functions/from_unixtime.md           |  82 ---
 .../sql-functions/date-time-functions/hour.md      |  42 --
 .../sql-functions/date-time-functions/index.rst    |   8 -
 .../sql-functions/date-time-functions/minute.md    |  42 --
 .../sql-functions/date-time-functions/month.md     |  44 --
 .../sql-functions/date-time-functions/monthname.md |  44 --
 .../sql-functions/date-time-functions/now.md       |  42 --
 .../sql-functions/date-time-functions/second.md    |  42 --
 .../date-time-functions/str_to_date.md             |  58 --
 .../sql-functions/date-time-functions/timediff.md  |  58 --
 .../date-time-functions/timestampadd.md            |  52 --
 .../date-time-functions/timestampdiff.md           |  60 --
 .../sql-functions/date-time-functions/to_days.md   |  44 --
 .../date-time-functions/unix_timestamp.md          |  79 ---
 .../date-time-functions/utc_timestamp.md           |  46 --
 .../date-time-functions/workofyear.md              |  45 --
 .../sql-functions/date-time-functions/year.md      |  44 --
 .../sql-functions/hash-functions/index.rst         |   8 -
 .../hash-functions/murmur_hash3_32.md              |  54 --
 .../cn/sql-reference/sql-functions/index.rst       |  18 -
 .../sql-functions/spatial-functions/index.rst      |   8 -
 .../sql-functions/spatial-functions/st_astext.md   |  40 --
 .../sql-functions/spatial-functions/st_circle.md   |  41 --
 .../sql-functions/spatial-functions/st_contains.md |  47 --
 .../spatial-functions/st_distance_sphere.md        |  40 --
 .../spatial-functions/st_geometryfromtext.md       |  40 --
 .../spatial-functions/st_linefromtext.md           |  40 --
 .../sql-functions/spatial-functions/st_point.md    |  41 --
 .../sql-functions/spatial-functions/st_polygon.md  |  40 --
 .../sql-functions/spatial-functions/st_x.md        |  40 --
 .../sql-functions/spatial-functions/st_y.md        |  40 --
 .../sql-functions/string-functions/ascii.md        |  47 --
 .../sql-functions/string-functions/concat.md       |  54 --
 .../sql-functions/string-functions/concat_ws.md    |  56 --
 .../sql-functions/string-functions/ends_with.md    |  46 --
 .../sql-functions/string-functions/find_in_set.md  |  40 --
 .../string-functions/get_json_double.md            |  67 --
 .../sql-functions/string-functions/get_json_int.md |  67 --
 .../string-functions/get_json_string.md            |  77 ---
 .../sql-functions/string-functions/group_concat.md |  56 --
 .../sql-functions/string-functions/index.rst       |   8 -
 .../sql-functions/string-functions/instr.md        |  47 --
 .../sql-functions/string-functions/lcase.md        |  30 -
 .../sql-functions/string-functions/left.md         |  40 --
 .../sql-functions/string-functions/length.md       |  47 --
 .../sql-functions/string-functions/locate.md       |  54 --
 .../sql-functions/string-functions/lower.md        |  40 --
 .../sql-functions/string-functions/lpad.md         |  47 --
 .../sql-functions/string-functions/ltrim.md        |  40 --
 .../sql-functions/string-functions/money_format.md |  54 --
 .../string-functions/null_or_empty.md              |  53 --
 .../string-functions/regexp_extract.md             |  47 --
 .../string-functions/regexp_replace.md             |  47 --
 .../sql-functions/string-functions/repeat.md       |  47 --
 .../sql-functions/string-functions/right.md        |  40 --
 .../sql-functions/string-functions/split_part.md   |  62 --
 .../sql-functions/string-functions/starts_with.md  |  46 --
 .../sql-functions/string-functions/strleft.md      |  40 --
 .../sql-functions/string-functions/strright.md     |  40 --
 .../Account Management/CREATE ROLE.md              |  38 --
 .../Account Management/CREATE USER.md              |  69 ---
 .../sql-statements/Account Management/DROP ROLE.md |  37 --
 .../sql-statements/Account Management/DROP USER.md |  43 --
 .../sql-statements/Account Management/GRANT.md     |  75 ---
 .../sql-statements/Account Management/REVOKE.md    |  42 --
 .../Account Management/SET PASSWORD.md             |  49 --
 .../Account Management/SET PROPERTY.md             |  75 ---
 .../Account Management/SHOW GRANTS.md              |  50 --
 .../Account Management/SHOW ROLES.md               |  35 --
 .../sql-statements/Account Management/index.rst    |   8 -
 .../Administration/ADMIN CANCEL REPAIR.md          |  41 --
 .../Administration/ADMIN CHECK TABLET.md           |  50 --
 .../sql-statements/Administration/ADMIN REPAIR.md  |  46 --
 .../Administration/ADMIN SET CONFIG.md             |  37 --
 .../Administration/ADMIN SET REPLICA STATUS.md     |  55 --
 .../Administration/ADMIN SHOW CONFIG.md            |  46 --
 .../ADMIN SHOW REPLICA DISTRIBUTION.md             |  45 --
 .../Administration/ADMIN SHOW REPLICA STATUS.md    |  58 --
 .../sql-statements/Administration/ALTER CLUSTER.md |  47 --
 .../sql-statements/Administration/ALTER SYSTEM.md  | 113 ----
 .../Administration/CANCEL DECOMMISSION.md          |  34 --
 .../Administration/CREATE CLUSTER.md               |  55 --
 .../sql-statements/Administration/CREATE FILE.md   |  70 ---
 .../sql-statements/Administration/DROP CLUSTER.md  |  37 --
 .../sql-statements/Administration/DROP FILE.md     |  44 --
 .../sql-statements/Administration/ENTER.md         |  37 --
 .../Administration/INSTALL PLUGIN.md               |  50 --
 .../sql-statements/Administration/LINK DATABASE.md |  44 --
 .../Administration/MIGRATE DATABASE.md             |  40 --
 .../sql-statements/Administration/SHOW BACKENDS.md |  41 --
 .../sql-statements/Administration/SHOW BROKER.md   |  34 --
 .../sql-statements/Administration/SHOW FILE.md     |  46 --
 .../Administration/SHOW FRONTENDS.md               |  37 --
 .../Administration/SHOW FULL COLUMNS.md            |  33 -
 .../sql-statements/Administration/SHOW INDEX.md    |  35 --
 .../Administration/SHOW MIGRATIONS.md              |  31 -
 .../sql-statements/Administration/SHOW PLUGINS.md  |  38 --
 .../Administration/SHOW TABLE STATUS.md            |  41 --
 .../Administration/UNINSTALL PLUGIN.md             |  40 --
 .../sql-statements/Administration/index.rst        |   8 -
 .../Data Definition/ALTER DATABASE.md              |  48 --
 .../sql-statements/Data Definition/ALTER TABLE.md  | 334 ----------
 .../sql-statements/Data Definition/ALTER VIEW.md   |  45 --
 .../sql-statements/Data Definition/BACKUP.md       |  58 --
 .../sql-statements/Data Definition/CANCEL ALTER.md |  62 --
 .../Data Definition/CANCEL BACKUP.md               |  32 -
 .../Data Definition/CANCEL RESTORE.md              |  35 --
 .../Data Definition/CREATE DATABASE.md             |  32 -
 .../sql-statements/Data Definition/CREATE INDEX.md |  38 --
 .../Data Definition/CREATE MATERIALIZED VIEW.md    | 230 -------
 .../Data Definition/CREATE REPOSITORY.md           |  69 ---
 .../sql-statements/Data Definition/CREATE TABLE.md | 605 ------------------
 .../sql-statements/Data Definition/CREATE VIEW.md  |  57 --
 .../Data Definition/DROP DATABASE.md               |  35 --
 .../sql-statements/Data Definition/DROP INDEX.md   |  30 -
 .../Data Definition/DROP MATERIALIZED VIEW.md      | 101 ----
 .../Data Definition/DROP REPOSITORY.md             |  35 --
 .../sql-statements/Data Definition/DROP TABLE.md   |  38 --
 .../sql-statements/Data Definition/DROP VIEW.md    |  33 -
 .../sql-statements/Data Definition/HLL.md          | 102 ----
 .../sql-statements/Data Definition/RECOVER.md      |  47 --
 .../sql-statements/Data Definition/RESTORE.md      |  71 ---
 .../Data Definition/TRUNCATE TABLE.md              |  46 --
 .../Data Definition/create-function.md             | 107 ----
 .../Data Definition/drop-function.md               |  49 --
 .../sql-statements/Data Definition/index.rst       |   8 -
 .../Data Definition/show-functions.md              |  72 ---
 .../Data Manipulation/BROKER LOAD.md               | 428 -------------
 .../Data Manipulation/CANCEL LOAD.md               |  39 --
 .../sql-statements/Data Manipulation/DELETE.md     |  55 --
 .../sql-statements/Data Manipulation/EXPORT.md     |  77 ---
 .../sql-statements/Data Manipulation/GROUP BY.md   | 163 -----
 .../sql-statements/Data Manipulation/LOAD.md       | 286 ---------
 .../sql-statements/Data Manipulation/MINI LOAD.md  | 132 ----
 .../sql-statements/Data Manipulation/MULTI LOAD.md | 101 ----
 .../Data Manipulation/PAUSE ROUTINE LOAD.md        |  29 -
 .../Data Manipulation/RESUME ROUTINE LOAD.md       |  29 -
 .../Data Manipulation/ROUTINE LOAD.md              | 307 ----------
 .../sql-statements/Data Manipulation/SHOW ALTER.md |  48 --
 .../Data Manipulation/SHOW BACKUP.md               |  56 --
 .../sql-statements/Data Manipulation/SHOW DATA.md  |  40 --
 .../Data Manipulation/SHOW DATABASES.md            |  28 -
 .../Data Manipulation/SHOW DELETE.md               |  32 -
 .../SHOW DYNAMIC PARTITION TABLES.md               |  32 -
 .../Data Manipulation/SHOW EXPORT.md               |  55 --
 .../sql-statements/Data Manipulation/SHOW LOAD.md  |  68 ---
 .../Data Manipulation/SHOW PARTITIONS.md           |  38 --
 .../Data Manipulation/SHOW PROPERTY.md             |  35 --
 .../Data Manipulation/SHOW REPOSITORIES.md         |  42 --
 .../Data Manipulation/SHOW RESTORE.md              |  60 --
 .../Data Manipulation/SHOW ROUTINE LOAD TASK.md    |  28 -
 .../Data Manipulation/SHOW ROUTINE LOAD.md         |  51 --
 .../Data Manipulation/SHOW SNAPSHOT.md             |  50 --
 .../Data Manipulation/SHOW TABLES.md               |  28 -
 .../Data Manipulation/SHOW TABLET.md               |  60 --
 .../Data Manipulation/SHOW TRANSACTION.md          |  80 ---
 .../Data Manipulation/STOP ROUTINE LOAD.md         |  29 -
 .../Data Manipulation/STREAM LOAD.md               | 126 ----
 .../sql-statements/Data Manipulation/index.rst     |   8 -
 .../sql-statements/Data Manipulation/insert.md     | 104 ----
 .../sql-statements/Data Types/BIGINT.md            |  27 -
 .../sql-statements/Data Types/BOOLEAN.md           |  27 -
 .../sql-statements/Data Types/CHAR.md              |  27 -
 .../sql-statements/Data Types/DATE.md              |  35 --
 .../sql-statements/Data Types/DATETIME.md          |  28 -
 .../sql-statements/Data Types/DECIMAL.md           |  28 -
 .../sql-statements/Data Types/DOUBLE.md            |  27 -
 .../sql-statements/Data Types/FLOAT.md             |  27 -
 .../sql-reference/sql-statements/Data Types/HLL.md |  29 -
 .../sql-reference/sql-statements/Data Types/INT.md |  27 -
 .../sql-statements/Data Types/LARGEINT.md          |  26 -
 .../sql-statements/Data Types/SMALLINT.md          |  27 -
 .../sql-statements/Data Types/TINYINT.md           |  27 -
 .../sql-statements/Data Types/VARCHAR.md           |  27 -
 .../sql-statements/Data Types/index.rst            |   8 -
 .../sql-statements/Utility/DESCRIBE.md             |  41 --
 .../sql-reference/sql-statements/Utility/index.rst |   8 -
 .../cn/sql-reference/sql-statements/index.rst      |  13 -
 .../alter-table/alter-table-bitmap-index_EN.md     |  76 ---
 .../alter-table/alter-table-rollup_EN.md           | 181 ------
 .../alter-table/alter-table-schema-change_EN.md    | 224 -------
 .../alter-table/alter-table-temp-partition_EN.md   | 234 -------
 .../en/administrator-guide/alter-table/index.rst   |   9 -
 .../en/administrator-guide/backup-restore_EN.md    | 179 ------
 .../en/administrator-guide/broker_EN.md            | 286 ---------
 .../en/administrator-guide/colocation-join_EN.md   | 441 --------------
 .../en/administrator-guide/config/fe_config_en.md  |  34 --
 .../en/administrator-guide/config/index.rst        |   9 -
 .../en/administrator-guide/dynamic-partition_EN.md | 185 ------
 .../en/administrator-guide/export_manual_EN.md     | 184 ------
 .../http-actions/cancel-label_EN.md                |  57 --
 .../http-actions/compaction-action_EN.md           |  78 ---
 .../http-actions/fe-get-log-file_EN.md             |  67 --
 .../http-actions/get-label-state_EN.md             |  52 --
 .../en/administrator-guide/http-actions/index.rst  |   9 -
 .../http-actions/restore-tablet_EN.md              |  34 --
 .../documentation/en/administrator-guide/index.rst |  19 -
 .../load-data/broker-load-manual_EN.md             | 488 ---------------
 .../en/administrator-guide/load-data/index.rst     |  12 -
 .../load-data/insert-into-manual_EN.md             | 268 --------
 .../load-data/load-manual_EN.md                    | 212 -------
 .../load-data/routine-load-manual_EN.md            | 290 ---------
 .../load-data/stream-load-manual_EN.md             | 286 ---------
 .../en/administrator-guide/operation/index.rst     |   9 -
 .../operation/metadata-operation_EN.md             | 335 ----------
 .../operation/monitor-alert_EN.md                  | 302 ---------
 .../operation/multi-tenant_EN.md                   | 231 -------
 .../operation/tablet-meta-tool_EN.md               | 105 ----
 .../operation/tablet-repair-and-balance_EN.md      | 660 --------------------
 .../en/administrator-guide/privilege_EN.md         | 217 -------
 .../en/administrator-guide/small-file-mgr_EN.md    |  97 ---
 .../en/administrator-guide/sql-mode_EN.md          |  69 ---
 .../en/administrator-guide/time-zone_EN.md         |  91 ---
 .../en/administrator-guide/variables_EN.md         | 321 ----------
 docs/documentation/en/community/gitter_EN.md       |  56 --
 .../en/community/how-to-contribute_EN.md           |  76 ---
 docs/documentation/en/community/index.rst          |   8 -
 docs/documentation/en/community/members_EN.md      |  61 --
 docs/documentation/en/community/pull-request_EN.md | 252 --------
 .../en/community/release-process_EN.md             | 666 --------------------
 .../en/community/subscribe-mail-list_EN.md         |  62 --
 .../en/community/verify-apache-release_EN.md       |  75 ---
 .../documentation/en/developer-guide/debug-tool.md | 266 --------
 .../en/developer-guide/format-code.md              |  78 ---
 docs/documentation/en/developer-guide/index.rst    |   8 -
 docs/documentation/en/downloads/downloads_EN.md    |  13 -
 docs/documentation/en/downloads/index.rst          |  10 -
 .../en/extending-doris/audit-plugin_EN.md          |  89 ---
 .../en/extending-doris/doris-on-es_EN.md           | 226 -------
 docs/documentation/en/extending-doris/index.rst    |   8 -
 .../plugin-development-manual_EN.md                | 293 ---------
 .../en/extending-doris/user-defined-function_EN.md | 111 ----
 .../en/getting-started/advance-usage_EN.md         | 265 --------
 .../en/getting-started/basic-usage_EN.md           | 375 ------------
 .../en/getting-started/best-practice_EN.md         | 184 ------
 .../en/getting-started/data-model-rollup_EN.md     | 630 -------------------
 .../en/getting-started/data-partition_EN.md        | 286 ---------
 .../en/getting-started/hit-the-rollup_EN.md        | 289 ---------
 docs/documentation/en/getting-started/index.rst    |  12 -
 docs/documentation/en/index.rst                    |  20 -
 docs/documentation/en/installing/compilation_EN.md | 100 ---
 docs/documentation/en/installing/index.rst         |   9 -
 .../en/installing/install-deploy_EN.md             | 427 -------------
 docs/documentation/en/installing/upgrade_EN.md     |  57 --
 .../en/internal/doris_storage_optimization_EN.md   | 226 -------
 .../en/internal/grouping_sets_design_EN.md         | 494 ---------------
 docs/documentation/en/internal/index.rst           |   8 -
 .../en/internal/metadata-design_EN.md              | 120 ----
 docs/documentation/en/sql-reference/index.rst      |   9 -
 .../sql-functions/aggregate-functions/avg_EN.md    |  51 --
 .../sql-functions/aggregate-functions/bitmap_EN.md | 139 -----
 .../sql-functions/aggregate-functions/count_EN.md  |  54 --
 .../aggregate-functions/hll_union_agg_EN.md        |  45 --
 .../sql-functions/aggregate-functions/index.rst    |   8 -
 .../sql-functions/aggregate-functions/max_EN.md    |  39 --
 .../sql-functions/aggregate-functions/min_EN.md    |  39 --
 .../sql-functions/aggregate-functions/ndv_EN.md    |  41 --
 .../aggregate-functions/percentile_approx_EN.md    |  49 --
 .../sql-functions/aggregate-functions/stddev_EN.md |  46 --
 .../aggregate-functions/stddev_samp_EN.md          |  39 --
 .../sql-functions/aggregate-functions/sum_EN.md    |  39 --
 .../aggregate-functions/var_samp_EN.md             |  39 --
 .../aggregate-functions/variance_EN.md             |  46 --
 .../bitmap-functions/bitmap_and_EN.md              |  48 --
 .../bitmap-functions/bitmap_contains_EN.md         |  48 --
 .../bitmap-functions/bitmap_empty_EN.md            |  45 --
 .../bitmap-functions/bitmap_from_string.md         |  56 --
 .../bitmap-functions/bitmap_has_any_EN.md          |  48 --
 .../bitmap-functions/bitmap_hash_EN.md             |  45 --
 .../sql-functions/bitmap-functions/bitmap_or_EN.md |  48 --
 .../bitmap-functions/bitmap_to_string.md           |  63 --
 .../sql-functions/bitmap-functions/index.rst       |   8 -
 .../sql-functions/bitmap-functions/to_bitmap_EN.md |  45 --
 .../en/sql-reference/sql-functions/cast_EN.md      |  76 ---
 .../date-time-functions/curdate_EN.md              |  46 --
 .../date-time-functions/current_timestamp_EN.md    |  40 --
 .../date-time-functions/date_add_EN.md             |  46 --
 .../date-time-functions/date_format_EN.md          | 151 -----
 .../date-time-functions/date_sub_EN.md             |  46 --
 .../date-time-functions/datediff_EN.md             |  52 --
 .../sql-functions/date-time-functions/day_EN.md    |  42 --
 .../date-time-functions/dayname_EN.md              |  42 --
 .../date-time-functions/dayofmonth_EN.md           |  43 --
 .../date-time-functions/dayofweek_EN.md            |  48 --
 .../date-time-functions/dayofyear_EN.md            |  43 --
 .../date-time-functions/from_days_EN.md            |  39 --
 .../date-time-functions/from_unixtime_EN.md        |  69 ---
 .../sql-functions/date-time-functions/hour_EN.md   |  41 --
 .../sql-functions/date-time-functions/index.rst    |   8 -
 .../sql-functions/date-time-functions/minute_EN.md |  41 --
 .../sql-functions/date-time-functions/month_EN.md  |  42 --
 .../date-time-functions/monthname_EN.md            |  42 --
 .../sql-functions/date-time-functions/now_EN.md    |  40 --
 .../sql-functions/date-time-functions/second_EN.md |  41 --
 .../date-time-functions/str_to_date_EN.md          |  57 --
 .../date-time-functions/timediff_EN.md             |  58 --
 .../date-time-functions/timestampadd_EN.md         |  51 --
 .../date-time-functions/timestampdiff_EN.md        |  60 --
 .../date-time-functions/to_days_EN.md              |  43 --
 .../date-time-functions/unix_timestamp_EN.md       |  79 ---
 .../date-time-functions/utc_timestamp_EN.md        |  43 --
 .../date-time-functions/workofyear_EN.md           |  43 --
 .../sql-functions/date-time-functions/year_EN.md   |  43 --
 .../sql-functions/hash-functions/index.rst         |   8 -
 .../hash-functions/murmur_hash3_32.md              |  54 --
 .../en/sql-reference/sql-functions/index.rst       |  18 -
 .../sql-functions/spatial-functions/index.rst      |   8 -
 .../spatial-functions/st_astext_EN.md              |  40 --
 .../spatial-functions/st_circle_EN.md              |  41 --
 .../spatial-functions/st_contains_EN.md            |  49 --
 .../spatial-functions/st_distance_sphere_EN.md     |  40 --
 .../spatial-functions/st_geometryfromtext_EN.md    |  40 --
 .../spatial-functions/st_linefromtext_EN.md        |  40 --
 .../sql-functions/spatial-functions/st_point_EN.md |  41 --
 .../spatial-functions/st_polygon_EN.md             |  41 --
 .../sql-functions/spatial-functions/st_x_EN.md     |  40 --
 .../sql-functions/spatial-functions/st_y_EN.md     |  40 --
 .../sql-functions/string-functions/ascii_EN.md     |  47 --
 .../sql-functions/string-functions/concat_EN.md    |  54 --
 .../sql-functions/string-functions/concat_ws_EN.md |  56 --
 .../sql-functions/string-functions/ends_with_EN.md |  47 --
 .../string-functions/find_in_set_EN.md             |  42 --
 .../string-functions/get_json_double_EN.md         |  67 --
 .../string-functions/get_json_int_EN.md            |  67 --
 .../string-functions/get_json_string_EN.md         |  77 ---
 .../string-functions/group_concat_EN.md            |  56 --
 .../sql-functions/string-functions/index.rst       |   8 -
 .../sql-functions/string-functions/instr_EN.md     |  47 --
 .../sql-functions/string-functions/lcase_EN.md     |  30 -
 .../sql-functions/string-functions/left_EN.md      |  40 --
 .../sql-functions/string-functions/length_EN.md    |  47 --
 .../sql-functions/string-functions/locate_EN.md    |  54 --
 .../sql-functions/string-functions/lower_EN.md     |  40 --
 .../sql-functions/string-functions/lpad_EN.md      |  47 --
 .../sql-functions/string-functions/ltrim_EN.md     |  40 --
 .../string-functions/money_format_EN.md            |  54 --
 .../string-functions/null_or_empty.md              |  53 --
 .../string-functions/regexp_extract_EN.md          |  47 --
 .../string-functions/regexp_replace_EN.md          |  47 --
 .../sql-functions/string-functions/repeat_EN.md    |  47 --
 .../sql-functions/string-functions/right_EN.md     |  40 --
 .../string-functions/split_part_EN.md              |  62 --
 .../string-functions/starts_with_EN.md             |  47 --
 .../sql-functions/string-functions/strleft_EN.md   |  40 --
 .../sql-functions/string-functions/strright_EN.md  |  41 --
 .../Account Management/CREATE ROLE_EN.md           |  38 --
 .../Account Management/CREATE USER_EN.md           |  67 --
 .../Account Management/DROP ROLE_EN.md             |  36 --
 .../Account Management/DROP USER_EN.md             |  42 --
 .../sql-statements/Account Management/GRANT_EN.md  |  74 ---
 .../sql-statements/Account Management/REVOKE_EN.md |  41 --
 .../Account Management/SET PASSWORD_EN.md          |  48 --
 .../Account Management/SET PROPERTY_EN.md          |  75 ---
 .../Account Management/SHOW GRANTS_EN.md           |  49 --
 .../Account Management/SHOW ROLES_EN.md            |  34 --
 .../sql-statements/Account Management/index.rst    |   8 -
 .../Administration/ADMIN CANCEL REPAIR_EN.md       |  40 --
 .../Administration/ADMIN CHECK TABLET_EN.md        |  50 --
 .../Administration/ADMIN REPAIR_EN.md              |  45 --
 .../Administration/ADMIN SET CONFIG_EN.md          |  37 --
 .../Administration/ADMIN SET REPLICA STATUS_EN.md  |  55 --
 .../Administration/ADMIN SHOW CONFIG_EN.md         |  46 --
 .../ADMIN SHOW REPLICA DISTRIBUTION_EN.md          |  44 --
 .../Administration/ADMIN SHOW REPLICA STATUS_EN.md |  57 --
 .../Administration/ALTER CLUSTER_EN.md             |  46 --
 .../Administration/ALTER SYSTEM_EN.md              | 112 ----
 .../Administration/CANCEL DECOMMISSION_EN.md       |  33 -
 .../Administration/CREATE CLUSTER_EN.md            |  54 --
 .../Administration/CREATE FILE_EN.md               |  69 ---
 .../Administration/DROP CLUSTER_EN.md              |  36 --
 .../sql-statements/Administration/DROP FILE_EN.md  |  44 --
 .../sql-statements/Administration/ENTER_EN.md      |  37 --
 .../Administration/INSTALL PLUGIN_EN.md            |  50 --
 .../Administration/LINK DATABASE_EN.md             |  42 --
 .../Administration/MIGRATE DATABASE_EN.md          |  38 --
 .../Administration/SHOW BACKENDS_EN.md             |  40 --
 .../Administration/SHOW BROKER_EN.md               |  33 -
 .../sql-statements/Administration/SHOW FILE_EN.md  |  45 --
 .../Administration/SHOW FRONTENDS_EN.md            |  36 --
 .../Administration/SHOW FULL COLUMNS_EN.md         |  35 --
 .../sql-statements/Administration/SHOW INDEX_EN.md |  35 --
 .../Administration/SHOW MIGRATIONS_EN.md           |  30 -
 .../Administration/SHOW PLUGINS_EN.md              |  38 --
 .../Administration/SHOW TABLE STATUS_EN.md         |  48 --
 .../Administration/UNINTALL PLUGIN_EN.md           |  40 --
 .../sql-statements/Administration/index.rst        |   8 -
 .../Data Definition/ALTER DATABASE_EN.md           |  48 --
 .../Data Definition/ALTER TABLE_EN.md              | 339 -----------
 .../Data Definition/ALTER VIEW_EN.md               |  44 --
 .../sql-statements/Data Definition/BACKUP_EN.md    |  58 --
 .../Data Definition/CANCEL ALTER_EN.md             |  63 --
 .../Data Definition/CANCEL BACKUP_EN.md            |  32 -
 .../Data Definition/CANCEL RESTORE_EN.md           |  35 --
 .../Data Definition/CREATE DATABASE_EN.md          |  32 -
 .../Data Definition/CREATE INDEX_EN.md             |  38 --
 .../Data Definition/CREATE MATERIALIZED VIEW.md    | 231 -------
 .../Data Definition/CREATE REPOSITORY_EN.md        |  68 ---
 .../Data Definition/CREATE TABLE_EN.md             | 575 ------------------
 .../Data Definition/CREATE VIEW_EN.md              |  61 --
 .../Data Definition/Colocate Join_EN.md            |  91 ---
 .../Data Definition/DROP DATABASE_EN.md            |  35 --
 .../Data Definition/DROP INDEX_EN.md               |  30 -
 .../Data Definition/DROP MATERIALIZED VIEW.md      | 103 ----
 .../Data Definition/DROP REPOSITORY_EN.md          |  34 --
 .../Data Definition/DROP TABLE_EN.md               |  38 --
 .../sql-statements/Data Definition/DROP VIEW_EN.md |  33 -
 .../sql-statements/Data Definition/HLL_EN.md       | 104 ----
 .../sql-statements/Data Definition/RECOVER_EN.md   |  47 --
 .../sql-statements/Data Definition/RESTORE_EN.md   |  71 ---
 .../Data Definition/TRUNCATE TABLE_EN.md           |  45 --
 .../Data Definition/create-function_EN.md          | 104 ----
 .../Data Definition/drop-function_EN.md            |  47 --
 .../sql-statements/Data Definition/index.rst       |   8 -
 .../Data Definition/show-functions_EN.md           |  70 ---
 .../Data Manipulation/BROKER LOAD_EN.md            | 421 -------------
 .../Data Manipulation/CANCEL DELETE_EN.md          |  29 -
 .../Data Manipulation/CANCEL LABEL_EN.md           |  46 --
 .../Data Manipulation/CANCEL LOAD_EN.md            |  38 --
 .../sql-statements/Data Manipulation/DELETE_EN.md  |  55 --
 .../sql-statements/Data Manipulation/EXPORT_EN.md  |  76 ---
 .../Data Manipulation/GET LABEL STATE_EN.md        |  51 --
 .../Data Manipulation/GROUP BY_EN.md               | 161 -----
 .../sql-statements/Data Manipulation/LOAD_EN.md    | 279 ---------
 .../Data Manipulation/MINI LOAD_EN.md              | 125 ----
 .../Data Manipulation/MULTI LOAD_EN.md             | 100 ---
 .../Data Manipulation/PAUSE ROUTINE LOAD_EN.md     |  28 -
 .../Data Manipulation/RESTORE TABLET_EN.md         |  34 --
 .../Data Manipulation/RESUME ROUTINE LOAD_EN.md    |  28 -
 .../Data Manipulation/ROUTINE LOAD_EN.md           | 364 -----------
 .../Data Manipulation/SHOW ALTER_EN.md             |  48 --
 .../Data Manipulation/SHOW BACKUP_EN.md            |  55 --
 .../Data Manipulation/SHOW DATABASES_EN.md         |  28 -
 .../Data Manipulation/SHOW DATA_EN.md              |  39 --
 .../Data Manipulation/SHOW DELETE_EN.md            |  32 -
 .../SHOW DYNAMIC PARTITION TABLES_EN.md            |  29 -
 .../Data Manipulation/SHOW EXPORT_EN.md            |  55 --
 .../Data Manipulation/SHOW LOAD_EN.md              |  67 --
 .../Data Manipulation/SHOW PARTITIONS_EN.md        |  41 --
 .../Data Manipulation/SHOW PROPERTY_EN.md          |  35 --
 .../Data Manipulation/SHOW REPOSITORIES_EN.md      |  42 --
 .../Data Manipulation/SHOW RESTORE_EN.md           |  60 --
 .../Data Manipulation/SHOW ROUTINE LOAD TASK_EN.md |  28 -
 .../Data Manipulation/SHOW ROUTINE LOAD_EN.md      |  50 --
 .../Data Manipulation/SHOW SNAPSHOT_EN.md          |  49 --
 .../Data Manipulation/SHOW TABLES_EN.md            |  27 -
 .../Data Manipulation/SHOW TABLET_EN.md            |  35 --
 .../Data Manipulation/SHOW TRANSACTION_EN.md       |  79 ---
 .../Data Manipulation/STOP ROUTINE LOAD_EN.md      |  28 -
 .../Data Manipulation/STREAM LOAD_EN.md            | 186 ------
 .../sql-statements/Data Manipulation/index.rst     |   8 -
 .../sql-statements/Data Manipulation/insert_EN.md  | 103 ----
 .../sql-statements/Data Types/BIGINT_EN.md         |  26 -
 .../sql-statements/Data Types/BOOLEAN_EN.md        |  26 -
 .../sql-statements/Data Types/CHAR_EN.md           |  26 -
 .../sql-statements/Data Types/DATETIME_EN.md       |  27 -
 .../sql-statements/Data Types/DATE_EN.md           |  34 --
 .../sql-statements/Data Types/DECIMAL_EN.md        |  27 -
 .../sql-statements/Data Types/DOUBLE_EN.md         |  26 -
 .../sql-statements/Data Types/FLOAT_EN.md          |  26 -
 .../Data Types/HLL(HyperLogLog)_EN.md              |  28 -
 .../sql-statements/Data Types/INT_EN.md            |  26 -
 .../sql-statements/Data Types/SMALLINT_EN.md       |  26 -
 .../sql-statements/Data Types/TINYINT_EN.md        |  26 -
 .../sql-statements/Data Types/VARCHAR_EN.md        |  26 -
 .../sql-statements/Data Types/index.rst            |   8 -
 .../sql-reference/sql-statements/Utility/index.rst |   8 -
 .../sql-statements/Utility/util_stmt_EN.md         |  32 -
 .../en/sql-reference/sql-statements/index.rst      |  13 -
 docs/en/README.md                                  |   8 +
 .../alter-table/alter-table-bitmap-index.md        |  83 +++
 .../alter-table/alter-table-rollup.md              | 188 ++++++
 .../alter-table/alter-table-schema-change.md       | 231 +++++++
 .../alter-table/alter-table-temp-partition.md      | 241 ++++++++
 docs/en/administrator-guide/backup-restore.md      | 186 ++++++
 docs/en/administrator-guide/broker.md              | 293 +++++++++
 docs/en/administrator-guide/colocation-join.md     | 448 ++++++++++++++
 docs/en/administrator-guide/config/fe_config.md    |  41 ++
 docs/en/administrator-guide/dynamic-partition.md   | 192 ++++++
 docs/en/administrator-guide/export_manual.md       | 191 ++++++
 .../http-actions/cancel-label.md                   |  64 ++
 .../http-actions/compaction-action.md              |  85 +++
 .../http-actions/fe-get-log-file.md                |  74 +++
 .../http-actions/get-label-state.md                |  59 ++
 .../http-actions/restore-tablet.md                 |  41 ++
 .../load-data/broker-load-manual.md                | 495 +++++++++++++++
 .../load-data/insert-into-manual.md                | 275 +++++++++
 .../administrator-guide/load-data/load-manual.md   | 219 +++++++
 .../load-data/routine-load-manual.md               | 297 +++++++++
 .../load-data/stream-load-manual.md                | 293 +++++++++
 .../operation/metadata-operation.md                | 342 +++++++++++
 .../administrator-guide/operation/monitor-alert.md | 309 ++++++++++
 .../administrator-guide/operation/multi-tenant.md  | 238 ++++++++
 .../operation/tablet-meta-tool.md                  | 112 ++++
 .../operation/tablet-repair-and-balance.md         | 667 ++++++++++++++++++++
 docs/en/administrator-guide/privilege.md           | 224 +++++++
 docs/en/administrator-guide/small-file-mgr.md      | 104 ++++
 docs/en/administrator-guide/sql-mode.md            |  76 +++
 docs/en/administrator-guide/time-zone.md           |  98 +++
 docs/en/administrator-guide/variables.md           | 328 ++++++++++
 docs/en/community/gitter.md                        |  63 ++
 docs/en/community/how-to-contribute.md             |  83 +++
 docs/en/community/members.md                       |  68 +++
 docs/en/community/pull-request.md                  | 259 ++++++++
 docs/en/community/release-process.md               | 673 +++++++++++++++++++++
 docs/en/community/subscribe-mail-list.md           |  69 +++
 docs/en/community/verify-apache-release.md         |  82 +++
 docs/en/developer-guide/debug-tool.md              | 273 +++++++++
 docs/en/developer-guide/format-code.md             |  85 +++
 docs/en/downloads/downloads.md                     |  20 +
 docs/en/extending-doris/audit-plugin.md            |  96 +++
 docs/en/extending-doris/doris-on-es.md             | 233 +++++++
 .../extending-doris/plugin-development-manual.md   | 300 +++++++++
 docs/en/extending-doris/user-defined-function.md   | 118 ++++
 docs/en/getting-started/advance-usage.md           | 272 +++++++++
 docs/en/getting-started/basic-usage.md             | 382 ++++++++++++
 docs/en/getting-started/best-practice.md           | 191 ++++++
 docs/en/getting-started/data-model-rollup.md       | 637 +++++++++++++++++++
 docs/en/getting-started/data-partition.md          | 293 +++++++++
 docs/en/getting-started/hit-the-rollup.md          | 296 +++++++++
 docs/en/installing/compilation.md                  | 107 ++++
 docs/en/installing/install-deploy.md               | 434 +++++++++++++
 docs/en/installing/upgrade.md                      |  64 ++
 docs/en/internal/doris_storage_optimization.md     | 233 +++++++
 docs/en/internal/grouping_sets_design.md           | 501 +++++++++++++++
 docs/en/internal/metadata-design.md                | 127 ++++
 .../sql-functions/aggregate-functions/avg.md       |  58 ++
 .../sql-functions/aggregate-functions/bitmap.md    | 146 +++++
 .../sql-functions/aggregate-functions/count.md     |  61 ++
 .../aggregate-functions/hll_union_agg.md           |  52 ++
 .../sql-functions/aggregate-functions/max.md       |  46 ++
 .../sql-functions/aggregate-functions/min.md       |  46 ++
 .../sql-functions/aggregate-functions/ndv.md       |  48 ++
 .../aggregate-functions/percentile_approx.md       |  56 ++
 .../sql-functions/aggregate-functions/stddev.md    |  53 ++
 .../aggregate-functions/stddev_samp.md             |  46 ++
 .../sql-functions/aggregate-functions/sum.md       |  46 ++
 .../sql-functions/aggregate-functions/var_samp.md  |  46 ++
 .../sql-functions/aggregate-functions/variance.md  |  53 ++
 .../sql-functions/bitmap-functions/bitmap_and.md   |  55 ++
 .../bitmap-functions/bitmap_contains.md            |  55 ++
 .../sql-functions/bitmap-functions/bitmap_empty.md |  52 ++
 .../bitmap-functions/bitmap_from_string.md         |  63 ++
 .../bitmap-functions/bitmap_has_any.md             |  55 ++
 .../sql-functions/bitmap-functions/bitmap_hash.md  |  52 ++
 .../sql-functions/bitmap-functions/bitmap_or.md    |  55 ++
 .../bitmap-functions/bitmap_to_string.md           |  70 +++
 .../sql-functions/bitmap-functions/to_bitmap.md    |  52 ++
 docs/en/sql-reference/sql-functions/cast.md        |  83 +++
 .../sql-functions/date-time-functions/curdate.md   |  53 ++
 .../date-time-functions/current_timestamp.md       |  47 ++
 .../sql-functions/date-time-functions/date_add.md  |  53 ++
 .../date-time-functions/date_format.md             | 158 +++++
 .../sql-functions/date-time-functions/date_sub.md  |  53 ++
 .../sql-functions/date-time-functions/datediff.md  |  59 ++
 .../sql-functions/date-time-functions/day.md       |  49 ++
 .../sql-functions/date-time-functions/dayname.md   |  49 ++
 .../date-time-functions/dayofmonth.md              |  50 ++
 .../sql-functions/date-time-functions/dayofweek.md |  55 ++
 .../sql-functions/date-time-functions/dayofyear.md |  50 ++
 .../sql-functions/date-time-functions/from_days.md |  46 ++
 .../date-time-functions/from_unixtime.md           |  76 +++
 .../sql-functions/date-time-functions/hour.md      |  48 ++
 .../sql-functions/date-time-functions/minute.md    |  48 ++
 .../sql-functions/date-time-functions/month.md     |  49 ++
 .../sql-functions/date-time-functions/monthname.md |  49 ++
 .../sql-functions/date-time-functions/now.md       |  47 ++
 .../sql-functions/date-time-functions/second.md    |  48 ++
 .../date-time-functions/str_to_date.md             |  64 ++
 .../sql-functions/date-time-functions/timediff.md  |  65 ++
 .../date-time-functions/timestampadd.md            |  58 ++
 .../date-time-functions/timestampdiff.md           |  67 ++
 .../sql-functions/date-time-functions/to_days.md   |  50 ++
 .../date-time-functions/unix_timestamp.md          |  86 +++
 .../date-time-functions/utc_timestamp.md           |  50 ++
 .../date-time-functions/workofyear.md              |  50 ++
 .../sql-functions/date-time-functions/year.md      |  50 ++
 .../hash-functions/murmur_hash3_32.md              |  61 ++
 .../sql-functions/spatial-functions/st_astext.md   |  47 ++
 .../sql-functions/spatial-functions/st_circle.md   |  48 ++
 .../sql-functions/spatial-functions/st_contains.md |  56 ++
 .../spatial-functions/st_distance_sphere.md        |  47 ++
 .../spatial-functions/st_geometryfromtext.md       |  47 ++
 .../spatial-functions/st_linefromtext.md           |  47 ++
 .../sql-functions/spatial-functions/st_point.md    |  48 ++
 .../sql-functions/spatial-functions/st_polygon.md  |  48 ++
 .../sql-functions/spatial-functions/st_x.md        |  47 ++
 .../sql-functions/spatial-functions/st_y.md        |  47 ++
 .../sql-functions/string-functions/ascii.md        |  54 ++
 .../sql-functions/string-functions/concat.md       |  61 ++
 .../sql-functions/string-functions/concat_ws.md    |  63 ++
 .../sql-functions/string-functions/ends_with.md    |  54 ++
 .../sql-functions/string-functions/find_in_set.md  |  49 ++
 .../string-functions/get_json_double.md            |  74 +++
 .../sql-functions/string-functions/get_json_int.md |  74 +++
 .../string-functions/get_json_string.md            |  84 +++
 .../sql-functions/string-functions/group_concat.md |  63 ++
 .../sql-functions/string-functions/instr.md        |  54 ++
 .../sql-functions/string-functions/lcase.md        |  37 ++
 .../sql-functions/string-functions/left.md         |  47 ++
 .../sql-functions/string-functions/length.md       |  54 ++
 .../sql-functions/string-functions/locate.md       |  61 ++
 .../sql-functions/string-functions/lower.md        |  47 ++
 .../sql-functions/string-functions/lpad.md         |  54 ++
 .../sql-functions/string-functions/ltrim.md        |  47 ++
 .../sql-functions/string-functions/money_format.md |  61 ++
 .../string-functions/null_or_empty.md              |  60 ++
 .../string-functions/regexp_extract.md             |  54 ++
 .../string-functions/regexp_replace.md             |  54 ++
 .../sql-functions/string-functions/repeat.md       |  54 ++
 .../sql-functions/string-functions/right.md        |  47 ++
 .../sql-functions/string-functions/split_part.md   |  69 +++
 .../sql-functions/string-functions/starts_with.md  |  54 ++
 .../sql-functions/string-functions/strleft.md      |  47 ++
 .../sql-functions/string-functions/strright.md     |  48 ++
 .../Account Management/CREATE ROLE.md              |  45 ++
 .../Account Management/CREATE USER.md              |  74 +++
 .../sql-statements/Account Management/DROP ROLE.md |  43 ++
 .../sql-statements/Account Management/DROP USER.md |  49 ++
 .../sql-statements/Account Management/GRANT.md     |  81 +++
 .../sql-statements/Account Management/REVOKE.md    |  48 ++
 .../Account Management/SET PASSWORD.md             |  55 ++
 .../Account Management/SET PROPERTY.md             |  82 +++
 .../Account Management/SHOW GRANTS.md              |  56 ++
 .../Account Management/SHOW ROLES.md               |  41 ++
 .../Administration/ADMIN CANCEL REPAIR.md          |  47 ++
 .../Administration/ADMIN CHECK TABLET.md           |  57 ++
 .../sql-statements/Administration/ADMIN REPAIR.md  |  52 ++
 .../Administration/ADMIN SET CONFIG.md             |  44 ++
 .../Administration/ADMIN SET REPLICA STATUS.md     |  62 ++
 .../Administration/ADMIN SHOW CONFIG.md            |  53 ++
 .../ADMIN SHOW REPLICA DISTRIBUTION.md             |  51 ++
 .../Administration/ADMIN SHOW REPLICA STATUS.md    |  64 ++
 .../sql-statements/Administration/ALTER CLUSTER.md |  53 ++
 .../sql-statements/Administration/ALTER SYSTEM.md  | 119 ++++
 .../Administration/CANCEL DECOMMISSION.md          |  40 ++
 .../Administration/CREATE CLUSTER.md               |  61 ++
 .../sql-statements/Administration/CREATE FILE.md   |  76 +++
 .../sql-statements/Administration/DROP CLUSTER.md  |  43 ++
 .../sql-statements/Administration/DROP FILE.md     |  51 ++
 .../sql-statements/Administration/ENTER.md         |  44 ++
 .../Administration/INSTALL PLUGIN.md               |  57 ++
 .../sql-statements/Administration/LINK DATABASE.md |  49 ++
 .../Administration/MIGRATE DATABASE.md             |  45 ++
 .../sql-statements/Administration/SHOW BACKENDS.md |  47 ++
 .../sql-statements/Administration/SHOW BROKER.md   |  40 ++
 .../sql-statements/Administration/SHOW FILE.md     |  52 ++
 .../Administration/SHOW FRONTENDS.md               |  43 ++
 .../Administration/SHOW FULL COLUMNS.md            |  42 ++
 .../sql-statements/Administration/SHOW INDEX.md    |  42 ++
 .../Administration/SHOW MIGRATIONS.md              |  37 ++
 .../sql-statements/Administration/SHOW PLUGINS.md  |  45 ++
 .../Administration/SHOW TABLE STATUS.md            |  55 ++
 .../Administration/UNINTALL PLUGIN.md              |  47 ++
 .../Data Definition/ALTER DATABASE.md              |  55 ++
 .../sql-statements/Data Definition/ALTER TABLE.md  | 346 +++++++++++
 .../sql-statements/Data Definition/ALTER VIEW.md   |  51 ++
 .../sql-statements/Data Definition/BACKUP.md       |  65 ++
 .../sql-statements/Data Definition/CANCEL ALTER.md |  70 +++
 .../Data Definition/CANCEL BACKUP.md               |  39 ++
 .../Data Definition/CANCEL RESTORE.md              |  42 ++
 .../Data Definition/CREATE DATABASE.md             |  39 ++
 .../sql-statements/Data Definition/CREATE INDEX.md |  45 ++
 .../Data Definition/CREATE MATERIALIZED VIEW.md    | 238 ++++++++
 .../Data Definition/CREATE REPOSITORY.md           |  75 +++
 .../sql-statements/Data Definition/CREATE TABLE.md | 582 ++++++++++++++++++
 .../sql-statements/Data Definition/CREATE VIEW.md  |  68 +++
 .../Data Definition/Colocate Join.md               |  98 +++
 .../Data Definition/DROP DATABASE.md               |  42 ++
 .../sql-statements/Data Definition/DROP INDEX.md   |  37 ++
 .../Data Definition/DROP MATERIALIZED VIEW.md      | 110 ++++
 .../Data Definition/DROP REPOSITORY.md             |  41 ++
 .../sql-statements/Data Definition/DROP TABLE.md   |  45 ++
 .../sql-statements/Data Definition/DROP VIEW.md    |  40 ++
 .../sql-statements/Data Definition/HLL.md          | 111 ++++
 .../sql-statements/Data Definition/RECOVER.md      |  54 ++
 .../sql-statements/Data Definition/RESTORE.md      |  78 +++
 .../Data Definition/TRUNCATE TABLE.md              |  52 ++
 .../Data Definition/create-function.md             | 111 ++++
 .../Data Definition/drop-function.md               |  54 ++
 .../Data Definition/show-functions.md              |  77 +++
 .../Data Manipulation/BROKER LOAD.md               | 428 +++++++++++++
 .../Data Manipulation/CANCEL DELETE.md             |  36 ++
 .../Data Manipulation/CANCEL LABEL.md              |  53 ++
 .../Data Manipulation/CANCEL LOAD.md               |  45 ++
 .../sql-statements/Data Manipulation/DELETE.md     |  62 ++
 .../sql-statements/Data Manipulation/EXPORT.md     |  83 +++
 .../Data Manipulation/GET LABEL STATE.md           |  58 ++
 .../sql-statements/Data Manipulation/GROUP BY.md   | 168 +++++
 .../sql-statements/Data Manipulation/LOAD.md       | 286 +++++++++
 .../sql-statements/Data Manipulation/MINI LOAD.md  | 132 ++++
 .../sql-statements/Data Manipulation/MULTI LOAD.md | 107 ++++
 .../Data Manipulation/PAUSE ROUTINE LOAD.md        |  35 ++
 .../Data Manipulation/RESTORE TABLET.md            |  41 ++
 .../Data Manipulation/RESUME ROUTINE LOAD.md       |  35 ++
 .../Data Manipulation/ROUTINE LOAD.md              | 371 ++++++++++++
 .../sql-statements/Data Manipulation/SHOW ALTER.md |  55 ++
 .../Data Manipulation/SHOW BACKUP.md               |  62 ++
 .../sql-statements/Data Manipulation/SHOW DATA.md  |  46 ++
 .../Data Manipulation/SHOW DATABASES.md            |  35 ++
 .../Data Manipulation/SHOW DELETE.md               |  39 ++
 .../SHOW DYNAMIC PARTITION TABLES.md               |  36 ++
 .../Data Manipulation/SHOW EXPORT.md               |  62 ++
 .../sql-statements/Data Manipulation/SHOW LOAD.md  |  74 +++
 .../Data Manipulation/SHOW PARTITIONS.md           |  48 ++
 .../Data Manipulation/SHOW PROPERTY.md             |  42 ++
 .../Data Manipulation/SHOW REPOSITORIES.md         |  49 ++
 .../Data Manipulation/SHOW RESTORE.md              |  67 ++
 .../Data Manipulation/SHOW ROUTINE LOAD TASK.md    |  35 ++
 .../Data Manipulation/SHOW ROUTINE LOAD.md         |  57 ++
 .../Data Manipulation/SHOW SNAPSHOT.md             |  56 ++
 .../Data Manipulation/SHOW TABLES.md               |  34 ++
 .../Data Manipulation/SHOW TABLET.md               |  42 ++
 .../Data Manipulation/SHOW TRANSACTION.md          |  86 +++
 .../Data Manipulation/STOP ROUTINE LOAD.md         |  35 ++
 .../Data Manipulation/STREAM LOAD.md               | 193 ++++++
 .../sql-statements/Data Manipulation/insert.md     | 110 ++++
 .../sql-statements/Data Types/BIGINT.md            |  33 +
 .../sql-statements/Data Types/BOOLEAN.md           |  33 +
 .../sql-statements/Data Types/CHAR.md              |  33 +
 .../sql-statements/Data Types/DATE.md              |  41 ++
 .../sql-statements/Data Types/DATETIME.md          |  34 ++
 .../sql-statements/Data Types/DECIMAL.md           |  34 ++
 .../sql-statements/Data Types/DOUBLE.md            |  33 +
 .../sql-statements/Data Types/FLOAT.md             |  33 +
 .../sql-statements/Data Types/HLL(HyperLogLog).md  |  35 ++
 .../sql-reference/sql-statements/Data Types/INT.md |  33 +
 .../sql-statements/Data Types/SMALLINT.md          |  33 +
 .../sql-statements/Data Types/TINYINT.md           |  33 +
 .../sql-statements/Data Types/VARCHAR.md           |  33 +
 .../sql-statements/Utility/util_stmt.md            |  39 ++
 docs/package.json                                  |  36 ++
 docs/readme.md                                     | 277 ++++++---
 docs/resources/palo_export_mind_map.svg            |   1 -
 docs/website/Makefile                              |  36 --
 docs/website/README.md                             |  61 --
 docs/website/build_site.sh                         |  85 ---
 docs/website/source/_templates/footer.html         |  28 -
 docs/website/source/conf.py                        | 199 ------
 docs/website/source/index.rst                      | 590 ------------------
 docs/zh-CN/README.md                               |   8 +
 .../alter-table/alter-table-bitmap-index.md        |  86 +++
 .../alter-table/alter-table-rollup.md              | 194 ++++++
 .../alter-table/alter-table-schema-change.md       | 249 ++++++++
 .../alter-table/alter-table-temp-partition.md      | 251 ++++++++
 docs/zh-CN/administrator-guide/backup-restore.md   | 186 ++++++
 docs/zh-CN/administrator-guide/broker.md           | 287 +++++++++
 docs/zh-CN/administrator-guide/colocation-join.md  | 448 ++++++++++++++
 docs/zh-CN/administrator-guide/config/fe_config.md |  41 ++
 .../zh-CN/administrator-guide/dynamic-partition.md | 208 +++++++
 docs/zh-CN/administrator-guide/export-manual.md    | 195 ++++++
 .../http-actions/cancel-label.md                   |  59 ++
 .../http-actions/compaction-action.md              |  86 +++
 .../http-actions/fe-get-log-file.md                |  80 +++
 .../http-actions/get-label-state.md                |  59 ++
 .../http-actions/restore-tablet.md                 |  43 ++
 .../load-data/broker-load-manual.md                | 515 ++++++++++++++++
 .../load-data/insert-into-manual.md                | 289 +++++++++
 .../administrator-guide/load-data/load-manual.md   | 217 +++++++
 .../load-data/routine-load-manual.md               | 299 +++++++++
 .../load-data/stream-load-manual.md                | 337 +++++++++++
 .../administrator-guide/operation/disk-capacity.md | 148 +++++
 .../operation/metadata-operation.md                | 342 +++++++++++
 .../administrator-guide/operation/monitor-alert.md | 309 ++++++++++
 .../administrator-guide/operation/multi-tenant.md  | 239 ++++++++
 .../operation/tablet-meta-tool.md                  | 114 ++++
 .../operation/tablet-repair-and-balance.md         | 673 +++++++++++++++++++++
 .../operation/tablet-restore-tool.md               |  90 +++
 docs/zh-CN/administrator-guide/privilege.md        | 224 +++++++
 docs/zh-CN/administrator-guide/segment-v2-usage.md | 125 ++++
 docs/zh-CN/administrator-guide/small-file-mgr.md   | 104 ++++
 docs/zh-CN/administrator-guide/sql-mode.md         |  76 +++
 docs/zh-CN/administrator-guide/time-zone.md        |  91 +++
 docs/zh-CN/administrator-guide/variables.md        | 328 ++++++++++
 docs/zh-CN/community/gitter.md                     |  63 ++
 docs/zh-CN/community/how-to-contribute.md          |  82 +++
 docs/zh-CN/community/members.md                    |  68 +++
 docs/zh-CN/community/pull-request.md               | 259 ++++++++
 docs/zh-CN/community/release-process.md            | 655 ++++++++++++++++++++
 docs/zh-CN/community/subscribe-mail-list.md        |  69 +++
 docs/zh-CN/community/verify-apache-release.md      |  88 +++
 docs/zh-CN/developer-guide/debug-tool.md           | 273 +++++++++
 docs/zh-CN/developer-guide/format-code.md          |  73 +++
 docs/zh-CN/downloads/downloads.md                  |  20 +
 docs/zh-CN/extending-doris/audit-plugin.md         | 115 ++++
 docs/zh-CN/extending-doris/doris-on-es.md          | 231 +++++++
 .../extending-doris/plugin-development-manual.md   | 298 +++++++++
 .../zh-CN/extending-doris/user-defined-function.md | 119 ++++
 docs/zh-CN/getting-started/advance-usage.md        | 272 +++++++++
 docs/zh-CN/getting-started/basic-usage.md          | 381 ++++++++++++
 docs/zh-CN/getting-started/best-practice.md        | 189 ++++++
 docs/zh-CN/getting-started/data-model-rollup.md    | 638 +++++++++++++++++++
 docs/zh-CN/getting-started/data-partition.md       | 297 +++++++++
 docs/zh-CN/getting-started/hit-the-rollup.md       | 294 +++++++++
 docs/zh-CN/installing/compilation.md               | 108 ++++
 docs/zh-CN/installing/install-deploy.md            | 420 +++++++++++++
 docs/zh-CN/installing/upgrade.md                   |  63 ++
 docs/zh-CN/internal/doris_storage_optimization.md  | 232 +++++++
 docs/zh-CN/internal/grouping_sets_design.md        | 517 ++++++++++++++++
 docs/zh-CN/internal/metadata-design.md             | 126 ++++
 docs/zh-CN/internal/spark_load.md                  | 212 +++++++
 .../sql-functions/aggregate-functions/avg.md       |  57 ++
 .../sql-functions/aggregate-functions/bitmap.md    | 146 +++++
 .../sql-functions/aggregate-functions/count.md     |  61 ++
 .../aggregate-functions/hll_union_agg.md           |  52 ++
 .../sql-functions/aggregate-functions/max.md       |  46 ++
 .../sql-functions/aggregate-functions/min.md       |  46 ++
 .../sql-functions/aggregate-functions/ndv.md       |  48 ++
 .../aggregate-functions/percentile_approx.md       |  57 ++
 .../sql-functions/aggregate-functions/stddev.md    |  53 ++
 .../aggregate-functions/stddev_samp.md             |  46 ++
 .../sql-functions/aggregate-functions/sum.md       |  46 ++
 .../sql-functions/aggregate-functions/var_samp.md  |  45 ++
 .../sql-functions/aggregate-functions/variance.md  |  52 ++
 .../sql-functions/bitmap-functions/bitmap_and.md   |  55 ++
 .../bitmap-functions/bitmap_contains.md            |  55 ++
 .../sql-functions/bitmap-functions/bitmap_empty.md |  52 ++
 .../bitmap-functions/bitmap_from_string.md         |  63 ++
 .../bitmap-functions/bitmap_has_any.md             |  55 ++
 .../sql-functions/bitmap-functions/bitmap_hash.md  |  52 ++
 .../sql-functions/bitmap-functions/bitmap_or.md    |  55 ++
 .../bitmap-functions/bitmap_to_string.md           |  69 +++
 .../sql-functions/bitmap-functions/to_bitmap.md    |  53 ++
 docs/zh-CN/sql-reference/sql-functions/cast.md     |  82 +++
 .../date-time-functions/convert_tz.md              |  57 ++
 .../sql-functions/date-time-functions/curdate.md   |  55 ++
 .../date-time-functions/current_timestamp.md       |  49 ++
 .../sql-functions/date-time-functions/curtime.md   |  50 ++
 .../sql-functions/date-time-functions/date_add.md  |  55 ++
 .../date-time-functions/date_format.md             | 160 +++++
 .../sql-functions/date-time-functions/date_sub.md  |  55 ++
 .../sql-functions/date-time-functions/datediff.md  |  58 ++
 .../sql-functions/date-time-functions/day.md       |  49 ++
 .../sql-functions/date-time-functions/dayname.md   |  50 ++
 .../date-time-functions/dayofmonth.md              |  51 ++
 .../sql-functions/date-time-functions/dayofweek.md |  58 ++
 .../sql-functions/date-time-functions/dayofyear.md |  51 ++
 .../sql-functions/date-time-functions/from_days.md |  49 ++
 .../date-time-functions/from_unixtime.md           |  89 +++
 .../sql-functions/date-time-functions/hour.md      |  49 ++
 .../sql-functions/date-time-functions/minute.md    |  49 ++
 .../sql-functions/date-time-functions/month.md     |  51 ++
 .../sql-functions/date-time-functions/monthname.md |  51 ++
 .../sql-functions/date-time-functions/now.md       |  49 ++
 .../sql-functions/date-time-functions/second.md    |  49 ++
 .../date-time-functions/str_to_date.md             |  65 ++
 .../sql-functions/date-time-functions/timediff.md  |  65 ++
 .../date-time-functions/timestampadd.md            |  59 ++
 .../date-time-functions/timestampdiff.md           |  67 ++
 .../sql-functions/date-time-functions/to_days.md   |  51 ++
 .../date-time-functions/unix_timestamp.md          |  86 +++
 .../date-time-functions/utc_timestamp.md           |  53 ++
 .../date-time-functions/workofyear.md              |  52 ++
 .../sql-functions/date-time-functions/year.md      |  51 ++
 .../hash-functions/murmur_hash3_32.md              |  61 ++
 .../sql-functions/spatial-functions/st_astext.md   |  47 ++
 .../sql-functions/spatial-functions/st_circle.md   |  48 ++
 .../sql-functions/spatial-functions/st_contains.md |  54 ++
 .../spatial-functions/st_distance_sphere.md        |  47 ++
 .../spatial-functions/st_geometryfromtext.md       |  47 ++
 .../spatial-functions/st_linefromtext.md           |  47 ++
 .../sql-functions/spatial-functions/st_point.md    |  48 ++
 .../sql-functions/spatial-functions/st_polygon.md  |  47 ++
 .../sql-functions/spatial-functions/st_x.md        |  47 ++
 .../sql-functions/spatial-functions/st_y.md        |  47 ++
 .../sql-functions/string-functions/ascii.md        |  54 ++
 .../sql-functions/string-functions/concat.md       |  61 ++
 .../sql-functions/string-functions/concat_ws.md    |  63 ++
 .../sql-functions/string-functions/ends_with.md    |  53 ++
 .../sql-functions/string-functions/find_in_set.md  |  47 ++
 .../string-functions/get_json_double.md            |  74 +++
 .../sql-functions/string-functions/get_json_int.md |  74 +++
 .../string-functions/get_json_string.md            |  84 +++
 .../sql-functions/string-functions/group_concat.md |  63 ++
 .../sql-functions/string-functions/instr.md        |  54 ++
 .../sql-functions/string-functions/lcase.md        |  37 ++
 .../sql-functions/string-functions/left.md         |  47 ++
 .../sql-functions/string-functions/length.md       |  54 ++
 .../sql-functions/string-functions/locate.md       |  61 ++
 .../sql-functions/string-functions/lower.md        |  47 ++
 .../sql-functions/string-functions/lpad.md         |  54 ++
 .../sql-functions/string-functions/ltrim.md        |  47 ++
 .../sql-functions/string-functions/money_format.md |  61 ++
 .../string-functions/null_or_empty.md              |  60 ++
 .../string-functions/regexp_extract.md             |  54 ++
 .../string-functions/regexp_replace.md             |  54 ++
 .../sql-functions/string-functions/repeat.md       |  54 ++
 .../sql-functions/string-functions/right.md        |  47 ++
 .../sql-functions/string-functions/split_part.md   |  69 +++
 .../sql-functions/string-functions/starts_with.md  |  53 ++
 .../sql-functions/string-functions/strleft.md      |  47 ++
 .../sql-functions/string-functions/strright.md     |  47 ++
 .../Account Management/CREATE ROLE.md              |  45 ++
 .../Account Management/CREATE USER.md              |  76 +++
 .../sql-statements/Account Management/DROP ROLE.md |  44 ++
 .../sql-statements/Account Management/DROP USER.md |  50 ++
 .../sql-statements/Account Management/GRANT.md     |  82 +++
 .../sql-statements/Account Management/REVOKE.md    |  49 ++
 .../Account Management/SET PASSWORD.md             |  56 ++
 .../Account Management/SET PROPERTY.md             |  82 +++
 .../Account Management/SHOW GRANTS.md              |  57 ++
 .../Account Management/SHOW ROLES.md               |  42 ++
 .../Administration/ADMIN CANCEL REPAIR.md          |  48 ++
 .../Administration/ADMIN CHECK TABLET.md           |  57 ++
 .../sql-statements/Administration/ADMIN REPAIR.md  |  53 ++
 .../Administration/ADMIN SET CONFIG.md             |  44 ++
 .../Administration/ADMIN SET REPLICA STATUS.md     |  62 ++
 .../Administration/ADMIN SHOW CONFIG.md            |  53 ++
 .../ADMIN SHOW REPLICA DISTRIBUTION.md             |  52 ++
 .../Administration/ADMIN SHOW REPLICA STATUS.md    |  65 ++
 .../sql-statements/Administration/ALTER CLUSTER.md |  54 ++
 .../sql-statements/Administration/ALTER SYSTEM.md  | 120 ++++
 .../Administration/CANCEL DECOMMISSION.md          |  41 ++
 .../Administration/CREATE CLUSTER.md               |  62 ++
 .../sql-statements/Administration/CREATE FILE.md   |  77 +++
 .../sql-statements/Administration/DROP CLUSTER.md  |  44 ++
 .../sql-statements/Administration/DROP FILE.md     |  51 ++
 .../sql-statements/Administration/ENTER.md         |  44 ++
 .../Administration/INSTALL PLUGIN.md               |  57 ++
 .../sql-statements/Administration/LINK DATABASE.md |  51 ++
 .../Administration/MIGRATE DATABASE.md             |  47 ++
 .../sql-statements/Administration/SHOW BACKENDS.md |  48 ++
 .../sql-statements/Administration/SHOW BROKER.md   |  41 ++
 .../sql-statements/Administration/SHOW FILE.md     |  53 ++
 .../Administration/SHOW FRONTENDS.md               |  44 ++
 .../Administration/SHOW FULL COLUMNS.md            |  40 ++
 .../sql-statements/Administration/SHOW INDEX.md    |  42 ++
 .../Administration/SHOW MIGRATIONS.md              |  38 ++
 .../sql-statements/Administration/SHOW PLUGINS.md  |  45 ++
 .../Administration/SHOW TABLE STATUS.md            |  48 ++
 .../Administration/UNINSTALL PLUGIN.md             |  47 ++
 .../Data Definition/ALTER DATABASE.md              |  55 ++
 .../sql-statements/Data Definition/ALTER TABLE.md  | 341 +++++++++++
 .../sql-statements/Data Definition/ALTER VIEW.md   |  52 ++
 .../sql-statements/Data Definition/BACKUP.md       |  65 ++
 .../sql-statements/Data Definition/CANCEL ALTER.md |  69 +++
 .../Data Definition/CANCEL BACKUP.md               |  39 ++
 .../Data Definition/CANCEL RESTORE.md              |  42 ++
 .../Data Definition/CREATE DATABASE.md             |  39 ++
 .../sql-statements/Data Definition/CREATE INDEX.md |  45 ++
 .../Data Definition/CREATE MATERIALIZED VIEW.md    | 237 ++++++++
 .../Data Definition/CREATE REPOSITORY.md           |  76 +++
 .../sql-statements/Data Definition/CREATE TABLE.md | 612 +++++++++++++++++++
 .../sql-statements/Data Definition/CREATE VIEW.md  |  64 ++
 .../Data Definition/DROP DATABASE.md               |  42 ++
 .../sql-statements/Data Definition/DROP INDEX.md   |  37 ++
 .../Data Definition/DROP MATERIALIZED VIEW.md      | 108 ++++
 .../Data Definition/DROP REPOSITORY.md             |  42 ++
 .../sql-statements/Data Definition/DROP TABLE.md   |  45 ++
 .../sql-statements/Data Definition/DROP VIEW.md    |  40 ++
 .../sql-statements/Data Definition/HLL.md          | 109 ++++
 .../sql-statements/Data Definition/RECOVER.md      |  54 ++
 .../sql-statements/Data Definition/RESTORE.md      |  78 +++
 .../Data Definition/TRUNCATE TABLE.md              |  53 ++
 .../Data Definition/create-function.md             | 114 ++++
 .../Data Definition/drop-function.md               |  56 ++
 .../Data Definition/show-functions.md              |  79 +++
 .../Data Manipulation/BROKER LOAD.md               | 435 +++++++++++++
 .../Data Manipulation/CANCEL LOAD.md               |  46 ++
 .../sql-statements/Data Manipulation/DELETE.md     |  62 ++
 .../sql-statements/Data Manipulation/EXPORT.md     |  84 +++
 .../sql-statements/Data Manipulation/GROUP BY.md   | 170 ++++++
 .../sql-statements/Data Manipulation/LOAD.md       | 293 +++++++++
 .../sql-statements/Data Manipulation/MINI LOAD.md  | 139 +++++
 .../sql-statements/Data Manipulation/MULTI LOAD.md | 108 ++++
 .../Data Manipulation/PAUSE ROUTINE LOAD.md        |  36 ++
 .../Data Manipulation/RESUME ROUTINE LOAD.md       |  36 ++
 .../Data Manipulation/ROUTINE LOAD.md              | 314 ++++++++++
 .../sql-statements/Data Manipulation/SHOW ALTER.md |  55 ++
 .../Data Manipulation/SHOW BACKUP.md               |  63 ++
 .../sql-statements/Data Manipulation/SHOW DATA.md  |  47 ++
 .../Data Manipulation/SHOW DATABASES.md            |  35 ++
 .../Data Manipulation/SHOW DELETE.md               |  39 ++
 .../SHOW DYNAMIC PARTITION TABLES.md               |  39 ++
 .../Data Manipulation/SHOW EXPORT.md               |  62 ++
 .../sql-statements/Data Manipulation/SHOW LOAD.md  |  75 +++
 .../Data Manipulation/SHOW PARTITIONS.md           |  45 ++
 .../Data Manipulation/SHOW PROPERTY.md             |  42 ++
 .../Data Manipulation/SHOW REPOSITORIES.md         |  49 ++
 .../Data Manipulation/SHOW RESTORE.md              |  67 ++
 .../Data Manipulation/SHOW ROUTINE LOAD TASK.md    |  35 ++
 .../Data Manipulation/SHOW ROUTINE LOAD.md         |  58 ++
 .../Data Manipulation/SHOW SNAPSHOT.md             |  57 ++
 .../Data Manipulation/SHOW TABLES.md               |  35 ++
 .../Data Manipulation/SHOW TABLET.md               |  67 ++
 .../Data Manipulation/SHOW TRANSACTION.md          |  87 +++
 .../Data Manipulation/STOP ROUTINE LOAD.md         |  36 ++
 .../Data Manipulation/STREAM LOAD.md               | 133 ++++
 .../sql-statements/Data Manipulation/insert.md     | 111 ++++
 .../sql-statements/Data Types/BIGINT.md            |  34 ++
 .../sql-statements/Data Types/BOOLEAN.md           |  34 ++
 .../sql-statements/Data Types/CHAR.md              |  34 ++
 .../sql-statements/Data Types/DATE.md              |  42 ++
 .../sql-statements/Data Types/DATETIME.md          |  35 ++
 .../sql-statements/Data Types/DECIMAL.md           |  35 ++
 .../sql-statements/Data Types/DOUBLE.md            |  34 ++
 .../sql-statements/Data Types/FLOAT.md             |  34 ++
 .../sql-reference/sql-statements/Data Types/HLL.md |  36 ++
 .../sql-reference/sql-statements/Data Types/INT.md |  34 ++
 .../sql-statements/Data Types/LARGEINT.md          |  33 +
 .../sql-statements/Data Types/SMALLINT.md          |  34 ++
 .../sql-statements/Data Types/TINYINT.md           |  34 ++
 .../sql-statements/Data Types/VARCHAR.md           |  34 ++
 .../sql-statements/Utility/DESCRIBE.md             |  48 ++
 1202 files changed, 54304 insertions(+), 50507 deletions(-)

diff --git a/.gitignore b/.gitignore
index 72fc0c9..0a8837e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,7 +3,9 @@
 be/output
 be/build
 output
-docs/build
+docs/.temp
+docs/.vuepress/dist
+docs/node_modules
 gensrc/build
 fe/target
 thirdparty/src
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..cf4b04f
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,58 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+language: node_js
+# nodejs版本
+node_js: 
+    - '8'
+
+# Travis-CI Caching
+cache:
+  directories:
+    - docs/node_modules
+
+
+# S: Build Lifecycle
+install:
+  - cd docs && npm install
+
+before_script:
+  - export PR=https://api.github.com/repos/$TRAVIS_REPO_SLUG/pulls/$TRAVIS_PULL_REQUEST
+  - export BRANCH=$(if [ "$TRAVIS_PULL_REQUEST" == "false" ]; then echo $TRAVIS_BRANCH; else echo `curl -s $PR | jq -r .head.ref`; fi)
+  - echo $BRANCH
+  - sed -i 's/base:.*,/base:\"\/'$BRANCH'\/\",/g' .vuepress/config.js 
+  - sed -i 's/docsBranch:.*,/docsBranch:\"'$BRANCH'\",/g' .vuepress/config.js 
+  - rm -rf site-repo
+  
+script:
+  - npm run build
+
+after_script:
+  - if [ "$TRAVIS_EVENT_TYPE" != "push" ]; then exit 0; fi
+  - git config user.name "${GIT_NAME}"
+  - git config user.email "${GIT_EMAIL}"
+  - git clone https://${SITE_REPO} site-repo
+  - cd site-repo
+  - mkdir -p ${BRANCH} && rm -rf ${BRANCH}/*
+  - cp -r ../.vuepress/dist/* ./${BRANCH}/
+  - git checkout ${SITE_BRANCH}
+  - git add .
+  - git commit -am "Auto Build"
+  - git push --force --quiet "https://${SITE_PUSH_TOKEN}@${SITE_REPO}" ${SITE_BRANCH}:${SITE_BRANCH}
+
+branches:
+  only:
+    - master
+    - /^branch-.*$/
diff --git a/LICENSE.txt b/LICENSE.txt
index 571e94b..1dabf41 100644
--- a/LICENSE.txt
+++ b/LICENSE.txt
@@ -630,3 +630,27 @@ be/src/util/condition_variable* : BSD-style license
 Copyright (c) 2011 The Chromium Authors. All rights reserved.
 Use of this source code is governed by a BSD-style license that can be
 found in the LICENSE file.
+
+--------------------------------------------------------------------------------
+
+docs/.vuepress/* The MIT License (MIT)
+
+Copyright (c) 2018-present, Yuxi (Evan) You
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/docs/.markdownlint.yml b/docs/.markdownlint.yml
new file mode 100644
index 0000000..f01d391
--- /dev/null
+++ b/docs/.markdownlint.yml
@@ -0,0 +1,19 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+{
+  "default": true,
+  "MD013": false,
+}
diff --git a/docs/.markdownlintignore b/docs/.markdownlintignore
new file mode 100644
index 0000000..1aea57f
--- /dev/null
+++ b/docs/.markdownlintignore
@@ -0,0 +1,2 @@
+node_modules
+.vuepress
diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js
new file mode 100644
index 0000000..d8f76a9
--- /dev/null
+++ b/docs/.vuepress/config.js
@@ -0,0 +1,120 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+function convertSidebar(list, path) {
+  if (list.length > 0) {
+      list.forEach((element, i) => {
+        if (element.children) {
+            convertSidebar(element.children, path + element.directoryPath)
+            delete element.directoryPath
+        } else {
+            list[i] = path + element
+        }
+      });
+  }
+  return list
+}
+
+module.exports = {
+  base: '',
+  locales: {
+    '/en/': {
+      lang: 'en',
+      title: 'Apache Doris',
+      description: 'Apache Doris'
+    },
+    '/zh-CN/': {
+      lang: 'zh-CN',
+      title: 'Apache Doris',
+      description: 'Apache Doris'
+    }
+  },
+  head: [
+    ['meta', { name: 'theme-color', content: '#3eaf7c' }],
+    ['meta', { name: 'apple-mobile-web-app-capable', content: 'yes' }],
+    ['meta', { name: 'apple-mobile-web-app-status-bar-style', content: 'black' }],
+    ['meta', { name: 'msapplication-TileColor', content: '#000000' }]
+  ],
+  title: 'Apache Doris',
+  description: 'Apache Doris',
+  themeConfig: {
+    title: 'Doris',
+    logo: '/images/doris-logo-only.png',
+    search: true,
+    smoothScroll: true,
+    searchMaxSuggestions: 10,
+    nextLinks: true,
+    prevLinks: true,
+    repo: 'apache/incubator-doris',
+    repoLabel: 'GitHub',
+    lastUpdated: 'Last Updated',
+    editLinks: true,
+    docsDir: 'docs',
+    docsBranch: '',
+    locales: {
+      '/en/': {
+        selectText: 'Languages',
+        label: 'English',
+        ariaLabel: 'Languages',
+        editLinkText: 'Edit this page on GitHub',
+        algolia: {},
+        nav: [
+          {
+            text: 'Home', link: '/en/'
+          },
+          {
+            text: 'Docs', link: '/en/installing/compilation'
+          },
+          {
+            text: 'Download', link: '/en/downloads/downloads'
+          },
+          {
+            text: 'Apache', link: 'https://www.apache.org/', target: '_blank'
+          }
+        ],
+        sidebar: convertSidebar(require('./sidebar/en.js'), '/en/')
+      },
+      '/zh-CN/': {
+        selectText: '选择语言',
+        label: '简体中文',
+        editLinkText: '在 GitHub 上编辑此页',
+        nav: [
+          {
+            text: '主页', link: '/zh-CN/'
+          },
+          {
+            text: '文档', link: '/zh-CN/installing/compilation'
+          },
+          {
+            text: '下载', link: '/zh-CN/downloads/downloads'
+          },
+          {
+            text: 'Apache', link: 'https://www.apache.org/', target: '_blank'
+          }
+        ],
+        algolia: {},
+        sidebar: {
+          '/zh-CN/': convertSidebar(require('./sidebar/zh-CN.js'), '/zh-CN/')
+        }
+      }
+    }
+  },
+  plugins: [
+    'reading-progress', 'plugin-back-to-top', 'plugin-medium-zoom'
+  ]
+};
diff --git a/docs/.vuepress/public/favicon.ico b/docs/.vuepress/public/favicon.ico
new file mode 100644
index 0000000..c79ff45
Binary files /dev/null and b/docs/.vuepress/public/favicon.ico differ
diff --git a/docs/resources/images/apache-asf-compressed.png b/docs/.vuepress/public/images/apache-asf-compressed.png
similarity index 100%
rename from docs/resources/images/apache-asf-compressed.png
rename to docs/.vuepress/public/images/apache-asf-compressed.png
diff --git a/docs/resources/images/apache-incubator-logo.png b/docs/.vuepress/public/images/apache-incubator-logo.png
similarity index 100%
rename from docs/resources/images/apache-incubator-logo.png
rename to docs/.vuepress/public/images/apache-incubator-logo.png
diff --git a/docs/resources/images/apache-incubator.png b/docs/.vuepress/public/images/apache-incubator.png
similarity index 100%
rename from docs/resources/images/apache-incubator.png
rename to docs/.vuepress/public/images/apache-incubator.png
diff --git a/docs/resources/images/apache_incubator_logo.png b/docs/.vuepress/public/images/apache_incubator_logo.png
similarity index 100%
rename from docs/resources/images/apache_incubator_logo.png
rename to docs/.vuepress/public/images/apache_incubator_logo.png
diff --git a/docs/resources/images/architecture.png b/docs/.vuepress/public/images/architecture.png
similarity index 100%
rename from docs/resources/images/architecture.png
rename to docs/.vuepress/public/images/architecture.png
diff --git a/docs/resources/images/asf_logo_wide_small.png b/docs/.vuepress/public/images/asf_logo_wide_small.png
similarity index 100%
rename from docs/resources/images/asf_logo_wide_small.png
rename to docs/.vuepress/public/images/asf_logo_wide_small.png
diff --git a/docs/resources/images/backend_state.png b/docs/.vuepress/public/images/backend_state.png
similarity index 100%
rename from docs/resources/images/backend_state.png
rename to docs/.vuepress/public/images/backend_state.png
diff --git a/docs/resources/images/cluster_link_and_migrate_db.png b/docs/.vuepress/public/images/cluster_link_and_migrate_db.png
similarity index 100%
rename from docs/resources/images/cluster_link_and_migrate_db.png
rename to docs/.vuepress/public/images/cluster_link_and_migrate_db.png
diff --git a/docs/resources/images/cluster_namaspace.png b/docs/.vuepress/public/images/cluster_namaspace.png
similarity index 100%
rename from docs/resources/images/cluster_namaspace.png
rename to docs/.vuepress/public/images/cluster_namaspace.png
diff --git a/docs/resources/images/cpu-flame-demo.svg b/docs/.vuepress/public/images/cpu-flame-demo.svg
similarity index 100%
rename from docs/resources/images/cpu-flame-demo.svg
rename to docs/.vuepress/public/images/cpu-flame-demo.svg
diff --git a/docs/resources/images/cpu-pprof-demo.png b/docs/.vuepress/public/images/cpu-pprof-demo.png
similarity index 100%
rename from docs/resources/images/cpu-pprof-demo.png
rename to docs/.vuepress/public/images/cpu-pprof-demo.png
diff --git a/docs/resources/images/cpu-pprof-demo.svg b/docs/.vuepress/public/images/cpu-pprof-demo.svg
similarity index 100%
rename from docs/resources/images/cpu-pprof-demo.svg
rename to docs/.vuepress/public/images/cpu-pprof-demo.svg
diff --git a/docs/resources/images/create-pr.png b/docs/.vuepress/public/images/create-pr.png
similarity index 100%
rename from docs/resources/images/create-pr.png
rename to docs/.vuepress/public/images/create-pr.png
diff --git a/docs/resources/images/create-pr2.png b/docs/.vuepress/public/images/create-pr2.png
similarity index 100%
rename from docs/resources/images/create-pr2.png
rename to docs/.vuepress/public/images/create-pr2.png
diff --git a/docs/resources/images/create-pr3.png b/docs/.vuepress/public/images/create-pr3.png
similarity index 100%
rename from docs/resources/images/create-pr3.png
rename to docs/.vuepress/public/images/create-pr3.png
diff --git a/docs/resources/images/dashboard_navibar.png b/docs/.vuepress/public/images/dashboard_navibar.png
similarity index 100%
rename from docs/resources/images/dashboard_navibar.png
rename to docs/.vuepress/public/images/dashboard_navibar.png
diff --git a/docs/resources/images/dashboard_overview.png b/docs/.vuepress/public/images/dashboard_overview.png
similarity index 100%
rename from docs/resources/images/dashboard_overview.png
rename to docs/.vuepress/public/images/dashboard_overview.png
diff --git a/docs/resources/images/dashboard_panel.png b/docs/.vuepress/public/images/dashboard_panel.png
similarity index 100%
rename from docs/resources/images/dashboard_panel.png
rename to docs/.vuepress/public/images/dashboard_panel.png
diff --git a/docs/resources/images/dashboard_row.png b/docs/.vuepress/public/images/dashboard_row.png
similarity index 100%
rename from docs/resources/images/dashboard_row.png
rename to docs/.vuepress/public/images/dashboard_row.png
diff --git a/docs/resources/images/doris-logo-1.png b/docs/.vuepress/public/images/doris-logo-1.png
similarity index 100%
rename from docs/resources/images/doris-logo-1.png
rename to docs/.vuepress/public/images/doris-logo-1.png
diff --git a/docs/resources/images/doris-logo-2.png b/docs/.vuepress/public/images/doris-logo-2.png
similarity index 100%
rename from docs/resources/images/doris-logo-2.png
rename to docs/.vuepress/public/images/doris-logo-2.png
diff --git a/docs/.vuepress/public/images/doris-logo-only.png b/docs/.vuepress/public/images/doris-logo-only.png
new file mode 100644
index 0000000..1c0fa86
Binary files /dev/null and b/docs/.vuepress/public/images/doris-logo-only.png differ
diff --git a/docs/.vuepress/public/images/doris-logo.png b/docs/.vuepress/public/images/doris-logo.png
new file mode 100644
index 0000000..b5660e6
Binary files /dev/null and b/docs/.vuepress/public/images/doris-logo.png differ
diff --git a/docs/resources/images/egg-logo.png b/docs/.vuepress/public/images/egg-logo.png
similarity index 100%
rename from docs/resources/images/egg-logo.png
rename to docs/.vuepress/public/images/egg-logo.png
diff --git a/docs/resources/images/egg-logo2.png b/docs/.vuepress/public/images/egg-logo2.png
similarity index 100%
rename from docs/resources/images/egg-logo2.png
rename to docs/.vuepress/public/images/egg-logo2.png
diff --git a/docs/resources/images/export_plan_tree_1.png b/docs/.vuepress/public/images/export_plan_tree_1.png
similarity index 100%
rename from docs/resources/images/export_plan_tree_1.png
rename to docs/.vuepress/public/images/export_plan_tree_1.png
diff --git a/docs/resources/images/export_plan_tree_2.png b/docs/.vuepress/public/images/export_plan_tree_2.png
similarity index 100%
rename from docs/resources/images/export_plan_tree_2.png
rename to docs/.vuepress/public/images/export_plan_tree_2.png
diff --git a/docs/resources/images/export_status_change.png b/docs/.vuepress/public/images/export_status_change.png
similarity index 100%
rename from docs/resources/images/export_status_change.png
rename to docs/.vuepress/public/images/export_status_change.png
diff --git a/docs/resources/images/fe_page_index.png b/docs/.vuepress/public/images/fe_page_index.png
similarity index 100%
rename from docs/resources/images/fe_page_index.png
rename to docs/.vuepress/public/images/fe_page_index.png
diff --git a/docs/resources/images/fe_page_logs.png b/docs/.vuepress/public/images/fe_page_logs.png
similarity index 100%
rename from docs/resources/images/fe_page_logs.png
rename to docs/.vuepress/public/images/fe_page_logs.png
diff --git a/docs/resources/images/fe_page_queries.png b/docs/.vuepress/public/images/fe_page_queries.png
similarity index 100%
rename from docs/resources/images/fe_page_queries.png
rename to docs/.vuepress/public/images/fe_page_queries.png
diff --git a/docs/resources/images/fe_page_sessions.png b/docs/.vuepress/public/images/fe_page_sessions.png
similarity index 100%
rename from docs/resources/images/fe_page_sessions.png
rename to docs/.vuepress/public/images/fe_page_sessions.png
diff --git a/docs/resources/images/fe_page_system.png b/docs/.vuepress/public/images/fe_page_system.png
similarity index 100%
rename from docs/resources/images/fe_page_system.png
rename to docs/.vuepress/public/images/fe_page_system.png
diff --git a/docs/resources/images/fe_page_system_access.png b/docs/.vuepress/public/images/fe_page_system_access.png
similarity index 100%
rename from docs/resources/images/fe_page_system_access.png
rename to docs/.vuepress/public/images/fe_page_system_access.png
diff --git a/docs/resources/images/fe_page_system_backends.png b/docs/.vuepress/public/images/fe_page_system_backends.png
similarity index 100%
rename from docs/resources/images/fe_page_system_backends.png
rename to docs/.vuepress/public/images/fe_page_system_backends.png
diff --git a/docs/resources/images/fe_page_system_brokers.png b/docs/.vuepress/public/images/fe_page_system_brokers.png
similarity index 100%
rename from docs/resources/images/fe_page_system_brokers.png
rename to docs/.vuepress/public/images/fe_page_system_brokers.png
diff --git a/docs/resources/images/fe_page_system_dbs.png b/docs/.vuepress/public/images/fe_page_system_dbs.png
similarity index 100%
rename from docs/resources/images/fe_page_system_dbs.png
rename to docs/.vuepress/public/images/fe_page_system_dbs.png
diff --git a/docs/resources/images/fe_page_system_error_hub.png b/docs/.vuepress/public/images/fe_page_system_error_hub.png
similarity index 100%
rename from docs/resources/images/fe_page_system_error_hub.png
rename to docs/.vuepress/public/images/fe_page_system_error_hub.png
diff --git a/docs/resources/images/fe_page_system_frontends.png b/docs/.vuepress/public/images/fe_page_system_frontends.png
similarity index 100%
rename from docs/resources/images/fe_page_system_frontends.png
rename to docs/.vuepress/public/images/fe_page_system_frontends.png
diff --git a/docs/resources/images/fe_page_system_jobs.png b/docs/.vuepress/public/images/fe_page_system_jobs.png
similarity index 100%
rename from docs/resources/images/fe_page_system_jobs.png
rename to docs/.vuepress/public/images/fe_page_system_jobs.png
diff --git a/docs/resources/images/fe_page_system_statistic.png b/docs/.vuepress/public/images/fe_page_system_statistic.png
similarity index 100%
rename from docs/resources/images/fe_page_system_statistic.png
rename to docs/.vuepress/public/images/fe_page_system_statistic.png
diff --git a/docs/resources/images/fe_page_system_tasks.png b/docs/.vuepress/public/images/fe_page_system_tasks.png
similarity index 100%
rename from docs/resources/images/fe_page_system_tasks.png
rename to docs/.vuepress/public/images/fe_page_system_tasks.png
diff --git a/docs/resources/images/fork-repo.png b/docs/.vuepress/public/images/fork-repo.png
similarity index 100%
rename from docs/resources/images/fork-repo.png
rename to docs/.vuepress/public/images/fork-repo.png
diff --git a/docs/resources/images/graduation-timeline.png b/docs/.vuepress/public/images/graduation-timeline.png
similarity index 100%
rename from docs/resources/images/graduation-timeline.png
rename to docs/.vuepress/public/images/graduation-timeline.png
diff --git a/docs/resources/images/howtoincubateaproject-thumb.png b/docs/.vuepress/public/images/howtoincubateaproject-thumb.png
similarity index 100%
rename from docs/resources/images/howtoincubateaproject-thumb.png
rename to docs/.vuepress/public/images/howtoincubateaproject-thumb.png
diff --git a/docs/resources/images/howtoincubateaproject.png b/docs/.vuepress/public/images/howtoincubateaproject.png
similarity index 100%
rename from docs/resources/images/howtoincubateaproject.png
rename to docs/.vuepress/public/images/howtoincubateaproject.png
diff --git a/docs/resources/images/incbuator_feather_egg_logo_crop.png b/docs/.vuepress/public/images/incbuator_feather_egg_logo_crop.png
similarity index 100%
rename from docs/resources/images/incbuator_feather_egg_logo_crop.png
rename to docs/.vuepress/public/images/incbuator_feather_egg_logo_crop.png
diff --git a/docs/resources/images/incubation-process.png b/docs/.vuepress/public/images/incubation-process.png
similarity index 100%
rename from docs/resources/images/incubation-process.png
rename to docs/.vuepress/public/images/incubation-process.png
diff --git a/docs/resources/images/incubator_ring_logo.png b/docs/.vuepress/public/images/incubator_ring_logo.png
similarity index 100%
rename from docs/resources/images/incubator_ring_logo.png
rename to docs/.vuepress/public/images/incubator_ring_logo.png
diff --git a/docs/resources/images/log_replication.jpg b/docs/.vuepress/public/images/log_replication.jpg
similarity index 100%
rename from docs/resources/images/log_replication.jpg
rename to docs/.vuepress/public/images/log_replication.jpg
diff --git a/docs/resources/images/login-gitter1.png b/docs/.vuepress/public/images/login-gitter1.png
similarity index 100%
rename from docs/resources/images/login-gitter1.png
rename to docs/.vuepress/public/images/login-gitter1.png
diff --git a/docs/resources/images/login-gitter2.PNG b/docs/.vuepress/public/images/login-gitter2.PNG
similarity index 100%
rename from docs/resources/images/login-gitter2.PNG
rename to docs/.vuepress/public/images/login-gitter2.PNG
diff --git a/docs/resources/images/metadata_contents.png b/docs/.vuepress/public/images/metadata_contents.png
similarity index 100%
rename from docs/resources/images/metadata_contents.png
rename to docs/.vuepress/public/images/metadata_contents.png
diff --git a/docs/resources/images/metadata_stream.png b/docs/.vuepress/public/images/metadata_stream.png
similarity index 100%
rename from docs/resources/images/metadata_stream.png
rename to docs/.vuepress/public/images/metadata_stream.png
diff --git a/docs/resources/images/monitor_arch.png b/docs/.vuepress/public/images/monitor_arch.png
similarity index 100%
rename from docs/resources/images/monitor_arch.png
rename to docs/.vuepress/public/images/monitor_arch.png
diff --git a/docs/resources/images/multi_tenant_arch.png b/docs/.vuepress/public/images/multi_tenant_arch.png
similarity index 100%
rename from docs/resources/images/multi_tenant_arch.png
rename to docs/.vuepress/public/images/multi_tenant_arch.png
diff --git a/docs/resources/images/new-pr.png b/docs/.vuepress/public/images/new-pr.png
similarity index 100%
rename from docs/resources/images/new-pr.png
rename to docs/.vuepress/public/images/new-pr.png
diff --git a/docs/resources/images/palo_architecture.jpg b/docs/.vuepress/public/images/palo_architecture.jpg
similarity index 100%
rename from docs/resources/images/palo_architecture.jpg
rename to docs/.vuepress/public/images/palo_architecture.jpg
diff --git a/docs/resources/images/palo_meta.png b/docs/.vuepress/public/images/palo_meta.png
similarity index 100%
rename from docs/resources/images/palo_meta.png
rename to docs/.vuepress/public/images/palo_meta.png
diff --git a/docs/resources/images/perf-report-demo.png b/docs/.vuepress/public/images/perf-report-demo.png
similarity index 100%
rename from docs/resources/images/perf-report-demo.png
rename to docs/.vuepress/public/images/perf-report-demo.png
diff --git a/docs/resources/images/replica_recover.png b/docs/.vuepress/public/images/replica_recover.png
similarity index 100%
rename from docs/resources/images/replica_recover.png
rename to docs/.vuepress/public/images/replica_recover.png
diff --git a/docs/resources/images/segment_v2.png b/docs/.vuepress/public/images/segment_v2.png
similarity index 100%
rename from docs/resources/images/segment_v2.png
rename to docs/.vuepress/public/images/segment_v2.png
diff --git a/docs/resources/images/spark_doris_connector.jpg b/docs/.vuepress/public/images/spark_doris_connector.jpg
similarity index 100%
rename from docs/resources/images/spark_doris_connector.jpg
rename to docs/.vuepress/public/images/spark_doris_connector.jpg
diff --git a/docs/resources/images/subscribe-mail-list-step1.png b/docs/.vuepress/public/images/subscribe-mail-list-step1.png
similarity index 100%
rename from docs/resources/images/subscribe-mail-list-step1.png
rename to docs/.vuepress/public/images/subscribe-mail-list-step1.png
diff --git a/docs/resources/images/subscribe-mail-list-step2.png b/docs/.vuepress/public/images/subscribe-mail-list-step2.png
similarity index 100%
rename from docs/resources/images/subscribe-mail-list-step2.png
rename to docs/.vuepress/public/images/subscribe-mail-list-step2.png
diff --git a/docs/resources/images/subscribe-mail-list-step3.png b/docs/.vuepress/public/images/subscribe-mail-list-step3.png
similarity index 100%
rename from docs/resources/images/subscribe-mail-list-step3.png
rename to docs/.vuepress/public/images/subscribe-mail-list-step3.png
diff --git a/docs/resources/images/subscribe-mail-list-step4.png b/docs/.vuepress/public/images/subscribe-mail-list-step4.png
similarity index 100%
rename from docs/resources/images/subscribe-mail-list-step4.png
rename to docs/.vuepress/public/images/subscribe-mail-list-step4.png
diff --git a/docs/resources/images/user_authority.png b/docs/.vuepress/public/images/user_authority.png
similarity index 100%
rename from docs/resources/images/user_authority.png
rename to docs/.vuepress/public/images/user_authority.png
diff --git a/docs/.vuepress/sidebar/en.js b/docs/.vuepress/sidebar/en.js
new file mode 100644
index 0000000..c94049e
--- /dev/null
+++ b/docs/.vuepress/sidebar/en.js
@@ -0,0 +1,441 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+module.exports = [
+  {
+    title: "Downloads",
+    directoryPath: "downloads/",
+    children: ["downloads"],
+    sidebarDepth: 1,
+  },
+  {
+    title: "Compilation and Deployment",
+    directoryPath: "installing/",
+    children: ["compilation", "install-deploy", "upgrade"],
+  },
+  {
+    title: "Getting Started",
+    directoryPath: "getting-started/",
+    children: [
+      "basic-usage",
+      "advance-usage",
+      "best-practice",
+      "data-partition",
+      "data-model-rollup",
+      "hit-the-rollup",
+    ],
+  },
+  {
+    title: "Administrator Guide",
+    directoryPath: "administrator-guide/",
+    children: [
+      {
+        title: "Load Data",
+        directoryPath: "load-data/",
+        children: [
+          "load-manual",
+          "broker-load-manual",
+          "stream-load-manual",
+          "routine-load-manual",
+          "insert-into-manual",
+        ],
+        sidebarDepth: 2,
+      },
+      {
+        title: "Schema Change",
+        directoryPath: "alter-table/",
+        children: [
+          "alter-table-bitmap-index",
+          "alter-table-rollup",
+          "alter-table-schema-change",
+          "alter-table-temp-partition",
+        ],
+        sidebarDepth: 2,
+      },
+      {
+        title: "HTTP API",
+        directoryPath: "http-actions/",
+        children: [
+          "cancel-label",
+          "compaction-action",
+          "fe-get-log-file",
+          "get-label-state",
+          "restore-tablet",
+        ],
+        sidebarDepth: 1,
+      },
+      {
+        title: "Maintainence Operation",
+        directoryPath: "operation/",
+        children: [
+          "metadata-operation",
+          "monitor-alert",
+          "multi-tenant",
+          "tablet-meta-tool",
+          "tablet-repair-and-balance",
+        ],
+        sidebarDepth: 2,
+      },
+      {
+        title: "Configuration",
+        directoryPath: "config/",
+        children: ["fe_config"],
+        sidebarDepth: 1,
+      },
+      "backup-restore",
+      "broker",
+      "colocation-join",
+      "dynamic-partition",
+      "export_manual",
+      "privilege",
+      "small-file-mgr",
+      "sql-mode",
+      "time-zone",
+      "variables",
+    ],
+    sidebarDepth: 1,
+  },
+  {
+    title: "Extending Ability",
+    directoryPath: "extending-doris/",
+    children: [
+      "audit-plugin",
+      "doris-on-es",
+      "plugin-development-manual",
+      "user-defined-function",
+    ],
+  },
+  {
+    title: "Design Documents",
+    directoryPath: "internal/",
+    children: [
+      "doris_storage_optimization",
+      "grouping_sets_design",
+      "metadata-design",
+    ],
+  },
+  {
+    title: "SQL Manual",
+    directoryPath: "sql-reference/",
+    children: [
+      {
+        title: "SQL Functions",
+        directoryPath: "sql-functions/",
+        children: [
+          {
+            title: "Date Time Functions",
+            directoryPath: "date-time-functions/",
+            children: [
+              "curdate",
+              "current_timestamp",
+              "date_add",
+              "date_format",
+              "date_sub",
+              "datediff",
+              "day",
+              "dayname",
+              "dayofmonth",
+              "dayofweek",
+              "dayofyear",
+              "from_days",
+              "from_unixtime",
+              "hour",
+              "minute",
+              "month",
+              "monthname",
+              "now",
+              "second",
+              "str_to_date",
+              "timediff",
+              "timestampadd",
+              "timestampdiff",
+              "to_days",
+              "unix_timestamp",
+              "utc_timestamp",
+              "workofyear",
+              "year",
+            ],
+          },
+          {
+            title: "Sptial Functions",
+            directoryPath: "spatial-functions/",
+            children: [
+              "st_astext",
+              "st_circle",
+              "st_contains",
+              "st_distance_sphere",
+              "st_geometryfromtext",
+              "st_linefromtext",
+              "st_point",
+              "st_polygon",
+              "st_x",
+              "st_y",
+            ],
+          },
+          {
+            title: "String Functions",
+            directoryPath: "string-functions/",
+            children: [
+              "ascii",
+              "concat",
+              "concat_ws",
+              "ends_with",
+              "find_in_set",
+              "get_json_double",
+              "get_json_int",
+              "get_json_string",
+              "group_concat",
+              "instr",
+              "lcase",
+              "left",
+              "length",
+              "locate",
+              "lower",
+              "lpad",
+              "ltrim",
+              "money_format",
+              "null_or_empty",
+              "regexp_extract",
+              "regexp_replace",
+              "repeat",
+              "right",
+              "split_part",
+              "starts_with",
+              "strleft",
+              "strright",
+            ],
+          },
+          {
+            title: "Aggregate Functions",
+            directoryPath: "aggregate-functions/",
+            children: [
+              "avg",
+              "bitmap",
+              "count",
+              "hll_union_agg",
+              "max",
+              "min",
+              "ndv",
+              "percentile_approx",
+              "stddev",
+              "stddev_samp",
+              "sum",
+              "var_samp",
+              "variance",
+            ],
+          },
+          {
+            title: "bitmap functions",
+            directoryPath: "bitmap-functions/",
+            children: [
+              "bitmap_and",
+              "bitmap_contains",
+              "bitmap_empty",
+              "bitmap_from_string",
+              "bitmap_has_any",
+              "bitmap_hash",
+              "bitmap_or",
+              "bitmap_to_string",
+              "to_bitmap",
+            ],
+          },
+          {
+            title: "Hash Functions",
+            directoryPath: "hash-functions/",
+            children: ["murmur_hash3_32"],
+          },
+          "cast",
+        ],
+      },
+      {
+        title: "DDL Statements",
+        directoryPath: "sql-statements/",
+        children: [
+          {
+            title: "Account Management",
+            directoryPath: "Account Management/",
+            children: [
+              "CREATE ROLE",
+              "CREATE USER",
+              "DROP ROLE",
+              "DROP USER",
+              "GRANT",
+              "REVOKE",
+              "SET PASSWORD",
+              "SET PROPERTY",
+              "SHOW GRANTS",
+              "SHOW ROLES",
+            ],
+          },
+          {
+            title: "Administration",
+            directoryPath: "Administration/",
+            children: [
+              "ADMIN CANCEL REPAIR",
+              "ADMIN CHECK TABLET",
+              "ADMIN REPAIR",
+              "ADMIN SET CONFIG",
+              "ADMIN SET REPLICA STATUS",
+              "ADMIN SHOW CONFIG",
+              "ADMIN SHOW REPLICA DISTRIBUTION",
+              "ADMIN SHOW REPLICA STATUS",
+              "ALTER CLUSTER",
+              "ALTER SYSTEM",
+              "CANCEL DECOMMISSION",
+              "CREATE CLUSTER",
+              "CREATE FILE",
+              "DROP CLUSTER",
+              "DROP FILE",
+              "ENTER",
+              "INSTALL PLUGIN",
+              "LINK DATABASE",
+              "MIGRATE DATABASE",
+              "SHOW BACKENDS",
+              "SHOW BROKER",
+              "SHOW FILE",
+              "SHOW FRONTENDS",
+              "SHOW FULL COLUMNS",
+              "SHOW INDEX",
+              "SHOW MIGRATIONS",
+              "SHOW PLUGINS",
+              "SHOW TABLE STATUS",
+              "UNINTALL PLUGIN",
+            ],
+          },
+          {
+            title: "Data Definition",
+            directoryPath: "Data Definition/",
+            children: [
+              "ALTER DATABASE",
+              "ALTER TABLE",
+              "ALTER VIEW",
+              "BACKUP",
+              "CANCEL ALTER",
+              "CANCEL BACKUP",
+              "CANCEL RESTORE",
+              "Colocate Join",
+              "CREATE DATABASE",
+              "CREATE INDEX",
+              "CREATE MATERIALIZED VIEW",
+              "CREATE REPOSITORY",
+              "CREATE TABLE",
+              "CREATE VIEW",
+              "create-function",
+              "DROP DATABASE",
+              "DROP INDEX",
+              "DROP MATERIALIZED VIEW",
+              "DROP REPOSITORY",
+              "DROP TABLE",
+              "DROP VIEW",
+              "drop-function",
+              "HLL",
+              "RECOVER",
+              "RESTORE",
+              "show-functions",
+              "TRUNCATE TABLE",
+            ],
+          },
+          {
+            title: "Data Manipulation",
+            directoryPath: "Data Manipulation/",
+            children: [
+              "BROKER LOAD",
+              "CANCEL DELETE",
+              "CANCEL LABEL",
+              "CANCEL LOAD",
+              "DELETE",
+              "EXPORT",
+              "GET LABEL STATE",
+              "GROUP BY",
+              "insert",
+              "LOAD",
+              "MINI LOAD",
+              "MULTI LOAD",
+              "PAUSE ROUTINE LOAD",
+              "RESTORE TABLET",
+              "RESUME ROUTINE LOAD",
+              "ROUTINE LOAD",
+              "SHOW ALTER",
+              "SHOW BACKUP",
+              "SHOW DATA",
+              "SHOW DATABASES",
+              "SHOW DELETE",
+              "SHOW DYNAMIC PARTITION TABLES",
+              "SHOW EXPORT",
+              "SHOW LOAD",
+              "SHOW PARTITIONS",
+              "SHOW PROPERTY",
+              "SHOW REPOSITORIES",
+              "SHOW RESTORE",
+              "SHOW ROUTINE LOAD TASK",
+              "SHOW ROUTINE LOAD",
+              "SHOW SNAPSHOT",
+              "SHOW TABLES",
+              "SHOW TABLET",
+              "SHOW TRANSACTION",
+              "STOP ROUTINE LOAD",
+              "STREAM LOAD",
+            ],
+          },
+          {
+            title: "Data Types",
+            directoryPath: "Data Types/",
+            children: [
+              "BIGINT",
+              "BOOLEAN",
+              "CHAR",
+              "DATE",
+              "DATETIME",
+              "DECIMAL",
+              "DOUBLE",
+              "FLOAT",
+              "HLL(HyperLogLog)",
+              "INT",
+              "SMALLINT",
+              "TINYINT",
+              "VARCHAR",
+            ],
+          },
+          {
+            title: "Utility",
+            directoryPath: "Utility/",
+            children: ["util_stmt"],
+          },
+        ],
+      },
+    ],
+  },
+  {
+    title: "Developer Guide",
+    directoryPath: "developer-guide/",
+    children: ["debug-tool", "format-code"],
+  },
+  {
+    title: "Apache Commnity",
+    directoryPath: "community/",
+    children: [
+      "gitter",
+      "how-to-contribute",
+      "members",
+      "pull-request",
+      "release-process",
+      "subscribe-mail-list",
+      "verify-apache-release",
+    ],
+  },
+];
diff --git a/docs/.vuepress/sidebar/zh-CN.js b/docs/.vuepress/sidebar/zh-CN.js
new file mode 100644
index 0000000..d5cab16
--- /dev/null
+++ b/docs/.vuepress/sidebar/zh-CN.js
@@ -0,0 +1,449 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+module.exports = [
+  {
+    title: "下载",
+    directoryPath: "downloads/",
+    children: ["downloads"],
+    sidebarDepth: 1,
+  },
+  {
+    title: "编译与部署",
+    directoryPath: "installing/",
+    children: ["compilation", "install-deploy", "upgrade"],
+  },
+  {
+    title: "开始使用",
+    directoryPath: "getting-started/",
+    children: [
+      "basic-usage",
+      "advance-usage",
+      "best-practice",
+      "data-partition",
+      "data-model-rollup",
+      "hit-the-rollup",
+    ],
+  },
+  {
+    title: "操作手册",
+    directoryPath: "administrator-guide/",
+    children: [
+      {
+        title: "数据导入",
+        directoryPath: "load-data/",
+        children: [
+          "load-manual",
+          "broker-load-manual",
+          "stream-load-manual",
+          "routine-load-manual",
+          "insert-into-manual",
+        ],
+        sidebarDepth: 2,
+      },
+      {
+        title: "表结构变更",
+        directoryPath: "alter-table/",
+        children: [
+          "alter-table-bitmap-index",
+          "alter-table-rollup",
+          "alter-table-schema-change",
+          "alter-table-temp-partition",
+        ],
+        sidebarDepth: 2,
+      },
+      {
+        title: "HTTP API",
+        directoryPath: "http-actions/",
+        children: [
+          "cancel-label",
+          "compaction-action",
+          "fe-get-log-file",
+          "get-label-state",
+          "restore-tablet",
+        ],
+        sidebarDepth: 1,
+      },
+      {
+        title: "运维操作",
+        directoryPath: "operation/",
+        children: [
+          "disk-capacity",
+          "metadata-operation",
+          "monitor-alert",
+          "multi-tenant",
+          "tablet-meta-tool",
+          "tablet-repair-and-balance",
+          "tablet-restore-tool",
+        ],
+        sidebarDepth: 2,
+      },
+      {
+        title: "配置文件",
+        directoryPath: "config/",
+        children: ["fe_config"],
+        sidebarDepth: 1,
+      },
+      {
+        title: "物化视图",
+        directoryPath: "materialized-view/",
+        children: [],
+        sidebarDepth: 2,
+      },
+      "backup-restore",
+      "broker",
+      "colocation-join",
+      "dynamic-partition",
+      "export-manual",
+      "privilege",
+      "segment-v2-usage",
+      "small-file-mgr",
+      "sql-mode",
+      "time-zone",
+      "variables",
+    ],
+    sidebarDepth: 1,
+  },
+  {
+    title: "扩展功能",
+    directoryPath: "extending-doris/",
+    children: [
+      "audit-plugin",
+      "doris-on-es",
+      "plugin-development-manual",
+      "user-defined-function",
+    ],
+  },
+  {
+    title: "设计文档",
+    directoryPath: "internal/",
+    children: [
+      "doris_storage_optimization",
+      "grouping_sets_design",
+      "metadata-design",
+      "spark_load",
+    ],
+  },
+  {
+    title: "SQL 手册",
+    directoryPath: "sql-reference/",
+    children: [
+      {
+        title: "SQL 函数",
+        directoryPath: "sql-functions/",
+        children: [
+          {
+            title: "日期函数",
+            directoryPath: "date-time-functions/",
+            children: [
+              "convert_tz",
+              "curdate",
+              "current_timestamp",
+              "curtime",
+              "date_add",
+              "date_format",
+              "date_sub",
+              "datediff",
+              "day",
+              "dayname",
+              "dayofmonth",
+              "dayofweek",
+              "dayofyear",
+              "from_days",
+              "from_unixtime",
+              "hour",
+              "minute",
+              "month",
+              "monthname",
+              "now",
+              "second",
+              "str_to_date",
+              "timediff",
+              "timestampadd",
+              "timestampdiff",
+              "to_days",
+              "unix_timestamp",
+              "utc_timestamp",
+              "workofyear",
+              "year",
+            ],
+          },
+          {
+            title: "地理位置函数",
+            directoryPath: "spatial-functions/",
+            children: [
+              "st_astext",
+              "st_circle",
+              "st_contains",
+              "st_distance_sphere",
+              "st_geometryfromtext",
+              "st_linefromtext",
+              "st_point",
+              "st_polygon",
+              "st_x",
+              "st_y",
+            ],
+          },
+          {
+            title: "字符串函数",
+            directoryPath: "string-functions/",
+            children: [
+              "ascii",
+              "concat",
+              "concat_ws",
+              "ends_with",
+              "find_in_set",
+              "get_json_double",
+              "get_json_int",
+              "get_json_string",
+              "group_concat",
+              "instr",
+              "lcase",
+              "left",
+              "length",
+              "locate",
+              "lower",
+              "lpad",
+              "ltrim",
+              "money_format",
+              "null_or_empty",
+              "regexp_extract",
+              "regexp_replace",
+              "repeat",
+              "right",
+              "split_part",
+              "starts_with",
+              "strleft",
+              "strright",
+            ],
+          },
+          {
+            title: "聚合函数",
+            directoryPath: "aggregate-functions/",
+            children: [
+              "avg",
+              "bitmap",
+              "count",
+              "hll_union_agg",
+              "max",
+              "min",
+              "ndv",
+              "percentile_approx",
+              "stddev",
+              "stddev_samp",
+              "sum",
+              "var_samp",
+              "variance",
+            ],
+          },
+          {
+            title: "bitmap函数",
+            directoryPath: "bitmap-functions/",
+            children: [
+              "bitmap_and",
+              "bitmap_contains",
+              "bitmap_empty",
+              "bitmap_from_string",
+              "bitmap_has_any",
+              "bitmap_hash",
+              "bitmap_or",
+              "bitmap_to_string",
+              "to_bitmap",
+            ],
+          },
+          {
+            title: "Hash函数",
+            directoryPath: "hash-functions/",
+            children: ["murmur_hash3_32"],
+          },
+          "cast",
+        ],
+      },
+      {
+        title: "语法帮助",
+        directoryPath: "sql-statements/",
+        children: [
+          {
+            title: "用户账户管理",
+            directoryPath: "Account Management/",
+            children: [
+              "CREATE ROLE",
+              "CREATE USER",
+              "DROP ROLE",
+              "DROP USER",
+              "GRANT",
+              "REVOKE",
+              "SET PASSWORD",
+              "SET PROPERTY",
+              "SHOW GRANTS",
+              "SHOW ROLES",
+            ],
+          },
+          {
+            title: "集群管理",
+            directoryPath: "Administration/",
+            children: [
+              "ADMIN CANCEL REPAIR",
+              "ADMIN CHECK TABLET",
+              "ADMIN REPAIR",
+              "ADMIN SET CONFIG",
+              "ADMIN SET REPLICA STATUS",
+              "ADMIN SHOW CONFIG",
+              "ADMIN SHOW REPLICA DISTRIBUTION",
+              "ADMIN SHOW REPLICA STATUS",
+              "ALTER CLUSTER",
+              "ALTER SYSTEM",
+              "CANCEL DECOMMISSION",
+              "CREATE CLUSTER",
+              "CREATE FILE",
+              "DROP CLUSTER",
+              "DROP FILE",
+              "ENTER",
+              "INSTALL PLUGIN",
+              "LINK DATABASE",
+              "MIGRATE DATABASE",
+              "SHOW BACKENDS",
+              "SHOW BROKER",
+              "SHOW FILE",
+              "SHOW FRONTENDS",
+              "SHOW FULL COLUMNS",
+              "SHOW INDEX",
+              "SHOW MIGRATIONS",
+              "SHOW PLUGINS",
+              "SHOW TABLE STATUS",
+              "UNINSTALL PLUGIN",
+            ],
+          },
+          {
+            title: "DDL",
+            directoryPath: "Data Definition/",
+            children: [
+              "ALTER DATABASE",
+              "ALTER TABLE",
+              "ALTER VIEW",
+              "BACKUP",
+              "CANCEL ALTER",
+              "CANCEL BACKUP",
+              "CANCEL RESTORE",
+              "CREATE DATABASE",
+              "CREATE INDEX",
+              "CREATE MATERIALIZED VIEW",
+              "CREATE REPOSITORY",
+              "CREATE TABLE",
+              "CREATE VIEW",
+              "create-function",
+              "DROP DATABASE",
+              "DROP INDEX",
+              "DROP MATERIALIZED VIEW",
+              "DROP REPOSITORY",
+              "DROP TABLE",
+              "DROP VIEW",
+              "drop-function",
+              "HLL",
+              "RECOVER",
+              "RESTORE",
+              "show-functions",
+              "TRUNCATE TABLE",
+            ],
+          },
+          {
+            title: "DML",
+            directoryPath: "Data Manipulation/",
+            children: [
+              "BROKER LOAD",
+              "CANCEL LOAD",
+              "DELETE",
+              "EXPORT",
+              "GROUP BY",
+              "insert",
+              "LOAD",
+              "MINI LOAD",
+              "MULTI LOAD",
+              "PAUSE ROUTINE LOAD",
+              "RESUME ROUTINE LOAD",
+              "ROUTINE LOAD",
+              "SHOW ALTER",
+              "SHOW BACKUP",
+              "SHOW DATA",
+              "SHOW DATABASES",
+              "SHOW DELETE",
+              "SHOW DYNAMIC PARTITION TABLES",
+              "SHOW EXPORT",
+              "SHOW LOAD",
+              "SHOW PARTITIONS",
+              "SHOW PROPERTY",
+              "SHOW REPOSITORIES",
+              "SHOW RESTORE",
+              "SHOW ROUTINE LOAD",
+              "SHOW ROUTINE LOAD TASK",
+              "SHOW SNAPSHOT",
+              "SHOW TABLES",
+              "SHOW TABLET",
+              "SHOW TRANSACTION",
+              "STOP ROUTINE LOAD",
+              "STREAM LOAD",
+            ],
+          },
+          {
+            title: "数据类型",
+            directoryPath: "Data Types/",
+            children: [
+              "BIGINT",
+              "BOOLEAN",
+              "CHAR",
+              "DATE",
+              "DATETIME",
+              "DECIMAL",
+              "DOUBLE",
+              "FLOAT",
+              "HLL",
+              "INT",
+              "LARGEINT",
+              "SMALLINT",
+              "TINYINT",
+              "VARCHAR",
+            ],
+          },
+          {
+            title: "辅助命令",
+            directoryPath: "Utility/",
+            children: ["DESCRIBE"],
+          },
+        ],
+      },
+    ],
+  },
+  {
+    title: "开发者手册",
+    directoryPath: "developer-guide/",
+    children: ["debug-tool", "format-code"],
+  },
+  {
+    title: "Apache 社区",
+    directoryPath: "community/",
+    children: [
+      "gitter",
+      "how-to-contribute",
+      "members",
+      "pull-request",
+      "release-process",
+      "subscribe-mail-list",
+      "verify-apache-release",
+    ],
+  },
+];
diff --git a/docs/.vuepress/theme/components/Footer.vue b/docs/.vuepress/theme/components/Footer.vue
new file mode 100644
index 0000000..607e5b1
--- /dev/null
+++ b/docs/.vuepress/theme/components/Footer.vue
@@ -0,0 +1,53 @@
+<!-- 
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<template>
+  <div class="footer-wrapper">
+    <br />
+    <span class="footer-text">© Copyright 2020, Apache Doris(Incubating)</span>
+    <br />
+    <span
+      class="footer-text"
+    >
+    Apache Doris(incubating) is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate th [...]
+  </div>
+</template>
+<script>
+export default {};
+</script>
+<style lang="stylus">
+.footer-wrapper 
+  max-width $contentWidth
+  text-align: center
+  margin 0 auto
+  padding 2rem 2.5rem
+  color: rgb(93, 93, 93)
+  font-weight: 240
+
+@media (min-width: $MQMobile)
+  .footer-wrapper 
+    padding 2rem
+    .footer-text
+      font-size: 13px
+@media (max-width: $MQMobile)
+  .footer-wrapper 
+    padding 1.5rem
+    .footer-text
+      font-size: 12px;
+</style>
\ No newline at end of file
diff --git a/docs/.vuepress/theme/components/Home.vue b/docs/.vuepress/theme/components/Home.vue
new file mode 100644
index 0000000..32a391e
--- /dev/null
+++ b/docs/.vuepress/theme/components/Home.vue
@@ -0,0 +1,38 @@
+<!-- 
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<template>
+  <div>
+    <ParentLayout></ParentLayout>
+    <footer>
+      <CustomFooter />
+    </footer>
+  </div>
+</template>
+<script>
+import ParentLayout from "@parent-theme/components/Home.vue";
+import CustomFooter from "@theme/components/Footer.vue";
+
+export default {
+  components: {
+    ParentLayout,
+    CustomFooter
+  }
+};
+</script>
\ No newline at end of file
diff --git a/docs/.vuepress/theme/components/NavLinks.vue b/docs/.vuepress/theme/components/NavLinks.vue
new file mode 100644
index 0000000..66f1023
--- /dev/null
+++ b/docs/.vuepress/theme/components/NavLinks.vue
@@ -0,0 +1,56 @@
+<!-- 
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<template>
+  <div>
+    <ParentLayout v-if="showNavBar"></ParentLayout>
+  </div>
+</template>
+<script>
+import ParentLayout from "@parent-theme/components/NavLinks.vue";
+import DropdownLink from "@theme/components/DropdownLink.vue";
+import axios from "axios";
+
+export default {
+  data: () => ({
+    showNavBar: false
+  }),
+  components: {
+    ParentLayout
+  },
+  mounted() {
+    if (this.$site.themeConfig.hasFetchedVersions) return;
+    this.$site.themeConfig.hasFetchedVersions = true;
+    axios
+      .get("/versions.json")
+      .then(res => {
+        Object.keys(this.$site.themeConfig.locales).forEach(k => {
+          this.$site.themeConfig.locales[k].nav = this.$site.themeConfig.locales[k].nav.concat(
+            res.data[k.replace(/\//gi, "")] || []
+          );
+        });
+        this.showNavBar = true;
+      })
+      .catch(err => {
+        this.showNavBar = true;
+        console.log(err);
+      });
+  }
+};
+</script>
diff --git a/docs/.vuepress/theme/index.js b/docs/.vuepress/theme/index.js
new file mode 100644
index 0000000..d882e00
--- /dev/null
+++ b/docs/.vuepress/theme/index.js
@@ -0,0 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+module.exports = {
+  extend: "@vuepress/theme-default"
+};
diff --git a/docs/.vuepress/theme/layouts/Layout.vue b/docs/.vuepress/theme/layouts/Layout.vue
new file mode 100644
index 0000000..34b0b57
--- /dev/null
+++ b/docs/.vuepress/theme/layouts/Layout.vue
@@ -0,0 +1,38 @@
+<!-- 
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<template>
+  <ParentLayout>
+    <Content></Content>
+    <footer slot="page-bottom">
+      <CustomFooter />
+    </footer>
+  </ParentLayout>
+</template>
+<script>
+import ParentLayout from "@parent-theme/layouts/Layout.vue";
+import CustomFooter from "@theme/components/Footer.vue";
+
+export default {
+  components: {
+    ParentLayout,
+    CustomFooter
+  } 
+};
+</script>
\ No newline at end of file
diff --git a/docs/Makefile b/docs/Makefile
deleted file mode 100644
index 6d97111..0000000
--- a/docs/Makefile
+++ /dev/null
@@ -1,43 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-#
-# This file build all docs
-#
-
-BUILD_DIR = ${CURDIR}/build
-HELP_DIR = ${BUILD_DIR}/contents
-
-all: zip_help
-.PHONY: all
-
-${BUILD_DIR}:
-	mkdir -p ${BUILD_DIR}
-${HELP_DIR}:
-	mkdir -p ${HELP_DIR}
-
-# build help zip
-HELP_OUTPUT = ${BUILD_DIR}/help-resource.zip
-${HELP_OUTPUT}: documentation/cn/sql-reference ${BUILD_DIR} ${HELP_DIR}
-	cp -r $</* ${HELP_DIR}
-	cd ${BUILD_DIR} && zip -r $@ contents && cd -
-.PHONY: zip_help
-zip_help: ${HELP_OUTPUT}
-
-clean:
-	rm -rf ${BUILD_DIR}
-.PHONY: clean
diff --git a/docs/README.md b/docs/README.md
new file mode 100644
index 0000000..fa82195
--- /dev/null
+++ b/docs/README.md
@@ -0,0 +1,247 @@
+<!-- 
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+# Doris Document
+
+[Vuepress](https://github.com/vuejs/vuepress.git) is used as our document site generator, configurations are in `./docs/.vuepress` folder.
+
+## Getting Started
+
+Download and install [nodejs](http://nodejs.cn/download/)
+
+```bash
+npm config set registry https://registry.npm.taobao.org // Only if you are in Mainland China.
+cd docs && npm install
+npm run dev
+```
+
+Open your browser and navigate to `localhost:8080/en/` or `localhost:8080/zh-CN/`.
+
+## Docs' Directories
+
+```bash
+  .
+  ├─ docs/
+  │  ├─ .vuepress
+  │  │  ├─ dist // Built site files.
+  │  │  ├─ public // Assets
+  │  │  ├─ sidebar // Side bar configurations.
+  │  │  │  ├─ en.js
+  │  │  │  └─ zh-CN.js
+  │  ├─ theme // Global styles and customizations.
+  │  └─ config.js // Vuepress configurations.
+  ├─ zh-CN/
+  │  ├─ xxxx.md
+  │  └─ README.md // Will be rendered as entry page.
+  └─ en/
+     ├─ one.md
+     └─ README.md // Will be rendered as entry page.
+```
+
+## Start Writing
+
+1. Write markdown files in multi languages and put them in separated folders `./en/` and `./zh-CN/`. **But they should be with the same name.**
+
+    ```bash
+    .
+    ├─ en/
+    │  ├─ one.md
+    │  └─ two.md
+    └─ zh-CN/
+    │  ├─ one.md
+    │  └─ two.md
+    ```
+
+2. Frontmatters like below should always be on the top of each file:
+
+    ```markdown
+    ---
+    {
+        "title": "Backup and Recovery", // sidebar title
+        "language": "en" // writing language
+    }
+    ---
+    ```
+
+3. Assets are in `.vuepress/public/`.
+
+    Assuming that there exists a png `.vuepress/public/images/image_x.png`, then it can be used like:
+
+    ```markdown
+    ![alter text](/images/image_x.png)
+    ```
+
+4. Remember to update the sidebar configurations in `.vuepress/sidebar/` after adding a new file or a folder.
+
+    Assuming that the directories are:
+
+    ```bash
+    .
+    ├─ en/
+    │  ├─ subfolder
+    │  │  ├─ one.md
+    │  │  └─ two.md
+    │  └─ three.md
+    └─ zh-CN/
+       ├─ subfolder
+       │  ├─ one.md
+       │  └─ two.md
+       └─ three.md
+    ```
+
+    Then the sidebar configurations would be like:
+
+    ```javascript
+    // .vuepress/sidebar/en.js`
+    module.exports = [
+      {
+        title: "subfolder name",
+        directoryPath: "subfolder/",
+        children: ["one", "two"]
+      },
+      "three"
+    ]
+    ```
+
+    ```javascript
+    // .vuepress/sidebar/zh-CN.js
+    module.exports = [
+      {
+        title: "文件夹名称",
+        directoryPath: "subfolder/",
+        children: ["one", "two"]
+      },
+      "three"
+    ]
+    ```
+
+5. Run `npm run lint` before starting a PR.
+
+  Surely that there will be lots of error logs if the mardown files are not following the rules, and these logs will all be printed in the console:
+
+```shell
+
+en/administrator-guide/alter-table/alter-table-bitmap-index.md:92 MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "    ```"]
+en/administrator-guide/alter-table/alter-table-rollup.md:45 MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"]
+en/administrator-guide/alter-table/alter-table-rollup.md:77 MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"]
+en/administrator-guide/alter-table/alter-table-rollup.md:178 MD046/code-block-style Code block style [Expected: fenced; Actual: indented]
+en/administrator-guide/alter-table/alter-table-schema-change.md:50 MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"]
+en/administrator-guide/alter-table/alter-table-schema-change.md:82 MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"]
+en/administrator-guide/alter-table/alter-table-schema-change.md:127 MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"]
+en/administrator-guide/alter-table/alter-table-schema-change.md:144 MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"]
+en/administrator-guide/alter-table/alter-table-schema-change.md:153 MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"]
+en/administrator-guide/alter-table/alter-table-schema-change.md:199 MD046/code-block-style Code block style [Expected: fenced; Actual: indented]
+en/administrator-guide/backup-restore.md:45:1 MD029/ol-prefix Ordered list item prefix [Expected: 1; Actual: 2; Style: 1/1/1]
+en/administrator-guide/backup-restore.md:57:1 MD029/ol-prefix Ordered list item prefix [Expected: 1; Actual: 2; Style: 1/1/1]
+en/administrator-guide/backup-restore.md:61:1 MD029/ol-prefix Ordered list item prefix [Expected: 1; Actual: 3; Style: 1/1/1]
+npm ERR! code ELIFECYCLE
+npm ERR! errno 1
+npm ERR! docs@ lint: `markdownlint '**/*.md' -f`
+npm ERR! Exit status 1
+npm ERR! 
+npm ERR! Failed at the docs@ lint script.
+
+```
+
+## Deployment
+
+Just start a PR, and all things will be done automatically.
+
+## What Travis Does
+
+Once a PR accepted, travis ci will be triggered to build and deploy the whole website within its own branch. Here is what `.travis.yml` does:
+
+1. Prepare nodejs and vuepress enviorment.
+
+2. Use current branch's name as the relative url path in `.vuepress/config.js`(which is the `base` property).
+
+3. Build the documents into a website all by vuepress.
+
+4. Fetch asf-site repo to local directory, and copy `.vupress/dist/` into `{BRANCH}/`.
+
+5. Push the new site to asf-site repo with `GitHub Token`(which is preset in Travis console as a variable used in .travis.yml).
+
+## asf-site repository
+
+Finally the asf-site repository will be like:
+
+```bash
+.
+├─ master/
+│  ├─ en/
+│  │  ├─ subfolder
+│  │  │  ├─ one.md
+│  │  └─ three.md
+│  └─ zh-CN/
+│      ├─ subfolder
+│      │  ├─ one.md
+│      └─ three.md
+├─ incubating-0.11/
+│  ├─ en/
+│  │  ├─ subfolder
+│  │  │  ├─ one.md
+│  │  └─ three.md
+│  └─ zh-CN/
+│      ├─ subfolder
+│      │  ├─ one.md
+│      └─ three.md
+├─ index.html // user entry, and auto redirected to master folder
+└─ versions.json // all versions that can be seleted on the website are defined here
+```
+
+And the `versions.json` is like:
+
+```json
+{
+  "en": [
+    {
+      "text": "Versions", // dropdown label
+      "items": [
+        {
+          "text": "master", // dropdown-item label
+          "link": "/../master/en/installing/compilation.html", // entry page for this version
+          "target": "_blank"
+        },
+        {
+          "text": "branch-0.11",
+          "link": "/../branch-0.11/en/installing/compilation.html",
+          "target": "_blank"
+        }
+      ]
+    }
+  ],
+  "zh-CN": [
+    {
+      "text": "版本",
+      "items": [
+        {
+          "text": "master",
+          "link": "/../master/zh-CN/installing/compilation.html",
+          "target": "_blank"
+        },
+        {
+          "text": "branch-0.11",
+          "link": "/../branch-0.11/zh-CN/installing/compilation.html",
+          "target": "_blank"
+        }
+      ]
+    }
+  ]
+}
+```
diff --git a/docs/documentation/cn/administrator-guide/alter-table/alter-table-bitmap-index.md b/docs/documentation/cn/administrator-guide/alter-table/alter-table-bitmap-index.md
deleted file mode 100644
index a2a1ef0..0000000
--- a/docs/documentation/cn/administrator-guide/alter-table/alter-table-bitmap-index.md
+++ /dev/null
@@ -1,79 +0,0 @@
-<!-- 
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-# Bitmap 索引
-用户可以通过创建bitmap index 加速查询
-本文档主要介绍如何创建 index 作业,以及创建 index 的一些注意事项和常见问题。
-
-## 名词解释
-* bitmap index:位图索引,是一种快速数据结构,能够加快查询速度
-
-## 原理介绍
-创建和删除本质上是一个 schema change 的作业,具体细节可以参照 [Schema Change](alter-table-schema-change)。
-
-## 语法
-index 创建和修改相关语法有两种形式,一种集成与 alter table 语句中,另一种是使用单独的 
-create/drop index 语法
-1. 创建索引
-
-    创建索引的的语法可以参见 [CREATE INDEX](../../sql-reference/sql-statements/Data%20Definition/CREATE%20INDEX.html) 
-    或 [ALTER TABLE](../../sql-reference/sql-statements/Data%20Definition/ALTER%20TABLE.html) 中bitmap 索引相关的操作,
-    也可以通过在创建表时指定bitmap 索引,参见[CREATE TABLE](../../sql-reference/sql-statements/Data%20Definition/CREATE%20TABLE.html)
-
-2. 查看索引
-
-    参照[SHOW INDEX](../../sql-reference/sql-statements/Administration/SHOW%20INDEX.html)
-
-3. 删除索引
-
-    参照[DROP INDEX](../../sql-reference/sql-statements/Data%20Definition/DROP%20INDEX.html)
-    或者 [ALTER TABLE](../../sql-reference/sql-statements/Data%20Definition/ALTER%20TABLE.html) 中bitmap 索引相关的操作
-
-## 创建作业
-参照 schema change 文档 [Scheam Change](alter-table-schema-change.html)
-
-## 查看作业
-参照 schema change 文档 [Scheam Change](alter-table-schema-change.html)
-
-## 取消作业
-参照 schema change 文档 [Scheam Change](alter-table-schema-change.html)
-
-## 注意事项
-* 目前索引仅支持 bitmap 类型的索引。 
-* bitmap 索引仅在单列上创建。
-* bitmap 索引能够应用在 `Duplicate` 数据模型的所有列和 `Aggregate`, `Uniq` 模型的key列上。
-* bitmap 索引支持的数据类型如下:
-    * `TINYINT`
-    * `SMALLINT`
-    * `INT`
-    * `UNSIGNEDINT`
-    * `BIGINT`
-    * `CHAR`
-    * `VARCHAE`
-    * `DATE`
-    * `DATETIME`
-    * `LARGEINT`
-    * `DECIMAL`
-    * `BOOL`
-
-* bitmap索引仅在 segmentV2 下生效,需要在be的配置文件中增加如下配置
-
-    ```
-    default_rowset_type=BETA
-    ``` 
diff --git a/docs/documentation/cn/administrator-guide/alter-table/alter-table-rollup.md b/docs/documentation/cn/administrator-guide/alter-table/alter-table-rollup.md
deleted file mode 100644
index ef377d8..0000000
--- a/docs/documentation/cn/administrator-guide/alter-table/alter-table-rollup.md
+++ /dev/null
@@ -1,187 +0,0 @@
-<!-- 
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-# Rollup
-
-用户可以通过创建上卷表(Rollup)加速查询。关于 Rollup 的概念和使用方式可以参阅 [数据模型、ROLLUP 及前缀索引](../../getting-started/data-model-rollup.md) 和 [Rollup 与查询](../../getting-started/hit-the-rollup.md) 两篇文档。
-
-本文档主要介绍如何创建 Rollup 作业,以及创建 Rollup 的一些注意事项和常见问题。
-
-## 名词解释
-
-* Base Table:基表。每一个表被创建时,都对应一个基表。基表存储了这个表的完整的数据。Rollup 通常基于基表中的数据创建(也可以通过其他 Rollup 创建)。
-* Index:物化索引。Rollup 或 Base Table 都被称为物化索引。
-* Transaction:事务。每一个导入任务都是一个事务,每个事务有一个唯一递增的 Transaction ID。
-
-## 原理介绍
-
-创建 Rollup 的基本过程,是通过 Base 表的数据,生成一份新的包含指定列的 Rollup 的数据。其中主要需要进行两部分数据转换,一是已存在的历史数据的转换,二是在 Rollup 执行过程中,新到达的导入数据的转换。
-
-```
-+----------+
-| Load Job |
-+----+-----+
-     |
-     | Load job generates both base and rollup index data
-     |
-     |      +------------------+ +---------------+
-     |      | Base Index       | | Base Index    |
-     +------> New Incoming Data| | History Data  |
-     |      +------------------+ +------+--------+
-     |                                  |
-     |                                  | Convert history data
-     |                                  |
-     |      +------------------+ +------v--------+
-     |      | Rollup Index     | | Rollup Index  |
-     +------> New Incoming Data| | History Data  |
-            +------------------+ +---------------+
-```
-
-在开始转换历史数据之前,Doris 会获取一个最新的 Transaction ID。并等待这个 Transaction ID 之前的所有导入事务完成。这个 Transaction ID 成为分水岭。意思是,Doris 保证在分水岭之后的所有导入任务,都会同时为 Rollup Index 生成数据。这样当历史数据转换完成后,可以保证 Rollup 和 Base 表的数据是齐平的。
-
-## 创建作业
-
-创建 Rollup 的具体语法可以查看帮助 `HELP ALTER TABLE` 中 Rollup 部分的说明。
-
-Rollup 的创建是一个异步过程,作业提交成功后,用户需要通过 `SHOW ALTER TABLE ROLLUP` 命令来查看作业进度。
-
-## 查看作业
-
-`SHOW ALTER TABLE ROLLUP` 可以查看当前正在执行或已经完成的 Rollup 作业。举例如下:
-
-```
-          JobId: 20037
-      TableName: tbl1
-     CreateTime: 2019-08-06 15:38:49
-   FinishedTime: N/A
-  BaseIndexName: tbl1
-RollupIndexName: r1
-       RollupId: 20038
-  TransactionId: 10034
-          State: PENDING
-            Msg:
-       Progress: N/A
-        Timeout: 86400
-```
-
-* JobId:每个 Rollup 作业的唯一 ID。
-* TableName:Rollup 对应的基表的表名。
-* CreateTime:作业创建时间。
-* FinishedTime:作业结束时间。如未结束,则显示 "N/A"。
-* BaseIndexName:Rollup 对应的源 Index 的名称。
-* RollupIndexName:Rollup 的名称。
-* RollupId:Rollup 的唯一 ID。
-* TransactionId:转换历史数据的分水岭 transaction ID。
-* State:作业所在阶段。
-    * PENDING:作业在队列中等待被调度。
-    * WAITING_TXN:等待分水岭 transaction ID 之前的导入任务完成。
-    * RUNNING:历史数据转换中。
-    * FINISHED:作业成功。
-    * CANCELLED:作业失败。
-* Msg:如果作业失败,这里会显示失败信息。
-* Progress:作业进度。只有在 RUNNING 状态才会显示进度。进度是以 M/N 的形式显示。其中 N 为 Rollup 的总副本数。M 为已完成历史数据转换的副本数。
-* Timeout:作业超时时间。单位秒。
-
-## 取消作业
-
-在作业状态不为 FINISHED 或 CANCELLED 的情况下,可以通过以下命令取消 Rollup 作业:
-
-`CANCEL ALTER TABLE ROLLUP FROM tbl_name;`
-
-## 注意事项
-
-* 一张表在同一时间只能有一个 Rollup 作业在运行。且一个作业中只能创建一个 Rollup。
-
-* Rollup 操作不阻塞导入和查询操作。
-
-* 如果 DELETE 操作,where 条件中的某个 Key 列在某个 Rollup 中不存在,则不允许该  DELETE。
-
-    如果某个 Key 列在某一 Rollup 中不存在,则 DELETE 操作无法对该 Rollup 进行数据删除,从而无法保证 Rollup 表和 Base 表的数据一致性。
-
-* Rollup 的列必须存在于 Base 表中。
-
-    Rollup 的列永远是 Base 表列的子集。不能出现 Base 表中不存在的列。
-
-* 如果 Rollup 中包含 REPLACE 聚合类型的列,则该 Rollup 必须包含所有 Key 列。
-
-    假设 Base 表结构如下:
-    
-    ```(k1 INT, k2 INT, v1 INT REPLACE, v2 INT SUM)```
-    
-    如果需要创建的 Rollup 包含 `v1` 列,则必须包含 `k1`, `k2` 列。否则系统无法决定 `v1` 列在 Rollup 中的取值。
-    
-    注意,Unique 数据模型表中的所有 Value 列都是 REPLACE 聚合类型。
-    
-* DUPLICATE 数据模型表的 Rollup,可以指定 Rollup 的 DUPLICATE KEY。
-
-    DUPLICATE 数据模型表中的 DUPLICATE KEY 其实就是排序列。Rollup 可以指定自己的排序列,但排序列必须是 Rollup 列顺序的前缀。如果不指定,则系统会检查 Rollup 是否包含了 Base 表的所有排序列,如果没有包含,则会报错。举例:
-    
-    Base 表结构:`(k1 INT, k2 INT, k3 INT) DUPLICATE KEY(k1, k2)`
-    
-    则 Rollup 可以为:`(k2 INT, k1 INT) DUPLICATE KEY(k2)` 
-
-* Rollup 不需要包含 Base 表的分区列或分桶列。
-
-## 常见问题
-
-* 一个表可以创建多少 Rollup
-
-    一个表能够创建的 Rollup 个数理论上没有限制,但是过多的 Rollup 会影响导入性能。因为导入时,会同时给所有 Rollup 产生数据。同时 Rollup 会占用物理存储空间。通常一个表的 Rollup 数量在 10 个以内比较合适。
-    
-* Rollup 创建的速度
-
-    目前 Rollup 创建速度按照最差效率估计约为 10MB/s。保守起见,用户可以根据这个速率来设置作业的超时时间。
-
-* 提交作业报错 `Table xxx is not stable. ...`
-
-    Rollup 只有在表数据完整且非均衡状态下才可以开始。如果表的某些数据分片副本不完整,或者某些副本正在进行均衡操作,则提交会被拒绝。
-    
-    数据分片副本是否完整,可以通过以下命令查看:
-    
-    ```ADMIN SHOW REPLICA STATUS FROM tbl WHERE STATUS != "OK";```
-    
-    如果有返回结果,则说明有副本有问题。通常系统会自动修复这些问题,用户也可以通过以下命令优先修复这个表:
-    
-    ```ADMIN REPAIR TABLE tbl1;```
-    
-    用户可以通过以下命令查看是否有正在运行的均衡任务:
-    
-    ```SHOW PROC "/cluster_balance/pending_tablets";```
-    
-    可以等待均衡任务完成,或者通过以下命令临时禁止均衡操作:
-    
-    ```ADMIN SET FRONTEND CONFIG ("disable_balance" = "true");```
-    
-## 相关配置
-
-### FE 配置
-
-* `alter_table_timeout_second`:作业默认超时时间,86400 秒。
-
-### BE 配置
-
-* `alter_tablet_worker_count`:在 BE 端用于执行历史数据转换的线程数。默认为 3。如果希望加快 Rollup 作业的速度,可以适当调大这个参数后重启 BE。但过多的转换线程可能会导致 IO 压力增加,影响其他操作。该线程和 Schema Change 作业共用。
-    
-    
-    
-    
-    
-     
-
-
diff --git a/docs/documentation/cn/administrator-guide/alter-table/alter-table-schema-change.md b/docs/documentation/cn/administrator-guide/alter-table/alter-table-schema-change.md
deleted file mode 100644
index b4c681c..0000000
--- a/docs/documentation/cn/administrator-guide/alter-table/alter-table-schema-change.md
+++ /dev/null
@@ -1,242 +0,0 @@
-<!-- 
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-# Schema Change
-
-用户可以通过 Schema Change 操作来修改已存在表的 Schema。目前 Doris 支持以下几种修改:
-
-* 增加、删除列
-* 修改列类型
-* 调整列顺序
-* 增加、修改 Bloom Filter
-* 增加、删除 bitmap index
-
-本文档主要介绍如何创建 Schema Change 作业,以及进行 Schema Change 的一些注意事项和常见问题。
-
-## 名词解释
-
-* Base Table:基表。每一个表被创建时,都对应一个基表。
-* Rollup:基于基表或者其他 Rollup 创建出来的上卷表。
-* Index:物化索引。Rollup 或 Base Table 都被称为物化索引。
-* Transaction:事务。每一个导入任务都是一个事务,每个事务有一个唯一递增的 Transaction ID。
-
-## 原理介绍
-
-执行 Schema Change 的基本过程,是通过原 Index 的数据,生成一份新 Schema 的 Index 的数据。其中主要需要进行两部分数据转换,一是已存在的历史数据的转换,二是在 Schema Change 执行过程中,新到达的导入数据的转换。
-
-```
-+----------+
-| Load Job |
-+----+-----+
-     |
-     | Load job generates both origin and new index data
-     |
-     |      +------------------+ +---------------+
-     |      | Origin Index     | | Origin Index  |
-     +------> New Incoming Data| | History Data  |
-     |      +------------------+ +------+--------+
-     |                                  |
-     |                                  | Convert history data
-     |                                  |
-     |      +------------------+ +------v--------+
-     |      | New Index        | | New Index     |
-     +------> New Incoming Data| | History Data  |
-            +------------------+ +---------------+
-```
-
-在开始转换历史数据之前,Doris 会获取一个最新的 Transaction ID。并等待这个 Transaction ID 之前的所有导入事务完成。这个 Transaction ID 成为分水岭。意思是,Doris 保证在分水岭之后的所有导入任务,都会同时为原 Index 和新 Index 生成数据。这样当历史数据转换完成后,可以保证新的 Index 中的数据是完整的。
-
-## 创建作业
-
-创建 Schema Change 的具体语法可以查看帮助 `HELP ALTER TABLE` 中 Schema Change 部分的说明。
-
-Schema Change 的创建是一个异步过程,作业提交成功后,用户需要通过 `SHOW ALTER TABLE COLUMN` 命令来查看作业进度。
-
-## 查看作业
-
-`SHOW ALTER TABLE COLUMN` 可以查看当前正在执行或已经完成的 Schema Change 作业。当一次 Schema Change 作业涉及到多个 Index 时,该命令会显示多行,每行对应一个 Index。举例如下:
-
-```
-        JobId: 20021
-    TableName: tbl1
-   CreateTime: 2019-08-05 23:03:13
-   FinishTime: 2019-08-05 23:03:42
-    IndexName: tbl1
-      IndexId: 20022
-OriginIndexId: 20017
-SchemaVersion: 2:792557838
-TransactionId: 10023
-        State: FINISHED
-          Msg:
-     Progress: N/A
-      Timeout: 86400
-```
-
-* JobId:每个 Schema Change 作业的唯一 ID。
-* TableName:Schema Change 对应的基表的表名。
-* CreateTime:作业创建时间。
-* FinishedTime:作业结束时间。如未结束,则显示 "N/A"。
-* IndexName: 本次修改所涉及的某一个 Index 的名称。
-* IndexId:新的 Index 的唯一 ID。
-* OriginIndexId:旧的 Index 的唯一 ID。
-* SchemaVersion:以 M:N 的格式展示。其中 M 表示本次 Schema Change 变更的版本,N 表示对应的 Hash 值。每次 Schema Change,版本都会递增。
-* TransactionId:转换历史数据的分水岭 transaction ID。
-* State:作业所在阶段。
-    * PENDING:作业在队列中等待被调度。
-    * WAITING_TXN:等待分水岭 transaction ID 之前的导入任务完成。
-    * RUNNING:历史数据转换中。
-    * FINISHED:作业成功。
-    * CANCELLED:作业失败。
-* Msg:如果作业失败,这里会显示失败信息。
-* Progress:作业进度。只有在 RUNNING 状态才会显示进度。进度是以 M/N 的形式显示。其中 N 为 Schema Change 涉及的总副本数。M 为已完成历史数据转换的副本数。
-* Timeout:作业超时时间。单位秒。
-
-## 取消作业
-
-在作业状态不为 FINISHED 或 CANCELLED 的情况下,可以通过以下命令取消 Schema Change 作业:
-
-`CANCEL ALTER TABLE COLUMN FROM tbl_name;`
-
-## 最佳实践
-
-Schema Change 可以在一个作业中,对多个 Index 进行不同的修改。举例如下:
-
-源 Schema:
-
-```
-+-----------+-------+------+------+------+---------+-------+
-| IndexName | Field | Type | Null | Key  | Default | Extra |
-+-----------+-------+------+------+------+---------+-------+
-| tbl1      | k1    | INT  | No   | true | N/A     |       |
-|           | k2    | INT  | No   | true | N/A     |       |
-|           | k3    | INT  | No   | true | N/A     |       |
-|           |       |      |      |      |         |       |
-| rollup2   | k2    | INT  | No   | true | N/A     |       |
-|           |       |      |      |      |         |       |
-| rollup1   | k1    | INT  | No   | true | N/A     |       |
-|           | k2    | INT  | No   | true | N/A     |       |
-+-----------+-------+------+------+------+---------+-------+
-```
-
-可以通过以下命令给 rollup1 和 rollup2 都加入一列 k4,并且再给 rollup2 加入一列 k5:
-
-```
-ALTER TABLE tbl1
-ADD COLUMN k4 INT default "1" to rollup1,
-ADD COLUMN k4 INT default "1" to rollup2,
-ADD COLUMN k5 INT default "1" to rollup2;
-```
-
-完成后,Schema 变为:
-
-```
-+-----------+-------+------+------+------+---------+-------+
-| IndexName | Field | Type | Null | Key  | Default | Extra |
-+-----------+-------+------+------+------+---------+-------+
-| tbl1      | k1    | INT  | No   | true | N/A     |       |
-|           | k2    | INT  | No   | true | N/A     |       |
-|           | k3    | INT  | No   | true | N/A     |       |
-|           | k4    | INT  | No   | true | 1       |       |
-|           | k5    | INT  | No   | true | 1       |       |
-|           |       |      |      |      |         |       |
-| rollup2   | k2    | INT  | No   | true | N/A     |       |
-|           | k4    | INT  | No   | true | 1       |       |
-|           | k5    | INT  | No   | true | 1       |       |
-|           |       |      |      |      |         |       |
-| rollup1   | k1    | INT  | No   | true | N/A     |       |
-|           | k2    | INT  | No   | true | N/A     |       |
-|           | k4    | INT  | No   | true | 1       |       |
-+-----------+-------+------+------+------+---------+-------+
-```
-
-可以看到,Base 表 tbl1 也自动加入了 k4, k5 列。即给任意 rollup 增加的列,都会自动加入到 Base 表中。
-
-同时,不允许向 Rollup 中加入 Base 表已经存在的列。如果用户需要这样做,可以重新建立一个包含新增列的 Rollup,之后再删除原 Rollup。
-
-## 注意事项
-
-* 一张表在同一时间只能有一个 Schema Change 作业在运行。
-
-* Schema Change 操作不阻塞导入和查询操作。
-
-* 分区列和分桶列不能修改。
-
-* 如果 Schema 中有 REPLACE 方式聚合的 value 列,则不允许删除 Key 列。
-
-    如果删除 Key 列,Doris 无法决定 REPLACE 列的取值。
-    
-    Unique 数据模型表的所有非 Key 列都是 REPLACE 聚合方式。
-    
-* 在新增聚合类型为 SUM 或者 REPLACE 的 value 列时,该列的默认值对历史数据没有含义。
-
-    因为历史数据已经失去明细信息,所以默认值的取值并不能实际反映聚合后的取值。
-    
-* 当修改列类型时,除 Type 以外的字段都需要按原列上的信息补全。
-
-    如修改列 `k1 INT SUM NULL DEFAULT "1"` 类型为 BIGINT,则需执行命令如下:
-    
-    ```ALTER TABLE tbl1 MODIFY COLUMN `k1` BIGINT SUM NULL DEFAULT "1";```
-    
-    注意,除新的列类型外,如聚合方式,Nullable 属性,以及默认值都要按照原信息补全。
-    
-* 不支持修改列名称、聚合类型、Nullable 属性、默认值以及列注释。
-
-## 常见问题
-    
-* Schema Change 的执行速度
-
-    目前 Schema Change 执行速度按照最差效率估计约为 10MB/s。保守起见,用户可以根据这个速率来设置作业的超时时间。
-
-* 提交作业报错 `Table xxx is not stable. ...`
-
-    Schema Change 只有在表数据完整且非均衡状态下才可以开始。如果表的某些数据分片副本不完整,或者某些副本正在进行均衡操作,则提交会被拒绝。
-    
-    数据分片副本是否完整,可以通过以下命令查看:
-    
-    ```ADMIN SHOW REPLICA STATUS FROM tbl WHERE STATUS != "OK";```
-    
-    如果有返回结果,则说明有副本有问题。通常系统会自动修复这些问题,用户也可以通过以下命令优先修复这个表:
-    
-    ```ADMIN REPAIR TABLE tbl1;```
-    
-    用户可以通过以下命令查看是否有正在运行的均衡任务:
-    
-    ```SHOW PROC "/cluster_balance/pending_tablets";```
-    
-    可以等待均衡任务完成,或者通过以下命令临时禁止均衡操作:
-    
-    ```ADMIN SET FRONTEND CONFIG ("disable_balance" = "true");```
-    
-## 相关配置
-
-### FE 配置
-
-* `alter_table_timeout_second`:作业默认超时时间,86400 秒。
-
-### BE 配置
-
-* `alter_tablet_worker_count`:在 BE 端用于执行历史数据转换的线程数。默认为 3。如果希望加快 Schema Change 作业的速度,可以适当调大这个参数后重启 BE。但过多的转换线程可能会导致 IO 压力增加,影响其他操作。该线程和 Rollup 作业共用。
-    
-    
-    
-    
-    
-     
-
-
diff --git a/docs/documentation/cn/administrator-guide/alter-table/alter-table-temp-partition.md b/docs/documentation/cn/administrator-guide/alter-table/alter-table-temp-partition.md
deleted file mode 100644
index eb8068a..0000000
--- a/docs/documentation/cn/administrator-guide/alter-table/alter-table-temp-partition.md
+++ /dev/null
@@ -1,244 +0,0 @@
-<!-- 
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-# 临时分区
-
-在 0.12 版本中,Doris 支持了临时分区功能。
-
-临时分区是归属于某一分区表的。只有分区表可以创建临时分区。
-
-## 规则
-
-* 临时分区的分区列和正式分区相同,且不可修改。
-* 一张表所有临时分区之间的分区范围不可重叠,但临时分区的范围和正式分区范围可以重叠。
-* 临时分区的分区名称不能和正式分区以及其他临时分区重复。
-
-## 支持的操作
-
-临时分区支持添加、删除、替换操作。
-
-### 添加临时分区
-
-可以通过 `ALTER TABLE ADD TEMPORARY PARTITION` 语句对一个表添加临时分区:
-
-```
-ALTER TABLE tbl1 ADD TEMPORARY PARTITION tp1 VALUES LESS THAN("2020-02-01");
-
-ALTER TABLE tbl2 ADD TEMPORARY PARTITION tp1 VALUES [("2020-01-01"), ("2020-02-01"));
-
-ALTER TABLE tbl1 ADD TEMPORARY PARTITION tp1 VALUES LESS THAN("2020-02-01")
-("in_memory" = "true", "replication_num" = "1")
-DISTRIBUTED BY HASH(k1) BUCKETS 5;
-```
-
-通过 `HELP ALTER TABLE;` 查看更多帮助和示例。
-
-添加操作的一些说明:
-
-* 临时分区的添加和正式分区的添加操作相似。临时分区的分区范围独立于正式分区。
-* 临时分区可以独立指定一些属性。包括分桶数、副本数、是否是内存表、存储介质等信息。
-
-### 删除临时分区
-
-可以通过 `ALTER TABLE DROP TEMPORARY PARTITION` 语句删除一个表的临时分区:
-
-```
-ALTER TABLE tbl1 DROP TEMPORARY PARTITION tp1;
-```
-
-通过 `HELP ALTER TABLE;` 查看更多帮助和示例。
-
-删除操作的一些说明:
-
-* 删除临时分区,不影响正式分区的数据。
-
-### 替换分区
-
-可以通过 `ALTER TABLE REPLACE PARTITION` 语句将一个表的正式分区替换为临时分区。
-
-```
-ALTER TABLE tbl1 REPLACE PARTITION (p1) WITH TEMPORARY PARTITION (tp1);
-
-ALTER TABLE tbl1 REPLACE PARTITION (p1, p2) WITH TEMPORARY PARTITION (tp1, tp2, tp3);
-
-ALTER TABLE tbl1 REPLACE PARTITION (p1, p2) WITH TEMPORARY PARTITION (tp1, tp2)
-PROPERTIES (
-    "strict_range" = "false",
-    "use_temp_partition_name" = "true"
-);
-```
-
-通过 `HELP ALTER TABLE;` 查看更多帮助和示例。
-
-替换操作有两个特殊的可选参数:
-
-1. `strict_range`
-
-    默认为 true。当该参数为 true 时,表示要被替换的所有正式分区的范围并集需要和替换的临时分区的范围并集完全相同。当置为 false 时,只需要保证替换后,新的正式分区间的范围不重叠即可。下面举例说明:
-    
-    * 示例1
-    
-        待替换的分区 p1, p2, p3 的范围 (=> 并集):
-        
-        ```
-        [10, 20), [20, 30), [40, 50) => [10, 30), [40, 50)
-        ```
-    
-        替换分区 tp1, tp2 的范围(=> 并集):
-        
-        ```
-        [10, 30), [40, 45), [45, 50) => [10, 30), [40, 50)
-        ```
-        
-        范围并集相同,则可以使用 tp1 和 tp2 替换 p1, p2, p3。
-    
-    * 示例2
-    
-        待替换的分区 p1 的范围 (=> 并集):
-        
-        ```
-        [10, 50) => [10, 50)
-        ```
-    
-        替换分区 tp1, tp2 的范围(=> 并集):
-        
-        ```
-        [10, 30), [40, 50) => [10, 30), [40, 50)
-        ```
-        
-        范围并集不相同,如果 `strict_range` 为 true,则不可以使用 tp1 和 tp2 替换 p1。如果为 false,且替换后的两个分区范围 `[10, 30), [40, 50)` 和其他正式分区不重叠,则可以替换。
-
-2. `use_temp_partition_name`
-
-    默认为 false。当该参数为 false,并且待替换的分区和替换分区的个数相同时,则替换后的正式分区名称维持不变。如果为 true,则替换后,正式分区的名称为替换分区的名称。下面举例说明:
-    
-    * 示例1
-    
-        ```
-        ALTER TABLE tbl1 REPLACE PARTITION (p1) WITH TEMPORARY PARTITION (tp1);
-        ```
-        
-        `use_temp_partition_name` 默认为 false,则在替换后,分区的名称依然为 p1,但是相关的数据和属性都替换为 tp1 的。
-        
-        如果 `use_temp_partition_name` 默认为 true,则在替换后,分区的名称为 tp1。p1 分区不再存在。
-        
-    * 示例2
-
-        ```
-        ALTER TABLE tbl1 REPLACE PARTITION (p1, p2) WITH TEMPORARY PARTITION (tp1);
-        ```
-
-        `use_temp_partition_name` 默认为 false,但因为待替换分区的个数和替换分区的个数不同,则该参数无效。替换后,分区名称为 tp1,p1 和 p2 不再存在。
-        
-替换操作的一些说明:
-
-* 分区替换成功后,被替换的分区将被删除且不可恢复。
-
-## 临时分区的导入和查询
-
-用户可以将数据导入到临时分区,也可以指定临时分区进行查询。
-
-1. 导入临时分区
-
-    根据导入方式的不同,指定导入临时分区的语法稍有差别。这里通过示例进行简单说明
-
-    ```
-    INSERT INTO tbl TEMPORARY PARTITION(tp1, tp2, ...) SELECT ....
-    ```
-
-    ```
-    curl --location-trusted -u root: -H "label:123" -H "temporary_partition: tp1, tp2, ..." -T testData http://host:port/api/testDb/testTbl/_stream_load    
-    ```
-
-    ```
-    LOAD LABEL example_db.label1
-    (
-    DATA INFILE("hdfs://hdfs_host:hdfs_port/user/palo/data/input/file")
-    INTO TABLE `my_table`
-    TEMPORARY PARTITION (tp1, tp2, ...)
-    ...
-    )
-    WITH BROKER hdfs ("username"="hdfs_user", "password"="hdfs_password");
-    ```
-
-    ```
-    CREATE ROUTINE LOAD example_db.test1 ON example_tbl
-    COLUMNS(k1, k2, k3, v1, v2, v3 = k1 * 100),
-    TEMPORARY PARTITIONS(tp1, tp2, ...),
-    WHERE k1 > 100
-    PROPERTIES
-    (...)
-    FROM KAFKA
-    (...);
-    ```
-
-2. 查询临时分区
-
-    ```
-    SELECT ... FROM
-    tbl1 TEMPORARY PARTITION(tp1, tp2, ...)
-    JOIN
-    tbl2 TEMPORARY PARTITION(tp1, tp2, ...)
-    ON ...
-    WHERE ...;
-    ```
-
-## 和其他操作的关系
-
-### DROP
-
-* 使用 Drop 操作直接删除数据库或表后,可以通过 Recover 命令恢复数据库或表(限定时间内),但临时分区不会被恢复。
-* 使用 Alter 命令删除正式分区后,可以通过 Recover 命令恢复分区(限定时间内)。操作正式分区和临时分区无关。
-* 使用 Alter 命令删除临时分区后,无法通过 Recover 命令恢复临时分区。
-
-### TRUNCATE
-
-* 使用 Truncate 命令清空表,表的临时分区会被删除,且不可恢复。
-* 使用 Truncate 命令清空正式分区时,不影响临时分区。
-* 不可使用 Truncate 命令清空临时分区。
-
-### ALTER
-
-* 当表存在临时分区时,无法使用 Alter 命令对表进行 Schema Change、Rollup 等变更操作。
-* 当表在进行变更操作时,无法对表添加临时分区。
-
-
-## 最佳实践
-
-1. 原子的覆盖写操作
-
-    某些情况下,用户希望能够重写某一分区的数据,但如果采用先删除再导入的方式进行,在中间会有一段时间无法查看数据。这是,用户可以先创建一个对应的临时分区,将新的数据导入到临时分区后,通过替换操作,原子的替换原有分区,以达到目的。
-    
-2. 修改分桶数
-
-    某些情况下,用户在创建分区时使用了不合适的分桶数。则用户可以先创建一个对应分区范围的临时分区,并指定新的分桶数。然后通过 `INSERT INTO` 命令将正式分区的数据导入到临时分区中,通过替换操作,原子的替换原有分区,以达到目的。
-    
-3. 合并或分割分区
-
-    某些情况下,用户希望对分区的范围进行修改,比如合并两个分区,或将一个大分区分割成多个小分区。则用户可以先建立对应合并或分割后范围的临时分区,然后通过 `INSERT INTO` 命令将正式分区的数据导入到临时分区中,通过替换操作,原子的替换原有分区,以达到目的。
-
-
-
-
-
-
-
-
-
-
diff --git a/docs/documentation/cn/administrator-guide/alter-table/index.rst b/docs/documentation/cn/administrator-guide/alter-table/index.rst
deleted file mode 100644
index 2087412..0000000
--- a/docs/documentation/cn/administrator-guide/alter-table/index.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-=============
-表结构变更
-=============
-
-.. toctree::
-    :maxdepth: 2
-    :glob:
-
-    *
diff --git a/docs/documentation/cn/administrator-guide/backup-restore.md b/docs/documentation/cn/administrator-guide/backup-restore.md
deleted file mode 100644
index ff5c262..0000000
--- a/docs/documentation/cn/administrator-guide/backup-restore.md
+++ /dev/null
@@ -1,179 +0,0 @@
-<!-- 
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-# 备份与恢复
-
-Doris 支持将当前数据以文件的形式,通过 broker 备份到远端存储系统中。之后可以通过 恢复 命令,从远端存储系统中将数据恢复到任意 Doris 集群。通过这个功能,Doris 可以支持将数据定期的进行快照备份。也可以通过这个功能,在不同集群间进行数据迁移。
-
-该功能需要 Doris 版本 0.8.2+
-
-使用该功能,需要部署对应远端存储的 broker。如 BOS、HDFS 等。可以通过 `SHOW BROKER;` 查看当前部署的 broker。
-
-## 简要原理说明
-
-### 备份(Backup)
-
-备份操作是将指定表或分区的数据,直接以 Doris 存储的文件的形式,上传到远端仓库中进行存储。当用户提交 Backup 请求后,系统内部会做如下操作:
-
-1. 快照及快照上传
-
-    快照阶段会对指定的表或分区数据文件进行快照。之后,备份都是对快照进行操作。在快照之后,对表进行的更改、导入等操作都不再影响备份的结果。快照只是对当前数据文件产生一个硬链,耗时很少。快照完成后,会开始对这些快照文件进行逐一上传。快照上传由各个 Backend 并发完成。
-    
-2. 元数据准备及上传
-
-    数据文件快照上传完成后,Frontend 会首先将对应元数据写成本地文件,然后通过 broker 将本地元数据文件上传到远端仓库。完成最终备份作业。
-    
-### 恢复(Restore)
-
-恢复操作需要指定一个远端仓库中已存在的备份,然后将这个备份的内容恢复到本地集群中。当用户提交 Restore 请求后,系统内部会做如下操作:
-
-1. 在本地创建对应的元数据
-
-    这一步首先会在本地集群中,创建恢复对应的表分区等结构。创建完成后,该表可见,但是不可访问。
-    
-2. 本地snapshot
-
-    这一步是将上一步创建的表做一个快照。这其实是一个空快照(因为刚创建的表是没有数据的),其目的主要是在 Backend 上产生对应的快照目录,用于之后接收从远端仓库下载的快照文件。
-    
-3. 下载快照
-
-    远端仓库中的快照文件,会被下载到对应的上一步生成的快照目录中。这一步由各个 Backend 并发完成。
-    
-4. 生效快照
-
-    快照下载完成后,我们要将各个快照映射为当前本地表的元数据。然后重新加载这些快照,使之生效,完成最终的恢复作业。
-    
-## 最佳实践
-
-### 备份
-
-当前我们支持最小分区(Partition)粒度的全量备份(增量备份有可能在未来版本支持)。如果需要对数据进行定期备份,首先需要在建表时,合理的规划表的分区及分桶,比如按时间进行分区。然后在之后的运行过程中,按照分区粒度进行定期的数据备份。
-
-### 数据迁移
-
-用户可以先将数据备份到远端仓库,再通过远端仓库将数据恢复到另一个集群,完成数据迁移。因为数据备份是通过快照的形式完成的,所以,在备份作业的快照阶段之后的新的导入数据,是不会备份的。因此,在快照完成后,到恢复作业完成这期间,在原集群上导入的数据,都需要在新集群上同样导入一遍。
-
-建议在迁移完成后,对新旧两个集群并行导入一段时间。完成数据和业务正确性校验后,再将业务迁移到新的集群。
-    
-## 重点说明
-
-1. 备份恢复相关的操作目前只允许拥有 ADMIN 权限的用户执行。
-2. 一个 Database 内,只允许有一个正在执行的备份或恢复作业。
-3. 备份和恢复都支持最小分区(Partition)级别的操作,当表的数据量很大时,建议按分区分别执行,以降低失败重试的代价。
-4. 因为备份恢复操作,操作的都是实际的数据文件。所以当一个表的分片过多,或者一个分片有过多的小版本时,可能即使总数据量很小,依然需要备份或恢复很长时间。用户可以通过 `SHOW PARTITIONS FROM table_name;` 和 `SHOW TABLET FROM table_name;` 来查看各个分区的分片数量,以及各个分片的文件版本数量,来预估作业执行时间。文件数量对作业执行的时间影响非常大,所以建议在建表时,合理规划分区分桶,以避免过多的分片。
-5. 当通过 `SHOW BACKUP` 或者 `SHOW RESTORE` 命令查看作业状态时。有可能会在 `TaskErrMsg` 一列中看到错误信息。但只要 `State` 列不为 
- `CANCELLED`,则说明作业依然在继续。这些 Task 有可能会重试成功。当然,有些 Task 错误,也会直接导致作业失败。
-6. 如果恢复作业是一次覆盖操作(指定恢复数据到已经存在的表或分区中),那么从恢复作业的 `COMMIT` 阶段开始,当前集群上被覆盖的数据有可能不能再被还原。此时如果恢复作业失败或被取消,有可能造成之前的数据已损坏且无法访问。这种情况下,只能通过再次执行恢复操作,并等待作业完成。因此,我们建议,如无必要,尽量不要使用覆盖的方式恢复数据,除非确认当前数据已不再使用。
-
-## 相关命令
-
-和备份恢复功能相关的命令如下。以下命令,都可以通过 mysql-client 连接 Doris 后,使用 `help cmd;` 的方式查看详细帮助。
-
-1. CREATE REPOSITORY
-
-    创建一个远端仓库路径,用于备份或恢复。该命令需要借助 Broker 进程访问远端存储,不同的 Broker 需要提供不同的参数,具体请参阅 [Broker文档](broker.md)
-
-1. BACKUP
-
-    执行一次备份操作。
-    
-3. SHOW BACKUP
-
-    查看最近一次 backup 作业的执行情况,包括:
-    
-    * JobId:本次备份作业的 id。
-    * SnapshotName:用户指定的本次备份作业的名称(Label)。
-    * DbName:备份作业对应的 Database。
-    * State:备份作业当前所在阶段:
-        * PENDING:作业初始状态。
-        * SNAPSHOTING:正在进行快照操作。
-        * UPLOAD_SNAPSHOT:快照结束,准备上传。
-        * UPLOADING:正在上传快照。
-        * SAVE_META:正在本地生成元数据文件。
-        * UPLOAD_INFO:上传元数据文件和本次备份作业的信息。
-        * FINISHED:备份完成。
-        * CANCELLED:备份失败或被取消。
-    * BackupObjs:本次备份涉及的表和分区的清单。
-    * CreateTime:作业创建时间。
-    * SnapshotFinishedTime:快照完成时间。
-    * UploadFinishedTime:快照上传完成时间。
-    * FinishedTime:本次作业完成时间。
-    * UnfinishedTasks:在 `SNAPSHOTTING`,`UPLOADING` 等阶段,会有多个子任务在同时进行,这里展示的当前阶段,未完成的子任务的 task id。
-    * TaskErrMsg:如果有子任务执行出错,这里会显示对应子任务的错误信息。
-    * Status:用于记录在整个作业过程中,可能出现的一些状态信息。
-    * Timeout:作业的超时时间,单位是秒。
-
-4. SHOW SNAPSHOT
-
-    查看远端仓库中已存在的备份。
-    
-    * Snapshot:备份时指定的该备份的名称(Label)。
-    * Timestamp:备份的时间戳。
-    * Status:该备份是否正常。
-
-    如果在 `SHOW SNAPSHOT` 后指定了 where 子句,则可以显示更详细的备份信息。
-    
-    * Database:备份时对应的 Database。
-    * Details:展示了该备份完整的数据目录结构。
-
-5. RESTORE
-
-    执行一次恢复操作。
-    
-6. SHOW RESTORE
-
-    查看最近一次 restore 作业的执行情况,包括:
-    
-    * JobId:本次恢复作业的 id。
-    * Label:用户指定的仓库中备份的名称(Label)。
-    * Timestamp:用户指定的仓库中备份的时间戳。
-    * DbName:恢复作业对应的 Database。
-    * State:恢复作业当前所在阶段:
-        * PENDING:作业初始状态。
-        * SNAPSHOTING:正在进行本地新建表的快照操作。
-        * DOWNLOAD:正在发送下载快照任务。
-        * DOWNLOADING:快照正在下载。
-        * COMMIT:准备生效已下载的快照。
-        * COMMITTING:正在生效已下载的快照。
-        * FINISHED:恢复完成。
-        * CANCELLED:恢复失败或被取消。
-    * AllowLoad:恢复期间是否允许导入。
-    * ReplicationNum:恢复指定的副本数。
-    * RestoreObjs:本次恢复涉及的表和分区的清单。
-    * CreateTime:作业创建时间。
-    * MetaPreparedTime:本地元数据生成完成时间。
-    * SnapshotFinishedTime:本地快照完成时间。
-    * DownloadFinishedTime:远端快照下载完成时间。
-    * FinishedTime:本次作业完成时间。
-    * UnfinishedTasks:在 `SNAPSHOTTING`,`DOWNLOADING`, `COMMITTING` 等阶段,会有多个子任务在同时进行,这里展示的当前阶段,未完成的子任务的 task id。
-    * TaskErrMsg:如果有子任务执行出错,这里会显示对应子任务的错误信息。
-    * Status:用于记录在整个作业过程中,可能出现的一些状态信息。
-    * Timeout:作业的超时时间,单位是秒。
-    
-7. CANCEL BACKUP
-
-    取消当前正在执行的备份作业。
-    
-8. CANCEL RESTORE
-
-    取消当前正在执行的恢复作业。
-    
-9. DROP REPOSITORY
-
-    删除已创建的远端仓库。删除仓库,仅仅是删除该仓库在 Doris 中的映射,不会删除实际的仓库数据。
\ No newline at end of file
diff --git a/docs/documentation/cn/administrator-guide/broker.md b/docs/documentation/cn/administrator-guide/broker.md
deleted file mode 100644
index 0fdcff0..0000000
--- a/docs/documentation/cn/administrator-guide/broker.md
+++ /dev/null
@@ -1,280 +0,0 @@
-<!-- 
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-# Broker
-
-Broker 是 Doris 集群中一种可选进程,主要用于支持 Doris 读写远端存储上的文件和目录,如 HDFS、BOS 和 AFS 等。
-
-Broker 通过提供一个 RPC 服务端口来提供服务,是一个无状态的 Java 进程,负责为远端存储的读写操作封装一些类 POSIX 的文件操作,如 open,pread,pwrite 等等。除此之外,Broker 不记录任何其他信息,所以包括远端存储的连接信息、文件信息、权限信息等等,都需要通过参数在 RPC 调用中传递给 Broker 进程,才能使得 Broker 能够正确读写文件。
-
-Broker 仅作为一个数据通路,并不参与任何计算,因此仅需占用较少的内存。通常一个 Doris 系统中会部署一个或多个 Broker 进程。并且相同类型的 Broker 会组成一个组,并设定一个 **名称(Broker name)**。
-
-Broker 在 Doris 系统架构中的位置如下:
-
-```
-+----+   +----+
-| FE |   | BE |
-+-^--+   +--^-+
-  |         |
-  |         |
-+-v---------v-+
-|   Broker    |
-+------^------+
-       |
-       |
-+------v------+
-|HDFS/BOS/AFS |
-+-------------+
-```
-
-本文档主要介绍 Broker 在访问不同远端存储时需要的参数,如连接信息、权限认证信息等等。
-
-## 支持的存储系统
-
-不同的 Broker 类型支持不同的存储系统。
-
-1. 社区版 HDFS
-
-    * 支持简单认证访问
-    * 支持通过 kerberos 认证访问
-    * 支持 HDFS HA 模式访问
-
-2. 百度 HDFS/AFS(开源版本不支持)
-
-    * 支持通过 ugi 简单认证访问
-
-3. 百度对象存储 BOS(开源版本不支持)
-
-    * 支持通过 AK/SK 认证访问
-
-## 需要 Broker 的操作
-
-1. Broker Load
-
-    Broker Load 功能通过 Broker 进程读取远端存储上的文件数据并导入到 Doris 中。示例如下:
-    
-    ```
-    LOAD LABEL example_db.label6
-    (
-        DATA INFILE("bos://my_bucket/input/file")
-        INTO TABLE `my_table`
-    )
-    WITH BROKER "broker_name"
-    (
-        "bos_endpoint" = "http://bj.bcebos.com",
-        "bos_accesskey" = "xxxxxxxxxxxxxxxxxxxxxxxxxx",
-        "bos_secret_accesskey" = "yyyyyyyyyyyyyyyyyyyy"
-    )
-    ```
-
-    其中 `WITH BROKER` 以及之后的 Property Map 用于提供 Broker 相关信息。
-    
-2. 数据导出(Export)
-
-    Export 功能通过 Broker 进程,将 Doris 中存储的数据以文本的格式导出到远端存储的文件中。示例如下:
-    
-    ```
-    EXPORT TABLE testTbl 
-    TO "hdfs://hdfs_host:port/a/b/c" 
-    WITH BROKER "broker_name" 
-    (
-        "username" = "xxx",
-        "password" = "yyy"
-    );
-    ```
-
-    其中 `WITH BROKER` 以及之后的 Property Map 用于提供 Broker 相关信息。
-
-3. 创建用于备份恢复的仓库(Create Repository)
-
-    当用户需要使用备份恢复功能时,需要先通过 `CREATE REPOSITORY` 命令创建一个 “仓库”,仓库元信息中记录了所使用的 Broker 以及相关信息。之后的备份恢复操作,会通过 Broker 将数据备份到这个仓库,或从这个仓库读取数据恢复到 Doris 中。示例如下:
-    
-    ```
-    CREATE REPOSITORY `bos_repo`
-    WITH BROKER `broker_name`
-    ON LOCATION "bos://doris_backup"
-    PROPERTIES
-    (
-        "bos_endpoint" = "http://gz.bcebos.com",
-        "bos_accesskey" = "069fc2786e664e63a5f111111114ddbs22",
-        "bos_secret_accesskey" = "70999999999999de274d59eaa980a"
-    );
-    ```
-    
-    其中 `WITH BROKER` 以及之后的 Property Map 用于提供 Broker 相关信息。
-    
-
-## Broker 信息
-
-Broker 的信息包括 **名称(Broker name)** 和 **认证信息** 两部分。通常的语法格式如下:
-
-```
-WITH BROKER "broker_name" 
-(
-    "username" = "xxx",
-    "password" = "yyy",
-    "other_prop" = "prop_value",
-    ...
-);
-```
-
-### 名称
-
-通常用户需要通过操作命令中的 `WITH BROKER "broker_name"` 子句来指定一个已经存在的 Broker Name。Broker Name 是用户在通过 `ALTER SYSTEM ADD BROKER` 命令添加 Broker 进程时指定的一个名称。一个名称通常对应一个或多个 Broker 进程。Doris 会根据名称选择可用的 Broker 进程。用户可以通过 `SHOW BROKER` 命令查看当前集群中已经存在的 Broker。
-
-**注:Broker Name 只是一个用户自定义名称,不代表 Broker 的类型。**
-
-### 认证信息
-
-不同的 Broker 类型,以及不同的访问方式需要提供不同的认证信息。认证信息通常在 `WITH BROKER "broker_name"` 之后的 Property Map 中以 Key-Value 的方式提供。
-
-#### 社区版 HDFS
-
-1. 简单认证
-
-    简单认证即 Hadoop 配置 `hadoop.security.authentication` 为 `simple`。
-
-    使用系统用户访问 HDFS。或者在 Broker 启动的环境变量中添加:```HADOOP_USER_NAME```。
-    
-    ```
-    (
-        "username" = "user",
-        "password" = ""
-    );
-    ```
-
-    密码置空即可。
-
-2. Kerberos 认证
-
-    该认证方式需提供以下信息:
-    
-    * `hadoop.security.authentication`:指定认证方式为 kerberos。
-    * `kerberos_principal`:指定 kerberos 的 principal。
-    * `kerberos_keytab`:指定 kerberos 的 keytab 文件路径。该文件必须为 Broker 进程所在服务器上的文件的绝对路径。并且可以被 Broker 进程访问。
-    * `kerberos_keytab_content`:指定 kerberos 中 keytab 文件内容经过 base64 编码之后的内容。这个跟 `kerberos_keytab` 配置二选一即可。
-
-    示例如下:
-    
-    ```
-    (
-        "hadoop.security.authentication" = "kerberos",
-        "kerberos_principal" = "doris@YOUR.COM",
-        "kerberos_keytab" = "/home/doris/my.keytab"
-    )
-    ```
-    ```
-    (
-        "hadoop.security.authentication" = "kerberos",
-        "kerberos_principal" = "doris@YOUR.COM",
-        "kerberos_keytab_content" = "ASDOWHDLAWIDJHWLDKSALDJSDIWALD"
-    )
-    ```
-    如果采用Kerberos认证方式,则部署Broker进程的时候需要[krb5.conf](https://web.mit.edu/kerberos/krb5-1.12/doc/admin/conf_files/krb5_conf.html)文件,
-    krb5.conf文件包含Kerberos的配置信息,通常,您应该将krb5.conf文件安装在目录/etc中。您可以通过设置环境变量KRB5_CONFIG覆盖默认位置。
-    krb5.conf文件的内容示例如下:
-    ```
-    [libdefaults]
-        default_realm = DORIS.HADOOP
-        default_tkt_enctypes = des3-hmac-sha1 des-cbc-crc
-        default_tgs_enctypes = des3-hmac-sha1 des-cbc-crc
-        dns_lookup_kdc = true
-        dns_lookup_realm = false
-    
-    [realms]
-        DORIS.HADOOP = {
-            kdc = kerberos-doris.hadoop.service:7005
-        }
-    ```
-    
-3. HDFS HA 模式
-
-    这个配置用于访问以 HA 模式部署的 HDFS 集群。
-    
-    * `dfs.nameservices`:指定 hdfs 服务的名字,自定义,如:"dfs.nameservices" = "my_ha"。
-    * `dfs.ha.namenodes.xxx`:自定义 namenode 的名字,多个名字以逗号分隔。其中 xxx 为 `dfs.nameservices` 中自定义的名字,如: "dfs.ha.namenodes.my_ha" = "my_nn"。
-    * `dfs.namenode.rpc-address.xxx.nn`:指定 namenode 的rpc地址信息。其中 nn 表示 `dfs.ha.namenodes.xxx` 中配置的 namenode 的名字,如:"dfs.namenode.rpc-address.my_ha.my_nn" = "host:port"。
-    * `dfs.client.failover.proxy.provider`:指定 client 连接 namenode 的 provider,默认为:org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider。
-
-    示例如下:
-    
-    ```
-    (
-        "dfs.nameservices" = "my_ha",
-        "dfs.ha.namenodes.my_ha" = "my_namenode1, my_namenode2",
-        "dfs.namenode.rpc-address.my_ha.my_namenode1" = "nn1_host:rpc_port",
-        "dfs.namenode.rpc-address.my_ha.my_namenode2" = "nn2_host:rpc_port",
-        "dfs.client.failover.proxy.provider" = "org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider"
-    )
-    ```
-    
-    HA 模式可以和前面两种认证方式组合,进行集群访问。如通过简单认证访问 HA HDFS:
-    
-    ```
-    (
-        "username"="user",
-        "password"="passwd",
-        "dfs.nameservices" = "my_ha",
-        "dfs.ha.namenodes.my_ha" = "my_namenode1, my_namenode2",
-        "dfs.namenode.rpc-address.my_ha.my_namenode1" = "nn1_host:rpc_port",
-        "dfs.namenode.rpc-address.my_ha.my_namenode2" = "nn2_host:rpc_port",
-        "dfs.client.failover.proxy.provider" = "org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider"
-    )
-    ```
-   关于HDFS集群的配置可以写入hdfs-site.xml文件中,用户使用Broker进程读取HDFS集群的信息时,只需要填写集群的文件路径名和认证信息即可。
-    
-#### 百度对象存储 BOS
-
-**(开源版本不支持)**
-
-1. 通过 AK/SK 访问
-
-    * AK/SK:Access Key 和 Secret Key。在百度云安全认证中心可以查看用户的 AK/SK。
-    * Region Endpoint:BOS 所在地区的 Endpoint:
-
-        * 华北-北京:http://bj.bcebos.com
-        * 华北-保定:http://bd.bcebos.com
-        * 华南-广州:http://gz.bcebos.com
-        * 华东-苏州:http://sz.bcebos.com
-
-
-    示例如下:
-
-    ```
-    (
-        "bos_endpoint" = "http://bj.bcebos.com",
-        "bos_accesskey" = "xxxxxxxxxxxxxxxxxxxxxxxxxx",
-        "bos_secret_accesskey" = "yyyyyyyyyyyyyyyyyyyyyyyyyy"
-    )
-    ```
-
-#### 百度 HDFS/AFS
-
-**(开源版本不支持)**
-
-百度 AFS 和 HDFS 仅支持使用 ugi 的简单认证访问。示例如下:
-
-```
-(
-    "username" = "user",
-    "password" = "passwd"
-);
-```
-
-其中 user 和 passwd 为 Hadoop 的 UGI 配置。
diff --git a/docs/documentation/cn/administrator-guide/colocation-join.md b/docs/documentation/cn/administrator-guide/colocation-join.md
deleted file mode 100644
index 463f6b5..0000000
--- a/docs/documentation/cn/administrator-guide/colocation-join.md
+++ /dev/null
@@ -1,441 +0,0 @@
-<!-- 
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-# Colocation Join
-
-Colocation Join 是在 Doris 0.9 版本中引入的新功能。旨在为某些 Join 查询提供本地性优化,来减少数据在节点间的传输耗时,加速查询。
-
-最初的设计、实现和效果可以参阅 [ISSUE 245](https://github.com/apache/incubator-doris/issues/245)。
-
-Colocation Join 功能经过一次改版,设计和使用方式和最初设计稍有不同。本文档主要介绍 Colocation Join 的原理、实现、使用方式和注意事项。
-
-## 名词解释
-
-* FE:Frontend,Doris 的前端节点。负责元数据管理和请求接入。
-* BE:Backend,Doris 的后端节点。负责查询执行和数据存储。
-* Colocation Group(CG):一个 CG 中会包含一张及以上的 Table。在同一个 Group 内的 Table 有着相同的 Colocation Group Schema,并且有着相同的数据分片分布。
-* Colocation Group Schema(CGS):用于描述一个 CG 中的 Table,和 Colocation 相关的通用 Schema 信息。包括分桶列类型,分桶数以及副本数等。
-
-## 原理
-
-Colocation Join 功能,是将一组拥有相同 CGS 的 Table 组成一个 CG。并保证这些 Table 对应的数据分片会落在同一个 BE 节点上。使得当 CG 内的表进行分桶列上的 Join 操作时,可以通过直接进行本地数据 Join,减少数据在节点间的传输耗时。
-
-一个表的数据,最终会根据分桶列值 Hash、对桶数取模的后落在某一个分桶内。假设一个 Table 的分桶数为 8,则共有 `[0, 1, 2, 3, 4, 5, 6, 7]` 8 个分桶(Bucket),我们称这样一个序列为一个 `BucketsSequence`。每个 Bucket 内会有一个或多个数据分片(Tablet)。当表为单分区表时,一个 Bucket 内仅有一个 Tablet。如果是多分区表,则会有多个。
-
-为了使得 Table 能够有相同的数据分布,同一 CG 内的 Table 必须保证以下属性相同:
-
-1. 分桶列和分桶数
-
-    分桶列,即在建表语句中 `DISTRIBUTED BY HASH(col1, col2, ...)` 中指定的列。分桶列决定了一张表的数据通过哪些列的值进行 Hash 划分到不同的 Tablet 中。同一 CG 内的 Table 必须保证分桶列的类型和数量完全一致,并且桶数一致,才能保证多张表的数据分片能够一一对应的进行分布控制。
-    
-2. 副本数
-
-    同一个 CG 内所有表的所有分区(Partition)的副本数必须一致。如果不一致,可能出现某一个 Tablet 的某一个副本,在同一个 BE 上没有其他的表分片的副本对应。
-    
-同一个 CG 内的表,分区的个数、范围以及分区列的类型不要求一致。
-
-在固定了分桶列和分桶数后,同一个 CG 内的表会拥有相同的 BucketsSequnce。而副本数决定了每个分桶内的 Tablet 的多个副本,存放在哪些 BE 上。假设 BucketsSequnce 为 `[0, 1, 2, 3, 4, 5, 6, 7]`,BE 节点有 `[A, B, C, D]` 4个。则一个可能的数据分布如下:
-
-```
-+---+ +---+ +---+ +---+ +---+ +---+ +---+ +---+
-| 0 | | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 |
-+---+ +---+ +---+ +---+ +---+ +---+ +---+ +---+
-| A | | B | | C | | D | | A | | B | | C | | D |
-|   | |   | |   | |   | |   | |   | |   | |   |
-| B | | C | | D | | A | | B | | C | | D | | A |
-|   | |   | |   | |   | |   | |   | |   | |   |
-| C | | D | | A | | B | | C | | D | | A | | B |
-+---+ +---+ +---+ +---+ +---+ +---+ +---+ +---+
-```
-
-CG 内所有表的数据都会按照上面的规则进行统一分布,这样就保证了,分桶列值相同的数据都在同一个 BE 节点上,可以进行本地数据 Join。
-
-## 使用方式
-
-### 建表
-
-建表时,可以在 `PROPERTIES` 中指定属性 `"colocate_with" = "group_name"`,表示这个表是一个 Colocation Join 表,并且归属于一个指定的 Colocation Group。
-    
-示例:
-
-```
-CREATE TABLE tbl (k1 int, v1 int sum)
-DISTRIBUTED BY HASH(k1)
-BUCKETS 8
-PROPERTIES(
-    "colocate_with" = "group1"
-);
-```
-    
-如果指定的 Group 不存在,则 Doris 会自动创建一个只包含当前这张表的 Group。如果 Group 已存在,则 Doris 会检查当前表是否满足 Colocation Group Schema。如果满足,则会创建该表,并将该表加入 Group。同时,表会根据已存在的 Group 中的数据分布规则创建分片和副本。
-Group 归属于一个 Database,Group 的名字在一个 Database 内唯一。在内部存储是 Group 的全名为 `dbId_groupName`,但用户只感知 groupName。
-
-### 删表
-
-当 Group 中最后一张表彻底删除后(彻底删除是指从回收站中删除。通常,一张表通过 `DROP TABLE` 命令删除后,会在回收站默认停留一天的时间后,再删除),该 Group 也会被自动删除。
-
-### 查看 Group
-
-以下命令可以查看集群内已存在的 Group 信息。
-
-```
-SHOW PROC '/colocation_group';
-
-+-------------+--------------+--------------+------------+----------------+----------+----------+
-| GroupId     | GroupName    | TableIds     | BucketsNum | ReplicationNum | DistCols | IsStable |
-+-------------+--------------+--------------+------------+----------------+----------+----------+
-| 10005.10008 | 10005_group1 | 10007, 10040 | 10         | 3              | int(11)  | true     |
-+-------------+--------------+--------------+------------+----------------+----------+----------+
-```
-
-* GroupId:          一个 Group 的全集群唯一标识,前半部分为 db id,后半部分为 group id。
-* GroupName:        Group 的全名。
-* TabletIds:        该 Group 包含的 Table 的 id 列表。
-* BucketsNum:       分桶数。
-* ReplicationNum:   副本数。
-* DistCols:         Distribution columns,即分桶列类型。
-* IsStable:         该 Group 是否稳定(稳定的定义,见 `Colocation 副本均衡和修复` 一节)。
-
-通过以下命令可以进一步查看一个 Group 的数据分布情况:
-
-```    
-SHOW PROC '/colocation_group/10005.10008';
-
-+-------------+---------------------+
-| BucketIndex | BackendIds          |
-+-------------+---------------------+
-| 0           | 10004, 10002, 10001 |
-| 1           | 10003, 10002, 10004 |
-| 2           | 10002, 10004, 10001 |
-| 3           | 10003, 10002, 10004 |
-| 4           | 10002, 10004, 10003 |
-| 5           | 10003, 10002, 10001 |
-| 6           | 10003, 10004, 10001 |
-| 7           | 10003, 10004, 10002 |
-+-------------+---------------------+
-```
-    
-* BucketIndex:  分桶序列的下标。
-* BackendIds:   分桶中数据分片所在的 BE 节点 id 列表。
-
-> 以上命令需要 AMDIN 权限。暂不支持普通用户查看。
-
-### 修改表 Colocate Group 属性
-
-可以对一个已经创建的表,修改其 Colocation Group 属性。示例:
-
-`ALTER TABLE tbl SET ("colocate_with" = "group2");`
-
-* 如果该表之前没有指定过 Group,则该命令检查 Schema,并将该表加入到该 Group(Group 不存在则会创建)。
-* 如果该表之前有指定其他 Group,则该命令会先将该表从原有 Group 中移除,并加入新 Group(Group 不存在则会创建)。
-
-也可以通过以下命令,删除一个表的 Colocation 属性:
-
-`ALTER TABLE tbl SET ("colocate_with" = "");`
-
-### 其他相关操作
-
-当对一个具有 Colocation 属性的表进行增加分区(ADD PARTITION)、修改副本数时,Doris 会检查修改是否会违反 Colocation Group Schema,如果违反则会拒绝。
-
-## Colocation 副本均衡和修复
-
-Colocation 表的副本分布需要遵循 Group 中指定的分布,所以在副本修复和均衡方面和普通分片有所区别。
-
-Group 自身有一个 Stable 属性,当 Stable 为 true 时,表示当前 Group 内的表的所有分片没有正在进行变动,Colocation 特性可以正常使用。当 Stable 为 false 时(Unstable),表示当前 Group 内有部分表的分片正在做修复或迁移,此时,相关表的 Colocation Join 将退化为普通 Join。
-
-### 副本修复
-
-副本只能存储在指定的 BE 节点上。所以当某个 BE 不可用时(宕机、Decommission 等),需要寻找一个新的 BE 进行替换。Doris 会优先寻找负载最低的 BE 进行替换。替换后,该 Bucket 内的所有在旧 BE 上的数据分片都要做修复。迁移过程中,Group 被标记为 Unstable。
-
-### 副本均衡
-
-Doris 会尽力将 Colocation 表的分片均匀分布在所有 BE 节点上。对于普通表的副本均衡,是以单副本为粒度的,即单独为每一个副本寻找负载较低的 BE 节点即可。而 Colocation 表的均衡是 Bucket 级别的,即一个 Bucket 内的所有副本都会一起迁移。我们采用一个简单的均衡算法,即在不考虑副本实际大小,而只根据副本数量,将 BucketsSequnce 均匀的分布在所有 BE 上。具体算法可以参阅 `ColocateTableBalancer.java` 中的代码注释。
-
-> 注1:当前的 Colocation 副本均衡和修复算法,对于异构部署的 Doris 集群效果可能不佳。所谓异构部署,即 BE 节点的磁盘容量、数量、磁盘类型(SSD 和 HDD)不一致。在异构部署情况下,可能出现小容量的 BE 节点和大容量的 BE 节点存储了相同的副本数量。
-> 
-> 注2:当一个 Group 处于 Unstable 状态时,其中的表的 Join 将退化为普通 Join。此时可能会极大降低集群的查询性能。如果不希望系统自动均衡,可以设置 FE 的配置项 `disable_colocate_balance` 来禁止自动均衡。然后在合适的时间打开即可。(具体参阅 `高级操作` 一节)
-
-## 查询
-
-对 Colocation 表的查询方式和普通表一样,用户无需感知 Colocation 属性。如果 Colocation 表所在的 Group 处于 Unstable 状态,将自动退化为普通 Join。
-
-举例说明:
-
-表1:
-
-```
-CREATE TABLE `tbl1` (
-    `k1` date NOT NULL COMMENT "",
-    `k2` int(11) NOT NULL COMMENT "",
-    `v1` int(11) SUM NOT NULL COMMENT ""
-) ENGINE=OLAP
-AGGREGATE KEY(`k1`, `k2`)
-PARTITION BY RANGE(`k1`)
-(
-    PARTITION p1 VALUES LESS THAN ('2019-05-31'),
-    PARTITION p2 VALUES LESS THAN ('2019-06-30')
-)
-DISTRIBUTED BY HASH(`k2`) BUCKETS 8
-PROPERTIES (
-    "colocate_with" = "group1"
-);
-```
-
-表2:
-
-```
-CREATE TABLE `tbl2` (
-    `k1` datetime NOT NULL COMMENT "",
-    `k2` int(11) NOT NULL COMMENT "",
-    `v1` double SUM NOT NULL COMMENT ""
-) ENGINE=OLAP
-AGGREGATE KEY(`k1`, `k2`)
-DISTRIBUTED BY HASH(`k2`) BUCKETS 8
-PROPERTIES (
-    "colocate_with" = "group1"
-);
-```
-
-查看查询计划:
-
-```
-DESC SELECT * FROM tbl1 INNER JOIN tbl2 ON (tbl1.k2 = tbl2.k2);
-
-+----------------------------------------------------+
-| Explain String                                     |
-+----------------------------------------------------+
-| PLAN FRAGMENT 0                                    |
-|  OUTPUT EXPRS:`tbl1`.`k1` |                        |
-|   PARTITION: RANDOM                                |
-|                                                    |
-|   RESULT SINK                                      |
-|                                                    |
-|   2:HASH JOIN                                      |
-|   |  join op: INNER JOIN                           |
-|   |  hash predicates:                              |
-|   |  colocate: true                                |
-|   |    `tbl1`.`k2` = `tbl2`.`k2`                   |
-|   |  tuple ids: 0 1                                |
-|   |                                                |
-|   |----1:OlapScanNode                              |
-|   |       TABLE: tbl2                              |
-|   |       PREAGGREGATION: OFF. Reason: null        |
-|   |       partitions=0/1                           |
-|   |       rollup: null                             |
-|   |       buckets=0/0                              |
-|   |       cardinality=-1                           |
-|   |       avgRowSize=0.0                           |
-|   |       numNodes=0                               |
-|   |       tuple ids: 1                             |
-|   |                                                |
-|   0:OlapScanNode                                   |
-|      TABLE: tbl1                                   |
-|      PREAGGREGATION: OFF. Reason: No AggregateInfo |
-|      partitions=0/2                                |
-|      rollup: null                                  |
-|      buckets=0/0                                   |
-|      cardinality=-1                                |
-|      avgRowSize=0.0                                |
-|      numNodes=0                                    |
-|      tuple ids: 0                                  |
-+----------------------------------------------------+
-```
-如果 Colocation Join 生效,则 Hash Join 节点会显示 `colocate: true`。
-
-如果没有生效,则查询计划如下:
-
-```
-+----------------------------------------------------+
-| Explain String                                     |
-+----------------------------------------------------+
-| PLAN FRAGMENT 0                                    |
-|  OUTPUT EXPRS:`tbl1`.`k1` |                        |
-|   PARTITION: RANDOM                                |
-|                                                    |
-|   RESULT SINK                                      |
-|                                                    |
-|   2:HASH JOIN                                      |
-|   |  join op: INNER JOIN (BROADCAST)               |
-|   |  hash predicates:                              |
-|   |  colocate: false, reason: group is not stable  |
-|   |    `tbl1`.`k2` = `tbl2`.`k2`                   |
-|   |  tuple ids: 0 1                                |
-|   |                                                |
-|   |----3:EXCHANGE                                  |
-|   |       tuple ids: 1                             |
-|   |                                                |
-|   0:OlapScanNode                                   |
-|      TABLE: tbl1                                   |
-|      PREAGGREGATION: OFF. Reason: No AggregateInfo |
-|      partitions=0/2                                |
-|      rollup: null                                  |
-|      buckets=0/0                                   |
-|      cardinality=-1                                |
-|      avgRowSize=0.0                                |
-|      numNodes=0                                    |
-|      tuple ids: 0                                  |
-|                                                    |
-| PLAN FRAGMENT 1                                    |
-|  OUTPUT EXPRS:                                     |
-|   PARTITION: RANDOM                                |
-|                                                    |
-|   STREAM DATA SINK                                 |
-|     EXCHANGE ID: 03                                |
-|     UNPARTITIONED                                  |
-|                                                    |
-|   1:OlapScanNode                                   |
-|      TABLE: tbl2                                   |
-|      PREAGGREGATION: OFF. Reason: null             |
-|      partitions=0/1                                |
-|      rollup: null                                  |
-|      buckets=0/0                                   |
-|      cardinality=-1                                |
-|      avgRowSize=0.0                                |
-|      numNodes=0                                    |
-|      tuple ids: 1                                  |
-+----------------------------------------------------+
-```
-
-HASH JOIN 节点会显示对应原因:`colocate: false, reason: group is not stable`。同时会有一个 EXCHANGE 节点生成。
-
-    
-## 高级操作
-
-### FE 配置项
-
-* disable\_colocate\_relocate
-
-    是否关闭 Doris 的自动 Colocation 副本修复。默认为 false,即不关闭。该参数只影响 Colocation 表的副本修复,不影响普通表。
-    
-* disable\_colocate\_balance
-
-    是否关闭 Doris 的自动 Colocation 副本均衡。默认为 false,即不关闭。该参数只影响 Colocation 表的副本均衡,不影响普通表。
-    
-以上参数可以动态修改,设置方式请参阅 `HELP ADMIN SHOW CONFIG;` 和 `HELP ADMIN SET CONFIG;`。
-
-* disable\_colocate\_join
-
-    是否关闭 Colocation Join 功能。在 0.10 及之前的版本,默认为 true,即关闭。在之后的某个版本中将默认为 false,即开启。
-    
-* use\_new\_tablet\_scheduler
-
-    在 0.10 及之前的版本中,新的副本调度逻辑与 Colocation Join 功能不兼容,所以在 0.10 及之前版本,如果 `disable_colocate_join = false`,则需设置 `use_new_tablet_scheduler = false`,即关闭新的副本调度器。之后的版本中,`use_new_tablet_scheduler` 将衡为 true。
-
-### HTTP Restful API
-
-Doris 提供了几个和 Colocation Join 有关的 HTTP Restful API,用于查看和修改 Colocation Group。
-
-该 API 实现在 FE 端,使用 `fe_host:fe_http_port` 进行访问。需要 ADMIN 权限。
-
-1. 查看集群的全部 Colocation 信息
-
-    ```
-    GET /api/colocate
-    
-    返回以 Json 格式表示内部 Colocation 信息。
-    
-    {
-    	"colocate_meta": {
-    		"groupName2Id": {
-    			"g1": {
-    				"dbId": 10005,
-    				"grpId": 10008
-    			}
-    		},
-    		"group2Tables": {},
-    		"table2Group": {
-    			"10007": {
-    				"dbId": 10005,
-    				"grpId": 10008
-    			},
-    			"10040": {
-    				"dbId": 10005,
-    				"grpId": 10008
-    			}
-    		},
-    		"group2Schema": {
-    			"10005.10008": {
-    				"groupId": {
-    					"dbId": 10005,
-    					"grpId": 10008
-    				},
-    				"distributionColTypes": [{
-    					"type": "INT",
-    					"len": -1,
-    					"isAssignedStrLenInColDefinition": false,
-    					"precision": 0,
-    					"scale": 0
-    				}],
-    				"bucketsNum": 10,
-    				"replicationNum": 2
-    			}
-    		},
-    		"group2BackendsPerBucketSeq": {
-    			"10005.10008": [
-    				[10004, 10002],
-    				[10003, 10002],
-    				[10002, 10004],
-    				[10003, 10002],
-    				[10002, 10004],
-    				[10003, 10002],
-    				[10003, 10004],
-    				[10003, 10004],
-    				[10003, 10004],
-    				[10002, 10004]
-    			]
-    		},
-    		"unstableGroups": []
-    	},
-    	"status": "OK"
-    }
-    ```
-    
-2. 将 Group 标记为 Stable 或 Unstable
-    
-    * 标记为 Stable
-    
-        ```
-        POST /api/colocate/group_stable?db_id=10005&group_id=10008
-        
-        返回:200
-        ```
-        
-    * 标记为 Unstable
-    
-        ```
-        DELETE /api/colocate/group_stable?db_id=10005&group_id=10008
-        
-        返回:200
-        ```
-    
-3. 设置 Group 的数据分布
-    
-    该接口可以强制设置某一 Group 的数分布。
-    
-    ```
-    POST /api/colocate/bucketseq?db_id=10005&group_id= 10008
-    
-    Body:
-    [[10004,10002],[10003,10002],[10002,10004],[10003,10002],[10002,10004],[10003,10002],[10003,10004],[10003,10004],[10003,10004],[10002,10004]]
-    
-    返回 200
-    ```
-    其中 Body 是以嵌套数组表示的 BucketsSequence 以及每个 Bucket 中分片分布所在 BE 的 id。
-    
-    注意,使用该命令,可能需要将 FE 的配置 `disable_colocate_relocate` 和 `disable_colocate_balance` 设为 true。即关闭系统自动的 Colocation 副本修复和均衡。否则可能在修改后,会被系统自动重置。
\ No newline at end of file
diff --git a/docs/documentation/cn/administrator-guide/config/fe_config.md b/docs/documentation/cn/administrator-guide/config/fe_config.md
deleted file mode 100644
index 241dbe1..0000000
--- a/docs/documentation/cn/administrator-guide/config/fe_config.md
+++ /dev/null
@@ -1,34 +0,0 @@
-<!-- 
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-# 基本配置
-
-## brpc_max_body_size
-
-  这个配置主要用来修改 brpc 的参数 max_body_size ,默认配置是 64M。一般发生在 multi distinct + 无 group by + 超过1T 数据量的情况下。尤其如果发现查询卡死,且 BE 出现类似 body_size is too large 的字样。
-
-  由于这是一个 brpc 的配置,用户也可以在运行中直接修改该参数。通过访问 http://host:brpc_port/flags 修改。
-
-## max_running_txn_num_per_db
-
-  这个配置主要是用来控制同一个 db 的并发导入个数的,默认配置是100。当导入的并发执行的个数超过这个配置的值的时候,同步执行的导入就会失败比如 stream load。异步执行的导入就会一直处在 pending 状态比如 broker load。
-
-  一般来说不推荐更改这个并发数。如果当前导入并发超过这个值,则需要先检查是否单个导入任务过慢,或者小文件太多没有合并后导入的问题。
-
-  报错信息比如:current running txns on db xxx is xx, larger than limit xx。就属于这类问题。
diff --git a/docs/documentation/cn/administrator-guide/config/index.rst b/docs/documentation/cn/administrator-guide/config/index.rst
deleted file mode 100644
index 15374d5..0000000
--- a/docs/documentation/cn/administrator-guide/config/index.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-=============
-配置文件
-=============
-
-.. toctree::
-    :maxdepth: 1
-    :glob:
-
-    *
diff --git a/docs/documentation/cn/administrator-guide/dynamic-partition.md b/docs/documentation/cn/administrator-guide/dynamic-partition.md
deleted file mode 100644
index bf5d4f4..0000000
--- a/docs/documentation/cn/administrator-guide/dynamic-partition.md
+++ /dev/null
@@ -1,201 +0,0 @@
-<!-- 
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-# 动态分区
-
-动态分区是在 Doris 0.12 版本中引入的新功能。旨在对表级别的分区实现生命周期管理(TTL),减少用户的使用负担。
-
-最初的设计、实现和效果可以参阅 [ISSUE 2262](https://github.com/apache/incubator-doris/issues/2262)。
-
-目前实现了动态添加分区及动态删除分区的功能。
-
-## 名词解释
-
-* FE:Frontend,Doris 的前端节点。负责元数据管理和请求接入。
-* BE:Backend,Doris 的后端节点。负责查询执行和数据存储。
-
-## 原理
-
-在某些使用场景下,用户会将表按照天进行分区划分,每天定时执行例行任务,这时需要使用方手动管理分区,否则可能由于使用方没有创建分区导致数据导入失败,这给使用方带来了额外的维护成本。
-
-在实现方式上, FE会启动一个后台线程,根据fe.conf中`dynamic_partition_enable` 及 `dynamic_partition_check_interval_seconds`参数决定该线程是否启动以及该线程的调度频率。每次调度时,会在注册表中读取动态分区表的属性,并根据动态分区属性动态添加及删除分区。
-
-建表时,在properties中指定dynamic_partition属性,FE首先对动态分区属性进行解析,校验输入参数的合法性,然后将对应的属性持久化到FE的元数据中,并将该表注册到动态分区列表中,后台线程会根据配置参数定期对动态分区列表进行扫描,读取表的动态分区属性,执行添加分区及删除分区的任务,每次的调度信息会保留在FE的内存中(重启后则丢失),可以通过`SHOW DYNAMIC PARTITION TABLES`查看调度任务是否成功,如果存在分区创建或删除失败,会将失败信息输出。
-
-## 使用方式
-
-### 动态分区属性参数说明:
-
-`dynamic_partition.enable`: 是否开启动态分区特性,可指定为 `TRUE` 或 `FALSE`。如果不填写,默认为 `TRUE`。
-
-
-`dynamic_partition.time_unit`: 动态分区调度的单位,可指定为 `DAY` `WEEK` `MONTH`,当指定为 `DAY` 时,动态创建的分区名后缀格式为`yyyyMMdd`,例如`20200325`。当指定为 `WEEK` 时,动态创建的分区名后缀格式为`yyyy_ww`即当前日期属于这一年的第几周,例如 `2020-03-25` 创建的分区名后缀为 `2020_13`, 表明目前为2020年第13周。当指定为 `MONTH` 时,动态创建的分区名后缀格式为 `yyyyMM`,例如 `202003`。
-
-`dynamic_partition.start`: 动态分区的开始时间, 以当天为基准,超过该时间范围的分区将会被删除。如果不填写,则默认为`Integer.MIN_VALUE` 即 `-2147483648`。
-
-
-`dynamic_partition.end`: 动态分区的结束时间, 以当天为基准,会提前创建N个单位的分区范围。
-
-`dynamic_partition.prefix`: 动态创建的分区名前缀。
-
-`dynamic_partition.buckets`: 动态创建的分区所对应的分桶数量。
-    
-### 建表
-
-建表时,可以在 `PROPERTIES` 中指定以下`dynamic_partition`属性,表示这个表是一个动态分区表。
-
-示例:
-
-```
-CREATE TABLE example_db.dynamic_partition
-(
-k1 DATE,
-k2 INT,
-k3 SMALLINT,
-v1 VARCHAR(2048),
-v2 DATETIME DEFAULT "2014-02-04 15:36:00"
-)
-ENGINE=olap
-DUPLICATE KEY(k1, k2, k3)
-PARTITION BY RANGE (k1)
-(
-PARTITION p20200321 VALUES LESS THAN ("2020-03-22"),
-PARTITION p20200322 VALUES LESS THAN ("2020-03-23"),
-PARTITION p20200323 VALUES LESS THAN ("2020-03-24"),
-PARTITION p20200324 VALUES LESS THAN ("2020-03-25")
-)
-DISTRIBUTED BY HASH(k2) BUCKETS 32
-PROPERTIES(
-"storage_medium" = "SSD",
-"dynamic_partition.enable" = "true",
-"dynamic_partition.time_unit" = "DAY",
-"dynamic_partition.start" = "-3",
-"dynamic_partition.end" = "3",
-"dynamic_partition.prefix" = "p",
-"dynamic_partition.buckets" = "32"
- );
-```
-创建一张动态分区表,指定开启动态分区特性,以当天为2020-03-25为例,在每次调度时,会删除分区上界小于 `2020-03-22` 的分区,为了避免删除非动态创建的分区,动态删除分区只会删除分区名符合动态创建分区规则的分区,例如分区名为a1, 则即使分区范围在待删除的分区范围内,也不会被删除。同时在调度时会提前创建今天以及以后3天(总共4天)的分区(若分区已存在则会忽略),分区名根据指定前缀分别为`p20200325` `p20200326` `p20200327` `p20200328`,每个分区的分桶数量为32。同时会删除 `p20200321` 的分区,最终的分区范围如下:
-```
-[types: [DATE]; keys: [2020-03-22]; ‥types: [DATE]; keys: [2020-03-23]; )
-[types: [DATE]; keys: [2020-03-23]; ‥types: [DATE]; keys: [2020-03-24]; )
-[types: [DATE]; keys: [2020-03-24]; ‥types: [DATE]; keys: [2020-03-25]; )
-[types: [DATE]; keys: [2020-03-25]; ‥types: [DATE]; keys: [2020-03-26]; )
-[types: [DATE]; keys: [2020-03-26]; ‥types: [DATE]; keys: [2020-03-27]; )
-[types: [DATE]; keys: [2020-03-27]; ‥types: [DATE]; keys: [2020-03-28]; )
-[types: [DATE]; keys: [2020-03-28]; ‥types: [DATE]; keys: [2020-03-29]; )
-```
-    
-### 开启动态分区功能
-1. 首先需要在fe.conf中设置`dynamic_partition_enable=true`,可以在集群启动时通过修改配置文件指定,或者通过MySQL连接后使用命令行 `ADMIN SET FRONTEND CONFIG ("dynamic_partition_enable" = "true")`修改,也可以在运行时通过http接口动态修改,修改方法查看高级操作部分
-
-2. 如果需要对0.12版本之前的表添加动态分区属性,则需要通过以下命令修改表的属性
-```
-ALTER TABLE dynamic_partition set ("dynamic_partition.enable" = "true", "dynamic_partition.time_unit" = "DAY", "dynamic_partition.end" = "3", "dynamic_partition.prefix" = "p", "dynamic_partition.buckets" = "32");
-```
-
-### 停止动态分区功能
-
-如果需要对集群中所有动态分区表停止动态分区功能,则需要在fe.conf中设置`dynamic_partition_enable=false`
-
-如果需要对指定表停止动态分区功能,则可以通过以下命令修改表的属性
-```
-ALTER TABLE dynamic_partition SET ("dynamic_partition.enable" = "false")
-```
-
-### 修改动态分区属性
-
-通过如下命令可以修改动态分区的属性
-```
-ALTER TABLE dynamic_partition SET ("key" = "value")
-```
-
-### 查看动态分区表调度情况
-
-通过以下命令可以进一步查看动态分区表的调度情况:
-
-```    
-SHOW DYNAMIC PARTITION TABLES;
-
-+-------------------+--------+----------+-------+------+--------+---------+---------------------+---------------------+--------+------------------------+----------------------+
-| TableName         | Enable | TimeUnit | Start | End  | Prefix | Buckets | LastUpdateTime      | LastSchedulerTime   | State  | LastCreatePartitionMsg | LastDropPartitionMsg |
-+-------------------+--------+----------+-------+------+--------+---------+---------------------+---------------------+--------+------------------------+----------------------+
-| dynamic_partition | true   | DAY      | -3    | 3    | p      | 32      | 2020-03-12 17:25:47 | 2020-03-12 17:25:52 | NORMAL | N/A                    | N/A                  |
-+-------------------+--------+----------+-------+------+--------+---------+---------------------+---------------------+--------+------------------------+----------------------+
-1 row in set (0.00 sec)
-
-```
-    
-* LastUpdateTime: 最后一次修改动态分区属性的时间 
-* LastSchedulerTime:   最后一次执行动态分区调度的时间
-* State:    最后一次执行动态分区调度的状态
-* LastCreatePartitionMsg:  最后一次执行动态添加分区调度的错误信息 
-* LastDropPartitionMsg:  最后一次执行动态删除分区调度的错误信息 
-
-## 高级操作
-
-### FE 配置项
-
-* dynamic\_partition\_enable
-
-    是否开启 Doris 的动态分区功能。默认为 false,即关闭。该参数只影响动态分区表的分区操作,不影响普通表。
-    
-* dynamic\_partition\_check\_interval\_seconds
-
-    动态分区线程的执行频率,默认为3600(1个小时),即每1个小时进行一次调度
-    
-### HTTP Restful API
-
-Doris 提供了修改动态分区配置参数的 HTTP Restful API,用于运行时修改动态分区配置参数。
-
-该 API 实现在 FE 端,使用 `fe_host:fe_http_port` 进行访问。需要 ADMIN 权限。
-
-1. 将 dynamic_partition_enable 设置为 true 或 false
-    
-    * 标记为 true
-    
-        ```
-        GET /api/_set_config?dynamic_partition_enable=true
-        
-        例如: curl --location-trusted -u username:password -XGET http://fe_host:fe_http_port/api/_set_config?dynamic_partition_enable=true
-        
-        返回:200
-        ```
-        
-    * 标记为 false
-    
-        ```
-        GET /api/_set_config?dynamic_partition_enable=false
-        
-        例如: curl --location-trusted -u username:password -XGET http://fe_host:fe_http_port/api/_set_config?dynamic_partition_enable=false
-        
-        返回:200
-        ```
-    
-2. 设置 dynamic partition 的调度频率
-    
-    * 设置调度时间为12小时调度一次
-        
-        ```
-        GET /api/_set_config?dynamic_partition_check_interval_seconds=432000
-        
-        例如: curl --location-trusted -u username:password -XGET http://fe_host:fe_http_port/api/_set_config?dynamic_partition_check_interval_seconds=432000
-        
-        返回:200
-        ```
diff --git a/docs/documentation/cn/administrator-guide/export-manual.md b/docs/documentation/cn/administrator-guide/export-manual.md
deleted file mode 100644
index 7af73ac..0000000
--- a/docs/documentation/cn/administrator-guide/export-manual.md
+++ /dev/null
@@ -1,188 +0,0 @@
-<!-- 
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-# 数据导出
-
-数据导出(Export)是 Doris 提供的一种将数据导出的功能。该功能可以将用户指定的表或分区的数据,以文本的格式,通过 Broker 进程导出到远端存储上,如 HDFS/BOS 等。
-
-本文档主要介绍 Export 的基本原理、使用方式、最佳实践以及注意事项。
-
-## 名词解释
-
-* FE:Frontend,Doris 的前端节点。负责元数据管理和请求接入。
-* BE:Backend,Doris 的后端节点。负责查询执行和数据存储。
-* Broker:Doris 可以通过 Broker 进程对远端存储进行文件操作。
-* Tablet:数据分片。一个表会划分成多个数据分片。
-
-## 原理
-
-用户提交一个 Export 作业后。Doris 会统计这个作业涉及的所有 Tablet。然后对这些 Tablet 进行分组,每组生成一个特殊的查询计划。该查询计划会读取所包含的 Tablet 上的数据,然后通过 Broker 将数据写到远端存储指定的路径中。
-
-总体的调度方式如下:
-
-```
-+--------+
-| Client |
-+---+----+
-    |  1. Submit Job
-    |
-+---v--------------------+
-| FE                     |
-|                        |
-| +-------------------+  |
-| | ExportPendingTask |  |
-| +-------------------+  |
-|                        | 2. Generate Tasks
-| +--------------------+ |
-| | ExportExporingTask | |
-| +--------------------+ |
-|                        |
-| +-----------+          |     +----+   +------+   +---------+
-| | QueryPlan +----------------> BE +--->Broker+--->         |
-| +-----------+          |     +----+   +------+   | Remote  |
-| +-----------+          |     +----+   +------+   | Storage |
-| | QueryPlan +----------------> BE +--->Broker+--->         |
-| +-----------+          |     +----+   +------+   +---------+
-+------------------------+         3. Execute Tasks
-
-```
-
-1. 用户提交一个 Export 作业到 FE。
-2. FE 的 Export 调度器会通过两阶段来执行一个 Export 作业:
-    1. PENDING:FE 生成 ExportPendingTask,向 BE 发送 snapshot 命令,对所有涉及到的 Tablet 做一个快照。并生成多个查询计划。
-    2. EXPORTING:FE 生成 ExportExporingTask,开始执行查询计划。
-
-### 查询计划拆分
-
-Export 作业会生成多个查询计划,每个查询计划负责扫描一部分 Tablet。每个查询计划扫描的 Tablet 个数由 FE 配置参数 `export_tablet_num_per_task` 指定,默认为 5。即假设一共 100 个 Tablet,则会生成 20 个查询计划。用户也可以在提交作业时,通过作业属性 `tablet_num_per_task` 指定这个数值。
-
-一个作业的多个查询计划顺序执行。 
-
-### 查询计划执行
-
-一个查询计划扫描多个分片,将读取的数据以行的形式组织,每 1024 行为一个 batch,调用 Broker 写入到远端存储上。
-
-查询计划遇到错误会整体自动重试 3 次。如果一个查询计划重试 3 次依然失败,则整个作业失败。
-
-Doris 会首先在指定的远端存储的路径中,建立一个名为 `__doris_export_tmp_12345` 的临时目录(其中 `12345` 为作业 id)。导出的数据首先会写入这个临时目录。每个查询计划会生成一个文件,文件名示例:
-
-`export-data-c69fcf2b6db5420f-a96b94c1ff8bccef-1561453713822`
-
-其中 `c69fcf2b6db5420f-a96b94c1ff8bccef` 为查询计划的 query id。`1561453713822` 为文件生成的时间戳。
-
-当所有数据都导出后,Doris 会将这些文件 rename 到用户指定的路径中。
-
-### Broker 参数
-
-Export 需要借助 Broker 进程访问远端存储,不同的 Broker 需要提供不同的参数,具体请参阅 [Broker文档](./broker.md)
-
-## 使用示例
-
-Export 的详细命令可以通过 `HELP EXPORT;` 。举例如下:
-
-```
-EXPORT TABLE db1.tbl1 
-PARTITION (p1,p2)
-TO "hdfs://host/path/to/export/" 
-PROPERTIES
-(
-    "column_separator"=",",
-    "exec_mem_limit"="2147483648",
-    "timeout" = "3600"
-)
-WITH BROKER "hdfs"
-(
-	"username" = "user",
-	"password" = "passwd",
-);
-```
-
-* `column_separator`:列分隔符。默认为 `\t`。
-* `line_delimiter`:行分隔符。默认为 `\n`。
-* `exec_mem_limit`: 表示 Export 作业中,一个查询计划在单个 BE 上的内存使用限制。默认 2GB。单位字节。
-* `timeout`:作业超时时间。默认 2小时。单位秒。
-* `tablet_num_per_task`:每个查询计划分配的最大分片数。默认为 5。
-
-提交作业后,可以通过 `SHOW EXPORT` 命令查询导入作业状态。结果举例如下:
-
-```
-     JobId: 14008
-     State: FINISHED
-  Progress: 100%
-  TaskInfo: {"partitions":["*"],"exec mem limit":2147483648,"column separator":",","line delimiter":"\n","tablet num":1,"broker":"hdfs","coord num":1,"db":"default_cluster:db1","tbl":"tbl3"}
-      Path: bos://bj-test-cmy/export/
-CreateTime: 2019-06-25 17:08:24
- StartTime: 2019-06-25 17:08:28
-FinishTime: 2019-06-25 17:08:34
-   Timeout: 3600
-  ErrorMsg: N/A
-```
-
-* JobId:作业的唯一 ID
-* State:作业状态:
-    * PENDING:作业待调度
-    * EXPORING:数据导出中
-    * FINISHED:作业成功
-    * CANCELLED:作业失败
-* Progress:作业进度。该进度以查询计划为单位。假设一共 10 个查询计划,当前已完成 3 个,则进度为 30%。
-* TaskInfo:以 Json 格式展示的作业信息:
-    * db:数据库名
-    * tbl:表名
-    * partitions:指定导出的分区。`*` 表示所有分区。
-    * exec mem limit:查询计划内存使用限制。单位字节。
-    * column separator:导出文件的列分隔符。
-    * line delimiter:导出文件的行分隔符。
-    * tablet num:涉及的总 Tablet 数量。
-    * broker:使用的 broker 的名称。
-    * coord num:查询计划的个数。
-* Path:远端存储上的导出路径。
-* CreateTime/StartTime/FinishTime:作业的创建时间、开始调度时间和结束时间。
-* Timeout:作业超时时间。单位是秒。该时间从 CreateTime 开始计算。
-* ErrorMsg:如果作业出现错误,这里会显示错误原因。
-
-## 最佳实践
-
-### 查询计划的拆分
-
-一个 Export 作业有多少查询计划需要执行,取决于总共有多少 Tablet,以及一个查询计划最多可以分配多少个 Tablet。因为多个查询计划是串行执行的,所以如果让一个查询计划处理更多的分片,则可以减少作业的执行时间。但如果查询计划出错(比如调用 Broker 的 RPC 失败,远端存储出现抖动等),过多的 Tablet 会导致一个查询计划的重试成本变高。所以需要合理安排查询计划的个数以及每个查询计划所需要扫描的分片数,在执行时间和执行成功率之间做出平衡。一般建议一个查询计划扫描的数据量在 3-5 GB内(一个表的 Tablet 的大小以及个数可以通过 `SHOW TABLET FROM tbl_name;` 语句查看。)。
-
-### exec\_mem\_limit
-
-通常一个 Export 作业的查询计划只有 `扫描`-`导出` 两部分,不涉及需要太多内存的计算逻辑。所以通常 2GB 的默认内存限制可以满足需求。但在某些场景下,比如一个查询计划,在同一个 BE 上需要扫描的 Tablet 过多,或者 Tablet 的数据版本过多时,可能会导致内存不足。此时需要通过这个参数设置更大的内存,比如 4GB、8GB 等。
-
-## 注意事项
-
-* 不建议一次性导出大量数据。一个 Export 作业建议的导出数据量最大在几十 GB。过大的导出会导致更多的垃圾文件和更高的重试成本。
-* 如果表数据量过大,建议按照分区导出。
-* 在 Export 作业运行过程中,如果 FE 发生重启或切主,则 Export 作业会失败,需要用户重新提交。
-* 如果 Export 作业运行失败,在远端存储中产生的 `__doris_export_tmp_xxx` 临时目录,以及已经生成的文件不会被删除,需要用户手动删除。
-* 如果 Export 作业运行成功,在远端存储中产生的 `__doris_export_tmp_xxx` 目录,根据远端存储的文件系统语义,可能会保留,也可能会被清除。比如在百度对象存储(BOS)中,通过 rename 操作将一个目录中的最后一个文件移走后,该目录也会被删除。如果该目录没有被清除,用户可以手动清除。
-* 当 Export 运行完成后(成功或失败),FE 发生重启或切主,则 `SHOW EXPORT` 展示的作业的部分信息会丢失,无法查看。
-* Export 作业只会导出 Base 表的数据,不会导出 Rollup Index 的数据。
-* Export 作业会扫描数据,占用 IO 资源,可能会影响系统的查询延迟。
-
-## 相关配置
-
-### FE
-
-* `export_checker_interval_second`:Export 作业调度器的调度间隔,默认为 5 秒。设置该参数需重启 FE。
-* `export_running_job_num_limit`:正在运行的 Export 作业数量限制。如果超过,则作业将等待并处于 PENDING 状态。默认为 5,可以运行时调整。
-* `export_task_default_timeout_second`:Export 作业默认超时时间。默认为 2 小时。可以运行时调整。
-* `export_tablet_num_per_task`:一个查询计划负责的最大分片数。默认为 5。
-
diff --git a/docs/documentation/cn/administrator-guide/http-actions/cancel-label.md b/docs/documentation/cn/administrator-guide/http-actions/cancel-label.md
deleted file mode 100644
index 29a9046..0000000
--- a/docs/documentation/cn/administrator-guide/http-actions/cancel-label.md
+++ /dev/null
@@ -1,52 +0,0 @@
-<!-- 
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-# CANCEL LABEL
-## description
-    NAME:
-        cancel_label: cancel a transaction with label
-        
-    SYNOPSIS
-        curl -u user:passwd -XPOST http://host:port/api/{db}/{label}/_cancel
-
-    DESCRIPTION
-        该命令用于cancel一个指定Label对应的事务,事务在Prepare阶段能够被成功cancel
-
-    RETURN VALUES
-        执行完成后,会以Json格式返回这次导入的相关内容。当前包括一下字段
-        Status: 是否成功cancel
-            Success: 成功cancel事务
-            其他: cancel失败
-        Message: 具体的失败信息
-           
-    ERRORS
-    
-## example
-
-    1. cancel testDb, testLabel的作业
-        curl -u root -XPOST http://host:port/api/testDb/testLabel/_cancel
- 
-## keyword
-    CANCEL,LABEL
-
-
-
-
-
-
diff --git a/docs/documentation/cn/administrator-guide/http-actions/compaction-action.md b/docs/documentation/cn/administrator-guide/http-actions/compaction-action.md
deleted file mode 100644
index 41ce72f..0000000
--- a/docs/documentation/cn/administrator-guide/http-actions/compaction-action.md
+++ /dev/null
@@ -1,79 +0,0 @@
-<!-- 
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-# Compaction Action
-
-该 API 用于查看某个 BE 节点总体的 compaction 状态,或者指定 tablet 的 compaction 状态。也可以用于手动触发 Compaction。
-
-## 查看 Compaction 状态
-
-### 节点整体 compaction 状态
-
-(TODO)
-
-### 指定 tablet 的 compaction 状态
-
-```
-curl -X GET http://be_host:webserver_port/api/compaction/show?tablet_id=xxxx\&schema_hash=yyyy
-```
-
-若 tablet 不存在,返回 JSON 格式的错误:
-
-```
-{
-    "status": "Fail",
-    "msg": "Tablet not found"
-}
-```
-
-若 tablet 存在,则返回 JSON 格式的结果:
-
-```
-{
-    "cumulative point": 50,
-    "last cumulative failure time": "2019-12-16 18:13:43.224",
-    "last base failure time": "2019-12-16 18:13:23.320",
-    "last cumu success time": "2019-12-16 18:12:15.110",
-    "last base success time": "2019-12-16 18:11:50.780",
-    "rowsets": [
-        "[0-48] 10 DATA OVERLAPPING",
-        "[49-49] 2 DATA OVERLAPPING",
-        "[50-50] 0 DELETE NONOVERLAPPING",
-        "[51-51] 5 DATA OVERLAPPING"
-    ]
-}
-```
-
-结果说明:
-
-* cumulative point:base 和 cumulative compaction 的版本分界线。在 point(不含)之前的版本由 base compaction 处理。point(含)之后的版本由 cumulative compaction 处理。
-* last cumulative failure time:上一次尝试 cumulative compaction 失败的时间。默认 10min 后才会再次尝试对该 tablet 做 cumulative compaction。
-* last base failure time:上一次尝试 base compaction 失败的时间。默认 10min 后才会再次尝试对该 tablet 做 base compaction。
-* rowsets:该 tablet 当前的 rowset 集合。如 [0-48] 表示 0-48 版本。第二位数字表示该版本中 segment 的数量。`DELETE` 表示 delete 版本。`DATA` 表示数据版本。`OVERLAPPING` 和 `NONOVERLAPPING` 表示segment数据是否重叠。
-
-### 示例
-
-```
-curl -X GET http://192.168.10.24:8040/api/compaction/show?tablet_id=10015\&schema_hash=1294206575
-```
-
-## 手动触发 Compaction
-
-(TODO)
-
diff --git a/docs/documentation/cn/administrator-guide/http-actions/fe-get-log-file.md b/docs/documentation/cn/administrator-guide/http-actions/fe-get-log-file.md
deleted file mode 100644
index f2479d9..0000000
--- a/docs/documentation/cn/administrator-guide/http-actions/fe-get-log-file.md
+++ /dev/null
@@ -1,73 +0,0 @@
-<!-- 
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-# get\_log\_file
-
-用户可以通过该 HTTP 接口获取 FE 的日志文件。
-
-## 日志类型
-
-支持获取以下类型的 FE 日志:
-
-1. fe.audit.log(审计日志)
-
-    审计日志记录了对应 FE 节点的所有请求语句已经请求的信息。审计日志的文件命名规则如下:
-
-    ```
-    fe.audit.log                # 当前的最新日志
-    fe.audit.log.20190603.1     # 对应日期的审计日志,当对应日期的日志大小超过 1GB 后,会生成序号后缀。序号越小的日志,内容越新。
-    fe.audit.log.20190603.2
-    fe.audit.log.20190602.1
-    ...
-    ```
-
-## 接口示例
-
-1. 获取对应类型的日志文件列表
-
-    示例:
-    
-    `curl -v -X HEAD -uuser:passwd http://fe_host:http_port/api/get_log_file?type=fe.audit.log`
-    
-    返回结果:
-    
-    ```
-    HTTP/1.1 200 OK
-    file_infos: {"fe.audit.log":24759,"fe.audit.log.20190528.1":132934}
-    content-type: text/html
-    connection: keep-alive
-    ```
-    
-    在返回的 header 中,`file_infos` 字段以 json 格式展示文件列表以及对应文件大小(单位字节)
-    
-2. 下载日志文件
-
-    示例:
-    
-    ```
-    curl -X GET -uuser:passwd http://fe_host:http_port/api/get_log_file?type=fe.audit.log\&file=fe.audit.log.20190528.1
-    ```
-    
-    返回结果:
-    
-    以文件的形式下载指定的文件。
-
-## 接口说明
-
-该接口需要 admin 权限。
diff --git a/docs/documentation/cn/administrator-guide/http-actions/get-label-state.md b/docs/documentation/cn/administrator-guide/http-actions/get-label-state.md
deleted file mode 100644
index 7d6d0b7..0000000
--- a/docs/documentation/cn/administrator-guide/http-actions/get-label-state.md
+++ /dev/null
@@ -1,52 +0,0 @@
-<!-- 
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-# GET LABEL STATE
-## description
-    NAME:
-        get_label_state: get label's state
-        
-    SYNOPSIS
-        curl -u user:passwd http://host:port/api/{db}/{label}/_state
-
-    DESCRIPTION
-        该命令用于查看一个Label对应的事务状态
-
-    RETURN VALUES
-        执行完毕后,会以Json格式返回这次导入的相关内容。当前包括一下字段
-        Label:本次导入的 label,如果没有指定,则为一个 uuid。
-        Status:此命令是否成功执行,Success表示成功执行
-        Message: 具体的执行信息
-        State: 只有在Status为Success时才有意义
-           UNKNOWN: 没有找到对应的Label
-           PREPARE: 对应的事务已经prepare,但尚未提交
-           COMMITTED: 事务已经提交,不能被cancel
-           VISIBLE: 事务提交,并且数据可见,不能被cancel
-           ABORTED: 事务已经被ROLLBACK,导入已经失败。
-        
-    ERRORS
-    
-## example
-
-    1. 获得testDb, testLabel的状态
-        curl -u root http://host:port/api/testDb/testLabel/_state
- 
-## keyword
-    GET, LABEL, STATE
-
diff --git a/docs/documentation/cn/administrator-guide/http-actions/index.rst b/docs/documentation/cn/administrator-guide/http-actions/index.rst
deleted file mode 100644
index 268e99b..0000000
--- a/docs/documentation/cn/administrator-guide/http-actions/index.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-=============
-HTTP API
-=============
-
-.. toctree::
-    :maxdepth: 1
-    :glob:
-
-    *
diff --git a/docs/documentation/cn/administrator-guide/http-actions/restore-tablet.md b/docs/documentation/cn/administrator-guide/http-actions/restore-tablet.md
deleted file mode 100644
index a6eff81..0000000
--- a/docs/documentation/cn/administrator-guide/http-actions/restore-tablet.md
+++ /dev/null
@@ -1,36 +0,0 @@
-<!-- 
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-# RESTORE TABLET
-## description
-   
-    该功能用于恢复trash目录中被误删的tablet数据。
-
-    说明:这个功能暂时只在be服务中提供一个http接口。如果要使用,
-    需要向要进行数据恢复的那台be机器的http端口发送restore tablet api请求。api格式如下:
-    METHOD: POST
-    URI: http://be_host:be_http_port/api/restore_tablet?tablet_id=xxx&schema_hash=xxx
-
-## example
-
-    curl -X POST "http://hostname:8088/api/restore_tablet?tablet_id=123456\&schema_hash=1111111"
-
-## keyword
-
-    RESTORE,TABLET,RESTORE,TABLET
diff --git a/docs/documentation/cn/administrator-guide/index.rst b/docs/documentation/cn/administrator-guide/index.rst
deleted file mode 100644
index 31e06b6..0000000
--- a/docs/documentation/cn/administrator-guide/index.rst
+++ /dev/null
@@ -1,19 +0,0 @@
-=============
-操作手册
-=============
-
-.. toctree::
-    :hidden:
-
-    load-data/index
-    alter-table/index
-    http-actions/index
-    operation/index
-    config/index
-
-.. toctree::
-    :maxdepth: 1
-    :glob:
-
-    *
-
diff --git a/docs/documentation/cn/administrator-guide/load-data/broker-load-manual.md b/docs/documentation/cn/administrator-guide/load-data/broker-load-manual.md
deleted file mode 100644
index da203cf..0000000
--- a/docs/documentation/cn/administrator-guide/load-data/broker-load-manual.md
+++ /dev/null
@@ -1,508 +0,0 @@
-<!-- 
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-# Broker Load
-
-Broker load 是一个异步的导入方式,支持的数据源取决于 Broker 进程支持的数据源。
-
-用户需要通过 MySQL 协议 创建 Broker load 导入,并通过查看导入命令检查导入结果。
-
-## 适用场景
-
-* 源数据在 Broker 可以访问的存储系统中,如 HDFS。
-* 数据量在 几十到百GB 级别。
-
-## 名词解释
-
-1. Frontend(FE):Doris 系统的元数据和调度节点。在导入流程中主要负责导入 plan 生成和导入任务的调度工作。
-2. Backend(BE):Doris 系统的计算和存储节点。在导入流程中主要负责数据的 ETL 和存储。
-3. Broker:Broker 为一个独立的无状态进程。封装了文件系统接口,提供 Doris 读取远端存储系统中文件的能力。
-4. Plan:导入执行计划,BE 会执行导入执行计划将数据导入到 Doris 系统中。
- 
-## 基本原理
-
-用户在提交导入任务后,FE 会生成对应的 Plan 并根据目前 BE 的个数和文件的大小,将 Plan 分给 多个 BE 执行,每个 BE 执行一部分导入数据。
-
-BE 在执行的过程中会从 Broker 拉取数据,在对数据 transform 之后将数据导入系统。所有 BE 均完成导入,由 FE 最终决定导入是否成功。
-
-```
-                 +
-                 | 1. user create broker load
-                 v
-            +----+----+
-            |         |
-            |   FE    |
-            |         |
-            +----+----+
-                 |
-                 | 2. BE etl and load the data
-    +--------------------------+
-    |            |             |
-+---v---+     +--v----+    +---v---+
-|       |     |       |    |       |
-|  BE   |     |  BE   |    |   BE  |
-|       |     |       |    |       |
-+---+-^-+     +---+-^-+    +--+-^--+
-    | |           | |         | |
-    | |           | |         | | 3. pull data from broker
-+---v-+-+     +---v-+-+    +--v-+--+
-|       |     |       |    |       |
-|Broker |     |Broker |    |Broker |
-|       |     |       |    |       |
-+---+-^-+     +---+-^-+    +---+-^-+
-    | |           | |          | |
-+---v-+-----------v-+----------v-+-+
-|       HDFS/BOS/AFS cluster       |
-|                                  |
-+----------------------------------+
-
-```
-
-## 基本操作
-
-### 创建导入
-
-Broker load 创建导入语句
-
-语法:
-
-```
-LOAD LABEL db_name.label_name 
-(data_desc, ...)
-WITH BROKER broker_name broker_properties
-[PROPERTIES (key1=value1, ... )]
-
-* data_desc:
-
-    DATA INFILE ('file_path', ...)
-    [NEGATIVE]
-    INTO TABLE tbl_name
-    [PARTITION (p1, p2)]
-    [COLUMNS TERMINATED BY separator ]
-    [(col1, ...)]
-    [SET (k1=f1(xx), k2=f2(xx))]
-    [WHERE predicate]
-
-* broker_properties: 
-
-    (key1=value1, ...)
-```
-示例:
-
-```
-LOAD LABEL db1.label1
-(
-    DATA INFILE("hdfs://abc.com:8888/user/palo/test/ml/file1")
-    INTO TABLE tbl1
-    COLUMNS TERMINATED BY ","
-    (tmp_c1,tmp_c2)
-    SET
-    (
-        id=tmp_c2,
-        name=tmp_c1
-    ),
-    DATA INFILE("hdfs://abc.com:8888/user/palo/test/ml/file2")
-    INTO TABLE tbl2
-    COLUMNS TERMINATED BY ","
-    (col1, col2)
-    where col1 > 1
-)
-WITH BROKER 'broker'
-(
-    "username"="user",
-    "password"="pass"
-)
-PROPERTIES
-(
-    "timeout" = "3600"
-);
-
-```
-
-创建导入的详细语法执行 ```HELP BROKER LOAD``` 查看语法帮助。这里主要介绍 Broker load 的创建导入语法中参数意义和注意事项。
-
-#### Label
-
-导入任务的标识。每个导入任务,都有一个在单 database 内部唯一的 Label。Label 是用户在导入命令中自定义的名称。通过这个 Label,用户可以查看对应导入任务的执行情况。
-    
-Label 的另一个作用,是防止用户重复导入相同的数据。**强烈推荐用户同一批次数据使用相同的label。这样同一批次数据的重复请求只会被接受一次,保证了 At-Most-Once 语义**
-    
-当 Label 对应的导入作业状态为 CANCELLED 时,可以再次使用该 Label 提交导入作业。
-
-#### 数据描述类参数
-
-数据描述类参数主要指的是 Broker load 创建导入语句中的属于 ```data_desc``` 部分的参数。每组 ```data_desc ``` 主要表述了本次导入涉及到的数据源地址,ETL 函数,目标表及分区等信息。
-
-下面主要对数据描述类的部分参数详细解释:
-
-+ 多表导入
-
-    Broker load 支持一次导入任务涉及多张表,每个 Broker load 导入任务可在多个 ``` data_desc ``` 声明多张表来实现多表导入。每个单独的 ```data_desc``` 还可以指定属于该表的数据源地址。Broker load 保证了单次导入的多张表之间原子性成功或失败。
-
-+ negative
-
-    ```data_desc```中还可以设置数据取反导入。这个功能主要用于,当数据表中聚合列的类型都为 SUM 类型时。如果希望撤销某一批导入的数据。则可以通过 `negative` 参数导入同一批数据。Doris 会自动为这一批数据在聚合列上数据取反,以达到消除同一批数据的功能。
-    
-+ partition
-
-    在 ```data_desc``` 中可以指定待导入表的 partition 信息,如果待导入数据不属于指定的 partition 则不会被导入。同时,不在指定 Partition 的数据会被认为是错误数据。
-       
-+ set column mapping
-
-    在 ```data_desc``` 中的 SET 语句负责设置列函数变换,这里的列函数变换支持所有查询的等值表达式变换。如果原始数据的列和表中的列不一一对应,就需要用到这个属性。
-
-+ where predicate
-
-    在 ```data_desc``` 中的 WHERE 语句中负责过滤已经完成 transform 的数据,被 filter 的数据不会进入容忍率的统计中。如果多个 data_desc 中声明了同一张表的多个条件的话,则会 merge 同一张表的多个条件,merge 策略是 AND 。
-
-#### 导入作业参数
-
-导入作业参数主要指的是 Broker load 创建导入语句中的属于 ```opt_properties```部分的参数。导入作业参数是作用于整个导入作业的。
-
-下面主要对导入作业参数的部分参数详细解释:
-
-+ timeout
-    
-    导入作业的超时时间(以秒为单位),用户可以在 ```opt_properties``` 中自行设置每个导入的超时时间。导入任务在设定的 timeout 时间内未完成则会被系统取消,变成 CANCELLED。Broker load 的默认导入超时时间为4小时。
-    
-    通常情况下,用户不需要手动设置导入任务的超时时间。当在默认超时时间内无法完成导入时,可以手动设置任务的超时时间。
-    
-    > 推荐超时时间
-    >
-    > 总文件大小(MB) / 用户 Doris 集群最慢导入速度(MB/s)  > timeout > ((总文件大小(MB) * 待导入的表及相关 Roll up 表的个数) / (10 * 导入并发数) )
-    
-    > 导入并发数见文档最后的导入系统配置说明,公式中的 10 为目前的导入限速 10MB/s。
-    
-    > 例如一个 1G 的待导入数据,待导入表包含3个 Rollup 表,当前的导入并发数为 3。则 timeout 的 最小值为 ```(1 * 1024 * 3 ) / (10 * 3) = 102 秒```
-    
-    由于每个 Doris 集群的机器环境不同且集群并发的查询任务也不同,所以用户 Doris 集群的最慢导入速度需要用户自己根据历史的导入任务速度进行推测。
-        
-+ max\_filter\_ratio
-
-    导入任务的最大容忍率,默认为0容忍,取值范围是0~1。当导入的错误率超过该值,则导入失败。
-    
-    如果用户希望忽略错误的行,可以通过设置这个参数大于 0,来保证导入可以成功。
-    
-    计算公式为:
-    
-    ``` max_filter_ratio = (dpp.abnorm.ALL / (dpp.abnorm.ALL + dpp.norm.ALL ) ) ```
-    
-    ```dpp.abnorm.ALL``` 表示数据质量不合格的行数。如类型不匹配,列数不匹配,长度不匹配等等。
-    
-    ```dpp.norm.ALL``` 指的是导入过程中正确数据的条数。可以通过 ```SHOW LOAD``` 命令查询导入任务的正确数据量。
-    
-    原始文件的行数 = `dpp.abnorm.ALL + dpp.norm.ALL`
-    
-+ exec\_mem\_limit
-
-    导入内存限制。默认是 2GB。单位为字节。
-
-+ strict\_mode
-
-    Broker load 导入可以开启 strict mode 模式。开启方式为 ```properties ("strict_mode" = "true")``` 。默认的 strict mode 为关闭。
-
-    strict mode 模式的意思是:对于导入过程中的列类型转换进行严格过滤。严格过滤的策略如下:
-
-    1. 对于列类型转换来说,如果 strict mode 为true,则错误的数据将被 filter。这里的错误数据是指:原始数据并不为空值,在参与列类型转换后结果为空值的这一类数据。
-
-    2. 对于导入的某列由函数变换生成时,strict mode 对其不产生影响。
-    
-    3. 对于导入的某列类型包含范围限制的,如果原始数据能正常通过类型转换,但无法通过范围限制的,strict mode 对其也不产生影响。例如:如果类型是 decimal(1,0), 原始数据为 10,则属于可以通过类型转换但不在列声明的范围内。这种数据 strict 对其不产生影响。
-
-#### strict mode 与 source data 的导入关系
-
-这里以列类型为 TinyInt 来举例
-
->注:当表中的列允许导入空值时
-
-|source data | source data example | string to int   | strict_mode        | result|
-|------------|---------------------|-----------------|--------------------|---------|
-|空值        | \N                  | N/A             | true or false      | NULL|
-|not null    | aaa or 2000         | NULL            | true               | invalid data(filtered)|
-|not null    | aaa                 | NULL            | false              | NULL|
-|not null    | 1                   | 1               | true or false      | correct data|
-
-这里以列类型为 Decimal(1,0) 举例
- 
->注:当表中的列允许导入空值时
-
-|source data | source data example | string to int   | strict_mode        | result|
-|------------|---------------------|-----------------|--------------------|--------|
-|空值        | \N                  | N/A             | true or false      | NULL|
-|not null    | aaa                 | NULL            | true               | invalid data(filtered)|
-|not null    | aaa                 | NULL            | false              | NULL|
-|not null    | 1 or 10             | 1               | true or false      | correct data|
-
-> 注意:10 虽然是一个超过范围的值,但是因为其类型符合 decimal的要求,所以 strict mode对其不产生影响。10 最后会在其他 ETL 处理流程中被过滤。但不会被 strict mode 过滤。
-
-#### Broker 参数
-
-Broker Load 需要借助 Broker 进程访问远端存储,不同的 Broker 需要提供不同的参数,具体请参阅 [Broker文档](../broker.md)
-
-### 查看导入
-
-Broker load 导入方式由于是异步的,所以用户必须将创建导入的 Label 记录,并且在**查看导入命令中使用 Label 来查看导入结果**。查看导入命令在所有导入方式中是通用的,具体语法可执行 ```HELP SHOW LOAD``` 查看。
-
-示例:
-
-```
-mysql> show load order by createtime desc limit 1\G
-*************************** 1. row ***************************
-         JobId: 76391
-         Label: label1
-         State: FINISHED
-      Progress: ETL:N/A; LOAD:100%
-          Type: BROKER
-       EtlInfo: unselected.rows=4; dpp.abnorm.ALL=15; dpp.norm.ALL=28133376
-      TaskInfo: cluster:N/A; timeout(s):10800; max_filter_ratio:5.0E-5
-      ErrorMsg: N/A
-    CreateTime: 2019-07-27 11:46:42
-  EtlStartTime: 2019-07-27 11:46:44
- EtlFinishTime: 2019-07-27 11:46:44
- LoadStartTime: 2019-07-27 11:46:44
-LoadFinishTime: 2019-07-27 11:50:16
-           URL: http://192.168.1.1:8040/api/_load_error_log?file=__shard_4/error_log_insert_stmt_4bb00753932c491a-a6da6e2725415317_4bb00753932c491a_a6da6e2725415317
-    JobDetails: {"ScannedRows":28133395,"TaskNumber":1,"FileNumber":1,"FileSize":200000}
-```
-
-下面主要介绍了查看导入命令返回结果集中参数意义:
-
-+ JobId
-
-    导入任务的唯一ID,每个导入任务的 JobId 都不同,由系统自动生成。与 Label 不同的是,JobId永远不会相同,而 Label 则可以在导入任务失败后被复用。
-    
-+ Label
-
-    导入任务的标识。
-    
-+ State
-
-    导入任务当前所处的阶段。在 Broker load 导入过程中主要会出现 PENDING 和 LOADING 这两个导入中的状态。如果 Broker load 处于 PENDING 状态,则说明当前导入任务正在等待被执行;LOADING 状态则表示正在执行中。
-    
-    导入任务的最终阶段有两个:CANCELLED 和 FINISHED,当 Load job 处于这两个阶段时,导入完成。其中 CANCELLED 为导入失败,FINISHED 为导入成功。
-    
-+ Progress
-
-    导入任务的进度描述。分为两种进度:ETL 和 LOAD,对应了导入流程的两个阶段 ETL 和 LOADING。目前 Broker load 由于只有 LOADING 阶段,所以 ETL 则会永远显示为 `N/A` 
-    
-    LOAD 的进度范围为:0~100%。
-    
-    ```LOAD 进度 = 当前完成导入的表个数 / 本次导入任务设计的总表个数 * 100%``` 
-    
-    **如果所有导入表均完成导入,此时 LOAD 的进度为 99%** 导入进入到最后生效阶段,整个导入完成后,LOAD 的进度才会改为 100%。
-    
-    导入进度并不是线性的。所以如果一段时间内进度没有变化,并不代表导入没有在执行。
-    
-+ Type
-
-    导入任务的类型。Broker load 的 type 取值只有 BROKER。    
-
-+ EtlInfo
-
-    主要显示了导入的数据量指标 ```unselected.rows``` , ```dpp.norm.ALL``` 和 ```dpp.abnorm.ALL```。用户可以根据第一个数值判断 where 条件过滤了多少行,后两个指标验证当前导入任务的错误率是否超过 ```max_filter_ratio```。
-
-    三个指标之和就是原始数据量的总行数。
-    
-+ TaskInfo
-
-    主要显示了当前导入任务参数,也就是创建 Broker load 导入任务时用户指定的导入任务参数,包括:`cluster`,`timeout` 和`max_filter_ratio`。
-    
-+ ErrorMsg
-
-    在导入任务状态为CANCELLED,会显示失败的原因,显示分两部分:type 和 msg,如果导入任务成功则显示 ```N/A```。
-    
-    type的取值意义:
-    
-    ```
-    USER_CANCEL: 用户取消的任务
-    ETL_RUN_FAIL:在ETL阶段失败的导入任务
-    ETL_QUALITY_UNSATISFIED:数据质量不合格,也就是错误数据率超过了 max_filter_ratio
-    LOAD_RUN_FAIL:在LOADING阶段失败的导入任务
-    TIMEOUT:导入任务没在超时时间内完成
-    UNKNOWN:未知的导入错误
-    ```
-
-+ CreateTime/EtlStartTime/EtlFinishTime/LoadStartTime/LoadFinishTime
-
-    这几个值分别代表导入创建的时间,ETL阶段开始的时间,ETL阶段完成的时间,Loading阶段开始的时间和整个导入任务完成的时间。
-    
-    Broker load 导入由于没有 ETL 阶段,所以其 EtlStartTime, EtlFinishTime, LoadStartTime 被设置为同一个值。
-    
-    导入任务长时间停留在 CreateTime,而 LoadStartTime 为 N/A 则说明目前导入任务堆积严重。用户可减少导入提交的频率。
-    
-    ```
-    LoadFinishTime - CreateTime = 整个导入任务所消耗时间
-    LoadFinishTime - LoadStartTime = 整个 Broker load 导入任务执行时间 = 整个导入任务所消耗时间 - 导入任务等待的时间
-    ```
-    
-+ URL
-
-    导入任务的错误数据样例,访问 URL 地址既可获取本次导入的错误数据样例。当本次导入不存在错误数据时,URL 字段则为 N/A。
-
-+ JobDetails
-
-    显示一些作业的详细运行状态。包括导入文件的个数、总大小(字节)、子任务个数、已处理的原始行数等。
-
-    ```{"ScannedRows":139264,"TaskNumber":1,"FileNumber":1,"FileSize":940754064}```
-
-    其中已处理的原始行数,每 5 秒更新一次。该行数仅用于展示当前的进度,不代表最终实际的处理行数。实际处理行数以 EtlInfo 中显示的为准。
-
-### 取消导入
-
-当 Broker load 作业状态不为 CANCELLED 或 FINISHED 时,可以被用户手动取消。取消时需要指定待取消导入任务的 Label 。取消导入命令语法可执行 ```HELP CANCEL LOAD```查看。
-
-## 相关系统配置
-
-### FE 配置
-
-下面几个配置属于 Broker load 的系统级别配置,也就是作用于所有 Broker load 导入任务的配置。主要通过修改 ``` fe.conf```来调整配置值。
-
-+ min\_bytes\_per\_broker\_scanner/max\_bytes\_per\_broker\_scanner/max\_broker\_concurrency
-        
-    前两个配置限制了单个 BE 处理的数据量的最小和最大值。第三个配置限制了一个作业的最大的导入并发数。最小处理的数据量,最大并发数,源文件的大小和当前集群 BE 的个数 **共同决定了本次导入的并发数**。
-    
-    ```
-    本次导入并发数 = Math.min(源文件大小/最小处理量,最大并发数,当前BE节点个数)
-    本次导入单个BE的处理量 = 源文件大小/本次导入的并发数
-    ```
-    
-    通常一个导入作业支持的最大数据量为 `max_bytes_per_broker_scanner * BE 节点数`。如果需要导入更大数据量,则需要适当调整 `max_bytes_per_broker_scanner` 参数的大小。
-    
-    默认配置:
-    
-     ```
-     参数名:min_bytes_per_broker_scanner, 默认 64MB,单位bytes。
-     参数名:max_broker_concurrency, 默认 10。
-     参数名:max_bytes_per_broker_scanner,默认 3G,单位bytes。
-     ```
-    
-## 最佳实践
-
-### 应用场景
-
-使用 Broker load 最适合的场景就是原始数据在文件系统(HDFS,BOS,AFS)中的场景。其次,由于 Broker load 是单次导入中唯一的一种异步导入的方式,所以如果用户在导入大文件中,需要使用异步接入,也可以考虑使用 Broker load。
-
-### 数据量
-
-这里仅讨论单个 BE 的情况,如果用户集群有多个 BE 则下面标题中的数据量应该乘以 BE 个数来计算。比如:如果用户有3个 BE,则 3G 以下(包含)则应该乘以 3,也就是 9G 以下(包含)。
-
-+ 3G 以下(包含)
-
-    用户可以直接提交 Broker load 创建导入请求。
-    
-+ 3G 以上
-
-    由于单个导入 BE 最大的处理量为 3G,超过 3G 的待导入文件就需要通过调整 Broker load 的导入参数来实现大文件的导入。
-    
-    1. 根据当前 BE 的个数和原始文件的大小修改单个 BE 的最大扫描量和最大并发数。
-
-        ```
-        修改 fe.conf 中配置
-        
-        max_broker_concurrency = BE 个数
-        当前导入任务单个 BE 处理的数据量 = 原始文件大小 / max_broker_concurrency
-        max_bytes_per_broker_scanner >= 当前导入任务单个 BE 处理的数据量
-        
-        比如一个 100G 的文件,集群的 BE 个数为 10 个
-        max_broker_concurrency = 10
-        max_bytes_per_broker_scanner >= 10G = 100G / 10
-        
-        ```
-        
-        修改后,所有的 BE 会并发的处理导入任务,每个 BE 处理原始文件的一部分。
-        
-        *注意:上述两个 FE 中的配置均为系统配置,也就是说其修改是作用于所有的 Broker load的任务的。*
-        
-    2. 在创建导入的时候自定义当前导入任务的 timeout 时间
-
-        ```
-        当前导入任务单个 BE 处理的数据量 / 用户 Doris 集群最慢导入速度(MB/s) >= 当前导入任务的 timeout 时间 >= 当前导入任务单个 BE 处理的数据量 / 10M/s
-        
-        比如一个 100G 的文件,集群的 BE 个数为 10个
-        timeout >= 1000s = 10G / 10M/s
-        
-        ```
-        
-    3. 当用户发现第二步计算出的 timeout 时间超过系统默认的导入最大超时时间 4小时
-
-        这时候不推荐用户将导入最大超时时间直接改大来解决问题。单个导入时间如果超过默认的导入最大超时时间4小时,最好是通过切分待导入文件并且分多次导入来解决问题。主要原因是:单次导入超过4小时的话,导入失败后重试的时间成本很高。
-        
-        可以通过如下公式计算出 Doris 集群期望最大导入文件数据量:
-        
-        ```
-        期望最大导入文件数据量 = 14400s * 10M/s * BE 个数
-        比如:集群的 BE 个数为 10个
-        期望最大导入文件数据量 = 14400s * 10M/s * 10 = 1440000M ≈ 1440G
-        
-        注意:一般用户的环境可能达不到 10M/s 的速度,所以建议超过 500G 的文件都进行文件切分,再导入。
-        
-        ```
-        
-### 完整例子
-
-数据情况:用户数据在 HDFS 中,文件地址为 hdfs://abc.com:8888/store_sales, hdfs 的认证用户名为 root, 密码为 password, 数据量大小约为 30G,希望导入到数据库 bj_sales 的表 store_sales 中。
-
-集群情况:集群的 BE 个数约为 3 个,Broker 名称均为 broker。
-
-+ step1: 经过上述方法的计算,本次导入的单个 BE 导入量为 10G,则需要先修改 FE 的配置,将单个 BE 导入最大量修改为:
-
-    ```
-    max_bytes_per_broker_scanner = 10737418240
-
-    ```
-
-+ step2: 经计算,本次导入的时间大约为 1000s,并未超过默认超时时间,可不配置导入自定义超时时间。
-
-+ step3:创建导入语句
-
-    ```
-    LOAD LABEL bj_sales.store_sales_broker_load_01
-    (
-        DATA INFILE("hdfs://abc.com:8888/store_sales")
-        INTO TABLE store_sales
-    )
-    WITH BROKER 'broker'
-    ("username"="root", "password"="password");
-    ```
-
-## 常见问题
-
-* 导入报错:`Scan bytes per broker scanner exceed limit:xxx`
-
-    请参照文档中最佳实践部分,修改 FE 配置项 `max_bytes_per_broker_scanner` 和 `max_broker_concurrency`
-
-* 导入报错:`failed to send batch` 或 `TabletWriter add batch with unknown id`
-
-    请参照 [导入手册](./load-manual.md) 中 **通用系统配置** 中 **BE 配置**,适当修改 `query_timeout` 和 `streaming_load_rpc_max_alive_time_sec`。
-    
-* 导入报错:`LOAD_RUN_FAIL; msg:Invalid Column Name:xxx` 
-    
-    如果是PARQUET或者ORC格式的数据,需要再文件头的列名与doris表中的列名一致,如 :  
-    ```
-    (tmp_c1,tmp_c2)
-    SET
-    (
-        id=tmp_c2,
-        name=tmp_c1
-    )
-    ```
-    代表获取在parquet或orc中以(tmp_c1, tmp_c2)为列名的列,映射到doris表中的(id, name)列。如果没有设置set, 则以column中的列作为映射。
-
-    注:如果使用某些hive版本直接生成的orc文件,orc文件中的表头并非hive meta数据,而是(_col0, _col1, _col2, ...), 可能导致Invalid Column Name错误,那么则需要使用set进行映射
-
diff --git a/docs/documentation/cn/administrator-guide/load-data/index.rst b/docs/documentation/cn/administrator-guide/load-data/index.rst
deleted file mode 100644
index f4807d1..0000000
--- a/docs/documentation/cn/administrator-guide/load-data/index.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-=============
-数据导入
-=============
-
-.. toctree::
-    :maxdepth: 2
-
-    load-manual.md
-    broker-load-manual.md
-    stream-load-manual.md
-    routine-load-manual.md
-    insert-into-manual.md
diff --git a/docs/documentation/cn/administrator-guide/load-data/insert-into-manual.md b/docs/documentation/cn/administrator-guide/load-data/insert-into-manual.md
deleted file mode 100644
index c00f135..0000000
--- a/docs/documentation/cn/administrator-guide/load-data/insert-into-manual.md
+++ /dev/null
@@ -1,282 +0,0 @@
-<!-- 
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-# Insert Into
-
-Insert Into 语句的使用方式和 MySQL 等数据库中 Insert Into 语句的使用方式类似。但在 Doris 中,所有的数据写入都是一个独立的导入作业。所以这里将 Insert Into 也作为一种导入方式介绍。
-
-主要的 Insert Into 命令包含以下两种;
-
-* INSERT INTO tbl SELECT ...
-* INSERT INTO tbl (col1, col2, ...) VALUES (1, 2, ...), (1,3, ...);
-
-其中第二种命令仅用于 Demo,不要使用在测试或生产环境中。
-
-## 基本操作
-
-### 创建导入
-
-Insert Into 命令需要通过 MySQL 协议提交,创建导入请求会同步返回导入结果。
-
-语法:
-
-```
-INSERT INTO table_name [WITH LABEL label] [partition_info] [col_list] [query_stmt] [VALUES];
-```
-
-示例:
-
-```
-INSERT INTO tbl2 WITH LABEL label1 SELECT * FROM tbl3;
-INSERT INTO tbl1 VALUES ("qweasdzxcqweasdzxc"), ("a");
-```
-
-**注意**
-
-当需要使用 `CTE(Common Table Expressions)` 作为 insert 操作中的查询部分时,必须指定 `WITH LABEL` 和 column list 部分。示例
-
-```
-INSERT INTO tbl1 WITH LABEL label1
-WITH cte1 AS (SELECT * FROM tbl1), cte2 AS (SELECT * FROM tbl2)
-SELECT k1 FROM cte1 JOIN cte2 WHERE cte1.k1 = 1;
-
-
-INSERT INTO tbl1 (k1)
-WITH cte1 AS (SELECT * FROM tbl1), cte2 AS (SELECT * FROM tbl2)
-SELECT k1 FROM cte1 JOIN cte2 WHERE cte1.k1 = 1;
-```
-
-下面主要介绍创建导入语句中使用到的参数:
-
-+ partition\_info
-
-    导入表的目标分区,如果指定目标分区,则只会导入符合目标分区的数据。如果没有指定,则默认值为这张表的所有分区。
-    
-+ col\_list
-
-    导入表的目标列,可以以任意的顺序存在。如果没有指定目标列,那么默认值是这张表的所有列。如果待表中的某个列没有存在目标列中,那么这个列需要有默认值,否则 Insert Into 就会执行失败。
-
-    如果查询语句的结果列类型与目标列的类型不一致,那么会调用隐式类型转化,如果不能够进行转化,那么 Insert Into 语句会报语法解析错误。
-
-+ query\_stmt
-
-    通过一个查询语句,将查询语句的结果导入到 Doris 系统中的其他表。查询语句支持任意 Doris 支持的 SQL 查询语法。
-
-+ VALUES
-    
-    用户可以通过 VALUES 语法插入一条或者多条数据。
-    
-    *注意:VALUES 方式仅适用于导入几条数据作为导入 DEMO 的情况,完全不适用于任何测试和生产环境。Doris 系统本身也不适合单条数据导入的场景。建议使用 INSERT INTO SELECT 的方式进行批量导入。*
-    
-* WITH LABEL
-
-    INSERT 操作作为一个导入任务,也可以指定一个 label。如果不指定,则系统会自动指定一个 UUID 作为 label。
-    
-    该功能需要 0.11+ 版本。
-    
-    *注意:建议指定 Label 而不是由系统自动分配。如果由系统自动分配,但在 Insert Into 语句执行过程中,因网络错误导致连接断开等,则无法得知 Insert Into 是否成功。而如果指定 Label,则可以再次通过 Label 查看任务结果。*
-    
-### 导入结果
-
-Insert Into 本身就是一个 SQL 命令,其返回结果会根据执行结果的不同,分为以下几种:
-
-1. 结果集为空
-
-    如果 insert 对应 select 语句的结果集为空,则返回如下:
-    
-    ```
-    mysql> insert into tbl1 select * from empty_tbl;
-    Query OK, 0 rows affected (0.02 sec)
-    ```
-    
-    `Query OK` 表示执行成功。`0 rows affected` 表示没有数据被导入。
-    
-2. 结果集不为空
-
-    在结果集不为空的情况下。返回结果分为如下几种情况:
-    
-    1. Insert 执行成功并可见:
-
-        ```
-        mysql> insert into tbl1 select * from tbl2;
-        Query OK, 4 rows affected (0.38 sec)
-        {'label':'insert_8510c568-9eda-4173-9e36-6adc7d35291c', 'status':'visible', 'txnId':'4005'}
-        
-        mysql> insert into tbl1 with label my_label1 select * from tbl2;
-        Query OK, 4 rows affected (0.38 sec)
-        {'label':'my_label1', 'status':'visible', 'txnId':'4005'}
-        
-        mysql> insert into tbl1 select * from tbl2;
-        Query OK, 2 rows affected, 2 warnings (0.31 sec)
-        {'label':'insert_f0747f0e-7a35-46e2-affa-13a235f4020d', 'status':'visible', 'txnId':'4005'}
-        
-        mysql> insert into tbl1 select * from tbl2;
-        Query OK, 2 rows affected, 2 warnings (0.31 sec)
-        {'label':'insert_f0747f0e-7a35-46e2-affa-13a235f4020d', 'status':'committed', 'txnId':'4005'}
-        ```
-        
-        `Query OK` 表示执行成功。`4 rows affected` 表示总共有4行数据被导入。`2 warnings` 表示被过滤的行数。
-        
-        同时会返回一个 json 串:
-        
-        ```
-        {'label':'my_label1', 'status':'visible', 'txnId':'4005'}
-        {'label':'insert_f0747f0e-7a35-46e2-affa-13a235f4020d', 'status':'committed', 'txnId':'4005'}
-        {'label':'my_label1', 'status':'visible', 'txnId':'4005', 'err':'some other error'}
-        ```
-        
-        `label` 为用户指定的 label 或自动生成的 label。Label 是该 Insert Into 导入作业的标识。每个导入作业,都有一个在单 database 内部唯一的 Label。
-        
-        `status` 表示导入数据是否可见。如果可见,显示 `visible`,如果不可见,显示 `committed`。
-        
-        `txnId` 为这个 insert 对应的导入事务的 id。
-        
-        `err` 字段会显示一些其他非预期错误。
-        
-        当需要查看被过滤的行时,用户可以通过如下语句
-        
-        ```
-        show load where label="xxx";
-        ```
-        
-        返回结果中的 URL 可以用于查询错误的数据,具体见后面 **查看错误行** 小结。
-                
-        **数据不可见是一个临时状态,这批数据最终是一定可见的**
-        
-        可以通过如下语句查看这批数据的可见状态:
-        
-        ```
-        show transaction where id=4005;
-        ```
-        
-        返回结果中的 `TransactionStatus` 列如果为 `visible`,则表述数据可见。
-        
-    2. Insert 执行失败
-
-        执行失败表示没有任何数据被成功导入,并返回如下:
-        
-        ```
-        mysql> insert into tbl1 select * from tbl2 where k1 = "a";
-        ERROR 1064 (HY000): all partitions have no load data. url: http://10.74.167.16:8042/api/_load_error_log?file=__shard_2/error_log_insert_stmt_ba8bb9e158e4879-ae8de8507c0bf8a2_ba8bb9e158e4879_ae8de8507c0bf8a2
-        ```
-        
-        其中 `ERROR 1064 (HY000): all partitions have no load data` 显示失败原因。后面的 url 可以用于查询错误的数据,具体见后面 **查看错误行** 小结。
-        
-
-**综上,对于 insert 操作返回结果的正确处理逻辑应为:**
-
-1. 如果返回结果为 `ERROR 1064 (HY000)`,则表示导入失败。
-2. 如果返回结果为 `Query OK`,则表示执行成功。
-    1. 如果 `rows affected` 为 0,表示结果集为空,没有数据被导入。
-    2. 如果 `rows affected` 大于 0:
-        1. 如果 `status` 为 `committed`,表示数据还不可见。需要通过 `show transaction` 语句查看状态直到 `visible`
-        2. 如果 `status` 为 `visible`,表示数据导入成功。
-    3. 如果 `warnings` 大于 0,表示有数据被过滤,可以通过 `show load` 语句获取 url 查看被过滤的行。
-        
-## 相关系统配置
-
-### FE 配置
-
-+ timeout
-
-    导入任务的超时时间(以秒为单位),导入任务在设定的 timeout 时间内未完成则会被系统取消,变成 CANCELLED。
-    
-    目前 Insert Into 并不支持自定义导入的 timeout 时间,所有 Insert Into 导入的超时时间是统一的,默认的 timeout 时间为1小时。如果导入的源文件无法再规定时间内完成导入,则需要调整 FE 的参数```insert_load_default_timeout_second```。
-    
-    同时 Insert Into 语句收到 Session 变量 `query_timeout` 的限制。可以通过 `SET query_timeout = xxx;` 来增加超时时间,单位是秒。
-    
-### Session 变量
-
-+ enable\_insert\_strict
-
-    Insert Into 导入本身不能控制导入可容忍的错误率。用户只能通过 `enable_insert_strict` 这个 Session 参数用来控制。
-
-    当该参数设置为 false 时,表示至少有一条数据被正确导入,则返回成功。如果有失败数据,则还会返回一个 Label。
-
-    当该参数设置为 true 时,表示如果有一条数据错误,则导入失败。
-
-    默认为 false。可通过 `SET enable_insert_strict = true;` 来设置。 
-        
-+ query\_timeout
-
-    Insert Into 本身也是一个 SQL 命令,因此 Insert Into 语句也受到 Session 变量 `query_timeout` 的限制。可以通过 `SET query_timeout = xxx;` 来增加超时时间,单位是秒。
-    
-## 最佳实践
-
-### 应用场景
-1. 用户希望仅导入几条假数据,验证一下 Doris 系统的功能。此时适合使用 INSERT INTO VALUS 的语法。
-2. 用户希望将已经在 Doris 表中的数据进行 ETL 转换并导入到一个新的 Doris 表中,此时适合使用 INSERT INTO SELECT 语法。
-3. 用户可以创建一种外部表,如 MySQL 外部表映射一张 MySQL 系统中的表。或者创建 Broker 外部表来映射 HDFS 上的数据文件。然后通过 INSERT INTO SELECT 语法将外部表中的数据导入到 Doris 表中存储。
-
-### 数据量
-Insert Into 对数据量没有限制,大数据量导入也可以支持。但 Insert Into 有默认的超时时间,用户预估的导入数据量过大,就需要修改系统的 Insert Into 导入超时时间。
-
-```
-导入数据量 = 36G 约≤ 3600s * 10M/s 
-其中 10M/s 是最大导入限速,用户需要根据当前集群情况计算出平均的导入速度来替换公式中的 10M/s
-```
-
-### 完整例子
-
-用户有一张表 store\_sales 在数据库 sales 中,用户又创建了一张表叫 bj\_store\_sales 也在数据库 sales 中,用户希望将 store\_sales 中销售记录在 bj 的数据导入到这张新建的表 bj\_store\_sales 中。导入的数据量约为:10G。
-
-```
-store_sales schema:
-(id, total, user_id, sale_timestamp, region)
-
-bj_store_sales schema:
-(id, total, user_id, sale_timestamp)
-
-```
-
-集群情况:用户当前集群的平均导入速度约为 5M/s
-
-+ Step1: 判断是否要修改 Insert Into 的默认超时时间
-
-    ```
-    计算导入的大概时间
-    10G / 5M/s = 2000s
-    
-    修改 FE 配置
-    insert_load_default_timeout_second = 2000
-    ```
-    
-+ Step2:创建导入任务
-
-    由于用户是希望将一张表中的数据做 ETL 并导入到目标表中,所以应该使用 Insert into query\_stmt 方式导入。
-
-    ```
-    INSERT INTO bj_store_sales WITH LABEL `label` SELECT id, total, user_id, sale_timestamp FROM store_sales where region = "bj";
-    ```
-
-## 常见问题
-
-* 查看错误行
-
-    由于 Insert Into 无法控制错误率,只能通过 `enable_insert_strict` 设置为完全容忍错误数据或完全忽略错误数据。因此如果 `enable_insert_strict` 设为 true,则 Insert Into 可能会失败。而如果 `enable_insert_strict` 设为 false,则可能出现仅导入了部分合格数据的情况。
-
-    当返回结果中提供了 url 字段时,可以通过以下命令查看错误行:
-
-    ```SHOW LOAD WARNINGS ON "url";```
-
-    示例:
-
-    ```SHOW LOAD WARNINGS ON "http://ip:port/api/_load_error_log?file=__shard_13/error_log_insert_stmt_d2cac0a0a16d482d-9041c949a4b71605_d2cac0a0a16d482d_9041c949a4b71605";```
-
-    错误的原因通常如:源数据列长度超过目的数据列长度、列类型不匹配、分区不匹配、列顺序不匹配等等。
diff --git a/docs/documentation/cn/administrator-guide/load-data/load-manual.md b/docs/documentation/cn/administrator-guide/load-data/load-manual.md
deleted file mode 100644
index b261687..0000000
--- a/docs/documentation/cn/administrator-guide/load-data/load-manual.md
+++ /dev/null
@@ -1,210 +0,0 @@
-<!-- 
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-# 导入总览
-
-导入(Load)功能就是将用户的原始数据导入到 Doris 中。导入成功后,用户即可通过 Mysql 客户端查询数据。
-
-Doris 支持多种导入方式。建议先完整阅读本文档,再根据所选择的导入方式,查看各自导入方式的详细文档。
-
-## 基本概念
-
-1. Frontend(FE):Doris 系统的元数据和调度节点。在导入流程中主要负责导入规划生成和导入任务的调度工作。 
-2. Backend(BE):Doris 系统的计算和存储节点。在导入流程中主要负责数据的 ETL 和存储。
-3. Broker:Broker 为一个独立的无状态进程。封装了文件系统接口,提供 Doris 读取远端存储系统中文件的能力。
-4. 导入作业(Load job):导入作业读取用户提交的源数据,转换或清洗后,将数据导入到 Doris 系统中。导入完成后,数据即可被用户查询到。
-5. Label:所有导入作业都有一个 Label。Label 在一个数据库内唯一,可由用户指定或系统自动生成,用于标识一个导入作业。相同的 Label 仅可用于一个成功的导入作业。
-6. MySQL 协议/HTTP 协议:Doris 提供两种访问协议接口。 MySQL 协议和 HTTP 协议。部分导入方式使用 MySQL 协议接口提交作业,部分导入方式使用 HTTP 协议接口提交作业。
-
-## 导入方式
-
-为适配不同的数据导入需求,Doris 系统提供了5种不同的导入方式。每种导入方式支持不同的数据源,存在不同的使用方式(异步,同步)。
-
-所有导入方式都支持 csv 数据格式。其中 Broker load 还支持 parquet 和 orc 数据格式。
-
-每个导入方式的说明请参阅单个导入方式的操作手册。
-
-* Broker load
-
-    通过 Broker 进程访问并读取外部数据源(如 HDFS)导入到 Doris。用户通过 Mysql 协议提交导入作业后,异步执行。通过 `SHOW LOAD` 命令查看导入结果。
-
-* Stream load
-
-    用户通过 HTTP 协议提交请求并携带原始数据创建导入。主要用于快速将本地文件或数据流中的数据导入到 Doris。导入命令同步返回导入结果。
-
-* Insert
-
-    类似 MySQL 中的 Insert 语句,Doris 提供 `INSERT INTO tbl SELECT ...;` 的方式从 Doris 的表中读取数据并导入到另一张表。或者通过 `INSERT INTO tbl VALUES(...);` 插入单条数据。
-
-* Multi load
-
-    用户通过 HTTP 协议提交多个导入作业。Multi Load 可以保证多个导入作业的原子生效。
-
-* Routine load
-
-    用户通过 MySQL 协议提交例行导入作业,生成一个常驻线程,不间断的从数据源(如 Kafka)中读取数据并导入到 Doris 中。
-
-## 基本原理
-
-### 导入执行流程
-
-```
-+---------+      +---------+      +----------+      +-----------+
-|         |      |         |      |          |      |           |
-| PENDING +----->+   ETL   +----->+ LOADING  +----->+ FINISHED  |
-|         |      |         |      |          |      |           |
-+---------+      +---+-----+      +----+-----+      +-----------+
-     |               |                 |
-     |               |                 |
-     |               |                 |
-     |               |                 |            +-----------+
-     |               |                 |            |           |
-     +---------------+-----------------+------------> CANCELLED |
-                                                    |           |
-                                                    +-----------+
-
-```
-
-如上图,一个导入作业主要经过上面4个阶段。
-
-+ PENDING(非必须): 该阶段只有 Broker Load 才有。Broker Load 被用户提交后会短暂停留在这个阶段,直到被 FE 中的 Scheduler 调度。 其中 Scheduler 的调度间隔为5秒。 
-
-+ ETL(非必须): 该阶段在版本 0.10.0(包含) 之前存在,主要是用于将原始数据按照用户声明的方式进行变换,并且过滤不满足条件的原始数据。在 0.10.0 后的版本,ETL 阶段不再存在,其中数据 transform 的工作被合并到 LOADING 阶段。
-
-+ LOADING: 该阶段在版本 0.10.0(包含)之前主要用于将变换后的数据推到对应的 BE 存储中。在 0.10.0 后的版本,该阶段先对数据进行清洗和变换,然后将数据发送到 BE 存储中。当所有导入数据均完成导入后,进入等待生效过程,此时 Load job 依旧是 LOADING。
-
-+ FINISHED: 在 Load job 涉及的所有数据均生效后,Load job 的状态变成 FINISHED。FINISHED 后导入的数据均可查询。
-
-+ CANCELLED: 在作业 FINISH 的之前,作业都可能被取消并进入 CANCELLED 状态。如用户手动取消,或导入出现错误等。CANCELLED 也是 Load Job 的最终状态,不可被再次执行。
-
-上述阶段,除了 PENDING 到 LOADING 阶段是 Scheduler 轮训调度的,其他阶段之前的转移都是回调机制实现。
-
-### Label 和 原子性
-
-Doris 对所有导入方式提供原子性保证。既保证同一个导入作业内的数据,原子生效。不会出现仅导入部分数据的情况。
-
-同时,每一个导入作业都有一个由用户指定或者系统自动生成的 Label。Label 在一个 Database 内唯一。当一个 Label 对应的导入作业成功后,不可再重复使用该 Label 提交导入作业。如果 Label 对应的导入作业失败,则可以重复使用。
-
-用户可以通过 Label 机制,来保证 Label 对应的数据最多被导入一次,即At-Most-Once 语义。
-
-## 同步和异步
-
-Doris 目前的导入方式分为两类,同步和异步。如果是外部程序接入 Doris 的导入功能,需要判断使用导入方式是哪类再确定接入逻辑。
-
-### 同步
-
-同步导入方式即用户创建导入任务,Doris 同步执行导入,执行完成后返回用户导入结果。用户可直接根据创建导入任务命令返回的结果同步判断导入是否成功。
-
-同步类型的导入方式有: **Stream load**,**Insert**。
-
-操作步骤:
-
-1. 用户(外部系统)创建导入任务。
-2. Doris 返回导入结果。
-3. 用户(外部系统)判断导入结果,如果失败可以再次提交导入任务。
-
-*注意:如果用户使用的导入方式是同步返回的,且导入的数据量过大,则创建导入请求可能会花很长时间才能返回结果。*
-
-### 异步
-异步导入方式即用户创建导入任务后,Doris 直接返回创建成功。**创建成功不代表数据已经导入**。导入任务会被异步执行,用户在创建成功后,需要通过轮询的方式发送查看命令查看导入作业的状态。如果创建失败,则可以根据失败信息,判断是否需要再次创建。
-
-异步类型的导入方式有:**Broker load**,**Multi load**。
-
-操作步骤:
-
-1. 用户(外部系统)创建导入任务。
-2. Doris 返回导入创建结果。
-3. 用户(外部系统)判断导入创建结果,成功则进入4,失败回到重试创建导入,回到1。
-4. 用户(外部系统)轮询查看导入任务,直到状态变为 FINISHED 或 CANCELLED。
-
-### 注意事项
-无论是异步还是同步的导入类型,都不应该在 Doris 返回导入失败或导入创建失败后,无休止的重试。**外部系统在有限次数重试并失败后,保留失败信息,大部分多次重试均失败问题都是使用方法问题或数据本身问题。**
-
-## 内存限制
-
-用户可以通过设置参数来限制单个导入的内存使用,以防止导入占用过多的内存而导致系统OOM。
-不同导入方式限制内存的方式略有不同,可以参阅各自的导入手册查看。
-
-一个导入作业通常会分布在多个 Backend 上执行,导入内存限制的是一个导入作业,在单个 Backend 上的内存使用,而不是在整个集群的内存使用。
-
-同时,每个 Backend 会设置可用于导入的内存的总体上限。具体配置参阅下面的通用系统配置小节。这个配置限制了所有在该 Backend 上运行的导入任务的总体内存使用上限。
-
-较小的内存限制可能会影响导入效率,因为导入流程可能会因为内存达到上限而频繁的将内存中的数据写回磁盘。而过大的内存限制可能导致当导入并发较高时,系统OOM。所以,需要根据需求,合理的设置导入的内存限制。
-
-## 最佳实践
-
-用户在接入 Doris 导入时,一般会采用程序接入的方式,这样可以保证数据被定期的导入到 Doris 中。下面主要说明了程序接入 Doris 的最佳实践。
-
-1. 选择合适的导入方式:根据数据源所在位置选择导入方式。例如:如果原始数据存放在 HDFS 上,则使用 Broker load 导入。
-2. 确定导入方式的协议:如果选择了 Broker load 导入方式,则外部系统需要能使用 MySQL 协议定期提交和查看导入作业。
-3. 确定导入方式的类型:导入方式为同步或异步。比如 Broker load 为异步导入方式,则外部系统在提交创建导入后,必须调用查看导入命令,根据查看导入命令的结果来判断导入是否成功。
-4. 制定 Label 生成策略:Label 生成策略需满足,每一批次数据唯一且固定的原则。这样 Doris 就可以保证 At-Most-Once。
-5. 程序自身保证 At-Least-Once:外部系统需要保证自身的 At-Least-Once,这样就可以保证导入流程的 Exactly-Once。
-
-## 通用系统配置
-
-下面主要解释了几个所有导入方式均通用的系统级别的配置。
-
-### FE 配置
-
-以下配置属于 FE 的系统配置,可以通过修改 FE 的配置文件 ```fe.conf``` 来修改配置。
-
-+ max\_load\_timeout\_second 和 min\_load\_timeout\_second
-    
-    这两个配置含义为:最大的导入超时时间,最小的导入超时时间,以秒为单位。默认的最大超时时间为3天, 默认的最小超时时间为1秒。用户自定义的导入超时时间不可超过这个范围。该参数通用于所有的导入方式。
-
-+ desired\_max\_waiting\_jobs
-
-    在等待队列中的导入任务个数最大值,默认为100。当在 FE 中处于 PENDING 状态(也就是等待执行的)导入个数超过该值,新的导入请求则会被拒绝。
-    
-    此配置仅对异步执行的导入有效,当异步执行的导入等待个数超过默认值,则后续的创建导入请求会被拒绝。
-        
-+ max\_running\_txn\_num\_per\_db
-
-    这个配置的含义是说,每个 Database 中正在运行的导入最大个数(不区分导入类型,统一计数)。当当前 Database 正在运行的导入个数超过最大值时,后续的导入不会被执行。如果是同步导入作业,则导入会被拒绝。如果是异步导入作业。则作业会在队列中等待。
-    
-### BE 配置
-
-以下配置属于 BE 的系统配置,可以通过修改 BE 的配置文件 ```be.conf``` 来修改配置。
-
-+ push\_write\_mbytes\_per\_sec
-
-    BE 上单个 Tablet 的写入速度限制。默认是 10,即 10MB/s。通常 BE 对单个 Tablet 的最大写入速度,根据 Schema 以及系统的不同,大约在 10-30MB/s 之间。可以适当调整这个参数来控制导入速度。
-    
-+ write\_buffer\_size
-
-    导入数据在 BE 上会先写入一个 memtable,memtable 达到阈值后才会写回磁盘。默认大小是 100MB。过小的阈值可能导致 BE 上存在大量的小文件。可以适当提高这个阈值减少文件数量。但过大的阈值可能导致 RPC 超时,见下面的配置说明。
-    
-+ tablet\_writer\_rpc\_timeout\_sec
-
-    导入过程中,发送一个 Batch(1024行)的 RPC 超时时间。默认 600 秒。因为该 RPC 可能涉及多个 memtable 的写盘操作,所以可能会因为写盘导致 RPC 超时,可以适当调整这个超时时间来减少超时错误(如 `send batch fail` 错误)。同时,如果调大 `write_buffer_size` 配置,也需要适当调大这个参数。
-
-+ streaming\_load\_rpc\_max\_alive\_time\_sec
-
-    在导入过程中,Doris 会为每一个 Tablet 开启一个 Writer,用于接收数据并写入。这个参数指定了 Writer 的等待超时时间。如果在这个时间内,Writer 没有收到任何数据,则 Writer 会被自动销毁。当系统处理速度较慢时,Writer 可能长时间接收不到下一批数据,导致导入报错:`TabletWriter add batch with unknown id`。此时可适当增大这个配置。默认为 600 秒。
-    
-* load\_process\_max\_memory\_limit\_bytes 和 load\_process\_max\_memory\_limit\_percent
-
-    这两个参数,限制了单个 Backend 上,可用于导入任务的内存上限。分别是最大内存和最大内存百分比。`load_process_max_memory_limit_percent` 默认为 80,表示对 Backend 总内存限制的百分比(总内存限制 `mem_limit` 默认为 80%,表示对物理内存的百分比)。即假设物理内存为 M,则默认导入内存限制为 M * 80% * 80%。
-
-    `load_process_max_memory_limit_bytes` 默认为 100GB。系统会在两个参数中取较小者,作为最终的 Backend 导入内存使用上限。
-
-+ label\_keep\_max\_second
-  
-    设置导入任务记录保留时间。已经完成的( FINISHED or CANCELLED )导入任务记录会保留在 Doris 系统中一段时间,时间由此参数决定。参数默认值时间为3天。该参数通用与所有类型的导入任务。
diff --git a/docs/documentation/cn/administrator-guide/load-data/routine-load-manual.md b/docs/documentation/cn/administrator-guide/load-data/routine-load-manual.md
deleted file mode 100644
index 941191e..0000000
--- a/docs/documentation/cn/administrator-guide/load-data/routine-load-manual.md
+++ /dev/null
@@ -1,292 +0,0 @@
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-# Routine Load
-
-例行导入(Routine Load)功能为用户提供了一种自动从指定数据源进行数据导入的功能。
-
-本文档主要介绍该功能的实现原理、使用方式以及最佳实践。
-
-## 名词解释
-
-* FE:Frontend,Doris 的前端节点。负责元数据管理和请求接入。
-* BE:Backend,Doris 的后端节点。负责查询执行和数据存储。
-* RoutineLoadJob:用户提交的一个例行导入作业。
-* JobScheduler:例行导入作业调度器,用于调度和拆分一个 RoutineLoadJob 为多个 Task。
-* Task:RoutineLoadJob 被 JobScheduler 根据规则拆分的子任务。
-* TaskScheduler:任务调度器。用于调度 Task 的执行。
-
-## 原理
-
-```
-         +---------+
-         |  Client |
-         +----+----+
-              |
-+-----------------------------+
-| FE          |               |
-| +-----------v------------+  |
-| |                        |  |
-| |   Routine Load Job     |  |
-| |                        |  |
-| +---+--------+--------+--+  |
-|     |        |        |     |
-| +---v--+ +---v--+ +---v--+  |
-| | task | | task | | task |  |
-| +--+---+ +---+--+ +---+--+  |
-|    |         |        |     |
-+-----------------------------+
-     |         |        |
-     v         v        v
- +---+--+   +--+---+   ++-----+
- |  BE  |   |  BE  |   |  BE  |
- +------+   +------+   +------+
-
-```
-
-如上图,Client 向 FE 提交一个例行导入作业。
-
-FE 通过 JobScheduler 将一个导入作业拆分成若干个 Task。每个 Task 负责导入指定的一部分数据。Task 被 TaskScheduler 分配到指定的 BE 上执行。
-
-在 BE 上,一个 Task 被视为一个普通的导入任务,通过 Stream Load 的导入机制进行导入。导入完成后,向 FE 汇报。
-
-FE 中的 JobScheduler 根据汇报结果,继续生成后续新的 Task,或者对失败的 Task 进行重试。
-
-整个例行导入作业通过不断的产生新的 Task,来完成数据不间断的导入。
-
-## Kafka 例行导入
-
-当前我们仅支持从 Kafka 系统进行例行导入。该部分会详细介绍 Kafka 例行导入使用方式和最佳实践。
-
-### 使用限制
-
-1. 支持无认证的 Kafka 访问,以及通过 SSL 方式认证的 Kafka 集群。
-2. 支持的消息格式为 csv 文本格式。每一个 message 为一行,且行尾**不包含**换行符。
-3. 仅支持 Kafka 0.10.0.0(含) 以上版本。
-
-### 创建例行导入任务
-
-创建例行导入任务的的详细语法可以连接到 Doris 后,执行 `HELP ROUTINE LOAD;` 查看语法帮助。这里主要详细介绍,创建作业时的注意事项。
-
-* columns_mapping
-
-    `columns_mapping` 主要用于指定表结构和 message 中的列映射关系,以及一些列的转换。如果不指定,Doris 会默认 message 中的列和表结构的列按顺序一一对应。虽然在正常情况下,如果源数据正好一一对应,则不指定也可以进行正常的数据导入。但是我们依然强烈建议用户**显式的指定列映射关系**。这样当表结构发生变化(比如增加一个 nullable 的列),或者源文件发生变化(比如增加了一列)时,导入任务依然可以继续进行。否则,当发生上述变动后,因为列映射关系不再一一对应,导入将报错。
-
-    在 `columns_mapping` 中我们同样可以使用一些内置函数进行列的转换。但需要注意函数参数对应的实际列类型。举例说明:
-
-    假设用户需要导入只包含 `k1` 一列的表,列类型为 `int`。并且需要将源文件中的 null 值转换为 0。该功能可以通过 `ifnull` 函数实现。正确是的使用方式如下:
-
-    `COLUMNS (xx, k1=ifnull(xx, "3"))`
-
-    注意这里我们使用 `"3"` 而不是 `3`,虽然 `k1` 的类型为 `int`。因为对于导入任务来说,源数据中的列类型都为 `varchar`,所以这里 `xx` 虚拟列的类型也为 `varchar`。所以我们需要使用 `"3"` 来进行对应的匹配,否则 `ifnull` 函数无法找到参数为 `(varchar, int)` 的函数签名,将出现错误。
-
-    再举例,假设用户需要导入只包含 `k1` 一列的表,列类型为 `int`。并且需要将源文件中的对应列进行处理:将负数转换为正数,而将正数乘以 100。这个功能可以通过 `case when` 函数实现,正确写法应如下:
-
-    `COLUMNS (xx, case when xx < 0 than cast(-xx as varchar) else cast((xx + '100') as varchar) end)`
-
-    注意这里我们需要将 `case when` 中所有的参数都最终转换为 varchar,才能得到期望的结果。
-
-* where_predicates
-
-    `where_predicates` 中的的列的类型,已经是实际的列类型了,所以无需向 `columns_mapping` 那样强制的转换为 varchar 类型。按照实际的列类型书写即可。
-
-* desired\_concurrent\_number
-
-    `desired_concurrent_number` 用于指定一个例行作业期望的并发度。即一个作业,最多有多少 task 同时在执行。对于 Kafka 导入而言,当前的实际并发度计算如下:
-
-    ```
-    Min(partition num, desired_concurrent_number, alive_backend_num, Config.max_routine_load_task_concurrrent_num)
-    ```
-
-    其中 `Config.max_routine_load_task_concurrrent_num` 是系统的一个默认的最大并发数限制。这是一个 FE 配置,可以通过改配置调整。默认为 5。
-
-    其中 partition num 指订阅的 Kafka topic 的 partition 数量。`alive_backend_num` 是当前正常的 BE 节点数。
-
-* max\_batch\_interval/max\_batch\_rows/max\_batch\_size
-
-    这三个参数用于控制单个任务的执行时间。其中任意一个阈值达到,则任务结束。其中 `max_batch_rows` 用于记录从 Kafka 中读取到的数据行数。`max_batch_size` 用于记录从 Kafka 中读取到的数据量,单位是字节。目前一个任务的消费速率大约为 5-10MB/s。
-
-    那么假设一行数据 500B,用户希望每 100MB 或 10 秒为一个 task。100MB 的预期处理时间是 10-20 秒,对应的行数约为 200000 行。则一个合理的配置为:
-
-    ```
-    "max_batch_interval" = "10",
-    "max_batch_rows" = "200000",
-    "max_batch_size" = "104857600"
-    ```
-
-    以上示例中的参数也是这些配置的默认参数。
-
-* max\_error\_number
-
-    `max_error_number` 用于控制错误率。在错误率过高的时候,作业会自动暂停。因为整个作业是面向数据流的,且由于数据流的无边界性,我们无法像其他导入任务一样,通过一个错误比例来计算错误率。因此这里提供了一种新的计算方式,来计算数据流中的错误比例。
-
-    我们设定了一个采样窗口。窗口的大小为 `max_batch_rows * 10`。在一个采样窗口内,如果错误行数超过 `max_error_number`,则作业被暂停。如果没有超过,则下一个窗口重新开始计算错误行数。
-
-    我们假设 `max_batch_rows` 为 200000,则窗口大小为 2000000。设 `max_error_number` 为 20000,即用户预期每 2000000 行的错误行为 20000。即错误率为 1%。但是因为不是每批次任务正好消费 200000 行,所以窗口的实际范围是 [2000000, 2200000],即有 10% 的统计误差。
-
-    错误行不包括通过 where 条件过滤掉的行。但是包括没有对应的 Doris 表中的分区的行。
-
-* data\_source\_properties
-
-    `data_source_properties` 中可以指定消费具体的 Kakfa partition。如果不指定,则默认消费所订阅的 topic 的所有 partition。
-
-    注意,当显式的指定了 partition,则导入作业不会再动态的检测 Kafka partition 的变化。如果没有指定,则会根据 kafka partition 的变化,动态调整需要消费的 partition。
-
-* strict\_mode
-
-    Routine load 导入可以开启 strict mode 模式。开启方式为在 job\_properties 中增加 ```"strict_mode" = "true"``` 。默认的 strict mode 为关闭。
-
-    strict mode 模式的意思是:对于导入过程中的列类型转换进行严格过滤。严格过滤的策略如下:
-
-    1. 对于列类型转换来说,如果 strict mode 为true,则错误的数据将被 filter。这里的错误数据是指:原始数据并不为空值,在参与列类型转换后结果为空值的这一类数据。
-
-    2. 对于导入的某列由函数变换生成时,strict mode 对其不产生影响。
-
-    3. 对于导入的某列类型包含范围限制的,如果原始数据能正常通过类型转换,但无法通过范围限制的,strict mode 对其也不产生影响。例如:如果类型是 decimal(1,0), 原始数据为 10,则属于可以通过类型转换但不在列声明的范围内。这种数据 strict 对其不产生影响。
-
-#### strict mode 与 source data 的导入关系
-
-这里以列类型为 TinyInt 来举例
-
->注:当表中的列允许导入空值时
-
-|source data | source data example | string to int   | strict_mode        | result|
-|------------|---------------------|-----------------|--------------------|---------|
-|空值        | \N                  | N/A             | true or false      | NULL|
-|not null    | aaa or 2000         | NULL            | true               | invalid data(filtered)|
-|not null    | aaa                 | NULL            | false              | NULL|
-|not null    | 1                   | 1               | true or false      | correct data|
-
-这里以列类型为 Decimal(1,0) 举例
-
->注:当表中的列允许导入空值时
-
-|source data | source data example | string to int   | strict_mode        | result|
-|------------|---------------------|-----------------|--------------------|--------|
-|空值        | \N                  | N/A             | true or false      | NULL|
-|not null    | aaa                 | NULL            | true               | invalid data(filtered)|
-|not null    | aaa                 | NULL            | false              | NULL|
-|not null    | 1 or 10             | 1               | true or false      | correct data|
-
-> 注意:10 虽然是一个超过范围的值,但是因为其类型符合 decimal的要求,所以 strict mode对其不产生影响。10 最后会在其他 ETL 处理流程中被过滤。但不会被 strict mode 过滤。
-
-#### 访问 SSL 认证的 Kafka 集群
-
-访问 SSL 认证的 Kafka 集群需要用户提供用于认证 Kafka Broker 公钥的证书文件(ca.pem)。如果 Kafka 集群同时开启了客户端认证,则还需提供客户端的公钥(client.pem)、密钥文件(client.key),以及密钥密码。这里所需的文件需要先通过 `CREAE FILE` 命令上传到 Doris 中,**并且 catalog 名称为 `kafka`**。`CREATE FILE` 命令的具体帮助可以参见 `HELP CREATE FILE;`。这里给出示例:
-
-1. 上传文件
-
-    ```
-    CREATE FILE "ca.pem" PROPERTIES("url" = "https://example_url/kafka-key/ca.pem", "catalog" = "kafka");
-    CREATE FILE "client.key" PROPERTIES("url" = "https://example_urlkafka-key/client.key", "catalog" = "kafka");
-    CREATE FILE "client.pem" PROPERTIES("url" = "https://example_url/kafka-key/client.pem", "catalog" = "kafka");
-    ```
-
-2. 创建例行导入作业
-
-    ```
-    CREATE ROUTINE LOAD db1.job1 on tbl1
-    PROPERTIES
-    (
-        "desired_concurrent_number"="1"
-    )
-    FROM KAFKA
-    (
-        "kafka_broker_list"= "broker1:9091,broker2:9091",
-        "kafka_topic" = "my_topic",
-        "property.security.protocol" = "ssl",
-        "property.ssl.ca.location" = "FILE:ca.pem",
-        "property.ssl.certificate.location" = "FILE:client.pem",
-        "property.ssl.key.location" = "FILE:client.key",
-        "property.ssl.key.password" = "abcdefg"
-    );
-    ```
-
-> Doris 通过 Kafka 的 C++ API `librdkafka` 来访问 Kafka 集群。`librdkafka` 所支持的参数可以参阅
->
-> `https://github.com/edenhill/librdkafka/blob/master/CONFIGURATION.md`
-
-
-### 查看导入作业状态
-
-查看**作业**状态的具体命令和示例可以通过 `HELP SHOW ROUTINE LOAD;` 命令查看。
-
-查看**任务**运行状态的具体命令和示例可以通过 `HELP SHOW ROUTINE LOAD TASK;` 命令查看。
-
-只能查看当前正在运行中的任务,已结束和未开始的任务无法查看。
-
-### 作业控制
-
-用户可以通过 `STOP/PAUSE/RESUME` 三个命令来控制作业的停止,暂停和重启。可以通过 `HELP STOP ROUTINE LOAD;`, `HELP PAUSE ROUTINE LOAD;` 以及 `HELP RESUME ROUTINE LOAD;` 三个命令查看帮助和示例。
-
-## 其他说明
-
-1. 例行导入作业和 ALTER TABLE 操作的关系
-
-    * 例行导入不会阻塞 SCHEMA CHANGE 和 ROLLUP 操作。但是注意如果 SCHEMA CHANGE 完成后,列映射关系无法匹配,则会导致作业的错误数据激增,最终导致作业暂停。建议通过在例行导入作业中显式指定列映射关系,以及通过增加 Nullable 列或带 Default 值的列来减少这类问题。
-    * 删除表的 Partition 可能会导致导入数据无法找到对应的 Partition,作业进入暂停。
-
-2. 例行导入作业和其他导入作业的关系(LOAD, DELETE, INSERT)
-
-    * 例行导入和其他 LOAD 作业以及 INSERT 操作没有冲突。
-    * 当执行 DELETE 操作时,对应表分区不能有任何正在执行的导入任务。所以在执行 DELETE 操作前,可能需要先暂停例行导入作业,并等待已下发的 task 全部完成后,才可以执行 DELETE。
-
-3. 例行导入作业和 DROP DATABASE/TABLE 操作的关系
-
-    当例行导入对应的 database 或 table 被删除后,作业会自动 CANCEL。
-
-4. kafka 类型的例行导入作业和 kafka topic 的关系
-
-    当用户在创建例行导入声明的 `kafka_topic` 在kafka集群中不存在时。
-
-    * 如果用户 kafka 集群的 broker 设置了 `auto.create.topics.enable = true`,则 `kafka_topic` 会先被自动创建,自动创建的 partition 个数是由**用户方的kafka集群**中的 broker 配置 `num.partitions` 决定的。例行作业会正常的不断读取该 topic 的数据。
-    * 如果用户 kafka 集群的 broker 设置了 `auto.create.topics.enable = false`, 则 topic 不会被自动创建,例行作业会在没有读取任何数据之前就被暂停,状态为 `PAUSED`。
-
-    所以,如果用户希望当 kafka topic 不存在的时候,被例行作业自动创建的话,只需要将**用户方的kafka集群**中的 broker 设置 `auto.create.topics.enable = true` 即可。
-
-## 相关参数
-
-一些系统配置参数会影响例行导入的使用。
-
-1. max\_routine\_load\_task\_concurrent\_num
-
-    FE 配置项,默认为 5,可以运行时修改。该参数限制了一个例行导入作业最大的子任务并发数。建议维持默认值。设置过大,可能导致同时并发的任务数过多,占用集群资源。
-
-2. max\_routine_load\_task\_num\_per\_be
-
-    FE 配置项,默认为5,可以运行时修改。该参数限制了每个 BE 节点最多并发执行的子任务个数。建议维持默认值。如果设置过大,可能导致并发任务数过多,占用集群资源。
-
-3. max\_routine\_load\_job\_num
-
-    FE 配置项,默认为100,可以运行时修改。该参数限制的例行导入作业的总数,包括 NEED_SCHEDULED, RUNNING, PAUSE 这些状态。超过后,不能在提交新的作业。
-
-4. max\_consumer\_num\_per\_group
-
-    BE 配置项,默认为 3。该参数表示一个子任务中最多生成几个 consumer 进行数据消费。对于 Kafka 数据源,一个 consumer 可能消费一个或多个 kafka partition。假设一个任务需要消费 6 个 kafka partition,则会生成 3 个 consumer,每个 consumer 消费 2 个 partition。如果只有 2 个 partition,则只会生成 2 个 consumer,每个 consumer 消费 1 个 partition。
-
-5. push\_write\_mbytes\_per\_sec
-
-    BE 配置项。默认为 10,即 10MB/s。该参数为导入通用参数,不限于例行导入作业。该参数限制了导入数据写入磁盘的速度。对于 SSD 等高性能存储设备,可以适当增加这个限速。
-
-6. max\_tolerable\_backend\_down\_num
-    FE 配置项,默认值是0。在满足某些条件下,Doris可PAUSED的任务重新调度,即变成RUNNING。该参数为0代表只有所有BE节点是alive状态才允许重新调度。
-
-7. period\_of\_auto\_resume\_min
-    FE 配置项,默认是5分钟。Doris重新调度,只会在5分钟这个周期内,最多尝试3次. 如果3次都失败则锁定当前任务,后续不在进行调度。但可通过人为干预,进行手动恢复。
-
diff --git a/docs/documentation/cn/administrator-guide/load-data/stream-load-manual.md b/docs/documentation/cn/administrator-guide/load-data/stream-load-manual.md
deleted file mode 100644
index 3010236..0000000
--- a/docs/documentation/cn/administrator-guide/load-data/stream-load-manual.md
+++ /dev/null
@@ -1,330 +0,0 @@
-<!-- 
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-# Stream load
-
-Stream load 是一个同步的导入方式,用户通过发送 HTTP 协议发送请求将本地文件或数据流导入到 Doris 中。Stream load 同步执行导入并返回导入结果。用户可直接通过请求的返回体判断本次导入是否成功。
-
-Stream load 主要适用于导入本地文件,或通过程序导入数据流中的数据。
-
-## 基本原理
-
-下图展示了 Stream load 的主要流程,省略了一些导入细节。
-
-```
-                         ^      +
-                         |      |
-                         |      | 1A. User submit load to FE
-                         |      |
-                         |   +--v-----------+
-                         |   | FE           |
-5. Return result to user |   +--+-----------+
-                         |      |
-                         |      | 2. Redirect to BE
-                         |      |
-                         |   +--v-----------+
-                         +---+Coordinator BE| 1B. User submit load to BE
-                             +-+-----+----+-+
-                               |     |    |
-                         +-----+     |    +-----+
-                         |           |          | 3. Distrbute data
-                         |           |          |
-                       +-v-+       +-v-+      +-v-+
-                       |BE |       |BE |      |BE |
-                       +---+       +---+      +---+
-```
-
-Stream load 中,Doris 会选定一个节点作为 Coordinator 节点。该节点负责接数据并分发数据到其他数据节点。
-
-用户通过 HTTP 协议提交导入命令。如果提交到 FE,则 FE 会通过 HTTP redirect 指令将请求转发给某一个 BE。用户也可以直接提交导入命令给某一指定 BE。
-
-导入的最终结果由 Coordinator BE 返回给用户。
-
-## 基本操作
-### 创建导入
-
-Stream load 通过 HTTP 协议提交和传输数据。这里通过 `curl` 命令展示如何提交导入。
-
-用户也可以通过其他 HTTP client 进行操作。
-
-```
-curl --location-trusted -u user:passwd [-H ""...] -T data.file -XPUT http://fe_host:http_port/api/{db}/{table}/_stream_load
-
-Header 中支持属性见下面的 ‘导入任务参数’ 说明 
-格式为: -H "key1:value1"
-```
-
-示例:
-
-```
-curl --location-trusted -u root -T date -H "label:123" http://abc.com:8030/api/test/date/_stream_load
-```
-创建导入的详细语法帮助执行 ```HELP STREAM LOAD``` 查看, 下面主要介绍创建 Stream load 的部分参数意义。
-
-#### 签名参数
-
-+ user/passwd
-
-    Stream load 由于创建导入的协议使用的是 HTTP 协议,通过 Basic access authentication 进行签名。Doris 系统会根据签名验证用户身份和导入权限。
-    
-#### 导入任务参数
-
-Stream load 由于使用的是 HTTP 协议,所以所有导入任务有关的参数均设置在 Header 中。下面主要介绍了 Stream load 导入任务参数的部分参数意义。
-
-+ label
-
-    导入任务的标识。每个导入任务,都有一个在单 database 内部唯一的 label。label 是用户在导入命令中自定义的名称。通过这个 label,用户可以查看对应导入任务的执行情况。
-    
-    label 的另一个作用,是防止用户重复导入相同的数据。**强烈推荐用户同一批次数据使用相同的 label。这样同一批次数据的重复请求只会被接受一次,保证了 At-Most-Once**
-    
-    当 label 对应的导入作业状态为 CANCELLED 时,该 label 可以再次被使用。
-    
-+ max\_filter\_ratio
-
-    导入任务的最大容忍率,默认为0容忍,取值范围是0~1。当导入的错误率超过该值,则导入失败。
-    
-    如果用户希望忽略错误的行,可以通过设置这个参数大于 0,来保证导入可以成功。
-    
-    计算公式为:
-    
-    ``` (dpp.abnorm.ALL / (dpp.abnorm.ALL + dpp.norm.ALL ) ) > max_filter_ratio ```
-    
-    ```dpp.abnorm.ALL``` 表示数据质量不合格的行数。如类型不匹配,列数不匹配,长度不匹配等等。
-    
-    ```dpp.norm.ALL``` 指的是导入过程中正确数据的条数。可以通过 ```SHOW LOAD``` 命令查询导入任务的正确数据量。
-    
-    原始文件的行数 = `dpp.abnorm.ALL + dpp.norm.ALL`
-    
-+ where 
-
-    导入任务指定的过滤条件。Stream load 支持对原始数据指定 where 语句进行过滤。被过滤的数据将不会被导入,也不会参与 filter ratio 的计算,但会被计入```num_rows_unselected```。 
-    
-+ partition
-
-    待导入表的 Partition 信息,如果待导入数据不属于指定的 Partition 则不会被导入。这些数据将计入 ```dpp.abnorm.ALL ```
-    
-+ columns
-
-    待导入数据的函数变换配置,目前 Stream load 支持的函数变换方法包含列的顺序变化以及表达式变换,其中表达式变换的方法与查询语句的一致。
-    
-    ```
-    列顺序变换例子:原始数据有两列,目前表也有两列(c1,c2)但是原始文件的第一列对应的是目标表的c2列, 而原始文件的第二列对应的是目标表的c1列,则写法如下:
-    columns: c2,c1
-    
-    表达式变换例子:原始文件有两列,目标表也有两列(c1,c2)但是原始文件的两列均需要经过函数变换才能对应目标表的两列,则写法如下:
-    columns: tmp_c1, tmp_c2, c1 = year(tmp_c1), c2 = month(tmp_c2)
-    其中 tmp_*是一个占位符,代表的是原始文件中的两个原始列。
-    ```
-
-+ exec\_mem\_limit
-
-    导入内存限制。默认为 2GB,单位为字节。
-
-+ strict\_mode
-
-    Stream load 导入可以开启 strict mode 模式。开启方式为在 HEADER 中声明 ```strict_mode=true``` 。默认的 strict mode 为关闭。
-
-    strict mode 模式的意思是:对于导入过程中的列类型转换进行严格过滤。严格过滤的策略如下:
-
-    1. 对于列类型转换来说,如果 strict mode 为true,则错误的数据将被 filter。这里的错误数据是指:原始数据并不为空值,在参与列类型转换后结果为空值的这一类数据。
-
-    2. 对于导入的某列由函数变换生成时,strict mode 对其不产生影响。
-    
-    3. 对于导入的某列类型包含范围限制的,如果原始数据能正常通过类型转换,但无法通过范围限制的,strict mode 对其也不产生影响。例如:如果类型是 decimal(1,0), 原始数据为 10,则属于可以通过类型转换但不在列声明的范围内。这种数据 strict 对其不产生影响。
-
-#### strict mode 与 source data 的导入关系
-
-这里以列类型为 TinyInt 来举例
-
->注:当表中的列允许导入空值时
-
-|source data | source data example | string to int   | strict_mode        | result|
-|------------|---------------------|-----------------|--------------------|---------|
-|空值        | \N                  | N/A             | true or false      | NULL|
-|not null    | aaa or 2000         | NULL            | true               | invalid data(filtered)|
-|not null    | aaa                 | NULL            | false              | NULL|
-|not null    | 1                   | 1               | true or false      | correct data|
-
-这里以列类型为 Decimal(1,0) 举例
- 
->注:当表中的列允许导入空值时
-
-|source data | source data example | string to int   | strict_mode        | result|
-|------------|---------------------|-----------------|--------------------|--------|
-|空值        | \N                  | N/A             | true or false      | NULL|
-|not null    | aaa                 | NULL            | true               | invalid data(filtered)|
-|not null    | aaa                 | NULL            | false              | NULL|
-|not null    | 1 or 10             | 1               | true or false      | correct data|
-
-> 注意:10 虽然是一个超过范围的值,但是因为其类型符合 decimal的要求,所以 strict mode对其不产生影响。10 最后会在其他 ETL 处理流程中被过滤。但不会被 strict mode 过滤。
-    
-
-### 返回结果
-
-由于 Stream load 是一种同步的导入方式,所以导入的结果会通过创建导入的返回值直接返回给用户。
-
-示例:
-
-```
-{
-    "TxnId": 1003,
-    "Label": "b6f3bc78-0d2c-45d9-9e4c-faa0a0149bee",
-    "Status": "Success",
-    "ExistingJobStatus": "FINISHED", // optional
-    "Message": "OK",
-    "NumberTotalRows": 1000000,
-    "NumberLoadedRows": 1000000,
-    "NumberFilteredRows": 1,
-    "NumberUnselectedRows": 0,
-    "LoadBytes": 40888898,
-    "LoadTimeMs": 2144,
-    "ErrorURL": "http://192.168.1.1:8042/api/_load_error_log?file=__shard_0/error_log_insert_stmt_db18266d4d9b4ee5-abb00ddd64bdf005_db18266d4d9b4ee5_abb00ddd64bdf005"
-}
-```
-
-下面主要解释了 Stream load 导入结果参数:
-
-+ TxnId:导入的事务ID。用户可不感知。
-
-+ Label:导入 Label。由用户指定或系统自动生成。
-    
-+ Status:导入完成状态。
-    
-    "Success":表示导入成功。
-    
-    "Publish Timeout":该状态也表示导入已经完成,只是数据可能会延迟可见,无需重试。
-    
-    "Label Already Exists":Label 重复,需更换 Label。
-    
-    "Fail":导入失败。
-    
-+ ExistingJobStatus:已存在的 Label 对应的导入作业的状态。
-
-    这个字段只有在当 Status 为 "Label Already Exists" 是才会显示。用户可以通过这个状态,知晓已存在 Label 对应的导入作业的状态。"RUNNING" 表示作业还在执行,"FINISHED" 表示作业成功。
-
-+ Message:导入错误信息。
-
-+ NumberTotalRows:导入总处理的行数。
-
-+ NumberLoadedRows:成功导入的行数。
-
-+ NumberFilteredRows:数据质量不合格的行数。
-
-+ NumberUnselectedRows:被 where 条件过滤的行数。
-
-+ LoadBytes:导入的字节数。
-
-+ LoadTimeMs:导入完成时间。单位毫秒。
-
-+ ErrorURL:如果有数据质量问题,通过访问这个 URL 查看具体错误行。
-
-> 注意:由于 Stream load 是同步的导入方式,所以并不会在 Doris 系统中记录导入信息,用户无法异步的通过查看导入命令看到 Stream load。使用时需监听创建导入请求的返回值获取导入结果。
-
-### 取消导入
-
-用户无法手动取消 Stream load,Stream load 在超时或者导入错误后会被系统自动取消。
-
-## 相关系统配置
-
-### FE 配置
-
-+ stream\_load\_default\_timeout\_second
-
-    导入任务的超时时间(以秒为单位),导入任务在设定的 timeout 时间内未完成则会被系统取消,变成 CANCELLED。
-    
-    默认的 timeout 时间为 600 秒。如果导入的源文件无法在规定时间内完成导入,用户可以在 stream load 请求中设置单独的超时时间。
-
-    或者调整 FE 的参数```stream_load_default_timeout_second``` 来设置全局的默认超时时间。
-
-### BE 配置
-
-+ streaming\_load\_max\_mb
-
-    Stream load 的最大导入大小,默认为 10G,单位是 MB。如果用户的原始文件超过这个值,则需要调整 BE 的参数 ```streaming_load_max_mb```。
-    
-## 最佳实践
-
-### 应用场景
-
-使用 Stream load 的最合适场景就是原始文件在内存中,或者在磁盘中。其次,由于 Stream load 是一种同步的导入方式,所以用户如果希望用同步方式获取导入结果,也可以使用这种导入。
-
-### 数据量
-
-由于 Stream load 的原理是由 BE 发起的导入并分发数据,建议的导入数据量在 1G 到 10G 之间。由于默认的最大 Stream load 导入数据量为 10G,所以如果要导入超过 10G 的文件需要修改 BE 的配置 ```streaming_load_max_mb```
-
-```
-比如:待导入文件大小为15G
-修改 BE 配置 streaming_load_max_mb 为 16000 即可。
-```
-
-Stream load 的默认超时为 300秒,按照 Doris 目前最大的导入限速来看,约超过 3G 的文件就需要修改导入任务默认超时时间了。
-    
-```
-导入任务超时时间 = 导入数据量 / 10M/s (具体的平均导入速度需要用户根据自己的集群情况计算)
-例如:导入一个 10G 的文件
-timeout = 1000s 等于 10G / 10M/s
-```
-    
-### 完整例子
-数据情况: 数据在发送导入请求端的本地磁盘路径 /home/store_sales 中,导入的数据量约为 15G,希望导入到数据库 bj_sales 的表 store_sales 中。
-
-集群情况:Stream load 的并发数不受集群大小影响。
-
-+ step1: 导入文件大小是否超过默认的最大导入大小10G
-
-    ```
-    修改 BE conf
-    streaming_load_max_mb = 16000
-    ```
-+ step2: 计算大概的导入时间是否超过默认 timeout 值
-
-    ```
-    导入时间 ≈ 15000 / 10 = 1500s
-    超过了默认的 timeout 时间,需要修改 FE 的配置
-    stream_load_default_timeout_second = 1500
-    ```
-    
-+ step3:创建导入任务
-
-    ```
-    curl --location-trusted -u user:password -T /home/store_sales -H "label:abc" http://abc.com:8000/api/bj_sales/store_sales/_stream_load
-    ```
-
-## 常见问题
-
-* Label Already Exists
-
-    Stream load 的 Label 重复排查步骤如下:
-
-    1. 是否和其他导入方式已经存在的导入 Label 冲突:
-
-       由于 Doris 系统中导入的 Label 不区分导入方式,所以存在其他导入方式使用了相同 Label 的问题。
-    
-       通过 ```SHOW LOAD WHERE LABEL = “xxx”```,其中 xxx 为重复的 Label 字符串,查看是否已经存在一个 FINISHED 导入的 Label 和用户申请创建的 Label 相同。
-    
-    2. 是否 Stream load 同一个作业被重复提交了
-
-       由于 Stream load 是 HTTP 协议提交创建导入任务,一般各个语言的 HTTP Client 均会自带请求重试逻辑。Doris 系统在接受到第一个请求后,已经开始操作 Stream load,但是由于没有及时返回给 Client 端结果, Client 端会发生再次重试创建请求的情况。这时候 Doris 系统由于已经在操作第一个请求,所以第二个请求已经就会被报 Label Already Exists 的情况。
-    
-       排查上述可能的方法:使用 Label 搜索 FE Master 的日志,看是否存在同一个 Label 出现了两次 ```redirect load action to destination= ``` 的情况。如果有就说明,请求被 Client 端重复提交了。
-    
-       建议用户根据当前请求的数据量,计算出大致导入的时间,并根据导入超时时间改大 Client 端的请求超时时间,避免请求被 Client 端多次提交。
-
-
-
diff --git a/docs/documentation/cn/administrator-guide/materialized-view/index.rst b/docs/documentation/cn/administrator-guide/materialized-view/index.rst
deleted file mode 100644
index 280d782..0000000
--- a/docs/documentation/cn/administrator-guide/materialized-view/index.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-=============
-物化视图
-=============
-
-.. toctree::
-    :maxdepth: 2
-    :glob:
-
-    *
diff --git a/docs/documentation/cn/administrator-guide/operation/disk-capacity.md b/docs/documentation/cn/administrator-guide/operation/disk-capacity.md
deleted file mode 100644
index 8c9746f..0000000
--- a/docs/documentation/cn/administrator-guide/operation/disk-capacity.md
+++ /dev/null
@@ -1,141 +0,0 @@
-<!-- 
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-# 磁盘空间管理
-
-本文档主要介绍和磁盘存储空间有关的系统参数和处理策略。
-
-Doris 的数据磁盘空间如果不加以控制,会因磁盘写满而导致进程挂掉。因此我们监测磁盘的使用率和剩余空间,通过设置不同的警戒水位,来控制 Doris 系统中的各项操作,尽量避免发生磁盘被写满的情况。
-
-## 名词解释
-
-* FE:Frontend,Doris 的前端节点。负责元数据管理和请求接入。
-* BE:Backend,Doris 的后端节点。负责查询执行和数据存储。
-* Data Dir:数据目录,在 BE 配置文件 `be.conf` 的 `storage_root_path` 中指定的各个数据目录。通常一个数据目录对应一个磁盘、因此下文中 **磁盘** 也指代一个数据目录。
-
-## 基本原理
-
-BE 定期(每隔一分钟)会向 FE 汇报一次磁盘使用情况。FE 记录这些统计值,并根据这些统计值,限制不同的操作请求。
-
-在 FE 中分别设置了 **高水位(High Watermark)** 和 **危险水位(Flood Stage)** 两级阈值。危险水位高于高水位。当磁盘使用率高于高水位时,Doris 会限制某些操作的执行(如副本均衡等)。而如果高于危险水位,则会禁止某些操作的执行(如导入)。
-
-同时,在 BE 上也设置了 **危险水位(Flood Stage)**。考虑到 FE 并不能完全及时的检测到 BE 上的磁盘使用情况,以及无法控制某些 BE 自身运行的操作(如 Compaction)。因此 BE 上的危险水位用于 BE 主动拒绝和停止某些操作,达到自我保护的目的。
-
-## FE 参数
-
-**高水位:**
-
-```
-storage_high_watermark_usage_percent 默认 85 (85%)。
-storage_min_left_capacity_bytes 默认 2GB。
-```
-
-当磁盘空间使用率**大于** `storage_high_watermark_usage_percent`,**或者** 磁盘空间剩余大小**小于** `storage_min_left_capacity_bytes` 时,该磁盘不会再被作为以下操作的目的路径:
-    
-* Tablet 均衡操作(Balance)
-* Colocation 表数据分片的重分布(Relocation)
-* Decommission
-
-**危险水位:**
-
-```
-storage_flood_stage_usage_percent 默认 95 (95%)。
-storage_flood_stage_left_capacity_bytes 默认 1GB。
-```
-
-当磁盘空间使用率**大于** `storage_flood_stage_usage_percent`,**并且** 磁盘空间剩余大小**小于** `storage_flood_stage_left_capacity_bytes` 时,该磁盘不会再被作为以下操作的目的路径,并禁止某些操作:
-    
-* Tablet 均衡操作(Balance)
-* Colocation 表数据分片的重分布(Relocation)
-* 副本补齐
-* 恢复操作(Restore)
-* 数据导入(Load/Insert)
-
-## BE 参数
-
-**危险水位:**
-
-```
-capacity_used_percent_flood_stage 默认 95 (95%)。
-capacity_min_left_bytes_flood_stage 默认 1GB。
-```
-
-当磁盘空间使用率**大于** `storage_flood_stage_usage_percent`,**并且** 磁盘空间剩余大小**小于** `storage_flood_stage_left_capacity_bytes` 时,该磁盘上的以下操作会被禁止:
-
-* Base/Cumulative Compaction。
-* 数据写入。包括各种导入操作。
-* Clone Task。通常发生于副本修复或均衡时。
-* Push Task。发生在 Hadoop 导入的 Loading 阶段,下载文件。
-* Alter Task。Schema Change 或 Rollup 任务。
-* Download Task。恢复操作的 Downloading 阶段。
-    
-## 磁盘空间释放
-
-当磁盘空间高于高水位甚至危险水位后,很多操作都会被禁止。此时可以尝试通过以下方式减少磁盘使用率,恢复系统。
-
-* 删除表或分区
-
-    通过删除表或分区的方式,能够快速降低磁盘空间使用率,恢复集群。**注意:只有 `DROP` 操作可以达到快速降低磁盘空间使用率的目的,`DELETE` 操作不可以。**
-
-    ```
-    DROP TABLE tbl;
-    ALTER TABLE tbl DROP PARTITION p1;
-    ```
-    
-* 扩容 BE
-
-    扩容后,数据分片会自动均衡到磁盘使用率较低的 BE 节点上。扩容操作会根据数据量及节点数量不同,在数小时或数天后使集群到达均衡状态。
-    
-* 修改表或分区的副本
-
-    可以将表或分区的副本数降低。比如默认3副本可以降低为2副本。该方法虽然降低了数据的可靠性,但是能够快速的降低磁盘使用率,使集群恢复正常。该方法通常用于紧急恢复系统。请在恢复后,通过扩容或删除数据等方式,降低磁盘使用率后,将副本数恢复为 3。
-    
-    修改副本操作为瞬间生效,后台会自动异步的删除多余的副本。
-    
-    ```
-    ALTER TABLE tbl MODIFY PARTITION p1 SET("replication_num" = "2");
-    ```
-    
-* 删除多余文件
-
-    当 BE 进程已经因为磁盘写满而挂掉并无法启动时(此现象可能因 FE 或 BE 检测不及时而发生)。需要通过删除数据目录下的一些临时文件,保证 BE 进程能够启动。以下目录中的文件可以直接删除:
-    
-    * log/:日志目录下的日志文件。
-    * snapshot/: 快照目录下的快照文件。
-    * trash/:回收站中的文件。
-
-* 删除数据文件(危险!!!)
-
-    当以上操作都无法释放空间时,需要通过删除数据文件来释放空间。数据文件在指定数据目录的 `data/` 目录下。删除数据分片(Tablet)必须先确保该 Tablet 至少有一个副本是正常的,否则**删除唯一副本会导致数据丢失**。假设我们要删除 id 为 12345 的 Tablet:
-    
-    * 找到 Tablet 对应的目录,通常位于 `data/shard_id/tablet_id/` 下。如:
-
-        ```data/0/12345/```
-        
-    * 记录 tablet id 和 schema hash。其中 schema hash 为上一步目录的下一级目录名。如下为 352781111:
-
-        ```data/0/12345/352781111```
-
-    * 删除数据目录:
-
-        ```rm -rf data/0/12345/```
-
-    * 删除 Tablet 元数据(具体参考 [Tablet 元数据管理工具](./tablet-meta-tool.md))
-
-        ```./lib/meta_tool --operation=delete_header --root_path=/path/to/root_path --tablet_id=12345 --schema_hash= 352781111```
\ No newline at end of file
diff --git a/docs/documentation/cn/administrator-guide/operation/index.rst b/docs/documentation/cn/administrator-guide/operation/index.rst
deleted file mode 100644
index 978ac3d..0000000
--- a/docs/documentation/cn/administrator-guide/operation/index.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-=============
-运维操作
-=============
-
-.. toctree::
-    :maxdepth: 2
-    :glob:
-
-    *
diff --git a/docs/documentation/cn/administrator-guide/operation/metadata-operation.md b/docs/documentation/cn/administrator-guide/operation/metadata-operation.md
deleted file mode 100644
index 29d59d2..0000000
--- a/docs/documentation/cn/administrator-guide/operation/metadata-operation.md
+++ /dev/null
@@ -1,335 +0,0 @@
-<!-- 
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-# 元数据运维
-
-本文档主要介绍在实际生产环境中,如何对 Doris 的元数据进行管理。包括 FE 节点建议的部署方式、一些常用的操作方法、以及常见错误的解决方法。
-
-在阅读本文当前,请先阅读 [Doris 元数据设计文档](../../internal/metadata-design.md) 了解 Doris 元数据的工作原理。
-
-## 重要提示
-
-* 当前元数据的设计是无法向后兼容的。即如果新版本有新增的元数据结构变动(可以查看 FE 代码中的 `FeMetaVersion.java` 文件中是否有新增的 VERSION),那么在升级到新版本后,通常是无法再回滚到旧版本的。所以,在升级 FE 之前,请务必按照 [升级文档](../../installing/upgrade.md) 中的操作,测试元数据兼容性。
-
-## 元数据目录结构
-
-我们假设在 fe.conf 中指定的 `meta_dir` 的路径为 `/path/to/palo-meta`。那么一个正常运行中的 Doris 集群,元数据的目录结构应该如下:
-
-```
-/path/to/palo-meta/
-            |-- bdb/
-            |   |-- 00000000.jdb
-            |   |-- je.config.csv
-            |   |-- je.info.0
-            |   |-- je.info.0.lck
-            |   |-- je.lck
-            |   `-- je.stat.csv
-            `-- image/
-                |-- ROLE
-                |-- VERSION
-                `-- image.xxxx
-```
-
-1. bdb 目录
-
-    我们将 [bdbje](https://www.oracle.com/technetwork/database/berkeleydb/overview/index-093405.html) 作为一个分布式的 kv 系统,存放元数据的 journal。这个 bdb 目录相当于 bdbje 的 “数据目录”。
-    
-    其中 `.jdb` 后缀的是 bdbje 的数据文件。这些数据文件会随着元数据 journal 的不断增多而越来越多。当 Doris 定期做完 image 后,旧的日志就会被删除。所以正常情况下,这些数据文件的总大小从几 MB 到几 GB 不等(取决于使用 Doris 的方式,如导入频率等)。当数据文件的总大小大于 10GB,则可能需要怀疑是否是因为 image 没有成功,或者分发 image 失败导致的历史 journal 一直无法删除。
-    
-    `je.info.0` 是 bdbje 的运行日志。这个日志中的时间是 UTC+0 时区的。我们可能在后面的某个版本中修复这个问题。通过这个日志,也可以查看一些 bdbje 的运行情况。
-
-2. image 目录
-
-    image 目录用于存放 Doris 定期生成的元数据镜像文件。通常情况下,你会看到有一个 `image.xxxxx` 的镜像文件。其中 `xxxxx` 是一个数字。这个数字表示该镜像包含 `xxxxx` 号之前的所有元数据 journal。而这个文件的生成时间(通过 `ls -al` 查看即可)通常就是镜像的生成时间。
-    
-    你也可能会看到一个 `image.ckpt` 文件。这是一个正在生成的元数据镜像。通过 `du -sh` 命令应该可以看到这个文件大小在不断变大,说明镜像内容正在写入这个文件。当镜像写完后,会自动重名为一个新的 `image.xxxxx` 并替换旧的 image 文件。
-    
-    只有角色为 Master 的 FE 才会主动定期生成 image 文件。每次生成完后,都会推送给其他非 Master 角色的 FE。当确认其他所有 FE 都收到这个 image 后,Master FE 会删除 bdbje 中旧的元数据 journal。所以,如果 image 生成失败,或者 image 推送给其他 FE 失败时,都会导致 bdbje 中的数据不断累积。
-    
-    `ROLE` 文件记录了 FE 的类型(FOLLOWER 或 OBSERVER),是一个文本文件。
-    
-    `VERSION` 文件记录了这个 Doris 集群的 cluster id,以及用于各个节点之间访问认证的 token,也是一个文本文件。
-    
-    `ROLE` 文件和 `VERSION` 文件只可能同时存在,或同时不存在(如第一次启动时)。
-
-## 基本操作
-
-### 启动单节点 FE
-
-单节点 FE 是最基本的一种部署方式。一个完整的 Doris 集群,至少需要一个 FE 节点。当只有一个 FE 节点时,这个节点的类型为 Follower,角色为 Master。
-
-1. 第一次启动
-
-    1. 假设在 fe.conf 中指定的 `meta_dir` 的路径为 `/path/to/palo-meta`。
-    2. 确保 `/path/to/palo-meta` 已存在,权限正确,且目录为空。
-    3. 直接通过 `sh bin/start_fe.sh` 即可启动。
-    4. 启动后,你应该可以在 fe.log 中看到如下日志:
-    
-        * Palo FE starting...
-        * image does not exist: /path/to/palo-meta/image/image.0
-        * transfer from INIT to UNKNOWN
-        * transfer from UNKNOWN to MASTER
-        * the very first time to open bdb, dbname is 1
-        * start fencing, epoch number is 1
-        * finish replay in xxx msec
-        * QE service start
-        * thrift server started
-
-        以上日志不一定严格按照这个顺序,但基本类似。
-
-    5. 单节点 FE 的第一次启动通常不会遇到问题。如果你没有看到以上日志,一般来说是没有仔细按照文档步骤操作,请仔细阅读相关 wiki。
-
-2. 重启
-
-    1. 直接使用 `sh bin/start_fe.sh` 可以重新启动已经停止的 FE 节点。
-    2. 重启后,你应该可以在 fe.log 中看到如下日志:
-
-        * Palo FE starting...
-        * finished to get cluster id: xxxx, role: FOLLOWER and node name: xxxx
-        * 如果重启前还没有 image 产生,则会看到:
-            * image does not exist: /path/to/palo-meta/image/image.0
-            
-        * 如果重启前有 image 产生,则会看到:
-            * start load image from /path/to/palo-meta/image/image.xxx. is ckpt: false
-            * finished load image in xxx ms
-
-        * transfer from INIT to UNKNOWN
-        * replayed journal id is xxxx, replay to journal id is yyyy
-        * transfer from UNKNOWN to MASTER
-        * finish replay in xxx msec
-        * master finish replay journal, can write now.
-        * begin to generate new image: image.xxxx
-        *  start save image to /path/to/palo-meta/image/image.ckpt. is ckpt: true
-        *  finished save image /path/to/palo-meta/image/image.ckpt in xxx ms. checksum is xxxx
-        *  push image.xxx to other nodes. totally xx nodes, push successed xx nodes
-        * QE service start
-        * thrift server started
-
-        以上日志不一定严格按照这个顺序,但基本类似。
-        
-3. 常见问题
-
-    对于单节点 FE 的部署,启停通常不会遇到什么问题。如果有问题,请先参照相关 wiki,仔细核对你的操作步骤。
-
-### 添加 FE
-
-添加 FE 流程在 [部署和升级文档](https://github.com/apache/incubator-doris/wiki/Doris-Deploy-%26-Upgrade) 有详细介绍,不再赘述。这里主要说明一些注意事项,以及常见问题。
-
-1. 注意事项
-
-    * 在添加新的 FE 之前,一定先确保当前的 Master FE 运行正常(连接是否正常,JVM 是否正常,image 生成是否正常,bdbje 数据目录是否过大等等)
-    * 第一次启动新的 FE,一定确保添加了 `-helper` 参数指向 Master FE。再次启动时可不用添加 `-helper`。(如果指定了 `-helper`,FE 会直接询问 helper 节点自己的角色,如果没有指定,FE会尝试从 `palo-meta/image/` 目录下的 `ROLE` 和 `VERSION` 文件中获取信息)。
-    * 第一次启动新的 FE,一定确保这个 FE 的 `meta_dir` 已经创建、权限正确且为空。
-    * 启动新的 FE,和执行 `ALTER SYSTEM ADD FOLLOWER/OBSERVER` 语句在元数据添加 FE,这两个操作的顺序没有先后要求。如果先启动了新的 FE,而没有执行语句,则新的 FE 日志中会一直滚动 `current node is not added to the group. please add it first.` 字样。当执行语句后,则会进入正常流程。
-    * 请确保前一个 FE 添加成功后,再添加下一个 FE。
-    * 建议直接连接到 MASTER FE 执行 `ALTER SYSTEM ADD FOLLOWER/OBSERVER` 语句。
-
-2. 常见问题
-
-    1. this node is DETACHED
-    
-        当第一次启动一个待添加的 FE 时,如果 Master FE 上的 palo-meta/bdb 中的数据很大,则可能在待添加的 FE 日志中看到 `this node is DETACHED.` 字样。这时,bdbje 正在复制数据,你可以看到待添加的 FE 的 `bdb/` 目录正在变大。这个过程通常会在数分钟不等(取决于 bdbje 中的数据量)。之后,fe.log 中可能会有一些 bdbje 相关的错误堆栈信息。如果最终日志中显示 `QE service start` 和 `thrift server started`,则通常表示启动成功。可以通过 mysql-client 连接这个 FE 尝试操作。如果没有出现这些字样,则可能是 bdbje 复制日志超时等问题。这时,直接再次重启这个 FE,通常即可解决问题。
-        
-    2. 各种原因导致添加失败
-
-        * 如果添加的是 OBSERVER,因为 OBSERVER 类型的 FE 不参与元数据的多数写,理论上可以随意启停。因此,对于添加 OBSERVER 失败的情况。可以直接杀死 OBSERVER FE 的进程,清空 OBSERVER 的元数据目录后,重新进行一遍添加流程。
-
-        * 如果添加的是 FOLLOWER,因为 FOLLOWER 是参与元数据多数写的。所以有可能FOLLOWER 已经加入 bdbje 选举组内。如果这时只有两个 FOLLOWER 节点(包括 MASTER),那么停掉一个 FE,可能导致另一个 FE 也因无法进行多数写而退出。此时,我们应该先通过 `ALTER SYSTEM DROP FOLLOWER` 命令,从元数据中删除新添加的 FOLLOWER 节点,然后再杀死 FOLLOWER 进程,清空元数据,重新进行一遍添加流程。
-
-    
-### 删除 FE
-    
-通过 `ALTER SYSTEM DROP FOLLOWER/OBSERVER` 命令即可删除对应类型的 FE。以下有几点注意事项:
-
-* 对于 OBSERVER 类型的 FE,直接 DROP 即可,无风险。
-
-* 对于 FOLLOWER 类型的 FE。首先,应保证在有奇数个 FOLLOWER 的情况下(3个或以上),开始删除操作。
-
-    1. 如果删除非 MASTER 角色的 FE,建议连接到 MASTER FE,执行 DROP 命令,再杀死进程即可。
-    2. 如果要删除 MASTER FE,先确认有奇数个 FOLLOWER FE 并且运行正常。然后先杀死 MASTER FE 的进程。这时会有某一个 FE 被选举为 MASTER。在确认剩下的 FE 运行正常后,连接到新的 MASTER FE,执行 DROP 命令删除之前老的 MASTER FE 即可。
-
-## 高级操作
-
-### 故障恢复
-
-FE 有可能因为某些原因出现无法启动 bdbje、FE 之间无法同步等问题。现象包括无法进行元数据写操作、没有 MASTER 等等。这时,我们需要手动操作来恢复 FE。手动恢复 FE 的大致原理,是先通过当前 `meta_dir` 中的元数据,启动一个新的 MASTER,然后再逐台添加其他 FE。请严格按照如下步骤操作:
-
-1. 首先,停止所有 FE 进程,同时停止一切业务访问。保证在元数据恢复期间,不会因为外部访问导致其他不可预期的问题。
-
-2. 确认哪个 FE 节点的元数据是最新:
-
-    * 首先,**务必先备份所有 FE 的 `meta_dir` 目录。**
-    * 通常情况下,Master FE 的元数据是最新的。可以查看 `meta_dir/image` 目录下,image.xxxx 文件的后缀,数字越大,则表示元数据越新。
-    * 通常,通过比较所有 FOLLOWER FE 的 image 文件,找出最新的元数据即可。
-    * 之后,我们要使用这个拥有最新元数据的 FE 节点,进行恢复。
-    * 如果使用 OBSERVER 节点的元数据进行恢复会比较麻烦,建议尽量选择 FOLLOWER 节点。
-
-3. 以下操作都在由第2步中选择出来的 FE 节点上进行。
-
-    1. 如果该节点是一个 OBSERVER,先将 `meta_dir/image/ROLE` 文件中的 `role=OBSERVER` 改为 `role=FOLLOWER`。(从 OBSERVER 节点恢复会比较麻烦,先按这里的步骤操作,后面会有单独说明)
-    2. 在 fe.conf 中添加配置:`metadata_failure_recovery=true`。
-    3. 执行 `sh bin/start_fe.sh` 启动这个 FE。
-    4. 如果正常,这个 FE 会以 MASTER 的角色启动,类似于前面 `启动单节点 FE` 一节中的描述。在 fe.log 应该会看到 `transfer from XXXX to MASTER` 等字样。
-    5. 启动完成后,先连接到这个 FE,执行一些查询导入,检查是否能够正常访问。如果不正常,有可能是操作有误,建议仔细阅读以上步骤,用之前备份的元数据再试一次。如果还是不行,问题可能就比较严重了。
-    6. 如果成功,通过 `show frontends;` 命令,应该可以看到之前所添加的所有 FE,并且当前 FE 是 master。
-    7. 将 fe.conf 中的 `metadata_failure_recovery=true` 配置项删除,或者设置为 `false`,然后重启这个 FE(**重要**)。
-
-
-    > 如果你是从一个 OBSERVER 节点的元数据进行恢复的,那么完成如上步骤后,通过 `show frontends;` 语句你会发现,当前这个 FE 的角色为 OBSERVER,但是 `IsMaster` 显示为 `true`。这是因为,这里看到的 “OBSERVER” 是记录在 Doris 的元数据中的,而是否是 master,是记录在 bdbje 的元数据中的。因为我们是从一个 OBSERVER 节点恢复的,所以这里出现了不一致。请按如下步骤修复这个问题(这个问题我们会在之后的某个版本修复):
-    
-    > 1. 先把除了这个 “OBSERVER” 以外的所有 FE 节点 DROP 掉。
-    > 2. 通过 `ADD FOLLOWER` 命令,添加一个新的 FOLLOWER FE,假设在 hostA 上。
-    > 3. 在 hostA 上启动一个全新的 FE,通过 `-helper` 的方式加入集群。
-    > 4. 启动成功后,通过 `show frontends;` 语句,你应该能看到两个 FE,一个是之前的  OBSERVER,一个是新添加的 FOLLOWER,并且 OBSERVER 是 master。
-    > 5. 确认这个新的 FOLLOWER 是可以正常工作之后,用这个新的 FOLLOWER 的元数据,重新执行一遍故障恢复操作。
-    > 6. 以上这些步骤的目的,其实就是人为的制造出一个 FOLLOWER 节点的元数据,然后用这个元数据,重新开始故障恢复。这样就避免了从 OBSERVER 恢复元数据所遇到的不一致的问题。
-
-    > `metadata_failure_recovery=true` 的含义是,清空 "bdbje" 的元数据。这样 bdbje 就不会再联系之前的其他 FE 了,而作为一个独立的 FE 启动。这个参数只有在恢复启动时才需要设置为 true。恢复完成后,一定要设置为 false,否则一旦重启,bdbje 的元数据又会被清空,导致其他 FE 无法正常工作。
-
-4. 第3步执行成功后,我们再通过 `ALTER SYSTEM DROP FOLLOWER/OBSERVER` 命令,将之前的其他的 FE 从元数据删除后,按加入新 FE 的方式,重新把这些 FE 添加一遍。
-
-5. 如果以上操作正常,则恢复完毕。
-
-### FE 类型变更
-
-如果你需要将当前已有的 FOLLOWER/OBSERVER 类型的 FE,变更为 OBSERVER/FOLLOWER 类型,请先按照前面所述的方式删除 FE,再添加对应类型的 FE 即可
-
-### FE 迁移
-
-如果你需要将一个 FE 从当前节点迁移到另一个节点,分以下几种情况。
-
-1. 非 MASTER 节点的 FOLLOWER,或者 OBSERVER 迁移
-
-    直接添加新的 FOLLOWER/OBSERVER 成功后,删除旧的 FOLLOWER/OBSERVER 即可。
-    
-2. 单节点 MASTER 迁移
-
-    当只有一个 FE 时,参考 `故障恢复` 一节。将 FE 的 palo-meta 目录拷贝到新节点上,按照 `故障恢复` 一节中,步骤3的方式启动新的 MASTER
-    
-3. 一组 FOLLOWER 从一组节点迁移到另一组新的节点
-
-    在新的节点上部署 FE,通过添加 FOLLOWER 的方式先加入新节点。再逐台 DROP 掉旧节点即可。在逐台 DROP 的过程中,MASTER 会自动选择在新的 FOLLOWER 节点上。
-    
-### 更换 FE 端口
-
-FE 目前有以下几个端口
-
-* edit_log_port:bdbje 的通信端口
-* http_port:http 端口,也用于推送 image
-* rpc_port:FE 的 thrift server port
-* query_port:Mysql 连接端口
-
-1. edit_log_port
-
-    如果需要更换这个端口,则需要参照 `故障恢复` 一节中的操作,进行恢复。因为该端口已经被持久化到 bdbje 自己的元数据中(同时也记录在 Doris 自己的元数据中),需要通过设置 `metadata_failure_recovery=true` 来清空 bdbje 的元数据。
-    
-2. http_port
-
-    所有 FE 的 http_port 必须保持一致。所以如果要修改这个端口,则所有 FE 都需要修改并重启。修改这个端口,在多 FOLLOWER 部署的情况下会比较复杂(涉及到鸡生蛋蛋生鸡的问题...),所以不建议有这种操作。如果必须,直接按照 `故障恢复` 一节中的操作吧。
-    
-3. rpc_port
-
-    修改配置后,直接重启 FE 即可。Master FE 会通过心跳将新的端口告知 BE。只有 Master FE 的这个端口会被使用。但仍然建议所有 FE 的端口保持一致。
-    
-4. query_port
-
-    修改配置后,直接重启 FE 即可。这个只影响到 mysql 的连接目标。
-
-
-### 从 FE 内存中恢复元数据
-
-在某些极端情况下,磁盘上 image 文件可能会损坏,但是内存中的元数据是完好的,此时我们可以先从内存中 dump 出元数据,再替换掉磁盘上的 image 文件,来恢复元数据,整个**不停查询服务**的操作步骤如下:
-1. 集群停止所有 Load,Create,Alter 操作
-2. 执行以下命令,从 Master FE 内存中 dump 出元数据:(下面称为 image_mem)
-```
-curl -u $root_user:$password http://$master_hostname:8030/dump
-```
-3. 用 image_mem 文件替换掉 OBSERVER FE 节点上`meta_dir/image`目录下的 image 文件,重启 OBSERVER FE 节点,
-验证 image_mem 文件的完整性和正确性(可以在 FE Web 页面查看 DB 和 Table 的元数据是否正常,查看fe.log 是否有异常,是否在正常 replayed journal)
-4. 依次用 image_mem 文件替换掉 FOLLOWER FE 节点上`meta_dir/image`目录下的 image 文件,重启 FOLLOWER FE 节点,
-确认元数据和查询服务都正常
-5. 用 image_mem 文件替换掉 Master FE 节点上`meta_dir/image`目录下的 image 文件,重启 Master FE 节点,
-确认 FE Master 切换正常, Master FE 节点可以通过 checkpoint 正常生成新的 image 文件
-6. 集群恢复所有 Load,Create,Alter 操作
-
-**注意:如果 Image 文件很大,整个操作过程耗时可能会很长,所以在此期间,要确保 Master FE 不会通过 checkpoint 生成新的 image 文件。
-当观察到 Master FE 节点上 `meta_dir/image`目录下的 `image.ckpt` 文件快和 `image.xxx` 文件一样大时,可以直接删除掉`image.ckpt` 文件。**
-
-## 最佳实践
-
-FE 的部署推荐,在 [安装与部署文档](../../installing/install-deploy.md) 中有介绍,这里再做一些补充。
-
-* **如果你并不十分了解 FE 元数据的运行逻辑,或者没有足够 FE 元数据的运维经验,我们强烈建议在实际使用中,只部署一个 FOLLOWER 类型的 FE 作为 MASTER,其余 FE 都是 OBSERVER,这样可以减少很多复杂的运维问题!** 不用过于担心 MASTER 单点故障导致无法进行元数据写操作。首先,如果你配置合理,FE 作为 java 进程很难挂掉。其次,如果 MASTER 磁盘损坏(概率非常低),我们也可以用 OBSERVER 上的元数据,通过 `故障恢复` 的方式手动恢复。
-
-* FE 进程的 JVM 一定要保证足够的内存。我们**强烈建议** FE 的 JVM 内存至少在 10GB 以上,推荐 32GB 至 64GB。并且部署监控来监控 JVM 的内存使用情况。因为如果FE出现OOM,可能导致元数据写入失败,造成一些**无法恢复**的故障!
-
-* FE 所在节点要有足够的磁盘空间,以防止元数据过大导致磁盘空间不足。同时 FE 日志也会占用十几G 的磁盘空间。
-
-## 其他常见问题
-
-1. fe.log 中一直滚动 `meta out of date. current time: xxx, synchronized time: xxx, has log: xxx, fe type: xxx`
-
-    这个通常是因为 FE 无法选举出 Master。比如配置了 3 个 FOLLOWER,但是只启动了一个 FOLLOWER,则这个 FOLLOWER 会出现这个问题。通常,只要把剩余的 FOLLOWER 启动起来就可以了。如果启动起来后,仍然没有解决问题,那么可能需要按照 `故障恢复` 一节中的方式,手动进行恢复。
-    
-2. `Clock delta: xxxx ms. between Feeder: xxxx and this Replica exceeds max permissible delta: xxxx ms.`
-
-    bdbje 要求各个节点之间的时钟误差不能超过一定阈值。如果超过,节点会异常退出。我们默认设置的阈值为 5000 ms,由 FE 的参数 `max_bdbje_clock_delta_ms` 控制,可以酌情修改。但我们建议使用 ntp 等时钟同步方式保证 Doris 集群各主机的时钟同步。
-    
-    
-3. `image/` 目录下的镜像文件很久没有更新
-
-    Master FE 会默认每 50000 条元数据 journal,生成一个镜像文件。在一个频繁使用的集群中,通常每隔半天到几天的时间,就会生成一个新的 image 文件。如果你发现 image 文件已经很久没有更新了(比如超过一个星期),则可以顺序的按照如下方法,查看具体原因:
-    
-    1. 在 Master FE 的 fe.log 中搜索 `memory is not enough to do checkpoint. Committed memroy xxxx Bytes, used memory xxxx Bytes.` 字样。如果找到,则说明当前 FE 的 JVM 内存不足以用于生成镜像(通常我们需要预留一半的 FE 内存用于 image 的生成)。那么需要增加 JVM 的内存并重启 FE 后,再观察。每次 Master FE 重启后,都会直接生成一个新的 image。也可用这种重启方式,主动地生成新的 image。注意,如果是多 FOLLOWER 部署,那么当你重启当前 Master FE 后,另一个 FOLLOWER FE 会变成 MASTER,则后续的 image 生成会由新的 Master 负责。因此,你可能需要修改所有 FOLLOWER FE 的 JVM 内存配置。
-
-    2. 在 Master FE 的 fe.log 中搜索 `begin to generate new image: image.xxxx`。如果找到,则说明开始生成 image 了。检查这个线程的后续日志,如果出现 `checkpoint finished save image.xxxx`,则说明 image 写入成功。如果出现 `Exception when generate new image file`,则生成失败,需要查看具体的错误信息。
-
-
-4. `bdb/` 目录的大小非常大,达到几个G或更多
-
-    如果在排除无法生成新的 image 的错误后,bdb 目录在一段时间内依然很大。则可能是因为 Master FE 推送 image 不成功。可以在 Master FE 的 fe.log 中搜索 `push image.xxxx to other nodes. totally xx nodes, push successed yy nodes`。如果 yy 比 xx 小,则说明有的 FE 没有被推送成功。可以在 fe.log 中查看到具体的错误 `Exception when pushing image file. url = xxx`。
-
-    同时,你也可以在 FE 的配置文件中添加配置:`edit_log_roll_num=xxxx`。该参数设定了每多少条元数据 journal,做一次 image。默认是 50000。可以适当改小这个数字,使得 image 更加频繁,从而加速删除旧的 journal。
-
-5. FOLLOWER FE 接连挂掉
-
-    因为 Doris 的元数据采用多数写策略,即一条元数据 journal 必须至少写入多数个 FOLLOWER FE 后(比如 3 个 FOLLOWER,必须写成功 2 个),才算成功。而如果写入失败,FE 进程会主动退出。那么假设有 A、B、C 三个 FOLLOWER,C 先挂掉,然后 B 再挂掉,那么 A 也会跟着挂掉。所以如 `最佳实践` 一节中所述,如果你没有丰富的元数据运维经验,不建议部署多 FOLLOWER。
-
-6. fe.log 中出现 `get exception when try to close previously opened bdb database. ignore it`
-
-    如果后面有 `ignore it` 字样,通常无需处理。如果你有兴趣,可以在 `BDBEnvironment.java` 搜索这个错误,查看相关注释说明。
-
-7. 从 `show frontends;` 看,某个 FE 的 `Join` 列为 `true`,但是实际该 FE 不正常
-
-    通过 `show frontends;` 查看到的 `Join` 信息。该列如果为 `true`,仅表示这个 FE **曾经加入过** 集群。并不能表示当前仍然正常的存在于集群中。如果为 `false`,则表示这个 FE **从未加入过** 集群。
-
-8. 关于 FE 的配置 `master_sync_policy`, `replica_sync_policy` 和 `txn_rollback_limit`
-
-    `master_sync_policy` 用于指定当 Leader FE 写元数据日志时,是否调用 fsync(), `replica_sync_policy` 用于指定当 FE HA 部署时,其他 Follower FE 在同步元数据时,是否调用 fsync()。在早期的 Doris 版本中,这两个参数默认是 `WRITE_NO_SYNC`,即都不调用 fsync()。在最新版本的 Doris 中,默认已修改为 `SYNC`,即都调用 fsync()。调用 fsync() 会显著降低元数据写盘的效率。在某些环境下,IOPS 可能降至几百,延迟增加到2-3ms(但对于 Doris 元数据操作依然够用)。因此我们建议以下配置:
-
-    1. 对于单 Follower FE 部署,`master_sync_policy` 设置为 `SYNC`,防止 FE 系统宕机导致元数据丢失。
-    2. 对于多 Follower FE 部署,可以将 `master_sync_policy` 和 `replica_sync_policy` 设为 `WRITE_NO_SYNC`,因为我们认为多个系统同时宕机的概率非常低。
-
-    如果在单 Follower FE 部署中,`master_sync_policy` 设置为 `WRITE_NO_SYNC`,则可能出现 FE 系统宕机导致元数据丢失。这时如果有其他 Observer FE 尝试重启时,可能会报错:
-
-    ```
-    Node xxx must rollback xx total commits(numPassedDurableCommits of which were durable) to the earliest point indicated by transaction xxxx in order to rejoin the replication group, but the transaction rollback limit of xxx prohibits this.
-    ```
-
-    意思有部分已经持久化的事务需要回滚,但条数超过上限。这里我们的默认上限是 100,可以通过设置 `txn_rollback_limit` 改变。该操作仅用于尝试正常启动 FE,但已丢失的元数据无法恢复。
diff --git a/docs/documentation/cn/administrator-guide/operation/monitor-alert.md b/docs/documentation/cn/administrator-guide/operation/monitor-alert.md
deleted file mode 100644
index 5a97000..0000000
--- a/docs/documentation/cn/administrator-guide/operation/monitor-alert.md
+++ /dev/null
@@ -1,302 +0,0 @@
-<!-- 
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-# 监控和报警
-
-本文档主要介绍 Doris 的监控项及如何采集、展示监控项。以及如何配置报警(TODO)
-
-[Dashborad 模板点击下载](https://grafana.com/dashboards/9734/revisions)
-
-> 注:0.9.0(不含)之前的版本请使用 revision 1。0.9.x 版本请使用 revision 2。0.10.x 版本请使用 revision 3。
-
-Dashboard 模板会不定期更新。更新模板的方式见最后一小节。
-
-欢迎提供更优的 dashboard。
-
-## 组件
-
-Doris 使用 [Prometheus](https://prometheus.io/) 和 [Grafana](https://grafana.com/) 进项监控项的采集和展示。
-
-![](../../../../resources/images/dashboard_overview.png)
-
-1. Prometheus
-    
-    Prometheus 是一款开源的系统监控和报警套件。它可以通过 Pull 或 Push 采集被监控系统的监控项,存入自身的时序数据库中。并且通过丰富的多维数据查询语言,满足用户的不同数据展示需求。
-
-2. Grafana
-    
-    Grafana 是一款开源的数据分析和展示平台。支持包括 Prometheus 在内的多个主流时序数据库源。通过对应的数据库查询语句,从数据源中获取展现数据。通过灵活可配置的 Dashboard,快速的将这些数据以图表的形式展示给用户。
-
-> 注: 本文档仅提供一种使用 Prometheus 和 Grafana 进行 Doris 监控数据采集和展示的方式。原则上不开发、维护这些组件。更多关于这些组件的详细介绍,请移步对应官方文档进行查阅。
-
-## 监控数据
-
-Doris 的监控数据通过 Frontend 和 Backend 的 http 接口向外暴露。监控数据以 Key-Value 的文本形式对外展现。每个 Key 还可能有不同的 Label 加以区分。当用户搭建好 Doris 后,可以在浏览器,通过以下接口访问到节点的监控数据:
-
-* Frontend: `fe_host:fe_http_port/metrics`
-* Backend: `be_host:be_web_server_port/metrics`
-* Broker: 暂不提供
-
-用户将看到如下监控项结果(示例为 FE 部分监控项):
-
-    ```
-    # HELP  jvm_heap_size_bytes jvm heap stat
-    # TYPE  jvm_heap_size_bytes gauge
-    jvm_heap_size_bytes{type="max"} 41661235200
-    jvm_heap_size_bytes{type="committed"} 19785285632
-    jvm_heap_size_bytes{type="used"} 10113221064
-    # HELP  jvm_non_heap_size_bytes jvm non heap stat
-    # TYPE  jvm_non_heap_size_bytes gauge
-    jvm_non_heap_size_bytes{type="committed"} 105295872
-    jvm_non_heap_size_bytes{type="used"} 103184784
-    # HELP  jvm_young_size_bytes jvm young mem pool stat
-    # TYPE  jvm_young_size_bytes gauge
-    jvm_young_size_bytes{type="used"} 6505306808
-    jvm_young_size_bytes{type="peak_used"} 10308026368
-    jvm_young_size_bytes{type="max"} 10308026368
-    # HELP  jvm_old_size_bytes jvm old mem pool stat
-    # TYPE  jvm_old_size_bytes gauge
-    jvm_old_size_bytes{type="used"} 3522435544
-    jvm_old_size_bytes{type="peak_used"} 6561017832
-    jvm_old_size_bytes{type="max"} 30064771072
-    # HELP  jvm_direct_buffer_pool_size_bytes jvm direct buffer pool stat
-    # TYPE  jvm_direct_buffer_pool_size_bytes gauge
-    jvm_direct_buffer_pool_size_bytes{type="count"} 91
-    jvm_direct_buffer_pool_size_bytes{type="used"} 226135222
-    jvm_direct_buffer_pool_size_bytes{type="capacity"} 226135221
-    # HELP  jvm_young_gc jvm young gc stat
-    # TYPE  jvm_young_gc gauge
-    jvm_young_gc{type="count"} 2186
-    jvm_young_gc{type="time"} 93650
-    # HELP  jvm_old_gc jvm old gc stat
-    # TYPE  jvm_old_gc gauge
-    jvm_old_gc{type="count"} 21
-    jvm_old_gc{type="time"} 58268
-    # HELP  jvm_thread jvm thread stat
-    # TYPE  jvm_thread gauge
-    jvm_thread{type="count"} 767
-    jvm_thread{type="peak_count"} 831
-    ...
-    ```
-
-这是一个以 [Promethus 格式](https://prometheus.io/docs/practices/naming/) 呈现的监控数据。我们以其中一个监控项为例进行说明:
-
-```
-# HELP  jvm_heap_size_bytes jvm heap stat
-# TYPE  jvm_heap_size_bytes gauge
-jvm_heap_size_bytes{type="max"} 41661235200
-jvm_heap_size_bytes{type="committed"} 19785285632
-jvm_heap_size_bytes{type="used"} 10113221064
-```
-
-1. "#" 开头的行为注释行。其中 HELP 为该监控项的描述说明;TYPE 表示该监控项的数据类型,示例中为 Gauge,即标量数据。还有 Counter、Histogram 等数据类型。具体可见 [Prometheus 官方文档](https://prometheus.io/docs/practices/instrumentation/#counter-vs.-gauge,-summary-vs.-histogram) 。
-2. `jvm_heap_size_bytes` 即监控项的名称(Key);`type="max"` 即为一个名为 `type` 的 Label,值为 `max`。一个监控项可以有多个 Label。
-3. 最后的数字,如 `41661235200`,即为监控数值。
-
-## 监控架构
-
-整个监控架构如下图所示:
-
-![](../../../../resources/images/monitor_arch.png)
-
-1. 黄色部分为 Prometheus 相关组件。Prometheus Server 为 Prometheus 的主进程,目前 Prometheus 通过 Pull 的方式访问 Doris 节点的监控接口,然后将时序数据存入时序数据库 TSDB 中(TSDB 包含在 Prometheus 进程中,无需单独部署)。Prometheus 也支持通过搭建 [Push Gateway](https://github.com/prometheus/pushgateway) 的方式,允许被监控系统将监控数据通过 Push 的方式推到 Push Gateway, 再由 Prometheus Server 通过 Pull 的方式从 Push Gateway 中获取数据。
-2. [Alert Manager](https://github.com/prometheus/alertmanager) 为 Prometheus 报警组件,需单独部署(暂不提供方案,可参照官方文档自行搭建)。通过 Alert Manager,用户可以配置报警策略,接收邮件、短信等报警。
-3. 绿色部分为 Grafana 相关组件。Grafana Server 为 Grafana 的主进程。启动后,用户可以通过 Web 页面对 Grafana 进行配置,包括数据源的设置、用户设置、Dashboard 绘制等。这里也是最终用户查看监控数据的地方。
-
-
-## 开始搭建
-
-请在完成 Doris 的部署后,开始搭建监控系统。
-
-### Prometheus
-
-1. 在 [Prometheus 官网](https://prometheus.io/download/) 下载最新版本的 Prometheus。这里我们以 2.3.2-linux-amd64 版本为例。
-2. 在准备运行监控服务的机器上,解压下载后的 tar 文件。
-3. 打开配置文件 promethues.yml。这里我们提供一个示例配置并加以说明(配置文件为 yml 格式,一定注意统一的缩进和空格):
- 
-    这里我们使用最简单的静态文件的方式进行监控配置。Prometheus 支持多种 [服务发现](https://prometheus.io/docs/prometheus/latest/configuration/configuration/) 方式,可以动态的感知节点的加入和删除。
- 
-    ```
-    # my global config
-    global:
-      scrape_interval:     15s # 全局的采集间隔,默认是 1m,这里设置为 15s
-      evaluation_interval: 15s # 全局的规则触发间隔,默认是 1m,这里设置 15s
-    
-    # Alertmanager configuration
-    alerting:
-      alertmanagers:
-      - static_configs:
-        - targets:
-          # - alertmanager:9093
-    
-    # A scrape configuration containing exactly one endpoint to scrape:
-    # Here it's Prometheus itself.
-    scrape_configs:
-      # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
-      - job_name: 'PALO_CLUSTER' # 每一个 Doris 集群,我们称为一个 job。这里可以给 job 取一个名字,作为 Doris 集群在监控系统中的名字。
-        metrics_path: '/metrics' # 这里指定获取监控项的 restful api。配合下面的 targets 中的 host:port,Prometheus 最终会通过 host:port/metrics_path 来采集监控项。
-        static_configs: # 这里开始分别配置 FE 和 BE 的目标地址。所有的 FE 和 BE 都分别写入各自的 group 中。
-          - targets: ['fe_host1:8030', 'fe_host2:8030', 'fe_host3:8030']
-            labels:
-              group: fe # 这里配置了 fe 的 group,该 group 中包含了 3 个 Frontends
-    
-          - targets: ['be_host1:8040', 'be_host2:8040', 'be_host3:8040']
-            labels:
-              group: be # 这里配置了 be 的 group,该 group 中包含了 3 个 Backends
-    
-      - job_name: 'PALO_CLUSTER_2' # 我们可以在一个 Prometheus 中监控多个 Doris 集群,这里开始另一个 Doris 集群的配置。配置同上,以下略。
-        metrics_path: '/metrics'
-        static_configs: 
-          - targets: ['fe_host1:8030', 'fe_host2:8030', 'fe_host3:8030']
-            labels:
-              group: fe 
-    
-          - targets: ['be_host1:8040', 'be_host2:8040', 'be_host3:8040']
-            labels:
-              group: be 
-                  
-    ```
-
-4. 启动 Promethues
-
-    通过以下命令启动 Promethues:
-    
-    `nohup ./prometheus --web.listen-address="0.0.0.0:8181" &`
-    
-    该命令将后台运行 Prometheus,并指定其 web 端口为 8181。启动后,即开始采集数据,并将数据存放在 data 目录中。
-    
-5. 停止 Promethues
-    
-    目前没有发现正式的进程停止方式,直接 kill -9 即可。当然也可以将 Prometheus 设为一种 service,以 service 的方式启停。
-    
-6. 访问 Prometheus
-
-    Prometheus 可以通过 web 页面进行简单的访问。通过浏览器打开 8181 端口,即可访问 Prometheus 的页面。点击导航栏中,`Status` -> `Targets`,可以看到所有分组 Job 的监控主机节点。正常情况下,所有节点都应为 `UP`,表示数据采集正常。点击某一个 `Endpoint`,即可看到当前的监控数值。如果节点状态不为 UP,可以先访问 Doris 的 metrics 接口(见前文)检查是否可以访问,或查询 Prometheus 相关文档尝试解决。
-    
-7. 至此,一个简单的 Prometheus 已经搭建、配置完毕。更多高级使用方式,请参阅 [官方文档](https://prometheus.io/docs/introduction/overview/)
-
-### Grafana
-
-1. 在 [Grafana 官网](https://grafana.com/grafana/download) 下载最新版本的 Grafana。这里我们以 5.2.1.linux-amd64 版本为例。
-
-2. 在准备运行监控服务的机器上,解压下载后的 tar 文件。
-
-3. 打开配置文件 conf/defaults.ini。这里我们仅列举需要改动的配置项,其余配置可使用默认。
-
-    ```
-    # Path to where grafana can store temp files, sessions, and the sqlite3 db (if that is used)
-    data = data
-    
-    # Directory where grafana can store logs
-    logs = data/log
-    
-    # Protocol (http, https, socket)
-    protocal = http
-    
-    # The ip address to bind to, empty will bind to all interfaces
-    http_addr =
-    
-    # The http port to use
-    http_port = 8182
-    ```
-
-4. 启动 Grafana
-
-    通过以下命令启动 Grafana
-    
-    `nohup ./bin/grafana-server &`
-    
-    该命令将后台运行 Grafana,访问端口为上面配置的 8182
-    
-5. 停止 Grafana
-
-    目前没有发现正式的进程停止方式,直接 kill -9 即可。当然也可以将 Grafana 设为一种 service,以 service 的方式启停。
-    
-6. 访问 Grafana
-
-    通过浏览器,打开 8182 端口,可以开始访问 Grafana 页面。默认用户名密码为 admin。
-    
-7. 配置 Grafana
-
-    初次登陆,需要根据提示设置数据源(data source)。我们这里的数据源,即上一步配置的 Prometheus。
-    
-    数据源配置的 Setting 页面说明如下:
-    
-    1. Name: 数据源的名称,自定义,比如 doris_monitor_data_source
-    2. Type: 选择 Prometheus
-    3. URL: 填写 Prometheus 的 web 地址,如 http://host:8181
-    4. Access: 这里我们选择 Server 方式,即通过 Grafana 进程所在服务器,访问 Prometheus。
-    5. 其余选项默认即可。
-    6. 点击最下方 `Save & Test`,如果显示 `Data source is working`,即表示数据源可用。
-    7. 确认数据源可用后,点击左边导航栏的 + 号,开始添加 Dashboard。这里我们已经准备好了 Doris 的 Dashboard 模板(本文档开头)。下载完成后,点击上方的 `New dashboard`->`Import dashboard`->`Upload .json File`,将下载的 json 文件导入。
-    8. 导入后,可以命名 Dashboard,默认是 `Doris Overview`。同时,需要选择数据源,这里选择之前创建的 `doris_monitor_data_source`
-    9. 点击 `Import`,即完成导入。之后,可以看到 Doris 的 Dashboard 展示。
-
-8. 至此,一个简单的 Grafana 已经搭建、配置完毕。更多高级使用方式,请参阅 [官方文档](http://docs.grafana.org/)
-
-
-## Dashboard 说明
-
-这里我们简要介绍 Doris Dashboard。Dashboard 的内容可能会随版本升级,不断变化,本文档不保证是最新的 Dashboard 说明。
-
-1. 顶栏
-
-    ![](../../../../resources/images/dashboard_navibar.png)
-    
-    * 左上角为 Dashboard 名称。
-    * 右上角显示当前监控时间范围,可以下拉选择不同的时间范围,还可以指定定时刷新页面间隔。
-    * cluster\_name: 即 Prometheus 配置文件中的各个 job\_name,代表一个 Doris 集群。选择不同的 cluster,下方的图表将展示对应集群的监控信息。
-    * fe_master: 对应集群的 Master Frontend 节点。
-    * fe_instance: 对应集群的所有 Frontend 节点。选择不同的 Frontend,下方的图表将展示对应 Frontend 的监控信息。
-    * be_instance: 对应集群的所有 Backend 节点。选择不同的 Backend,下方的图表将展示对应 Backend 的监控信息。
-    * interval: 有些图表展示了速率相关的监控项,这里可选择以多大间隔进行采样计算速率(注:15s 间隔可能导致一些图表无法显示)。
-    
-2. Row
-
-    ![](../../../../resources/images/dashboard_row.png)
-
-    Grafana 中,Row 的概念,即一组图表的集合。如上图中的 Overview、Cluster Overview 即两个不同的 Row。可以通过点击 Row,对 Row 进行折叠。当前 Dashboard 有如下 Rows(持续更新中):
-    
-    1. Overview: 所有 Doris 集群的汇总展示。
-    2. Cluster Overview: 选定集群的汇总展示。
-    3. Query Statistic: 选定集群的查询相关监控。
-    4. FE JVM: 选定 Frontend 的 JVM 监控。
-    5. BE: 选定集群的 Backends 的汇总展示。
-    6. BE Task: 选定集群的 Backends 任务信息的展示。
-
-3. 图表
-
-    ![](../../../../resources/images/dashboard_panel.png)
-
-    一个典型的图标分为以下几部分:
-    
-    1. 鼠标悬停左上角的 i 图标,可以查看该图表的说明。
-    2. 点击下方的图例,可以单独查看某一监控项。再次点击,则显示所有。
-    3. 在图表中拖拽可以选定时间范围。
-    4. 标题的 [] 中显示选定的集群名称。
-    5. 一些数值对应左边的Y轴,一些对应右边的,可以通过图例末尾的 `-right` 区分。
-    6. 点击图表名称->`Edit`,可以对图表进行编辑。
-
-## Dashboard 更新
-
-1. 点击 Grafana 左边栏的 `+`,点击 `Dashboard`。
-2. 点击左上角的 `New dashboard`,在点击右侧出现的 `Import dashboard`。
-3. 点击 `Upload .json File`,选择最新的模板文件。
-4. 选择数据源
-5. 点击 `Import(Overwrite)`,完成模板更新。
diff --git a/docs/documentation/cn/administrator-guide/operation/multi-tenant.md b/docs/documentation/cn/administrator-guide/operation/multi-tenant.md
deleted file mode 100644
index 83379d4..0000000
--- a/docs/documentation/cn/administrator-guide/operation/multi-tenant.md
+++ /dev/null
@@ -1,232 +0,0 @@
-<!-- 
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-# 多租户(Experimental)
-
-该功能为实验性质,暂不建议在生产环境使用。
-
-## 背景
-Doris 作为一款 PB 级别的在线报表与多维分析数据库,对外通过开放云提供云端的数据库服务,并且对于每个云上的客户都单独部署了一套物理集群。对内,一套物理集群部署了多个业务,对于隔离性要求比较高的业务单独搭建了集群。针对以上存在几点问题:
-
-- 部署多套物理集群维护代价大(升级、功能上线、bug修复)。
-- 一个用户的查询或者查询引起的bug经常会影响其他用户。
-- 实际生产环境单机只能部署一个BE进程。而多个BE可以更好的解决胖节点问题。并且对于join、聚合操作可以提供更高的并发度。
-
-综合以上三点,Doris需要新的多租户方案,既能做到较好的资源隔离和故障隔离,同时也能减少维护的代价,满足公有云和私有云的需求。
-
-## 设计原则
-
-- 使用简单
-- 开发代价小
-- 方便现有集群的迁移
-
-## 名词解释
-
-- FE: Frontend,即 Doris 中用于元数据管理即查询规划的模块。
-- BE: Backend,即 Doris 中用于存储和查询数据的模块。
-- Master: FE 的一种角色。一个Doris集群只有一个Master,其他的FE为Observer或者Follower。
-- instance:一个 BE 进程即是一个 instance。
-- host:单个物理机
-- cluster:即一个集群,由多个instance组成。
-- 租户:一个cluster属于一个租户。cluster和租户之间是一对一关系。
-- database:一个用户创建的数据库
-
-## 主要思路
-
-- 一个host上部署多个BE的instance,在进程级别做资源隔离。
-- 多个instance形成一个cluster,一个cluster分配给一个业务独立的的租户。
-- FE增加cluster这一级并负责cluster的管理。
-- CPU,IO,内存等资源隔离采用cgroup。
-
-## 设计方案
-
-为了能够达到隔离的目的,引入了**虚拟cluster**的概念。
-
-1. cluster表示一个虚拟的集群,由多个BE的instance组成。多个cluster共享FE。
-2. 一个host上可以启动多个instance。cluster创建时,选取任意指定数量的instance,组成一个cluster。
-3. 创建cluster的同时,会创建一个名为superuser的账户,隶属于该cluster。superuser可以对cluster进行管理、创建数据库、分配权限等。
-4. Doris启动后,会创建一个默认的cluster:default_cluster。如果用户不希望使用多cluster的功能,则会提供这个默认的cluster,并隐藏多cluster的其他操作细节。
-
-具体架构如下图:
-![](../../../../resources/images/multi_tenant_arch.png)
- 
-## SQL 接口
-
-- 登录
-
-    默认集群登录名: user_name@default_cluster 或者 user_name
-    
-    自定义集群登录名:user_name@cluster_name
-   
-    `mysqlclient -h host -P port -u user_name@cluster_name -p password`
-
-- 添加、删除、下线(decommission)以及取消下线BE
-
-    `ALTER SYSTEM ADD BACKEND "host:port"`
-    `ALTER SYSTEM DROP BACKEND "host:port"`
-    `ALTER SYSTEM DECOMMISSION BACKEND "host:port"`
-    `CANCEL DECOMMISSION BACKEND "host:port"`
-    
-    强烈建议使用 DECOMMISSION 而不是 DROP 来删除 BACKEND。DECOMMISSION 操作会首先将需要下线节点上的数据拷贝到集群内其他instance上。之后,才会真正下线。
-    
-- 创建集群,并指定superuser账户的密码
-
-    `CREATE CLUSTER cluster_name PROPERTIES ("instance_num" = "10") identified by "password"`
-    
-- 进入一个集群
-
-    `ENTER cluster_name`
-    
-- 集群扩容、缩容
-
-    `ALTER CLUSTER cluster_name PROPERTIES ("instance_num" = "10")`
- 
-    当指定的实例个数多于cluster现有be的个数,则为扩容,如果少于则为缩容。
-   
-- 链接、迁移db
-
-    `LINK DATABASE src_cluster_name.db_name dest_cluster_name.db_name`
-
-    软链一个cluster的db到另外一个cluster的db ,对于需要临时访问其他cluster的db却不需要进行实际数据迁移的用户可以采用这种方式。
-
-    `MIGRATE DATABASE src_cluster_name.db_name dest_cluster_name.db_name`
-
-    如果需要对db进行跨cluster的迁移,在链接之后,执行migrate对数据进行实际的迁移。
-   
-   迁移不影响当前两个db的查询、导入等操作,这是一个异步的操作,可以通过`SHOW MIGRATIONS`查看迁移的进度。
-    
-- 删除集群
-
-    `DROP CLUSTER cluster_name`
-    
-    删除集群,要求先手动删除的集群内所有database。
-    
-- 其他
-
-    `SHOW CLUSTERS`
-
-    展示系统内已经创建的集群。只有root用户有该权限。
-
-    `SHOW BACKENDS`
-    
-    查看集群内的BE instance。
-
-    `SHOW MIGRATIONS`
-    
-    展示当前正在进行的db迁移任务。执行完db的迁移后可以通过此命令查看迁移的进度。
-
-## 详细设计
-
-1. 命名空间隔离
-
-    为了引入多租户,需要对系统内的cluster之间的命名空间进行隔离。
-    
-   Doris现有的元数据采用的是image + journal 的方式(元数据的设计见相关文档)。Doris会把涉及元数据的操作的记录为一个 journal (操作日志),然后定时的按照**图1**的方式写成image,加载的时候按照写入的顺序读即可。但是这样就带来一个问题已经写入的格式不容易修改,比如记录数据分布的元数据格式为:database+table+tablet+replica 嵌套,如果按照以往的方式要做cluster之间的命名空间隔离,则需要在database上增加一层cluster,内部元数据的层级变为:cluster+database+table+tablet+replica,如**图2**所示。但加一层带来的问题有:
-   
-    - 增加一层带来的元数据改动,不兼容,需要按照图2的方式cluster+db+table+tablet+replica层级写,这样就改变了以往的元数据组织方式,老版本的升级会比较麻烦,比较理想的方式是按照图3在现有元数据的格式下顺序写入cluster的元数据。
-
-    - 代码里所有用到db、user等,都需要加一层cluster,一工作量大改动的地方多,层级深,多数代码都获取db,现有功能几乎都要改一遍,并且需要在db的锁的基础上嵌套一层cluster的锁。
-    
-    ![](../../../../resources/images/palo_meta.png)
-    
-    综上这里采用了一种通过给db、user名加前缀的方式去隔离内部因为cluster之间db、user名字冲突的问题。
-    
-    如下,所有的sql输入涉及db名、user名的,都需要根据自己所在的cluster来拼写db、user的全名。
-    
-   ![](../../../../resources/images/cluster_namaspace.png)
-    
-    采用这种方式以上两个问题不再有。元数据的组织方式也比较简单。即采用**图3**每个cluster记录下属于自己cluster的db、user,以及节点即可。
-    
-2. BE 节点管理
-
-    每个cluster都有属于自己的一组instance,可以通过`SHOW BACKENDS`查看,为了区分出instance属于哪个cluster以及使用情况,BE引入了多个状态:
-
-    - free:当一个BE节点被加入系统内,此时be不属于任何cluster的时候处于空闲状态
-    - using:当创建集群、或者扩容被选取到一个cluster内则处于使用中。
-   - cluster decommission:如果执行缩容量,则正在执行缩容的be处于此状态。结束后,be状态变为free。
-   - system decommission:be正在下线中。下线完成后,该be将会被永久删除。
-   
-    只有root用户可以通过`SHOW PROC "/backends"`中cluster这一项查看集群内所有be的是否被使用。为空则为空闲,否则为使用中。`SHOW BACKENDS`只能看到所在cluster的节点。以下是be节点状态变化的示意图。 
-    
-    ![](../../../../resources/images/backend_state.png)
-    
-3. 创建集群
-
-    只有root用户可以创建一个cluster,并指定任意数量的BE instance。
-    
-    支持在相同机器上选取多个instance。选择instance的大致原则是:尽可能选取不同机器上的be并且使所有机器上使用的be数尽可能均匀。
-    
-    对于使用来讲,每一个user、db都属于一个cluster(root除外)。为了创建user、db,首先需要进入一个cluster。在创建cluster的时候系统会默认生成这个cluster的管理员,即superuser账户。superuser具有在所属cluster内创建db、user,以及查看be节点数的权限。所有的非root用户登录必须指定一个cluster,即`user_name@cluster_name`。
-    
-    只有root用户可以通过`SHOW CLUSTER`查看系统内所有的cluster,并且可以通过@不同的集群名来进入不同的cluster。对于除了root之外的用户cluster都是不可见的。
-    
-    为了兼容老版本Doris内置了一个名字叫做default_cluster的集群,这个名字在创建集群的时候不能使用。
-    
-    ![](../../../../resources/images/user_authority.png)
-    
-4. 集群扩容
-
-    集群扩容的流程同创建集群。会优先选取不在集群之外的host上的BE instance。选取的原则同创建集群。
-    
-5. 集群缩容、CLUSTER DECOMMISSION
-
-    用户可以通过设置 cluster 的 instance num 来进行集群缩容。
-
-   集群的缩容会优先在BE instance 数量最多的 host 上选取 instance 进行下线。
-    
-    用户也可以直接使用 `ALTER CLUSTER DECOMMISSION BACKEND` 来指定BE,进行集群缩容。
-    
-![](../../../../resources/images/replica_recover.png)
-    
-6. 建表
-
-    为了保证高可用,每个分片的副本必需在不同的机器上。所以建表时,选择副本所在be的策略为在每个host上随机选取一个be。然后从这些be中随机选取所需副本数量的be。总体上做到每个机器上分片分布均匀。
-    
-    因此,假如需要创建一个3副本的分片,即使cluster包含3个或以上的instance,但是只有2个或以下的host,依然不能创建该分片。
-    
-7. 负载均衡
-
-    负载均衡的粒度为cluster级别,cluster之间不做负载均衡。但是在计算负载是在host一级进行的,而一个host上可能存在多个不同cluster的BE instance。 cluster内,会通过每个host上所有分片数目、存储使用率计算负载,然后把负载高的机器上的分片往负载低的机器上拷贝(详见负载均衡相关文档)。
-
-8. LINK DATABASE(软链)
-
-    多个集群之间可以通过软链的方式访问彼此的数据。链接的级别为不同cluster的db。
-    
-   通过在一个cluster内,添加需要访问的其他cluster的db的信息,来访问其他cluster中的db。
-   
-   当查询链接的db时,所使用的计算以及存储资源为源db所在cluster的资源。
-   
-   被软链的db不能在源cluster中删除。只有链接的db被删除后,才可以删除源db。而删除链接db,不会删除源db。
-   
-9. MIGRATE DATABASE
-
-    db可以在cluster之间进行物理迁移。
-    
-   要迁移db,必须先链接db。执行迁移后数据会迁移到链接的db所在的cluster,并且执行迁移后源db被删除,链接断开。
-   
-   数据的迁移,复用了负载均衡以及副本恢复中,复制数据的流程(详见负载均衡相关文档)。具体实现上,在执行`MIRAGTE`命令后,Doris会在元数据中,将源db的所有副本所属的cluster,修改为目的cluster。
-   
-   Doris会定期检查集群内机器之间是否均衡、副本是否齐全、是否有多余的副本。db的迁移即借用了这个流程,在检查副本齐全的时候同时检查副本所在的be是否属于该cluster,如果不属于,则记入要恢复的副本。并且副本多余要删除的时候会优先删除cluster外的副本,然后再按照现有的策略选择:宕机的be的副本->clone的副本->版本落后的副本->负载高的host上的副本,直到副本没有多余。
-   
-![](../../../../resources/images/cluster_link_and_migrate_db.png)
-
-10. BE的进程隔离
-
-  为了实现be进程之间实际cpu、io以及内存的隔离,需要依赖于be的部署。部署的时候需要在外围配置cgroup,把要部署的be的进程都写入cgroup。如果要实现io的物理隔离各be配置的数据存放路径需要在不同磁盘上,这里不做过多的介绍。
-
diff --git a/docs/documentation/cn/administrator-guide/operation/tablet-meta-tool.md b/docs/documentation/cn/administrator-guide/operation/tablet-meta-tool.md
deleted file mode 100644
index 7cbe002..0000000
--- a/docs/documentation/cn/administrator-guide/operation/tablet-meta-tool.md
+++ /dev/null
@@ -1,107 +0,0 @@
-<!-- 
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-# Tablet 元数据管理工具 
-
-## 背景
-
-在最新版本的代码中,我们在 BE 端引入了 RocksDB,用于存储 tablet 的元信息,以解决之前通过 header 文件的方式存储元信息,带来的各种功能和性能方面的问题。当前每一个数据目录(root\_path),都会有一个对应的 RocksDB 实例,其中以 key-value 的方式,存放对应 root\_path 上的所有 tablet 的元数据。
-
-为了方便进行这些元数据的维护,我们提供了在线的 http 接口方式和离线的 meta\_tool 工具以完成相关的管理操作。
-
-其中 http 接口仅用于在线的查看 tablet 的元数据,可以在 BE 进程运行的状态下使用。
-
-而 meta\_tool 工具则仅用于离线的各类元数据管理操作,必须先停止BE进程后,才可使用。
-
-meta\_tool 工具存放在 BE 的 lib/ 目录下。
-
-## 操作
-
-### 查看 Tablet Meta
-
-查看 Tablet Meta 信息可以分为在线方法和离线方法
-
-#### 在线
-
-访问 BE 的 http 接口,获取对应的 Tablet Meta 信息:
-
-api:
-
-`http://{host}:{port}/api/meta/header/{tablet_id}/{schema_hash}`
-
-
-> host: BE 的 hostname
-> 
-> port: BE 的 http 端口
-> 
-> tablet_id: tablet id
-> 
-> schema_hash: tablet 的 schema hash
-
-举例:
-    
-`http://be_host:8040/api/meta/header/14156/2458238340`
-
-最终查询成功的话,会将 Tablet Meta 以 json 形式返回。
-
-#### 离线
-
-基于 meta\_tool 工具获取某个盘上的 Tablet Meta。
-
-命令:
-
-```
-./lib/meta_tool --root_path=/path/to/root_path --operation=get_meta --tablet_id=xxx --schema_hash=xxx
-```
-
-> root_path: 在 be.conf 中配置的对应的 root_path 路径。
-
-结果也是按照 json 的格式展现 Tablet Meta。
-
-### 加载 header
-
-加载 header 的功能是为了完成实现 tablet 人工迁移而提供的。该功能是基于 json 格式的 Tablet Meta 实现的,所以如果涉及 shard 字段、version 信息的更改,可以直接在 Tablet Meta 的 json 内容中更改。然后使用以下的命令进行加载。
-
-命令:
-
-```
-./lib/meta_tool --operation=load_meta --root_path=/path/to/root_path --json_header_path=path
-```
-
-### 删除 header
-
-为了实现从某个 be 的某个盘中删除某个 tablet 的功能。
-
-命令:
-
-```
-./lib/meta_tool --operation=delete_meta --root_path=/path/to/root_path --tablet_id=xxx --schema_hash=xxx
-```
-
-### 展示 pb 格式的 TabletMeta
-
-这个命令是为了查看旧的基于文件的管理的PB格式的 Tablet Meta,以 json 的格式展示 Tablet Meta。
-
-命令:
-
-```
-./lib/meta_tool --operation=show_meta --root_path=/path/to/root_path --pb_header_path=path
-```
-
-
diff --git a/docs/documentation/cn/administrator-guide/operation/tablet-repair-and-balance.md b/docs/documentation/cn/administrator-guide/operation/tablet-repair-and-balance.md
deleted file mode 100644
index 17f2a8c..0000000
--- a/docs/documentation/cn/administrator-guide/operation/tablet-repair-and-balance.md
+++ /dev/null
@@ -1,666 +0,0 @@
-<!-- 
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-# 数据副本管理
-
-从 0.9.0 版本开始,Doris 引入了优化后的副本管理策略,同时支持了更为丰富的副本状态查看工具。本文档主要介绍 Doris 数据副本均衡、修复方面的调度策略,以及副本管理的运维方法。帮助用户更方便的掌握和管理集群中的副本状态。
-
-> Colocation 属性的表的副本修复和均衡可以参阅 `docs/documentation/cn/administrator-guide/colocation-join.md`
-
-## 名词解释
-
-1. Tablet:Doris 表的逻辑分片,一个表有多个分片。
-2. Replica:分片的副本,默认一个分片有3个副本。
-3. Healthy Replica:健康副本,副本所在 Backend 存活,且副本的版本完整。
-4. TabletChecker(TC):是一个常驻的后台线程,用于定期扫描所有的 Tablet,检查这些 Tablet 的状态,并根据检查结果,决定是否将 tablet 发送给 TabletScheduler。
-5. TabletScheduler(TS):是一个常驻的后台线程,用于处理由 TabletChecker 发来的需要修复的 Tablet。同时也会进行集群副本均衡的工作。
-6. TabletSchedCtx(TSC):是一个 tablet 的封装。当 TC 选择一个 tablet 后,会将其封装为一个 TSC,发送给 TS。
-7. Storage Medium:存储介质。Doris 支持对分区粒度指定不同的存储介质,包括 SSD 和 HDD。副本调度策略也是针对不同的存储介质分别调度的。
-
-```
-
-              +--------+              +-----------+
-              |  Meta  |              |  Backends |
-              +---^----+              +------^----+
-                  | |                        | 3. Send clone tasks
- 1. Check tablets | |                        |
-           +--------v------+        +-----------------+
-           | TabletChecker +--------> TabletScheduler |
-           +---------------+        +-----------------+
-                   2. Waiting to be scheduled
-
-
-```
-
-上图是一个简化的工作流程。
-
-
-## 副本状态
-
-一个 Tablet 的多个副本,可能因为某些情况导致状态不一致。Doris 会尝试自动修复这些状态不一致的副本,让集群尽快从错误状态中恢复。
-
-**一个 Replica 的健康状态有以下几种:**
-
-1. BAD
-
-    即副本损坏。包括但不限于磁盘故障、BUG等引起的副本不可恢复的损毁状态。
-    
-2. VERSION\_MISSING
-
-    版本缺失。Doris 中每一批次导入都对应一个数据版本。而一个副本的数据由多个连续的版本组成。而由于导入错误、延迟等原因,可能导致某些副本的数据版本不完整。
-    
-3. HEALTHY
-
-    健康副本。即数据正常的副本,并且副本所在的 BE 节点状态正常(心跳正常且不处于下线过程中)
-    
-**一个 Tablet 的健康状态由其所有副本的状态决定,有以下几种:**
-
-1. REPLICA\_MISSING
-    
-    副本缺失。即存活副本数小于期望副本数。
-    
-2. VERSION\_INCOMPLETE
-
-    存活副本数大于等于期望副本数,但其中健康副本数小于期望副本数。
-
-3. REPLICA\_RELOCATING
-
-    拥有等于 replication num 的版本完整的存活副本数,但是部分副本所在的 BE 节点处于 unavailable 状态(比如 decommission 中)
-    
-4. REPLICA\_MISSING\_IN\_CLUSTER
-
-    当使用多 cluster 方式时,健康副本数大于等于期望副本数,但在对应 cluster 内的副本数小于期望副本数。
-    
-5. REDUNDANT
-
-    副本冗余。健康副本都在对应 cluster 内,但数量大于期望副本数。或者有多余的 unavailable 副本。
-
-6. FORCE\_REDUNDANT
-
-    这是一个特殊状态。只会出现在当期望副本数大于等于可用节点数时,并且 Tablet 处于副本缺失状态时出现。这种情况下,需要先删除一个副本,以保证有可用节点用于创建新副本。
-    
-7. COLOCATE\_MISMATCH
-
-    针对 Colocation 属性的表的分片状态。表示分片副本与 Colocation Group 的指定的分布不一致。
-
-8. COLOCATE\_REDUNDANT
-
-    针对 Colocation 属性的表的分片状态。表示 Colocation 表的分片副本冗余。
-       
-9. HEALTHY
-
-    健康分片,即条件[1-8]都不满足。
-    
-## 副本修复
-
-TabletChecker 作为常驻的后台进程,会定期检查所有分片的状态。对于非健康状态的分片,将会交给 TabletScheduler 进行调度和修复。修复的实际操作,都由 BE 上的 clone 任务完成。FE 只负责生成这些 clone 任务。
-
-> 注1:副本修复的主要思想是先通过创建或补齐使得分片的副本数达到期望值,然后再删除多余的副本。
-> 
-> 注2:一个 clone 任务就是完成从一个指定远端 BE 拷贝指定数据到指定目的端 BE 的过程。
-
-针对不同的状态,我们采用不同的修复方式:
-
-1. REPLICA\_MISSING/REPLICA\_RELOCATING
-
-    选择一个低负载的,可用的 BE 节点作为目的端。选择一个健康副本作为源端。clone 任务会从源端拷贝一个完整的副本到目的端。对于副本补齐,我们会直接选择一个可用的 BE 节点,而不考虑存储介质。
-    
-2. VERSION\_INCOMPLETE
-
-    选择一个相对完整的副本作为目的端。选择一个健康副本作为源端。clone 任务会从源端尝试拷贝缺失的版本到目的端的副本。
-    
-3. REPLICA\_MISSING\_IN\_CLUSTER
-
-    这种状态处理方式和 REPLICA\_MISSING 相同。
-    
-4. REDUNDANT
-
-    通常经过副本修复后,分片会有冗余的副本。我们选择一个冗余副本将其删除。冗余副本的选择遵从以下优先级:
-    1. 副本所在 BE 已经下线
-    2. 副本已损坏
-    3. 副本所在 BE 失联或在下线中
-    4. 副本处于 CLONE 状态(该状态是 clone 任务执行过程中的一个中间状态)
-    5. 副本有版本缺失
-    6. 副本所在 cluster 不正确
-    7. 副本所在 BE 节点负载高
-
-5. FORCE\_REDUNDANT
-
-    不同于 REDUNDANT,因为此时虽然 Tablet 有副本缺失,但是因为已经没有额外的可用节点用于创建新的副本了。所以此时必须先删除一个副本,以腾出一个可用节点用于创建新的副本。
-    删除副本的顺序同 REDUNDANT。
-    
-6. COLOCATE\_MISMATCH
-
-    从 Colocation Group 中指定的副本分布 BE 节点中选择一个作为目的节点进行副本补齐。
-
-7. COLOCATE\_REDUNDANT
-
-    删除一个非 Colocation Group 中指定的副本分布 BE 节点上的副本。
-
-Doris 在选择副本节点时,不会将同一个 Tablet 的副本部署在同一个 host 的不同 BE 上。保证了即使同一个 host 上的所有 BE 都挂掉,也不会造成全部副本丢失。
-
-### 调度优先级
-
-TabletScheduler 里等待被调度的分片会根据状态不同,赋予不同的优先级。优先级高的分片将会被优先调度。目前有以下几种优先级。
-    
-1. VERY\_HIGH
-
-    * REDUNDANT。对于有副本冗余的分片,我们优先处理。虽然逻辑上来讲,副本冗余的紧急程度最低,但是因为这种情况处理起来最快且可以快速释放资源(比如磁盘空间等),所以我们优先处理。
-    * FORCE\_REDUNDANT。同上。
-
-2. HIGH
-
-    * REPLICA\_MISSING 且多数副本缺失(比如3副本丢失了2个)
-    * VERSION\_INCOMPLETE 且多数副本的版本缺失
-    * COLOCATE\_MISMATCH 我们希望 Colocation 表相关的分片能够尽快修复完成。
-    * COLOCATE\_REDUNDANT
-
-3. NORMAL
-
-    * REPLICA\_MISSING 但多数存活(比如3副本丢失了1个)
-    * VERSION\_INCOMPLETE 但多数副本的版本完整
-    * REPLICA\_RELOCATING 且多数副本需要 relocate(比如3副本有2个)
-
-4. LOW
-
-    * REPLICA\_MISSING\_IN\_CLUSTER
-    * REPLICA\_RELOCATING 但多数副本 stable
-
-### 手动优先级
-
-系统会自动判断调度优先级。但是有些时候,用户希望某些表或分区的分片能够更快的被修复。因此我们提供一个命令,用户可以指定某个表或分区的分片被优先修复:
-
-`ADMIN REPAIR TABLE tbl [PARTITION (p1, p2, ...)];`
-
-这个命令,告诉 TC,在扫描 Tablet 时,对需要优先修复的表或分区中的有问题的 Tablet,给予 VERY\_HIGH 的优先级。
-    
-> 注:这个命令只是一个 hint,并不能保证一定能修复成功,并且优先级也会随 TS 的调度而发生变化。并且当 Master FE 切换或重启后,这些信息都会丢失。
-
-可以通过以下命令取消优先级:
-
-`ADMIN CANCEL REPAIR TABLE tbl [PARTITION (p1, p2, ...)];`
-
-### 优先级调度
-
-优先级保证了损坏严重的分片能够优先被修复,提高系统可用性。但是如果高优先级的修复任务一直失败,则会导致低优先级的任务一直得不到调度。因此,我们会根据任务的运行状态,动态的调整任务的优先级,保证所有任务都有机会被调度到。
-
-* 连续5次调度失败(如无法获取资源,无法找到合适的源端或目的端等),则优先级会被下调。
-* 持续 30 分钟未被调度,则上调优先级。 
-* 同一 tablet 任务的优先级至少间隔 5 分钟才会被调整一次。
-
-同时为了保证初始优先级的权重,我们规定,初始优先级为 VERY\_HIGH 的,最低被下调到 NORMAL。而初始优先级为 LOW 的,最多被上调为 HIGH。这里的优先级调整,也会调整用户手动设置的优先级。
-
-## 副本均衡
-
-Doris 会自动进行集群内的副本均衡。均衡的主要思想,是对某些分片,先在低负载的节点上创建一个副本,然后再删除这些分片在高负载节点上的副本。同时,因为不同存储介质的存在,在同一个集群内的不同 BE 节点上,可能存在一种或两种存储介质。我们要求存储介质为 A 的分片在均衡后,尽量依然存储在存储介质 A 中。所以我们根据存储介质,对集群的 BE 节点进行划分。然后针对不同的存储介质的 BE 节点集合,进行负载均衡调度。
-
-同样,副本均衡会保证不会将同一个 Tablet 的副本部署在同一个 host 的 BE 上。
-
-### BE 节点负载
-
-我们用 ClusterLoadStatistics(CLS)表示一个 cluster 中各个 Backend 的负载均衡情况。TabletScheduler 根据这个统计值,来触发集群均衡。我们当前通过 **磁盘使用率** 和 **副本数量** 两个指标,为每个BE计算一个 loadScore,作为 BE 的负载分数。分数越高,表示该 BE 的负载越重。
-
-磁盘使用率和副本数量各有一个权重系数,分别为 **capacityCoefficient** 和 **replicaNumCoefficient**,其 **和衡为1**。其中 capacityCoefficient 会根据实际磁盘使用率动态调整。当一个 BE 的总体磁盘使用率在 50% 以下,则 capacityCoefficient 值为 0.5,如果磁盘使用率在 75%(可通过 FE 配置项 `capacity_used_percent_high_water` 配置)以上,则值为 1。如果使用率介于 50% ~ 75% 之间,则该权重系数平滑增加,公式为:
-
-`capacityCoefficient= 2 * 磁盘使用率 - 0.5`
-
-该权重系数保证当磁盘使用率过高时,该 Backend 的负载分数会更高,以保证尽快降低这个 BE 的负载。
-
-TabletScheduler 会每隔 1 分钟更新一次 CLS。
-
-### 均衡策略
-
-TabletScheduler 在每轮调度时,都会通过 LoadBalancer 来选择一定数目的健康分片作为 balance 的候选分片。在下一次调度时,会尝试根据这些候选分片,进行均衡调度。
-
-## 资源控制
-
-无论是副本修复还是均衡,都是通过副本在各个 BE 之间拷贝完成的。如果同一台 BE 同一时间执行过多的任务,则会带来不小的 IO 压力。因此,Doris 在调度时控制了每个节点上能够执行的任务数目。最小的资源控制单位是磁盘(即在 be.conf 中指定的一个数据路径)。我们默认为每块磁盘配置两个 slot 用于副本修复。一个 clone 任务会占用源端和目的端各一个 slot。如果 slot 数目为零,则不会再对这块磁盘分配任务。该 slot 个数可以通过 FE 的 `schedule_slot_num_per_path` 参数配置。 
-
-另外,我们默认为每块磁盘提供 2 个单独的 slot 用于均衡任务。目的是防止高负载的节点因为 slot 被修复任务占用,而无法通过均衡释放空间。
-
-## 副本状态查看
-
-副本状态查看主要是查看副本的状态,以及副本修复和均衡任务的运行状态。这些状态大部分都**仅存在于** Master FE 节点中。因此,以下命令需直连到 Master FE 执行。
-
-### 副本状态
-
-1. 全局状态检查
-
-    通过 `SHOW PROC '/statistic';` 命令可以查看整个集群的副本状态。
-
-    ```
-	+----------+-----------------------------+----------+--------------+----------+-----------+------------+--------------------+-----------------------+
-	| DbId     | DbName                      | TableNum | PartitionNum | IndexNum | TabletNum | ReplicaNum | UnhealthyTabletNum | InconsistentTabletNum |
-	+----------+-----------------------------+----------+--------------+----------+-----------+------------+--------------------+-----------------------+
-	| 35153636 | default_cluster:DF_Newrisk  | 3        | 3            | 3        | 96        | 288        | 0                  | 0                     |
-	| 48297972 | default_cluster:PaperData   | 0        | 0            | 0        | 0         | 0          | 0                  | 0                     |
-	| 5909381  | default_cluster:UM_TEST     | 7        | 7            | 10       | 320       | 960        | 1                  | 0                     |
-	| Total    | 240                         | 10       | 10           | 13       | 416       | 1248       | 1                  | 0                     |
-	+----------+-----------------------------+----------+--------------+----------+-----------+------------+--------------------+-----------------------+
-    ```
-
-    其中 `UnhealthyTabletNum` 列显示了对应的 Database 中,有多少 Tablet 处于非健康状态。`InconsistentTabletNum` 列显示了对应的 Database 中,有多少 Tablet 处于副本不一致的状态。最后一行 `Total` 行对整个集群进行了统计。正常情况下 `UnhealthyTabletNum` 和 `InconsistentTabletNum` 应为0。如果不为零,可以进一步查看具体有哪些 Tablet。如上图中,UM_TEST 数据库有 1 个 Tablet 状态不健康,则可以使用以下命令查看具体是哪一个 Tablet。
-    
-    `SHOW PROC '/statistic/5909381';`
-    
-    其中 `5909381` 为对应的 DbId。
-
-    ```
-	+------------------+---------------------+
-	| UnhealthyTablets | InconsistentTablets |
-	+------------------+---------------------+
-	| [40467980]       | []                  |
-	+------------------+---------------------+
-    ```
-
-    上图会显示具体的不健康的 Tablet ID(40467980)。后面我们会介绍如何查看一个具体的 Tablet 的各个副本的状态。
-    
-2. 表(分区)级别状态检查
-    
-    用户可以通过以下命令查看指定表或分区的副本状态,并可以通过 WHERE 语句对状态进行过滤。如查看表 tbl1 中,分区 p1 和 p2 上状态为 NORMAL 的副本:
-    
-    `ADMIN SHOW REPLICA STATUS FROM tbl1 PARTITION (p1, p2) WHERE STATUS = "NORMAL";`
-    
-    ```
-	+----------+-----------+-----------+---------+-------------------+--------------------+------------------+------------+------------+-------+--------+--------+
-	| TabletId | ReplicaId | BackendId | Version | LastFailedVersion | LastSuccessVersion | CommittedVersion | SchemaHash | VersionNum | IsBad | State  | Status |
-	+----------+-----------+-----------+---------+-------------------+--------------------+------------------+------------+------------+-------+--------+--------+
-	| 29502429 | 29502432  | 10006     | 2       | -1                | 2                  | 1                | -1         | 2          | false | NORMAL | OK     |
-	| 29502429 | 36885996  | 10002     | 2       | -1                | -1                 | 1                | -1         | 2          | false | NORMAL | OK     |
-	| 29502429 | 48100551  | 10007     | 2       | -1                | -1                 | 1                | -1         | 2          | false | NORMAL | OK     |
-	| 29502433 | 29502434  | 10001     | 2       | -1                | 2                  | 1                | -1         | 2          | false | NORMAL | OK     |
-	| 29502433 | 44900737  | 10004     | 2       | -1                | -1                 | 1                | -1         | 2          | false | NORMAL | OK     |
-	| 29502433 | 48369135  | 10006     | 2       | -1                | -1                 | 1                | -1         | 2          | false | NORMAL | OK     |
-	+----------+-----------+-----------+---------+-------------------+--------------------+------------------+------------+------------+-------+--------+--------+
-    ```
-
-    这里会展示所有副本的状态。其中 `IsBad` 列为 `true` 则表示副本已经损坏。而 `Status` 列则会显示另外的其他状态。具体的状态说明,可以通过 `HELP ADMIN SHOW REPLICA STATUS;` 查看帮助。
-    
-    `ADMIN SHOW REPLICA STATUS` 命令主要用于查看副本的健康状态。用户还可以通过以下命令查看指定表中副本的一些额外信息:
-    
-    `SHOW TABLET FROM tbl1;`
-    
-    ```
-	+----------+-----------+-----------+---------+-------------+-------------------+-----------------------+------------------+----------------------+---------------+----------+----------+--------+-------------------------+--------------+-----------------	-+--------------+----------------------+
-	| TabletId | ReplicaId | BackendId | Version | VersionHash | LstSuccessVersion | LstSuccessVersionHash | LstFailedVersion | LstFailedVersionHash | LstFailedTime | DataSize | RowCount | State  | LstConsistencyCheckTime | CheckVersion | 	CheckVersionHash | VersionCount | PathHash             |
-	+----------+-----------+-----------+---------+-------------+-------------------+-----------------------+------------------+----------------------+---------------+----------+----------+--------+-------------------------+--------------+-----------------	-+--------------+----------------------+
-	| 29502429 | 29502432  | 10006     | 2       | 0           | 2                 | 0                     | -1               | 0                    | N/A           | 784      | 0        | NORMAL | N/A                     | -1           | 	-1               | 2            | -5822326203532286804 |
-	| 29502429 | 36885996  | 10002     | 2       | 0           | -1                | 0                     | -1               | 0                    | N/A           | 784      | 0        | NORMAL | N/A                     | -1           | 	-1               | 2            | -1441285706148429853 |
-	| 29502429 | 48100551  | 10007     | 2       | 0           | -1                | 0                     | -1               | 0                    | N/A           | 784      | 0        | NORMAL | N/A                     | -1           | 	-1               | 2            | -4784691547051455525 |
-	+----------+-----------+-----------+---------+-------------+-------------------+-----------------------+------------------+----------------------+---------------+----------+----------+--------+-------------------------+--------------+-----------------	-+--------------+----------------------+  
-    ```
-    
-    上图展示了包括副本大小、行数、版本数量、所在数据路径等一些额外的信息。
-    
-    > 注:这里显示的 `State` 列的内容不代表副本的健康状态,而是副本处于某种任务下的状态,比如 CLONE、SCHEMA\_CHANGE、ROLLUP 等。
-
-    此外,用户也可以通过以下命令,查看指定表或分区的副本分布情况,来检查副本分布是否均匀。
-    
-    `ADMIN SHOW REPLICA DISTRIBUTION FROM tbl1;`
-    
-    ```
-	+-----------+------------+-------+---------+
-	| BackendId | ReplicaNum | Graph | Percent |
-	+-----------+------------+-------+---------+
-	| 10000     | 7          |       | 7.29 %  |
-	| 10001     | 9          |       | 9.38 %  |
-	| 10002     | 7          |       | 7.29 %  |
-	| 10003     | 7          |       | 7.29 %  |
-	| 10004     | 9          |       | 9.38 %  |
-	| 10005     | 11         | >     | 11.46 % |
-	| 10006     | 18         | >     | 18.75 % |
-	| 10007     | 15         | >     | 15.62 % |
-	| 10008     | 13         | >     | 13.54 % |
-	+-----------+------------+-------+---------+
-    ```
-    
-    这里分别展示了表 tbl1 的副本在各个 BE 节点上的个数、百分比,以及一个简单的图形化显示。
-    
-4. Tablet 级别状态检查
-
-    当我们要定位到某个具体的 Tablet 时,可以使用如下命令来查看一个具体的 Tablet 的状态。如查看 ID 为 29502553 的 tablet:
-    
-    `SHOW TABLET 29502553;`
-
-    ```
-	+------------------------+-----------+---------------+-----------+----------+----------+-------------+----------+--------+---------------------------------------------------------------------------+
-	| DbName                 | TableName | PartitionName | IndexName | DbId     | TableId  | PartitionId | IndexId  | IsSync | DetailCmd                                                                 |
-	+------------------------+-----------+---------------+-----------+----------+----------+-------------+----------+--------+---------------------------------------------------------------------------+
-	| default_cluster:test   | test      | test          | test      | 29502391 | 29502428 | 29502427    | 29502428 | true   | SHOW PROC '/dbs/29502391/29502428/partitions/29502427/29502428/29502553'; |
-	+------------------------+-----------+---------------+-----------+----------+----------+-------------+----------+--------+---------------------------------------------------------------------------+
-    ```
-    
-    上图显示了这个 tablet 所对应的数据库、表、分区、上卷表等信息。用户可以复制 `DetailCmd` 命令中的命令继续执行:
-    
-    `SHOW PROC '/dbs/29502391/29502428/partitions/29502427/29502428/29502553';`
-    
-    ```
-	+-----------+-----------+---------+-------------+-------------------+-----------------------+------------------+----------------------+---------------+------------+----------+----------+--------+-------+--------------+----------------------+
-	| ReplicaId | BackendId | Version | VersionHash | LstSuccessVersion | LstSuccessVersionHash | LstFailedVersion | LstFailedVersionHash | LstFailedTime | SchemaHash | DataSize | RowCount | State  | IsBad | VersionCount | PathHash             |
-	+-----------+-----------+---------+-------------+-------------------+-----------------------+------------------+----------------------+---------------+------------+----------+----------+--------+-------+--------------+----------------------+
-	| 43734060  | 10004     | 2       | 0           | -1                | 0                     | -1               | 0                    | N/A           | -1         | 784      | 0        | NORMAL | false | 2            | -8566523878520798656 |
-	| 29502555  | 10002     | 2       | 0           | 2                 | 0                     | -1               | 0                    | N/A           | -1         | 784      | 0        | NORMAL | false | 2            | 1885826196444191611  |
-	| 39279319  | 10007     | 2       | 0           | -1                | 0                     | -1               | 0                    | N/A           | -1         | 784      | 0        | NORMAL | false | 2            | 1656508631294397870  |
-	+-----------+-----------+---------+-------------+-------------------+-----------------------+------------------+----------------------+---------------+------------+----------+----------+--------+-------+--------------+----------------------+
-    ```
-
-    上图显示了对应 Tablet 的所有副本情况。这里显示的内容和 `SHOW TABLET FROM tbl1;` 的内容相同。但这里可以清楚的知道,一个具体的 Tablet 的所有副本的状态。
-
-### 副本调度任务
-
-1. 查看等待被调度的任务
-
-    `SHOW PROC '/cluster_balance/pending_tablets';`
-
-    ```
-    +----------+--------+-----------------+---------+----------+----------+-------+---------+--------+----------+---------+---------------------+---------------------+---------------------+----------+------+-------------+---------------+---------------------+------------+---------------------+--------+---------------------+-------------------------------+
-    | TabletId | Type   | Status          | State   | OrigPrio | DynmPrio | SrcBe | SrcPath | DestBe | DestPath | Timeout | Create              | LstSched            | LstVisit            | Finished | Rate | FailedSched | FailedRunning | LstAdjPrio          | VisibleVer | VisibleVerHash      | CmtVer | CmtVerHash          | ErrMsg                        |
-    +----------+--------+-----------------+---------+----------+----------+-------+---------+--------+----------+---------+---------------------+---------------------+---------------------+----------+------+-------------+---------------+---------------------+------------+---------------------+--------+---------------------+-------------------------------+
-    | 4203036  | REPAIR | REPLICA_MISSING | PENDING | HIGH     | LOW      | -1    | -1      | -1     | -1       | 0       | 2019-02-21 15:00:20 | 2019-02-24 11:18:41 | 2019-02-24 11:18:41 | N/A      | N/A  | 2           | 0             | 2019-02-21 15:00:43 | 1          | 0                   | 2      | 0                   | unable to find source replica |
-    +----------+--------+-----------------+---------+----------+----------+-------+---------+--------+----------+---------+---------------------+---------------------+---------------------+----------+------+-------------+---------------+---------------------+------------+---------------------+--------+---------------------+-------------------------------+
-    ```
-
-    各列的具体含义如下:
-    
-    * TabletId:等待调度的 Tablet 的 ID。一个调度任务只针对一个 Tablet
-    * Type:任务类型,可以是 REPAIR(修复) 或 BALANCE(均衡)
-    * Status:该 Tablet 当前的状态,如 REPLICA\_MISSING(副本缺失)
-    * State:该调度任务的状态,可能为 PENDING/RUNNING/FINISHED/CANCELLED/TIMEOUT/UNEXPECTED
-    * OrigPrio:初始的优先级
-    * DynmPrio:当前动态调整后的优先级
-    * SrcBe:源端 BE 节点的 ID
-    * SrcPath:源端 BE 节点的路径的 hash 值
-    * DestBe:目的端 BE 节点的 ID
-    * DestPath:目的端 BE 节点的路径的 hash 值
-    * Timeout:当任务被调度成功后,这里会显示任务的超时时间,单位秒
-    * Create:任务被创建的时间
-    * LstSched:上一次任务被调度的时间
-    * LstVisit:上一次任务被访问的时间。这里“被访问”指包括被调度,任务执行汇报等和这个任务相关的被处理的时间点
-    * Finished:任务结束时间
-    * Rate:clone 任务的数据拷贝速率
-    * FailedSched:任务调度失败的次数
-    * FailedRunning:任务执行失败的次数
-    * LstAdjPrio:上一次优先级调整的时间
-    * CmtVer/CmtVerHash/VisibleVer/VisibleVerHash:用于执行 clone 任务的 version 信息
-    * ErrMsg:任务被调度和运行过程中,出现的错误信息
-
-2. 查看正在运行的任务
-
-    `SHOW PROC '/cluster_balance/running_tablets';`
-    
-    其结果中各列的含义和 `pending_tablets` 相同。
-    
-3. 查看已结束任务
-
-    `SHOW PROC '/cluster_balance/history_tablets';`
-
-    我们默认只保留最近 1000 个完成的任务。其结果中各列的含义和 `pending_tablets` 相同。如果 `State` 列为 `FINISHED`,则说明任务正常完成。如果为其他,则可以根据 `ErrMsg` 列的错误信息查看具体原因。
-    
-## 集群负载及调度资源查看
-
-1. 集群负载
-
-    通过以下命令可以查看集群当前的负载情况:
-    
-    `SHOW PROC '/cluster_balance/cluster_load_stat';`
-    
-    首先看到的是对不同存储介质的划分:
-    
-    ```
-    +---------------+
-    | StorageMedium |
-    +---------------+
-    | HDD           |
-    | SSD           |
-    +---------------+
-    ```
-    
-    点击某一种存储介质,可以看到包含该存储介质的 BE 节点的均衡状态:
-    
-    `SHOW PROC '/cluster_balance/cluster_load_stat/HDD';`
-    
-    ```
-	+----------+-----------------+-----------+---------------+----------------+-------------+------------+----------+-----------+--------------------+-------+
-	| BeId     | Cluster         | Available | UsedCapacity  | Capacity       | UsedPercent | ReplicaNum | CapCoeff | ReplCoeff | Score              | Class |
-	+----------+-----------------+-----------+---------------+----------------+-------------+------------+----------+-----------+--------------------+-------+
-	| 10003    | default_cluster | true      | 3477875259079 | 19377459077121 | 17.948      | 493477     | 0.5      | 0.5       | 0.9284678149967587 | MID   |
-	| 10002    | default_cluster | true      | 3607326225443 | 19377459077121 | 18.616      | 496928     | 0.5      | 0.5       | 0.948660871419998  | MID   |
-	| 10005    | default_cluster | true      | 3523518578241 | 19377459077121 | 18.184      | 545331     | 0.5      | 0.5       | 0.9843539990641831 | MID   |
-	| 10001    | default_cluster | true      | 3535547090016 | 19377459077121 | 18.246      | 558067     | 0.5      | 0.5       | 0.9981869446537612 | MID   |
-	| 10006    | default_cluster | true      | 3636050364835 | 19377459077121 | 18.764      | 547543     | 0.5      | 0.5       | 1.0011489897614072 | MID   |
-	| 10004    | default_cluster | true      | 3506558163744 | 15501967261697 | 22.620      | 468957     | 0.5      | 0.5       | 1.0228319835582569 | MID   |
-	| 10007    | default_cluster | true      | 4036460478905 | 19377459077121 | 20.831      | 551645     | 0.5      | 0.5       | 1.057279369420761  | MID   |
-	| 10000    | default_cluster | true      | 4369719923760 | 19377459077121 | 22.551      | 547175     | 0.5      | 0.5       | 1.0964036415787461 | MID   |
-	+----------+-----------------+-----------+---------------+----------------+-------------+------------+----------+-----------+--------------------+-------+
-	```
-	    
-    其中一些列的含义如下:
-
-    * Available:为 true 表示 BE 心跳正常,且没有处于下线中
-    * UsedCapacity:字节,BE 上已使用的磁盘空间大小
-    * Capacity:字节,BE 上总的磁盘空间大小
-    * UsedPercent:百分比,BE 上的磁盘空间使用率
-    * ReplicaNum:BE 上副本数量
-    * CapCoeff/ReplCoeff:磁盘空间和副本数的权重系数
-    * Score:负载分数。分数越高,负载越重
-    * Class:根据负载情况分类,LOW/MID/HIGH。均衡调度会将高负载节点上的副本迁往低负载节点
-
-    用户可以进一步查看某个 BE 上各个路径的使用率,比如 ID 为 10001 这个 BE:
-
-    `SHOW PROC '/cluster_balance/cluster_load_stat/HDD/10001';`
-
-    ```
-	+------------------+------------------+---------------+---------------+---------+--------+----------------------+
-	| RootPath         | DataUsedCapacity | AvailCapacity | TotalCapacity | UsedPct | State  | PathHash             |
-	+------------------+------------------+---------------+---------------+---------+--------+----------------------+
-	| /home/disk4/palo | 498.757 GB       | 3.033 TB      | 3.525 TB      | 13.94 % | ONLINE | 4883406271918338267  |
-	| /home/disk3/palo | 704.200 GB       | 2.832 TB      | 3.525 TB      | 19.65 % | ONLINE | -5467083960906519443 |
-	| /home/disk1/palo | 512.833 GB       | 3.007 TB      | 3.525 TB      | 14.69 % | ONLINE | -7733211489989964053 |
-	| /home/disk2/palo | 881.955 GB       | 2.656 TB      | 3.525 TB      | 24.65 % | ONLINE | 4870995507205544622  |
-	| /home/disk5/palo | 694.992 GB       | 2.842 TB      | 3.525 TB      | 19.36 % | ONLINE | 1916696897889786739  |
-	+------------------+------------------+---------------+---------------+---------+--------+----------------------+
-	```
-
-    这里显示了指定 BE 上,各个数据路径的磁盘使用率情况。
-    
-2. 调度资源
-
-    用户可以通过以下命令,查看当前各个节点的 slot 使用情况:
-    
-    `SHOW PROC '/cluster_balance/working_slots';`
-
-    ```
-    +----------+----------------------+------------+------------+-------------+----------------------+
-    | BeId     | PathHash             | AvailSlots | TotalSlots | BalanceSlot | AvgRate              |
-    +----------+----------------------+------------+------------+-------------+----------------------+
-    | 10000    | 8110346074333016794  | 2          | 2          | 2           | 2.459007474009069E7  |
-    | 10000    | -5617618290584731137 | 2          | 2          | 2           | 2.4730105014001578E7 |
-    | 10001    | 4883406271918338267  | 2          | 2          | 2           | 1.6711402709780257E7 |
-    | 10001    | -5467083960906519443 | 2          | 2          | 2           | 2.7540126380326536E7 |
-    | 10002    | 9137404661108133814  | 2          | 2          | 2           | 2.417217089806745E7  |
-    | 10002    | 1885826196444191611  | 2          | 2          | 2           | 1.6327378456676323E7 |
-    +----------+----------------------+------------+------------+-------------+----------------------+
-    ```
-
-    这里以数据路径为粒度,展示了当前 slot 的使用情况。其中 `AvgRate` 为历史统计的该路径上 clone 任务的拷贝速率,单位是字节/秒。
-    
-3. 优先修复查看
-
-    以下命令,可以查看通过 `ADMIN REPAIR TABLE` 命令设置的优先修复的表或分区。
-    
-    `SHOW PROC '/cluster_balance/priority_repair';`
-    
-    其中 `RemainingTimeMs` 表示,这些优先修复的内容,将在这个时间后,被自动移出优先修复队列。以防止优先修复一直失败导致资源被占用。
-    
-### 调度器统计状态查看
-
-我们收集了 TabletChecker 和 TabletScheduler 在运行过程中的一些统计信息,可以通过以下命令查看:
-
-`SHOW PROC '/cluster_balance/sched_stat';`
-
-```
-+---------------------------------------------------+-------------+
-| Item                                              | Value       |
-+---------------------------------------------------+-------------+
-| num of tablet check round                         | 12041       |
-| cost of tablet check(ms)                          | 7162342     |
-| num of tablet checked in tablet checker           | 18793506362 |
-| num of unhealthy tablet checked in tablet checker | 7043900     |
-| num of tablet being added to tablet scheduler     | 1153        |
-| num of tablet schedule round                      | 49538       |
-| cost of tablet schedule(ms)                       | 49822       |
-| num of tablet being scheduled                     | 4356200     |
-| num of tablet being scheduled succeeded           | 320         |
-| num of tablet being scheduled failed              | 4355594     |
-| num of tablet being scheduled discard             | 286         |
-| num of tablet priority upgraded                   | 0           |
-| num of tablet priority downgraded                 | 1096        |
-| num of clone task                                 | 230         |
-| num of clone task succeeded                       | 228         |
-| num of clone task failed                          | 2           |
-| num of clone task timeout                         | 2           |
-| num of replica missing error                      | 4354857     |
-| num of replica version missing error              | 967         |
-| num of replica relocating                         | 0           |
-| num of replica redundant error                    | 90          |
-| num of replica missing in cluster error           | 0           |
-| num of balance scheduled                          | 0           |
-+---------------------------------------------------+-------------+
-```
-
-各行含义如下:
-
-* num of tablet check round:Tablet Checker 检查次数
-* cost of tablet check(ms):Tablet Checker 检查总耗时
-* num of tablet checked in tablet checker:Tablet Checker 检查过的 tablet 数量
-* num of unhealthy tablet checked in tablet checker:Tablet Checker 检查过的不健康的 tablet 数量
-* num of tablet being added to tablet scheduler:被提交到 Tablet Scheduler 中的 tablet 数量
-* num of tablet schedule round:Tablet Scheduler 运行次数
-* cost of tablet schedule(ms):Tablet Scheduler 运行总耗时
-* num of tablet being scheduled:被调度的 Tablet 总数量
-* num of tablet being scheduled succeeded:被成功调度的 Tablet 总数量
-* num of tablet being scheduled failed:调度失败的 Tablet 总数量
-* num of tablet being scheduled discard:调度失败且被抛弃的 Tablet 总数量
-* num of tablet priority upgraded:优先级上调次数
-* num of tablet priority downgraded:优先级下调次数
-* num of clone task:生成的 clone 任务数量
-* num of clone task succeeded:clone 任务成功的数量
-* num of clone task failed:clone 任务失败的数量
-* num of clone task timeout:clone 任务超时的数量
-* num of replica missing error:检查的状态为副本缺失的 tablet 的数量
-* num of replica version missing error:检查的状态为版本缺失的 tablet 的数量(该统计值包括了 num of replica relocating 和 num of replica missing in cluster error)
-* num of replica relocating:检查的状态为 replica relocating 的 tablet 的数量
-* num of replica redundant error:检查的状态为副本冗余的 tablet 的数量
-* num of replica missing in cluster error:检查的状态为不在对应 cluster 的 tablet 的数量
-* num of balance scheduled:均衡调度的次数
-
-> 注:以上状态都只是历史累加值。我们也在 FE 的日志中,定期打印了这些统计信息,其中括号内的数值表示自上次统计信息打印依赖,各个统计值的变化数量。
-
-## 相关配置说明
-
-### 可调整参数
-
-以下可调整参数均为 fe.conf 中可配置参数。
-
-* use\_new\_tablet\_scheduler
-
-    * 说明:是否启用新的副本调度方式。新的副本调度方式即本文档介绍的副本调度方式。
-    * 默认值:true
-    * 重要性:高
-
-* tablet\_repair\_delay\_factor\_second
-
-    * 说明:对于不同的调度优先级,我们会延迟不同的时间后开始修复。以防止因为例行重启、升级等过程中,产生大量不必要的副本修复任务。此参数为一个基准系数。对于 HIGH 优先级,延迟为 基准系数 * 1;对于 NORMAL 优先级,延迟为 基准系数 * 2;对于 LOW 优先级,延迟为 基准系数 * 3。即优先级越低,延迟等待时间越长。如果用户想尽快修复副本,可以适当降低该参数。
-    * 默认值:60秒
-    * 重要性:高
-
-* schedule\_slot\_num\_per\_path
-    
-    * 说明:默认分配给每块磁盘用于副本修复的 slot 数目。该数目表示一块磁盘能同时运行的副本修复任务数。如果想以更快的速度修复副本,可以适当调高这个参数。单数值越高,可能对 IO 影响越大。
-    * 默认值:2
-    * 重要性:高
-
-* balance\_load\_score\_threshold
-
-    * 说明:集群均衡的阈值。默认为 0.1,即 10%。当一个 BE 节点的 load score,不高于或不低于平均 load score 的 10% 时,我们认为这个节点是均衡的。如果想让集群负载更加平均,可以适当调低这个参数。
-    * 默认值:0.1
-    * 重要性:中
-
-* storage\_high\_watermark\_usage\_percent 和 storage\_min\_left\_capacity\_bytes
-
-    * 说明:这两个参数,分别表示一个磁盘的最大空间使用率上限,以及最小的空间剩余下限。当一块磁盘的空间使用率大于上限,或者剩余空间小于下限时,该磁盘将不再作为均衡调度的目的地址。
-    * 默认值:0.85 和 1048576000 (1GB)
-    * 重要性:中
-    
-* disable\_balance
-
-    * 说明:控制是否关闭均衡功能。当副本处于均衡过程中时,有些功能,如 ALTER TABLE 等将会被禁止。而均衡可能持续很长时间。因此,如果用户希望尽快进行被禁止的操作。可以将该参数设为 true,以关闭均衡调度。
-    * 默认值:true
-    * 重要性:中
-
-### 不可调整参数
-
-以下参数暂不支持修改,仅作说明。
-
-* TabletChecker 调度间隔
-
-    TabletChecker 每20秒进行一次检查调度。
-    
-* TabletScheduler 调度间隔
-
-    TabletScheduler 每5秒进行一次调度
-    
-* TabletScheduler 每批次调度个数
-
-    TabletScheduler 每次调度最多 50 个 tablet。
-    
-* TabletScheduler 最大等待调度和运行中任务数
-
-    最大等待调度任务数和运行中任务数为 2000。当超过 2000 后,TabletChecker 将不再产生新的调度任务给 TabletScheduler。
-    
-* TabletScheduler 最大均衡任务数
-
-    最大均衡任务数为 500。当超过 500 后,将不再产生新的均衡任务。
-    
-* 每块磁盘用于均衡任务的 slot 数目
-
-    每块磁盘用于均衡任务的 slot 数目为2。这个 slot 独立于用于副本修复的 slot。
-    
-* 集群均衡情况更新间隔
-
-    TabletScheduler 每隔 20 秒会重新计算一次集群的 load score。
-    
-* Clone 任务的最小和最大超时时间
-
-    一个 clone 任务超时时间范围是 3min ~ 2hour。具体超时时间通过 tablet 的大小计算。计算公式为 (tablet size) / (5MB/s)。当一个 clone 任务运行失败 3 次后,该任务将终止。
-    
-* 动态优先级调整策略
-
-    优先级最小调整间隔为 5min。当一个 tablet 调度失败5次后,会调低优先级。当一个 tablet 30min 未被调度时,会调高优先级。
-
-## 相关问题
-
-* 在某些情况下,默认的副本修复和均衡策略可能会导致网络被打满(多发生在千兆网卡,且每台 BE 的磁盘数量较多的情况下)。此时需要调整一些参数来减少同时进行的均衡和修复任务数。
-
-* 目前针对 Colocate Table 的副本的均衡策略无法保证同一个 Tablet 的副本不会分布在同一个 host 的 BE 上。但 Colocate Table 的副本的修复策略会检测到这种分布错误并校正。但可能会出现,校正后,均衡策略再次认为副本不均衡而重新均衡。从而导致在两种状态间不停交替,无法使 Colocate Group 达成稳定。针对这种情况,我们建议在使用 Colocate 属性时,尽量保证集群是同构的,以减小副本分布在同一个 host 上的概率。
-
-
-
-
-
diff --git a/docs/documentation/cn/administrator-guide/operation/tablet-restore-tool.md b/docs/documentation/cn/administrator-guide/operation/tablet-restore-tool.md
deleted file mode 100644
index 30a6caf..0000000
--- a/docs/documentation/cn/administrator-guide/operation/tablet-restore-tool.md
+++ /dev/null
@@ -1,83 +0,0 @@
-<!-- 
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-# BE Tablet数据恢复工具
-
-## 背景
-
-用户在使用Doris的过程中,可能会发生因为一些误操作或者线上bug,导致一些有效的tablet被删除(包括元数据和数据)。为了防止在这些异常情况出现数据丢失,Doris提供了回收站机制,来保护用户数据。用户删除的tablet数据不会被直接删除,会被放在回收站中存储一段时间,在一段时间之后会有定时清理机制将过期的数据删除。回收站中的数据包括:tablet的data文件(.dat),tablet的索引文件(.idx)和tablet的元数据文件(.hdr)。数据将会存放在如下格式的路径:
-
-/root_path/trash/time_label/tablet_id/schema_hash/
-
-其中, root path是用户配置的一块盘上be存储的根目录;
-trash:是回收站的目录
-time_label: 时间标签,为了回收站中数据目录的唯一性,同时记录数据时间,使用时间标签作为子目录
-
-当用户发现线上的数据被误删除,需要从回收站中恢复被删除的tablet,需要用到这个tablet数据恢复功能。BE提供http接口和restore_tablet_tool.sh脚本实现这个功能,支持单tablet操作(single mode)和批量操作模式(batch mode)。
-在single mode下,支持单个tablet的数据恢复。
-在batch mode下,支持批量tablet的数据恢复。
-
-## 操作
-
-### single mode
-
-#### http请求方式
-
-BE中提供单个tablet数据恢复的http接口,接口如下:
-
-```
-curl -X POST "http://localhost:8040/api/restore_tablet?tablet_id=11111\&schema_hash=12345"
-```
-
-
-成功的结果如下:
-```
-{"status": "Success", "msg": "OK"}
-```
-
-失败的话,会返回相应的失败原因,一种可能的结果如下:
-```
-{"status": "Failed", "msg": "create link path failed"}
-```
-
-#### 脚本方式
-
-restore_tablet_tool.sh可用来实现单tablet数据恢复的功能。
-
-```
-sh tools/restore_tablet_tool.sh -b "http://127.0.0.1:8040" -t 12345 -s 11111
-sh tools/restore_tablet_tool.sh --backend "http://127.0.0.1:8040" --tablet_id 12345 --schema_hash 11111
-```
-
-### batch mode
-
-批量恢复模式用于实现恢复多个tablet数据的功能。使用的时候需要预先将恢复的tablet id和schema hash按照逗号分隔的格式放在一个文件中,一个tablet一行。
-格式如下:
-```
-12345,11111
-12346,11111
-12347,11111
-```
-
-然后如下的命令进行恢复(假设文件名为:tablets.txt):
-
-```
-sh restore_tablet_tool.sh -b "http://127.0.0.1:8040" -f tablets.txt
-sh restore_tablet_tool.sh --backend "http://127.0.0.1:8040" --file tablets.txt
-```
diff --git a/docs/documentation/cn/administrator-guide/privilege.md b/docs/documentation/cn/administrator-guide/privilege.md
deleted file mode 100644
index 8c08ac2..0000000
--- a/docs/documentation/cn/administrator-guide/privilege.md
+++ /dev/null
@@ -1,217 +0,0 @@
-<!-- 
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-# 权限管理
-
-Doris 新的权限管理系统参照了 Mysql 的权限管理机制,做到了表级别细粒度的权限控制,基于角色的权限访问控制,并且支持白名单机制。
-
-## 名词解释
-
-1. 用户标识 user_identity
-
-    在权限系统中,一个用户被识别为一个 User Identity(用户标识)。用户标识由两部分组成:username 和 userhost。其中 username 为用户名,由英文大小写组成。userhost 表示该用户链接来自的 IP。user_identity 以 username@'userhost' 的方式呈现,表示来自 userhost 的 username。
-    
-    user_identity 的另一种表现方式为 username@['domain'],其中 domain 为域名,可以通过 DNS 或 BNS(百度名字服务)解析为一组 ip。最终表现为一组 username@'userhost',所以后面我们统一使用 username@'userhost' 来表示。
-    
-2. 权限 Privilege
-
-    权限作用的对象是节点、数据库或表。不同的权限代表不同的操作许可。
-    
-3. 角色 Role
-
-    Doris可以创建自定义命名的角色。角色可以被看做是一组权限的集合。新创建的用户可以被赋予某一角色,则自动被赋予该角色所拥有的权限。后续对角色的权限变更,也会体现在所有属于该角色的用户权限上。
-    
-4. 用户属性 user_property
-
-    用户属性直接附属于某一用户,而不是用户标识。即 cmy@'192.%' 和 cmy@['domain'] 都拥有同一组用户属性,该属性属于用户 cmy,而不是 cmy@'192.%' 或 cmy@['domain']。
-    
-    用户属性包括但不限于: 用户最大连接数、导入集群配置等等。
-
-## 支持的操作
-
-1. 创建用户:CREATE USER
-2. 删除用户:DROP USER
-3. 授权:GRANT
-4. 撤权:REVOKE
-5. 创建角色:CREATE ROLE
-6. 删除角色:DROP ROLE
-7. 查看当前用户权限:SHOW GRANTS
-8. 查看所有用户权限:SHOW ALL GRANTS
-9. 查看已创建的角色:SHOW ROLES
-10. 查看用户属性:SHOW PROPERTY
-
-关于以上命令的详细帮助,可以通过 mysql 客户端连接 Doris 后,使用 help + command 获取帮助。如 `HELP CREATE USER`。
-
-## 权限类型
-
-Doris 目前支持以下几种权限
-
-1. Node_priv
-
-    节点变更权限。包括 FE、BE、BROKER 节点的添加、删除、下线等操作。目前该权限只能授予 Root 用户。
-
-2. Grant_priv
-
-    权限变更权限。允许执行包括授权、撤权、添加/删除/变更 用户/角色 等操作。
-
-3. Select_priv
-
-    对数据库、表的只读权限。
-
-4. Load_priv
-
-    对数据库、表的写权限。包括 Load、Insert、Delete 等。
-
-5. Alter_priv
-
-    对数据库、表的更改权限。包括重命名 库/表、添加/删除/变更 列、添加/删除 分区等操作。
-
-6. Create_priv
-
-    创建数据库、表、视图的权限。
-
-7. Drop_priv
-
-    删除数据库、表、视图的权限。
-
-## 权限层级
-
-同时,根据权限适用范围的不同,我们将权限分为以下三个层级:
-
-1. GLOBAL LEVEL:全局权限。即通过 GRANT 语句授予的 `*.*` 上的权限。被授予的权限适用于任意数据库中的任意表。
-2. DATABASE LEVEL:数据库级权限。即通过 GRANT 语句授予的 `db.*` 上的权限。被授予的权限适用于指定数据库中的任意表。
-3. TABLE LEVEL:表级权限。即通过 GRANT 语句授予的 `db.tbl` 上的权限。被授予的权限适用于指定数据库中的指定表。
-
-    
-## ADMIN/GRANT 权限说明
-
-ADMIN\_PRIV 和 GRANT\_PRIV 权限同时拥有**授予权限**的权限,较为特殊。这里对和这两个权限相关的操作逐一说明。
-
-1. CREATE USER
-
-    * 拥有 ADMIN 权限,或任意层级的 GRANT 权限的用户可以创建新用户。
-
-2. DROP USER
-
-    * 只有 ADMIN 权限可以删除用户。
-
-3. CREATE/DROP ROLE
-
-    * 只有 ADMIN 权限可以创建角色。
-
-4. GRANT/REVOKE
-
-    * 拥有 ADMIN 权限,或者 GLOBAL 层级 GRANT 权限的用户,可以授予或撤销任意用户的权限。
-    * 拥有 DATABASE 层级 GRANT 权限的用户,可以授予或撤销任意用户对指定数据库的权限。
-    * 拥有 TABLE 层级 GRANT 权限的用户,可以授予或撤销任意用户对指定数据库中指定表的权限。
-    
-5. SET PASSWORD
-
-    * 拥有 ADMIN 权限,或者 GLOBAL 层级 GRANT 权限的用户,可以设置任意用户的密码。
-    * 普通用户可以设置自己对应的 UserIdentity 的密码。自己对应的 UserIdentity 可以通过 `SELECT CURRENT_USER();` 命令查看。
-    * 拥有非 GLOBAL 层级 GRANT 权限的用户,不可以设置已存在用户的密码,仅能在创建用户时指定密码。
-
-
-## 一些说明
-
-1. Doris 初始化时,会自动创建如下用户和角色:
-
-    1. operator 角色:该角色拥有 Node\_priv 和 Admin\_priv,即对Doris的所有权限。后续某个升级版本中,我们可能会将该角色的权限限制为 Node\_priv,即仅授予节点变更权限。以满足某些云上部署需求。
-    
-    2. admin 角色:该角色拥有 Admin\_priv,即除节点变更以外的所有权限。
-
-    3. root@'%':root 用户,允许从任意节点登陆,角色为 operator。
-
-    4. admin@'%':admin 用户,允许从任意节点登陆,角色为 admin。
-
-2. 不支持删除或更改默认创建的角色或用户的权限。
-    
-3. operator 角色的用户有且只有一个。admin 角色的用户可以创建多个。
-
-4. 一些可能产生冲突的操作说明
-
-    1. 域名与ip冲突:
-    
-        假设创建了如下用户:
-    
-        CREATE USER cmy@['domain'];
-    
-        并且授权:
-        
-        GRANT SELECT_PRIV ON \*.\* TO cmy@['domain']
-        
-        该 domain 被解析为两个 ip:ip1 和 ip2
-        
-        假设之后,我们对 cmy@'ip1' 进行一次单独授权:
-        
-        GRANT ALTER_PRIV ON \*.\* TO cmy@'ip1';
-        
-        则 cmy@'ip1' 的权限会被修改为 SELECT\_PRIV, ALTER\_PRIV。并且当我们再次变更 cmy@['domain'] 的权限时,cmy@'ip1' 也不会跟随改变。
-        
-    2. 重复ip冲突:
-
-        假设创建了如下用户:
-    
-        CREATE USER cmy@'%' IDENTIFIED BY "12345";
-        
-        CREATE USER cmy@'192.%' IDENTIFIED BY "abcde";
-        
-        在优先级上,'192.%' 优先于 '%',因此,当用户 cmy 从 192.168.1.1 这台机器尝试使用密码 '12345' 登陆 Doris 会被拒绝。
-
-5. 忘记密码
-
-    如果忘记了密码无法登陆 Doris,可以在 Doris FE 节点所在机器,使用如下命令无密码登陆 Doris:
-    
-    `mysql-client -h 127.0.0.1 -P query_port -uroot`
-    
-    登陆后,可以通过 SET PASSWORD 命令重置密码。
-
-6. 任何用户都不能重置 root 用户的密码,除了 root 用户自己。
-
-7. ADMIN\_PRIV 权限只能在 GLOBAL 层级授予或撤销。
-
-8. 拥有 GLOBAL 层级 GRANT_PRIV 其实等同于拥有 ADMIN\_PRIV,因为该层级的 GRANT\_PRIV 有授予任意权限的权限,请谨慎使用。
-
-9. `current_user()` 和 `user()`
-
-    用户可以通过 `SELECT current_user();` 和 `SELECT user();` 分别查看 `current_user` 和 `user`。其中 `current_user` 表示当前用户是以哪种身份通过认证系统的,而 `user` 则是用户当前实际的 `user_identity`。举例说明:
-
-    假设创建了 `user1@'192.%'` 这个用户,然后以为来自 192.168.10.1 的用户 user1 登陆了系统,则此时的 `current_user` 为 `user1@'192.%'`,而 `user` 为 `user1@'192.168.10.1'`。
-
-    所有的权限都是赋予某一个 `current_user` 的,真实用户拥有对应的 `current_user` 的所有权限。
-
-## 最佳实践
-
-这里举例一些 Doris 权限系统的使用场景。
-
-1. 场景一
-
-    Doris 集群的使用者分为管理员(Admin)、开发工程师(RD)和用户(Client)。其中管理员拥有整个集群的所有权限,主要负责集群的搭建、节点管理等。开发工程师负责业务建模,包括建库建表、数据的导入和修改等。用户访问不同的数据库和表来获取数据。
-    
-    在这种场景下,可以为管理员赋予 ADMIN 权限或 GRANT 权限。对 RD 赋予对任意或指定数据库表的 CREATE、DROP、ALTER、LOAD、SELECT 权限。对 Client 赋予对任意或指定数据库表 SELECT 权限。同时,也可以通过创建不同的角色,来简化对多个用户的授权操作。
-    
-2. 场景二
-
-    一个集群内有多个业务,每个业务可能使用一个或多个数据。每个业务需要管理自己的用户。在这种场景下。管理员用户可以为每个数据库创建一个拥有 DATABASE 层级 GRANT 权限的用户。该用户仅可以对用户进行指定的数据库的授权。
-
-3. 黑名单
-
-    Doris 本身不支持黑名单,只有白名单功能,但我们可以通过某些方式来模拟黑名单。假设先创建了名为 `user@'192.%'` 的用户,表示允许来自 `192.*` 的用户登录。此时如果想禁止来自 `192.168.10.1` 的用户登录。则可以再创建一个用户 `cmy@'192.168.10.1'` 的用户,并设置一个新的密码。因为 `192.168.10.1` 的优先级高于 `192.%`,所以来自 `192.168.10.1` 将不能再使用旧密码进行登录。
-
-    
diff --git a/docs/documentation/cn/administrator-guide/segment-v2-usage.md b/docs/documentation/cn/administrator-guide/segment-v2-usage.md
deleted file mode 100644
index faf6b59..0000000
--- a/docs/documentation/cn/administrator-guide/segment-v2-usage.md
+++ /dev/null
@@ -1,118 +0,0 @@
-# Doris Segment V2上线和试用手册
-
-## 背景
-
-Doris 0.12版本中实现了segment v2(新的存储格式),引入词典压缩、bitmap索引、page cache等优化,能够提升系统性能。目前0.12版本已经发布alpha版本,正在内部上线过程中,上线的方案和试用方法记录如下
-
-## 上线
-
-为了保证上线的稳定性,上线分为三个阶段:
-第一个阶段是上线0.12版本,但是不全量开启segment v2的功能,只在验证的时候,创建segment v2的表(或者索引)
-第二个阶段是全量开启segment v2的功能,替换现有的segment存储格式,这样对新表会创建segment v2的格式的存储文件,但是对于旧表,需要依赖于compaction和schema change等过程,实现格式的转化
-第三个阶段就是转化旧的segment格式到新的segment v2的格式,这个需要在验证segment v2的正确性和性能没有问题之后,可以按照用户意愿逐步完成。
-
-### 上线验证
-
-- 正确性
-
-正确性是segment v2上线最需要保证的指标。 在第一阶段,为了保证线上环境的稳定性,并且验证segment v2的正确性,采用如下的方案:
-1. 选择几个需要验证的表,使用以下语句,创建segment v2格式的rollup表,该rollup表与base表的schema相同
-
-	alter table table_name add rollup table_name (columns) properties ("storage_format" = "v2");
-
-	其中,
-	rollup后面的index名字直接指定为base table的table name,该语句会自动生成一个__v2_table_name。
-
-	columns可以随便指定一个列名即可,这里一方面是为了兼容现有的语法,一方面是为了方便。
-
-2. 上面的创建出来的rollup index名字格式类似:__v2_table_name
-
-	通过命令 :
-
-	`desc table_name all;`
-
-	查看table中是否存在名字:__v2_table_name的rollup。由于创建segment v2的rollup表是一个异步操作,所以并不会立即成功。如果上面命令中并没有显示新创建的 rollup,可能是还在创建过程中。
-
-    可以通过下面命令查看正在进行的 rollup 表。
-
-	`show alter table rollup;`
-
-	看到会有一个名字为__v2_table_name的rollup表正在创建。
-
-3. 通过查询base表和segment v2格式的rollup表,验证查询结果是否一致(查询可以来自audit日志)
-
-	为了让查询使用segment v2的rollup表,增加了一个session变量,通过在查询中使用如下的语句,来查询segment v2格式的index:
-
-	set use_v2_rollup = true;
-
-	比如说,要当前db中有一个simple的表,直接查询如下:
-
-	```
-		mysql> select * from simple;         
-		+------+-------+
-		| key  | value |
-		+------+-------+
-		|    2 |     6 |
-		|    1 |     6 |
-		|    4 |     5 |
-		+------+-------+
-		3 rows in set (0.01 sec)
-	```
-
-	然后使用使用如下的query查询__v2_simpel的rollup表:
-
-	```
-		mysql> set use_v2_rollup = true;
-		Query OK, 0 rows affected (0.04 sec)
-
-		mysql> select * from simple;
-		+------+-------+	
-		| key  | value |
-		+------+-------+
-		|    4 |     5 |
-		|    1 |     6 |
-		|    2 |     6 |
-		+------+-------+
-		3 rows in set (0.01 sec)
-	```
-
-	期望的结果是两次查询的结果相同。
-	如果结果不一致,需要进行排查。第一步需要定位是否是因为由于两次查询之间有新的导入,导致数据不一致。如果是的话,需要进行重试。如果不是,则需要进一步定位原因。
-
-4. 对比同样查询在base表和segment v2的rollup表中的结果是否一致
-
-- 查询延时
-
-	在segment v2中优化了v1中的随机读取,并且增加了bitmap索引、lazy materialization等优化,预计查询延时会有下降,
-
-- 导入延时
-- page cache命中率
-- string类型字段压缩率
-- bitmap索引的性能提升率和空间占用
-
-### 全量开启segment v2
-
-有两个方式:
-1. fe中有一个全局变量,通过设置全局变量default_rowset_type,来设置BE中使用segment v2作为默认的存储格式,命令如下:
-
-	set global default_rowset_type = beta;
-
-	使用这个方式,只需要执行上述命令,之后等待10s左右,FE会将配置同步到BE中。不需要在每个BE中进行配置。推荐使用这个配置。不过该方式目前没有简单的方式来验证BE上的default rowset type是否已经变更,一种办法是建一个表,然后查看对应的表的元数据。但是这样子比较麻烦,后续看需要可以在某个地方实现状态查看。
-
-2. 修改BE中的配置文件中的配置default_rowset_type为BETA。这种方式需要在每个BE中添加对应的配置。
-
-
-### 转化segment v1格式为v2
-
-如果不想等待系统后台自动转换存储格式(比如想要使用bitmap索引、词典压缩),可以手动指定触发某个表的存储格式转换。具体是通过schema change来实现将v1的格式转化为v2的格式:
-
-	alter table table_name set ("storage_format" = "v2");
-
-	将存储格式转化为v2.
-
-如果在没有设置默认的存储格式为v2的时候,想要新建一个v2的表,需要按照以下的步骤进行操作:
-1. 使用create table来创建v1的表
-2. 使用上面的schema change命令进行格式的转化
-
-
-
diff --git a/docs/documentation/cn/administrator-guide/small-file-mgr.md b/docs/documentation/cn/administrator-guide/small-file-mgr.md
deleted file mode 100644
index 568f12b..0000000
--- a/docs/documentation/cn/administrator-guide/small-file-mgr.md
+++ /dev/null
@@ -1,97 +0,0 @@
-<!-- 
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-# 文件管理器
-
-Doris 中的一些功能需要使用一些用户自定义的文件。比如用于访问外部数据源的公钥、密钥文件、证书文件等等。文件管理器提供这样一个功能,能够让用户预先上传这些文件并保存在 Doris 系统中,然后可以在其他命令中引用或访问。
-
-## 名词解释
-
-* FE:Frontend,Doris 的前端节点。负责元数据管理和请求接入。
-* BE:Backend,Doris 的后端节点。负责查询执行和数据存储。
-* BDBJE:Oracle Berkeley DB Java Edition。FE 中用于持久化元数据的分布式嵌入式数据库。
-* SmallFileMgr:文件管理器。负责创建并维护用户的文件。
-
-## 基本概念
-
-文件是指用户创建并保存在 Doris 中的文件。
-
-一个文件由 `数据库名称(database)`、`分类(catalog)` 和 `文件名(file_name)` 共同定位。同时每个文件也有一个全局唯一的 id(file_id),作为系统内的标识。
-
-文件的创建和删除只能由拥有 `admin` 权限的用户进行操作。一个文件隶属于一个数据库。对某一数据库拥有访问权限(查询、导入、修改等等)的用户都可以使用该数据库下创建的文件。
-
-## 具体操作
-
-文件管理主要有三个命令:`CREATE FILE`,`SHOW FILE` 和 `DROP FILE`,分别为创建、查看和删除文件。这三个命令的具体语法可以通过连接到 Doris 后,执行 `HELP cmd;` 的方式查看帮助。
-
-1. CREATE FILE
-
-    在创建文件的命令中,用户必须提供以下信息:
-    
-    * file_name:文件名。用户自定义,在一个 catalog 内唯一即可。
-    * catalog:文件所属分类。用户自定义,在一个 database 内唯一即可。
-        
-        > Doris 也有一些特殊的分类名称供特定的命令使用。
-        
-        > 1. kafka
-        
-        >   当在例行导入命令中指定数据源为 Kafka,并且需要引用到文件时,Doris 会默认从 catalog 名为 "kafka" 的分类中查找文件。
-        
-    * url:文件的下载地址。目前仅支持无认证的 http 下载地址。该下载地址仅用于在执行创建文件命令时,从这个地址下载文件。当文件成功创建并保存在 Doris 中后,该地址将不再被使用。
-    * md5:可选项。文件的 MD5 值。如果用户提供该值,将在文件下载后进行 MD5 值的校验。校验失败则文件创建失败。
-
-    文件创建成功后,文件相关的信息将持久化在 Doris 中。用户可以通过 `SHOW FILE` 命令查看已经创建成功的文件。
-    
-2. SHOW FILE
-
-    该命令可以查看已经创建成功的文件。具体操作见:`HELP SHOW FILE;`
-    
-3. DROP FILE
-
-    该命令可以删除一个已经创建的文件。具体操作见:`HELP DROP FILE;`
-    
-## 实现细节
-
-### 创建和删除文件
-
-当用户执行 `CREATE FILE` 命令后,FE 会从给定的 URL 下载文件。并将文件的内容以 Base64 编码的形式直接保存在 FE 的内存中。同时会将文件内容以及文件相关的元信息持久化在 BDBJE 中。所有被创建的文件,其元信息和文件内容都会常驻于 FE 的内存中。如果 FE 宕机重启,也会从 BDBJE 中加载元信息和文件内容到内存中。当文件被删除时,会直接从 FE 内存中删除相关信息,同时也从 BDBJE 中删除持久化的信息。
-    
-### 文件的使用
-
-如果是 FE 端需要使用创建的文件,则 SmallFileMgr 会直接将 FE 内存中的数据保存为本地文件,存储在指定的目录中,并返回本地的文件路径供使用。
-
-如果是 BE 端需要使用创建的文件,BE 会通过 FE 的 http 接口 `/api/get_small_file` 将文件内容下载到 BE 上指定的目录中,供使用。同时,BE 也会在内存中记录当前已经下载过的文件的信息。当 BE 请求一个文件时,会先查看本地文件是否存在并校验。如果校验通过,则直接返回本地文件路径。如果校验失败,则会删除本地文件,重新从 FE 下载。当 BE 重启时,会预先加载本地的文件到内存中。
-
-## 使用限制
-
-因为文件元信息和内容都存储于 FE 的内存中。所以默认仅支持上传大小在 1MB 以内的文件。并且总文件数量限制为 100 个。可以通过下一小节介绍的配置项进行修改。
-
-## 相关配置
-
-1. FE 配置
-
-    * `small_file_dir`:用于存放上传文件的路径,默认为 FE 运行目录的 `small_files/` 目录下。
-    * `max_small_file_size_bytes`:单个文件大小限制,单位为字节。默认为 1MB。大于该配置的文件创建将会被拒绝。
-    * `max_small_file_number`:一个 Doris 集群支持的总文件数量。默认为 100。当创建的文件数超过这个值后,后续的创建将会被拒绝。
-
-    > 如果需要上传更多文件或提高单个文件的大小限制,可以通过 `ADMIN SET CONFIG` 命令修改 `max_small_file_size_bytes` 和 `max_small_file_number` 参数。但文件数量和大小的增加,会导致 FE 内存使用量的增加。
-    
-2. BE 配置
-
-    * `small_file_dir`:用于存放从 FE 下载的文件的路径,默认为 BE 运行目录的 `lib/small_files/` 目录下。
diff --git a/docs/documentation/cn/administrator-guide/sql-mode.md b/docs/documentation/cn/administrator-guide/sql-mode.md
deleted file mode 100644
index 43220bb..0000000
--- a/docs/documentation/cn/administrator-guide/sql-mode.md
+++ /dev/null
@@ -1,69 +0,0 @@
-<!-- 
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-# SQL MODE
-
-Doris新支持的sql mode参照了 Mysql 的sql mode管理机制,每个客户端都能设置自己的sql mode,拥有Admin权限的数据库管理员可以设置全局sql mode。
-
-## sql mode 介绍
-
-sql mode使用户能在不同风格的sql语法和数据校验严格度间做切换,使Doris对其他数据库有更好的兼容性。例如在一些数据库里,'||'符号是一个字符串连接符,但在Doris里却是与'or'等价的,这时用户只需要使用sql mode切换到自己想要的风格。每个客户端都能设置sql mode,并在当前对话中有效,只有拥有Admin权限的用户可以设置全局sql mode。
-
-## 原理
-
-sql mode用一个64位的Long型存储在SessionVariables中,这个地址的每一位都代表一个mode的开启/禁用(1表示开启,0表示禁用)状态,只要知道每一种mode具体是在哪一位,我们就可以通过位运算方便快速的对sql mode进行校验和操作。
-
-每一次对sql mode的查询,都会对此Long型进行一次解析,变成用户可读的字符串形式,同理,用户发送给服务器的sql mode字符串,会被解析成能够存储在SessionVariables中的Long型。
-
-已被设置好的全局sql mode会被持久化,因此对全局sql mode的操作总是只需一次,即使程序重启后仍可以恢复上一次的全局sql mode。
-
-## 操作方式
-
-1、设置sql mode
-
-```
-set global sql_mode = "DEFAULT"
-set session sql_mode = "DEFAULT"
-```
->目前Doris的默认sql mode是DEFAULT(但马上会在后续修改中会改变)。
->设置global sql mode需要Admin权限,并会影响所有在此后连接的客户端。
->设置session sql mode只会影响当前对话客户端,默认为session方式。
-
-2、查询sql mode
-
-```
-select @@global.sql_mode
-select @@session.sql_mode
-```
->除了这种方式,你还可以通过下面方式返回所有session variables来查看当前sql mode
-
-```
-show global variables
-show session variables
-```
-
-## 已支持mode
-
-1. `PIPES_AS_CONCAT`
-
-	在此模式下,'||'符号是一种字符串连接符号(同CONCAT()函数),而不是'OR'符号的同义词。(e.g., `'a'||'b' = 'ab'`, `1||0 = '10'`)
-
-## 复合mode
-
-(后续补充)
\ No newline at end of file
diff --git a/docs/documentation/cn/administrator-guide/time-zone.md b/docs/documentation/cn/administrator-guide/time-zone.md
deleted file mode 100644
index dbf6a72..0000000
--- a/docs/documentation/cn/administrator-guide/time-zone.md
+++ /dev/null
@@ -1,84 +0,0 @@
-<!-- 
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-# 时区
-
-Doris 支持多时区设置
-
-## 名词解释
-
-* FE:Frontend,Doris 的前端节点。负责元数据管理和请求接入。
-* BE:Backend,Doris 的后端节点。负责查询执行和数据存储。
-
-## 基本概念
-
-Doris 内部存在多个时区相关参数
-
-* system_time_zone :
-    当服务器启动时,会根据机器设置时区自动设置,设置后不可修改。
-    
-* time_zone :
-    服务器当前时区,区分session级别和global级别
-
-## 具体操作
-
-1. show variables like '%time_zone%'
-
-    查看当前时区相关配置
-    
-2. SET time_zone = 'Asia/Shanghai'
-
-    该命令可以设置session级别的时区,连接断开后失效
-    
-3. SET global time_zone = 'Asia/Shanghai'
-
-    该命令可以设置global级别的时区参数,fe会将参数持久化,连接断开后不失效
-    
-### 时区的影响
-
-时区设置会影响对时区敏感的时间值的显示和存储。
-
-包括NOW()或CURTIME()等时间函数显示的值,也包括show load, show backends中的时间值。
-
-但不会影响 create table 中时间类型分区列的 less than 值,也不会影响存储为 date/datetime 类型的值的显示。
-
-受时区影响的函数:
-
-* `FROM_UNIXTIME`:给定一个 UTC 时间戳,返回指定时区的日期时间:如 `FROM_UNIXTIME(0)`, 返回 CST 时区:`1970-01-01 08:00:00`。
-* `UNIX_TIMESTAMP`:给定一个指定时区日期时间,返回 UTC 时间戳:如 CST 时区 `UNIX_TIMESTAMP('1970-01-01 08:00:00')`,返回 `0`。
-* `CURTIME`:返回指定时区时间。
-* `NOW`:返指定地时区日期时间。
-* `CONVERT_TZ`:将一个日期时间从一个指定时区转换到另一个指定时区。
-
-## 使用限制
-
-时区值可以使用几种格式给出,不区分大小写:
-
-* 表示UTC偏移量的字符串,如'+10:00'或'-6:00'
-
-* 标准时区格式,如"Asia/Shanghai"、"America/Los_Angeles"
-
-* 不支持缩写时区格式,如"MET"、"CTT"。因为缩写时区在不同场景下存在歧义,不建议使用。
-
-* 为了兼容Doris,支持CST缩写时区,内部会将CST转移为"Asia/Shanghai"的中国标准时区
-
-## 时区格式列表
-
-[List of tz database time zones](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)
-
diff --git a/docs/documentation/cn/administrator-guide/variables.md b/docs/documentation/cn/administrator-guide/variables.md
deleted file mode 100644
index 146b3f1..0000000
--- a/docs/documentation/cn/administrator-guide/variables.md
+++ /dev/null
@@ -1,321 +0,0 @@
-<!-- 
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-# 变量
-
-本文档主要介绍当前支持的变量(variables)。
-
-Doris 中的变量参考 MySQL 中的变量设置。但部分变量仅用于兼容一些 MySQL 客户端协议,并不产生其在 MySQL 数据库中的实际意义。
-
-## 变量设置与查看
-
-### 查看
-
-可以通过 `SHOW VARIABLES [LIKE 'xxx'];` 查看所有或指定的变量。如:
-
-```
-SHOW VARIABLES;
-SHOW VARIABLES LIKE '%time_zone%';
-```
-
-### 设置
... 103203 lines suppressed ...


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org