You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by xx...@apache.org on 2022/08/17 05:26:34 UTC

[kylin] branch doc5.0 updated (a47c606fee -> 830a52f0b2)

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

xxyu pushed a change to branch doc5.0
in repository https://gitbox.apache.org/repos/asf/kylin.git


    from a47c606fee KYLIN-5221 Add on cloud and on premises dir
     new d321b51c9d KYLIN-5221 add installation docs
     new 69ee8500bb KYLIN-5221 add configuration docs
     new 02e31db7f0 KYLIN-5221 add operations docs
     new b9cfe7db02 KYLIN-5221 minor adapt for sidebars and date in doc metadata
     new 5221ec3de3 KYLIN-5221 add operations doc
     new 04f81da701 KYLIN-5221 add search feature
     new 830a52f0b2 KYLIN-5221 minor fix conflict

The 7 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 website/docs/configuration/configuration.md        | 220 +++++
 website/docs/configuration/hadoop_queue_config.md  |  53 ++
 website/docs/configuration/https.md                |  74 ++
 .../docs/configuration/images/hadoop_queue/1.png   | Bin 0 -> 126858 bytes
 .../docs/configuration/images/hadoop_queue/2.png   | Bin 0 -> 44273 bytes
 .../docs/configuration/images/hadoop_queue/3.png   | Bin 0 -> 183045 bytes
 .../configuration/images/spark_executor_max.jpg    | Bin 0 -> 71527 bytes
 .../configuration/images/spark_executor_min.jpg    | Bin 0 -> 35309 bytes
 .../images/spark_executor_original.jpg             | Bin 0 -> 53356 bytes
 website/docs/configuration/intro.md                |  35 +-
 website/docs/configuration/log_rotate.md           |  36 +
 website/docs/configuration/query_cache.md          |  72 ++
 .../docs/configuration/spark_dynamic_allocation.md |  93 ++
 website/docs/configuration/spark_rpc_encryption.md |  46 +
 website/docs/deployment/On-Cloud/intro.md          |   9 -
 .../installation/images/download_krb5.en.png       | Bin 0 -> 520189 bytes
 .../images/installation_job_monitor.png            | Bin 0 -> 97444 bytes
 .../images/installation_query_result.png           | Bin 0 -> 104403 bytes
 .../images/installation_show_model.png             | Bin 0 -> 40453 bytes
 .../docs/deployment/installation/images/job.png    | Bin 0 -> 273294 bytes
 .../deployment/installation/images/minimal.png     | Bin 0 -> 99177 bytes
 .../deployment/installation/images/model_list.png  | Bin 0 -> 123821 bytes
 .../docs/deployment/installation/images/query.png  | Bin 0 -> 199326 bytes
 .../installation/images/query_result.png           | Bin 0 -> 198222 bytes
 .../deployment/installation/install_validation.md  |  81 ++
 website/docs/deployment/installation/intro.md      |  20 +
 .../docs/deployment/installation/uninstallation.md | 103 +++
 website/docs/deployment/intro.md                   |  16 +-
 website/docs/deployment/on-cloud/intro.md          |  20 +
 .../deploy_mode/cluster_deployment.md              |   2 +-
 .../deploy_mode/images/cluster_20191231.png        | Bin
 .../deploy_mode/intro.md                           |   2 +-
 .../deploy_mode/rw_separation.md                   |   2 +-
 .../deploy_mode/service_discovery.md               |   2 +-
 .../{On-Premises => on-premises}/images/jdk.en.png | Bin
 website/docs/deployment/on-premises/intro.md       |  17 +
 .../network_port_requirements.md                   |   2 +-
 .../{On-Premises => on-premises}/prerequisite.md   |   2 +-
 .../images/install_initialize_postgresql.png       | Bin
 .../images/installation_create_postgresqldb.jpg    | Bin
 .../rdbms_metastore/intro.md                       |   2 +-
 .../rdbms_metastore/mysql/install_mysql.md         |   2 +-
 .../rdbms_metastore/mysql/intro.md                 |   2 +-
 .../rdbms_metastore/mysql/mysql_metastore.md       |   2 +-
 .../postgresql/default_metastore.md                |   2 +-
 .../postgresql/install_postgresql.md               |   2 +-
 .../rdbms_metastore/postgresql/intro.md            |   2 +-
 website/docs/development/intro.md                  |  12 +-
 website/docs/intro.md                              |   4 +-
 website/docs/modeling/intro.md                     |   2 +-
 .../data-access-control/acl_table.md               |  75 ++
 .../access-control/data-access-control/intro.md    |  41 +
 .../data-access-control/project_acl.md             |  54 ++
 .../operations/access-control/group_management.md  |  52 ++
 .../operations/access-control/images/acl_5_en.png  | Bin 0 -> 337881 bytes
 .../access-control/images/table_acl_1_en.png       | Bin 0 -> 70055 bytes
 .../access-control/images/table_acl_2_en.png       | Bin 0 -> 33907 bytes
 .../access-control/images/table_acl_3_en.png       | Bin 0 -> 81429 bytes
 website/docs/operations/access-control/intro.md    |  24 +
 .../operations/access-control/user_management.md   |  93 ++
 .../operations/access-control/users/user_w1.png    | Bin 0 -> 30698 bytes
 .../operations/access-control/users/user_w2.png    | Bin 0 -> 11792 bytes
 .../operations/access-control/users/user_w3.png    | Bin 0 -> 7887 bytes
 .../operations/access-control/users/user_w4.png    | Bin 0 -> 9204 bytes
 .../operations/access-control/users/user_w5.png    | Bin 0 -> 11144 bytes
 .../operations/access-control/users/user_w6.png    | Bin 0 -> 16649 bytes
 .../operations/access-control/users/user_w7.png    | Bin 0 -> 16242 bytes
 .../operations/access-control/users/user_w8.png    | Bin 0 -> 27691 bytes
 website/docs/operations/intro.md                   |   2 +-
 website/docs/operations/logs/audit_log.md          | 208 +++++
 .../operations/logs/images/after_update_model.png  | Bin 0 -> 332033 bytes
 .../operations/logs/images/after_update_pwd.png    | Bin 0 -> 284440 bytes
 .../operations/logs/images/before_update_model.png | Bin 0 -> 339841 bytes
 .../operations/logs/images/before_update_pwd.png   | Bin 0 -> 292514 bytes
 .../docs/operations/logs/images/metadata_table.png | Bin 0 -> 565143 bytes
 website/docs/operations/logs/intro.md              |  21 +
 website/docs/operations/logs/system_log.md         | 249 ++++++
 .../operations/monitoring/influxdb/influxdb.md     |   4 +-
 .../monitoring/influxdb/influxdb_maintenance.md    |   2 +-
 .../docs/operations/monitoring/influxdb/intro.md   |   2 +-
 website/docs/operations/monitoring/intro.md        |   2 +-
 .../docs/operations/monitoring/metrics_intro.md    |   2 +-
 website/docs/operations/monitoring/service.md      |   2 +-
 website/docs/operations/overview.md                |  22 +
 .../docs/operations/project-operation/alerting.md  |  50 ++
 .../project-operation/images/add_project.png       | Bin 0 -> 66925 bytes
 .../project-operation/images/project_list.png      | Bin 0 -> 262909 bytes
 .../project-operation/images/project_settings.png  | Bin 0 -> 244469 bytes
 .../images/project_settings_basic_general.png      | Bin 0 -> 170160 bytes
 .../images/project_settings_cc_expose.png          | Bin 0 -> 48912 bytes
 .../images/project_settings_custom_config.png      | Bin 0 -> 58667 bytes
 .../project_settings_default_database_en.png       | Bin 0 -> 297604 bytes
 .../images/project_settings_job_notification.png   | Bin 0 -> 144128 bytes
 .../project_settings_job_notification_page.png     | Bin 0 -> 354436 bytes
 .../images/project_settings_model_rewrite.png      | Bin 0 -> 250137 bytes
 .../images/project_settings_pushdown.png           | Bin 0 -> 302372 bytes
 .../images/project_settings_segment_en.png         | Bin 0 -> 191173 bytes
 .../images/project_settings_storage.png            | Bin 0 -> 233852 bytes
 .../images/project_settings_yarn_queue.png         | Bin 0 -> 90074 bytes
 .../project-operation/images/toolbar.en.png        | Bin 0 -> 688505 bytes
 website/docs/operations/project-operation/intro.md |  17 +
 .../project-operation/project_management.md        |  62 ++
 .../project-operation/project_settings.md          | 127 +++
 .../system-operation/cli_tool/diagnosis.md         | 139 +++
 .../cli_tool/environment_dependency_check.md       |  48 ++
 .../system-operation/cli_tool/images/accept_en.png | Bin 0 -> 76977 bytes
 .../system-operation/cli_tool/images/button_en.png | Bin 0 -> 195535 bytes
 .../cli_tool/images/rollback_en.png                | Bin 0 -> 80422 bytes
 .../operations/system-operation/cli_tool/intro.md  |  17 +
 .../cli_tool/metadata_tool/intro.md                |  18 +
 .../metadata_tool/metadata_backup_restore.md       |  88 ++
 .../system-operation/cli_tool/rollback.md          | 123 +++
 .../diagnosis/build_flame_graph.md                 |  78 ++
 .../system-operation/diagnosis/diagnosis.md        |  86 ++
 .../diagnosis/images/diagnosis_web_en.png          | Bin 0 -> 179703 bytes
 .../diagnosis/images/job_diagnosis_web_en.png      | Bin 0 -> 141217 bytes
 .../diagnosis/images/query_diagnosis_web.png       | Bin 0 -> 127898 bytes
 .../operations/system-operation/diagnosis/intro.md |  17 +
 .../diagnosis/query_flame_graph.md                 |  58 ++
 .../docs/operations/system-operation/guardian.md   |  62 ++
 ...den_modify_metadata_during_maintenance_mode.png | Bin 0 -> 189044 bytes
 ..._metadata_promoting_during_maintenance_mode.png | Bin 0 -> 188242 bytes
 .../system-operation/images/maintenance_mode.png   | Bin 0 -> 246534 bytes
 .../system_recover_from_maintenance_mode.png       | Bin 0 -> 178347 bytes
 website/docs/operations/system-operation/intro.md  |  17 +
 .../operations/system-operation/junk_file_clean.md |  90 ++
 .../operations/system-operation/limit_query.md     |  72 ++
 .../system-operation/maintenance_mode.md           |  76 ++
 .../system-operation/update-session-table.md       |  46 +
 website/docs/restapi/acl_api/acl_api.md            |   2 +-
 website/docs/restapi/acl_api/intro.md              |   2 +-
 website/docs/restapi/acl_api/project_acl_api.md    |   2 +-
 website/docs/restapi/acl_api/user_api.md           |   2 +-
 website/docs/restapi/acl_api/user_group_api.md     |   2 +-
 website/docs/restapi/async_query_api.md            |   2 +-
 website/docs/restapi/authentication.md             |   2 +-
 website/docs/restapi/callback_api.md               |   2 +-
 website/docs/restapi/data_source_api.md            |   2 +-
 website/docs/restapi/error_code.md                 |   2 +-
 website/docs/restapi/intro.md                      |   2 +-
 website/docs/restapi/job_api.md                    |   2 +-
 website/docs/restapi/model_api/intro.md            |   2 +-
 website/docs/restapi/model_api/model_build_api.md  |   2 +-
 .../model_api/model_import_and_export_api.md       |   2 +-
 .../docs/restapi/model_api/model_management_api.md |  10 +-
 .../model_api/model_multilevel_partitioning_api.md |   2 +-
 website/docs/restapi/project_api.md                |   4 +-
 website/docs/restapi/query_api.md                  |   2 +-
 ..._managment_api.md => segment_management_api.md} |   2 +-
 website/docs/restapi/snapshot_management_api.md    |   2 +-
 website/docs/restapi/streaming_job_api.md          |   2 +-
 website/docusaurus.config.js                       |  77 +-
 website/package.json                               |   1 +
 website/sidebars.js                                | 936 +++++++++++++--------
 154 files changed, 3729 insertions(+), 424 deletions(-)
 create mode 100644 website/docs/configuration/configuration.md
 create mode 100644 website/docs/configuration/hadoop_queue_config.md
 create mode 100644 website/docs/configuration/https.md
 create mode 100644 website/docs/configuration/images/hadoop_queue/1.png
 create mode 100644 website/docs/configuration/images/hadoop_queue/2.png
 create mode 100644 website/docs/configuration/images/hadoop_queue/3.png
 create mode 100644 website/docs/configuration/images/spark_executor_max.jpg
 create mode 100644 website/docs/configuration/images/spark_executor_min.jpg
 create mode 100644 website/docs/configuration/images/spark_executor_original.jpg
 create mode 100644 website/docs/configuration/log_rotate.md
 create mode 100644 website/docs/configuration/query_cache.md
 create mode 100644 website/docs/configuration/spark_dynamic_allocation.md
 create mode 100644 website/docs/configuration/spark_rpc_encryption.md
 delete mode 100644 website/docs/deployment/On-Cloud/intro.md
 create mode 100644 website/docs/deployment/installation/images/download_krb5.en.png
 create mode 100644 website/docs/deployment/installation/images/installation_job_monitor.png
 create mode 100644 website/docs/deployment/installation/images/installation_query_result.png
 create mode 100644 website/docs/deployment/installation/images/installation_show_model.png
 create mode 100644 website/docs/deployment/installation/images/job.png
 create mode 100644 website/docs/deployment/installation/images/minimal.png
 create mode 100644 website/docs/deployment/installation/images/model_list.png
 create mode 100644 website/docs/deployment/installation/images/query.png
 create mode 100644 website/docs/deployment/installation/images/query_result.png
 create mode 100644 website/docs/deployment/installation/install_validation.md
 create mode 100644 website/docs/deployment/installation/intro.md
 create mode 100644 website/docs/deployment/installation/uninstallation.md
 create mode 100644 website/docs/deployment/on-cloud/intro.md
 rename website/docs/deployment/{On-Premises => on-premises}/deploy_mode/cluster_deployment.md (99%)
 rename website/docs/deployment/{On-Premises => on-premises}/deploy_mode/images/cluster_20191231.png (100%)
 rename website/docs/deployment/{On-Premises => on-premises}/deploy_mode/intro.md (95%)
 rename website/docs/deployment/{On-Premises => on-premises}/deploy_mode/rw_separation.md (99%)
 rename website/docs/deployment/{On-Premises => on-premises}/deploy_mode/service_discovery.md (98%)
 rename website/docs/deployment/{On-Premises => on-premises}/images/jdk.en.png (100%)
 create mode 100644 website/docs/deployment/on-premises/intro.md
 rename website/docs/deployment/{On-Premises => on-premises}/network_port_requirements.md (99%)
 rename website/docs/deployment/{On-Premises => on-premises}/prerequisite.md (99%)
 rename website/docs/deployment/{On-Premises => on-premises}/rdbms_metastore/images/install_initialize_postgresql.png (100%)
 rename website/docs/deployment/{On-Premises => on-premises}/rdbms_metastore/images/installation_create_postgresqldb.jpg (100%)
 rename website/docs/deployment/{On-Premises => on-premises}/rdbms_metastore/intro.md (94%)
 rename website/docs/deployment/{On-Premises => on-premises}/rdbms_metastore/mysql/install_mysql.md (99%)
 rename website/docs/deployment/{On-Premises => on-premises}/rdbms_metastore/mysql/intro.md (94%)
 rename website/docs/deployment/{On-Premises => on-premises}/rdbms_metastore/mysql/mysql_metastore.md (99%)
 rename website/docs/deployment/{On-Premises => on-premises}/rdbms_metastore/postgresql/default_metastore.md (99%)
 rename website/docs/deployment/{On-Premises => on-premises}/rdbms_metastore/postgresql/install_postgresql.md (99%)
 rename website/docs/deployment/{On-Premises => on-premises}/rdbms_metastore/postgresql/intro.md (95%)
 create mode 100644 website/docs/operations/access-control/data-access-control/acl_table.md
 create mode 100644 website/docs/operations/access-control/data-access-control/intro.md
 create mode 100755 website/docs/operations/access-control/data-access-control/project_acl.md
 create mode 100644 website/docs/operations/access-control/group_management.md
 create mode 100644 website/docs/operations/access-control/images/acl_5_en.png
 create mode 100644 website/docs/operations/access-control/images/table_acl_1_en.png
 create mode 100644 website/docs/operations/access-control/images/table_acl_2_en.png
 create mode 100644 website/docs/operations/access-control/images/table_acl_3_en.png
 create mode 100644 website/docs/operations/access-control/intro.md
 create mode 100644 website/docs/operations/access-control/user_management.md
 create mode 100755 website/docs/operations/access-control/users/user_w1.png
 create mode 100755 website/docs/operations/access-control/users/user_w2.png
 create mode 100755 website/docs/operations/access-control/users/user_w3.png
 create mode 100755 website/docs/operations/access-control/users/user_w4.png
 create mode 100755 website/docs/operations/access-control/users/user_w5.png
 create mode 100755 website/docs/operations/access-control/users/user_w6.png
 create mode 100755 website/docs/operations/access-control/users/user_w7.png
 create mode 100755 website/docs/operations/access-control/users/user_w8.png
 create mode 100644 website/docs/operations/logs/audit_log.md
 create mode 100644 website/docs/operations/logs/images/after_update_model.png
 create mode 100644 website/docs/operations/logs/images/after_update_pwd.png
 create mode 100644 website/docs/operations/logs/images/before_update_model.png
 create mode 100644 website/docs/operations/logs/images/before_update_pwd.png
 create mode 100644 website/docs/operations/logs/images/metadata_table.png
 create mode 100644 website/docs/operations/logs/intro.md
 create mode 100755 website/docs/operations/logs/system_log.md
 create mode 100755 website/docs/operations/overview.md
 create mode 100755 website/docs/operations/project-operation/alerting.md
 create mode 100644 website/docs/operations/project-operation/images/add_project.png
 create mode 100644 website/docs/operations/project-operation/images/project_list.png
 create mode 100644 website/docs/operations/project-operation/images/project_settings.png
 create mode 100644 website/docs/operations/project-operation/images/project_settings_basic_general.png
 create mode 100644 website/docs/operations/project-operation/images/project_settings_cc_expose.png
 create mode 100644 website/docs/operations/project-operation/images/project_settings_custom_config.png
 create mode 100644 website/docs/operations/project-operation/images/project_settings_default_database_en.png
 create mode 100644 website/docs/operations/project-operation/images/project_settings_job_notification.png
 create mode 100644 website/docs/operations/project-operation/images/project_settings_job_notification_page.png
 create mode 100644 website/docs/operations/project-operation/images/project_settings_model_rewrite.png
 create mode 100644 website/docs/operations/project-operation/images/project_settings_pushdown.png
 create mode 100644 website/docs/operations/project-operation/images/project_settings_segment_en.png
 create mode 100644 website/docs/operations/project-operation/images/project_settings_storage.png
 create mode 100644 website/docs/operations/project-operation/images/project_settings_yarn_queue.png
 create mode 100644 website/docs/operations/project-operation/images/toolbar.en.png
 create mode 100755 website/docs/operations/project-operation/intro.md
 create mode 100644 website/docs/operations/project-operation/project_management.md
 create mode 100644 website/docs/operations/project-operation/project_settings.md
 create mode 100644 website/docs/operations/system-operation/cli_tool/diagnosis.md
 create mode 100644 website/docs/operations/system-operation/cli_tool/environment_dependency_check.md
 create mode 100644 website/docs/operations/system-operation/cli_tool/images/accept_en.png
 create mode 100644 website/docs/operations/system-operation/cli_tool/images/button_en.png
 create mode 100644 website/docs/operations/system-operation/cli_tool/images/rollback_en.png
 create mode 100644 website/docs/operations/system-operation/cli_tool/intro.md
 create mode 100644 website/docs/operations/system-operation/cli_tool/metadata_tool/intro.md
 create mode 100644 website/docs/operations/system-operation/cli_tool/metadata_tool/metadata_backup_restore.md
 create mode 100644 website/docs/operations/system-operation/cli_tool/rollback.md
 create mode 100644 website/docs/operations/system-operation/diagnosis/build_flame_graph.md
 create mode 100644 website/docs/operations/system-operation/diagnosis/diagnosis.md
 create mode 100644 website/docs/operations/system-operation/diagnosis/images/diagnosis_web_en.png
 create mode 100644 website/docs/operations/system-operation/diagnosis/images/job_diagnosis_web_en.png
 create mode 100644 website/docs/operations/system-operation/diagnosis/images/query_diagnosis_web.png
 create mode 100644 website/docs/operations/system-operation/diagnosis/intro.md
 create mode 100644 website/docs/operations/system-operation/diagnosis/query_flame_graph.md
 create mode 100755 website/docs/operations/system-operation/guardian.md
 create mode 100644 website/docs/operations/system-operation/images/forbidden_modify_metadata_during_maintenance_mode.png
 create mode 100644 website/docs/operations/system-operation/images/forbidden_modify_metadata_promoting_during_maintenance_mode.png
 create mode 100644 website/docs/operations/system-operation/images/maintenance_mode.png
 create mode 100644 website/docs/operations/system-operation/images/system_recover_from_maintenance_mode.png
 create mode 100644 website/docs/operations/system-operation/intro.md
 create mode 100644 website/docs/operations/system-operation/junk_file_clean.md
 create mode 100644 website/docs/operations/system-operation/limit_query.md
 create mode 100644 website/docs/operations/system-operation/maintenance_mode.md
 create mode 100644 website/docs/operations/system-operation/update-session-table.md
 rename website/docs/restapi/{segment_managment_api.md => segment_management_api.md} (99%)


[kylin] 07/07: KYLIN-5221 minor fix conflict

Posted by xx...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

xxyu pushed a commit to branch doc5.0
in repository https://gitbox.apache.org/repos/asf/kylin.git

commit 830a52f0b258a9163782e8dda5258cea7e5d4cd7
Author: Mukvin <bo...@163.com>
AuthorDate: Wed Aug 17 10:22:43 2022 +0800

    KYLIN-5221 minor fix conflict
---
 website/docs/deployment/On-Cloud/intro.md          |   9 --
 website/docs/deployment/intro.md                   |  16 ++-
 website/docs/deployment/on-cloud/intro.md          |  20 ++++
 .../deploy_mode/cluster_deployment.md              |   0
 .../deploy_mode/images/cluster_20191231.png        | Bin
 .../deploy_mode/intro.md                           |   0
 .../deploy_mode/rw_separation.md                   |   0
 .../deploy_mode/service_discovery.md               |   0
 .../{On-Premises => on-premises}/images/jdk.en.png | Bin
 website/docs/deployment/on-premises/intro.md       |  17 +++
 .../network_port_requirements.md                   |   0
 .../{On-Premises => on-premises}/prerequisite.md   |   0
 .../images/install_initialize_postgresql.png       | Bin
 .../images/installation_create_postgresqldb.jpg    | Bin
 .../rdbms_metastore/intro.md                       |   0
 .../rdbms_metastore/mysql/install_mysql.md         |   0
 .../rdbms_metastore/mysql/intro.md                 |   0
 .../rdbms_metastore/mysql/mysql_metastore.md       |   0
 .../postgresql/default_metastore.md                |   0
 .../postgresql/install_postgresql.md               |   0
 .../rdbms_metastore/postgresql/intro.md            |   0
 website/docs/development/intro.md                  |  10 +-
 ..._managment_api.md => segment_management_api.md} |   0
 website/sidebars.js                                | 132 +++++++++++++--------
 24 files changed, 137 insertions(+), 67 deletions(-)

diff --git a/website/docs/deployment/On-Cloud/intro.md b/website/docs/deployment/On-Cloud/intro.md
deleted file mode 100644
index 77c7bb5692..0000000000
--- a/website/docs/deployment/On-Cloud/intro.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-sidebar_position: 1
----
-
-# Kylin on K8S
-
-- K8S https://aws.amazon.com/eks/
-- RDBMS https://aws.amazon.com/rds/
-- Docker Image and K8s Template
diff --git a/website/docs/deployment/intro.md b/website/docs/deployment/intro.md
index 025c8078cf..5b40a92f23 100644
--- a/website/docs/deployment/intro.md
+++ b/website/docs/deployment/intro.md
@@ -1,7 +1,17 @@
 ---
-sidebar_position: 1
+title: Intro
+language: en
+sidebar_label: Intro
+pagination_label: Intro
+toc_min_heading_level: 2
+toc_max_heading_level: 6
+pagination_prev: null
+pagination_next: null
+keywords:
+    - Intro
+draft: false
+last_update:
+    date: 08/17/2022
 ---
 
-# Intro
-
 Kylin 5.0 support deploy on Hadoop or K8S.
diff --git a/website/docs/deployment/on-cloud/intro.md b/website/docs/deployment/on-cloud/intro.md
new file mode 100644
index 0000000000..27ad17423e
--- /dev/null
+++ b/website/docs/deployment/on-cloud/intro.md
@@ -0,0 +1,20 @@
+---
+title: Kylin on K8S
+language: en
+sidebar_label: Kylin on K8S
+pagination_label: Kylin on K8S
+toc_min_heading_level: 2
+toc_max_heading_level: 6
+pagination_prev: null
+pagination_next: null
+keywords:
+    - kylin on k8s
+    - k8s 
+draft: false
+last_update:
+    date: 08/17/2022
+---
+
+- K8S https://aws.amazon.com/eks/
+- RDBMS https://aws.amazon.com/rds/
+- Docker Image and K8s Template
diff --git a/website/docs/deployment/On-Premises/deploy_mode/cluster_deployment.md b/website/docs/deployment/on-premises/deploy_mode/cluster_deployment.md
similarity index 100%
rename from website/docs/deployment/On-Premises/deploy_mode/cluster_deployment.md
rename to website/docs/deployment/on-premises/deploy_mode/cluster_deployment.md
diff --git a/website/docs/deployment/On-Premises/deploy_mode/images/cluster_20191231.png b/website/docs/deployment/on-premises/deploy_mode/images/cluster_20191231.png
similarity index 100%
rename from website/docs/deployment/On-Premises/deploy_mode/images/cluster_20191231.png
rename to website/docs/deployment/on-premises/deploy_mode/images/cluster_20191231.png
diff --git a/website/docs/deployment/On-Premises/deploy_mode/intro.md b/website/docs/deployment/on-premises/deploy_mode/intro.md
similarity index 100%
rename from website/docs/deployment/On-Premises/deploy_mode/intro.md
rename to website/docs/deployment/on-premises/deploy_mode/intro.md
diff --git a/website/docs/deployment/On-Premises/deploy_mode/rw_separation.md b/website/docs/deployment/on-premises/deploy_mode/rw_separation.md
similarity index 100%
rename from website/docs/deployment/On-Premises/deploy_mode/rw_separation.md
rename to website/docs/deployment/on-premises/deploy_mode/rw_separation.md
diff --git a/website/docs/deployment/On-Premises/deploy_mode/service_discovery.md b/website/docs/deployment/on-premises/deploy_mode/service_discovery.md
similarity index 100%
rename from website/docs/deployment/On-Premises/deploy_mode/service_discovery.md
rename to website/docs/deployment/on-premises/deploy_mode/service_discovery.md
diff --git a/website/docs/deployment/On-Premises/images/jdk.en.png b/website/docs/deployment/on-premises/images/jdk.en.png
similarity index 100%
rename from website/docs/deployment/On-Premises/images/jdk.en.png
rename to website/docs/deployment/on-premises/images/jdk.en.png
diff --git a/website/docs/deployment/on-premises/intro.md b/website/docs/deployment/on-premises/intro.md
new file mode 100644
index 0000000000..e5c88e8783
--- /dev/null
+++ b/website/docs/deployment/on-premises/intro.md
@@ -0,0 +1,17 @@
+---
+title: Kylin On Hadoop
+language: en
+sidebar_label: Kylin On Hadoop
+pagination_label: Kylin On Hadoop
+toc_min_heading_level: 2
+toc_max_heading_level: 6
+pagination_prev: null
+pagination_next: null
+keywords:
+    - Kylin On Hadoop
+draft: false
+last_update:
+    date: 08/17/2022
+---
+
+Kylin 5.0 support deploy on Hadoop.
diff --git a/website/docs/deployment/On-Premises/network_port_requirements.md b/website/docs/deployment/on-premises/network_port_requirements.md
similarity index 100%
rename from website/docs/deployment/On-Premises/network_port_requirements.md
rename to website/docs/deployment/on-premises/network_port_requirements.md
diff --git a/website/docs/deployment/On-Premises/prerequisite.md b/website/docs/deployment/on-premises/prerequisite.md
similarity index 100%
rename from website/docs/deployment/On-Premises/prerequisite.md
rename to website/docs/deployment/on-premises/prerequisite.md
diff --git a/website/docs/deployment/On-Premises/rdbms_metastore/images/install_initialize_postgresql.png b/website/docs/deployment/on-premises/rdbms_metastore/images/install_initialize_postgresql.png
similarity index 100%
rename from website/docs/deployment/On-Premises/rdbms_metastore/images/install_initialize_postgresql.png
rename to website/docs/deployment/on-premises/rdbms_metastore/images/install_initialize_postgresql.png
diff --git a/website/docs/deployment/On-Premises/rdbms_metastore/images/installation_create_postgresqldb.jpg b/website/docs/deployment/on-premises/rdbms_metastore/images/installation_create_postgresqldb.jpg
similarity index 100%
rename from website/docs/deployment/On-Premises/rdbms_metastore/images/installation_create_postgresqldb.jpg
rename to website/docs/deployment/on-premises/rdbms_metastore/images/installation_create_postgresqldb.jpg
diff --git a/website/docs/deployment/On-Premises/rdbms_metastore/intro.md b/website/docs/deployment/on-premises/rdbms_metastore/intro.md
similarity index 100%
rename from website/docs/deployment/On-Premises/rdbms_metastore/intro.md
rename to website/docs/deployment/on-premises/rdbms_metastore/intro.md
diff --git a/website/docs/deployment/On-Premises/rdbms_metastore/mysql/install_mysql.md b/website/docs/deployment/on-premises/rdbms_metastore/mysql/install_mysql.md
similarity index 100%
rename from website/docs/deployment/On-Premises/rdbms_metastore/mysql/install_mysql.md
rename to website/docs/deployment/on-premises/rdbms_metastore/mysql/install_mysql.md
diff --git a/website/docs/deployment/On-Premises/rdbms_metastore/mysql/intro.md b/website/docs/deployment/on-premises/rdbms_metastore/mysql/intro.md
similarity index 100%
rename from website/docs/deployment/On-Premises/rdbms_metastore/mysql/intro.md
rename to website/docs/deployment/on-premises/rdbms_metastore/mysql/intro.md
diff --git a/website/docs/deployment/On-Premises/rdbms_metastore/mysql/mysql_metastore.md b/website/docs/deployment/on-premises/rdbms_metastore/mysql/mysql_metastore.md
similarity index 100%
rename from website/docs/deployment/On-Premises/rdbms_metastore/mysql/mysql_metastore.md
rename to website/docs/deployment/on-premises/rdbms_metastore/mysql/mysql_metastore.md
diff --git a/website/docs/deployment/On-Premises/rdbms_metastore/postgresql/default_metastore.md b/website/docs/deployment/on-premises/rdbms_metastore/postgresql/default_metastore.md
similarity index 100%
rename from website/docs/deployment/On-Premises/rdbms_metastore/postgresql/default_metastore.md
rename to website/docs/deployment/on-premises/rdbms_metastore/postgresql/default_metastore.md
diff --git a/website/docs/deployment/On-Premises/rdbms_metastore/postgresql/install_postgresql.md b/website/docs/deployment/on-premises/rdbms_metastore/postgresql/install_postgresql.md
similarity index 100%
rename from website/docs/deployment/On-Premises/rdbms_metastore/postgresql/install_postgresql.md
rename to website/docs/deployment/on-premises/rdbms_metastore/postgresql/install_postgresql.md
diff --git a/website/docs/deployment/On-Premises/rdbms_metastore/postgresql/intro.md b/website/docs/deployment/on-premises/rdbms_metastore/postgresql/intro.md
similarity index 100%
rename from website/docs/deployment/On-Premises/rdbms_metastore/postgresql/intro.md
rename to website/docs/deployment/on-premises/rdbms_metastore/postgresql/intro.md
diff --git a/website/docs/development/intro.md b/website/docs/development/intro.md
index e3f236c1ed..5795165ed6 100644
--- a/website/docs/development/intro.md
+++ b/website/docs/development/intro.md
@@ -1,16 +1,16 @@
 ---
-title: Deployment Mode
+title: Guide of developer
 language: en
-sidebar_label: Deployment Mode
-pagination_label: Deployment Mode
+sidebar_label: Guide of developer
+pagination_label: Guide of developer
 toc_min_heading_level: 2
 toc_max_heading_level: 6
 pagination_prev: null
 pagination_next: null
 keywords:
-    - deployment mode
+    - guide
+    - developer
 draft: false
 last_update:
     date: 08/12/2022
 ---
-# Guide of developer
diff --git a/website/docs/restapi/segment_managment_api.md b/website/docs/restapi/segment_management_api.md
similarity index 100%
rename from website/docs/restapi/segment_managment_api.md
rename to website/docs/restapi/segment_management_api.md
diff --git a/website/sidebars.js b/website/sidebars.js
index ec86ae733f..7afe31a706 100644
--- a/website/sidebars.js
+++ b/website/sidebars.js
@@ -52,97 +52,121 @@ const sidebars = {
         {
             type: 'category',
             label: 'Deployment',
+            link: {
+                type: 'doc',
+                id: 'deployment/intro',
+            },
             items: [
-                {
-                    type: 'doc',
-                    id: 'deployment/intro'
-                },
-                {
-                    type: 'doc',
-                    id: 'deployment/prerequisite'
-                },
-                {
-                    type: 'doc',
-                    id: 'deployment/network_port_requirements'
-                },
-                // TODO: add Installation part
-                // {
-                //     type: 'category',
-                //     label: 'Installation',
-                //     items:[
-                //         {
-                //
-                //         },
-                //     ],
-                // },
                 {
                     type: 'category',
-                    label: 'Use RDBMS as Metastore',
+                    label: 'On Premises',
                     link: {
                         type: 'doc',
-                        id: 'deployment/rdbms_metastore/intro',
+                        id: 'deployment/on-premises/intro'
                     },
                     items: [
+                        {
+                            type: 'doc',
+                            id: 'deployment/on-premises/prerequisite',
+                        },
+                        {
+                            type: 'doc',
+                            id: 'deployment/on-premises/network_port_requirements',
+                        },
                         {
                             type: 'category',
-                            label: 'MySQL',
+                            label: 'Use RDBMS as Metastore',
                             link: {
                                 type: 'doc',
-                                id: 'deployment/rdbms_metastore/mysql/intro',
+                                id: 'deployment/on-premises/rdbms_metastore/intro',
                             },
                             items: [
                                 {
-                                    type: 'doc',
-                                    id: 'deployment/rdbms_metastore/mysql/install_mysql'
+                                    type: 'category',
+                                    label: 'MySQL',
+                                    link: {
+                                        type: 'doc',
+                                        id: 'deployment/on-premises/rdbms_metastore/mysql/intro',
+                                    },
+                                    items: [
+                                        {
+                                            type: 'doc',
+                                            id: 'deployment/on-premises/rdbms_metastore/mysql/install_mysql'
+                                        },
+                                        {
+                                            type: 'doc',
+                                            id: 'deployment/on-premises/rdbms_metastore/mysql/mysql_metastore'
+                                        },
+                                    ],
                                 },
                                 {
-                                    type: 'doc',
-                                    id: 'deployment/rdbms_metastore/mysql/mysql_metastore'
+                                    type: 'category',
+                                    label: 'PostgreSQL',
+                                    link: {
+                                        type: 'doc',
+                                        id: 'deployment/on-premises/rdbms_metastore/postgresql/intro',
+                                    },
+                                    items: [
+                                        {
+                                            type: 'doc',
+                                            id: 'deployment/on-premises/rdbms_metastore/postgresql/install_postgresql'
+                                        },
+                                        {
+                                            type: 'doc',
+                                            id: 'deployment/on-premises/rdbms_metastore/postgresql/default_metastore'
+                                        },
+                                    ],
                                 },
-                            ],
+                            ]
                         },
                         {
                             type: 'category',
-                            label: 'PostgreSQL',
+                            label: 'Deploy Mode',
                             link: {
                                 type: 'doc',
-                                id: 'deployment/rdbms_metastore/postgresql/intro',
+                                id: 'deployment/on-premises/deploy_mode/intro',
                             },
                             items: [
                                 {
                                     type: 'doc',
-                                    id: 'deployment/rdbms_metastore/postgresql/install_postgresql'
+                                    id: 'deployment/on-premises/deploy_mode/cluster_deployment'
                                 },
                                 {
                                     type: 'doc',
-                                    id: 'deployment/rdbms_metastore/postgresql/default_metastore'
+                                    id: 'deployment/on-premises/deploy_mode/service_discovery'
                                 },
-                            ],
+                                {
+                                    type: 'doc',
+                                    id: 'deployment/on-premises/deploy_mode/rw_separation'
+                                },
+                            ]
                         },
-                    ]
+                    ],
                 },
                 {
                     type: 'category',
-                    label: 'Deployment Mode',
+                    label: 'On Cloud',
                     link: {
                         type: 'doc',
-                        id: 'deployment/deploy_mode/intro',
+                        id: 'deployment/on-cloud/intro',
                     },
                     items: [
                         {
                             type: 'doc',
-                            id: 'deployment/deploy_mode/cluster_deployment'
-                        },
-                        {
-                            type: 'doc',
-                            id: 'deployment/deploy_mode/service_discovery'
-                        },
-                        {
-                            type: 'doc',
-                            id: 'deployment/deploy_mode/rw_separation'
+                            id: 'deployment/on-cloud/intro'
                         },
                     ]
                 },
+                // TODO: add Installation part
+                // {
+                //     type: 'category',
+                //     label: 'Installation',
+                //     items:[
+                //         {
+                //
+                //         },
+                //     ],
+                // },
                 {
                     type: 'category',
                     label: 'System Configuration',
@@ -455,7 +479,7 @@ const sidebars = {
                 },
                 {
                     type: 'doc',
-                    id: 'restapi/segment_managment_api'
+                    id: 'restapi/segment_management_api'
                 },
                 {
                     type: 'doc',
@@ -533,6 +557,10 @@ const sidebars = {
         {
             type: 'category',
             label: 'Development Guide',
+            link: {
+                type: 'doc',
+                id: 'development/intro',
+            },
             items: [
                 {
                     type: 'doc',
@@ -544,7 +572,11 @@ const sidebars = {
                 },
                 {
                     type: 'doc',
-                    id: 'development/how_to_develop'
+                    id: 'development/how_to_test'
+                },
+                {
+                    type: 'doc',
+                    id: 'development/how_to_debug'
                 },
                 {
                     type: 'doc',


[kylin] 05/07: KYLIN-5221 add operations doc

Posted by xx...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

xxyu pushed a commit to branch doc5.0
in repository https://gitbox.apache.org/repos/asf/kylin.git

commit 5221ec3de31e39c43183af24d5809f704295114b
Author: Mukvin <bo...@163.com>
AuthorDate: Tue Aug 16 18:10:20 2022 +0800

    KYLIN-5221 add operations doc
---
 website/docs/configuration/configuration.md        |   2 +-
 website/docs/configuration/hadoop_queue_config.md  |   2 +-
 website/docs/configuration/query_cache.md          |   2 +-
 website/docs/configuration/spark_rpc_encryption.md |   5 +-
 .../data-access-control/acl_table.md               |  75 +++++
 .../access-control/data-access-control/intro.md    |  41 +++
 .../data-access-control/project_acl.md             |  54 ++++
 .../operations/access-control/group_management.md  |  52 ++++
 .../operations/access-control/images/acl_5_en.png  | Bin 0 -> 337881 bytes
 .../access-control/images/table_acl_1_en.png       | Bin 0 -> 70055 bytes
 .../access-control/images/table_acl_2_en.png       | Bin 0 -> 33907 bytes
 .../access-control/images/table_acl_3_en.png       | Bin 0 -> 81429 bytes
 website/docs/operations/access-control/intro.md    |  24 ++
 .../operations/access-control/user_management.md   |  93 +++++++
 .../operations/access-control/users/user_w1.png    | Bin 0 -> 30698 bytes
 .../operations/access-control/users/user_w2.png    | Bin 0 -> 11792 bytes
 .../operations/access-control/users/user_w3.png    | Bin 0 -> 7887 bytes
 .../operations/access-control/users/user_w4.png    | Bin 0 -> 9204 bytes
 .../operations/access-control/users/user_w5.png    | Bin 0 -> 11144 bytes
 .../operations/access-control/users/user_w6.png    | Bin 0 -> 16649 bytes
 .../operations/access-control/users/user_w7.png    | Bin 0 -> 16242 bytes
 .../operations/access-control/users/user_w8.png    | Bin 0 -> 27691 bytes
 website/docs/operations/logs/audit_log.md          | 208 ++++++++++++++
 .../operations/logs/images/after_update_model.png  | Bin 0 -> 332033 bytes
 .../operations/logs/images/after_update_pwd.png    | Bin 0 -> 284440 bytes
 .../operations/logs/images/before_update_model.png | Bin 0 -> 339841 bytes
 .../operations/logs/images/before_update_pwd.png   | Bin 0 -> 292514 bytes
 .../docs/operations/logs/images/metadata_table.png | Bin 0 -> 565143 bytes
 website/docs/operations/logs/intro.md              |  21 ++
 website/docs/operations/logs/system_log.md         | 249 +++++++++++++++++
 website/docs/operations/overview.md                |  22 ++
 .../images/project_settings_acceleration.png       | Bin 213058 -> 0 bytes
 .../images/project_settings_acceleration_tips.png  | Bin 150813 -> 0 bytes
 .../images/project_settings_storage_low_usage.png  | Bin 240252 -> 0 bytes
 .../images/recommendation_preferences_en.png       | Bin 153741 -> 0 bytes
 .../images/service_state.en.png                    | Bin 58508 -> 0 bytes
 .../images/storage_quota.en.png                    | Bin 34171 -> 0 bytes
 .../alerting.md                                    |   0
 .../project-operation/images/add_project.png       | Bin 0 -> 66925 bytes
 .../project-operation/images/project_list.png      | Bin 0 -> 262909 bytes
 .../images/project_settings.png                    | Bin
 .../images/project_settings_basic_general.png      | Bin
 .../images/project_settings_cc_expose.png          | Bin
 .../images/project_settings_custom_config.png      | Bin
 .../project_settings_default_database_en.png       | Bin
 .../images/project_settings_job_notification.png   | Bin
 .../project_settings_job_notification_page.png     | Bin
 .../images/project_settings_model_rewrite.png      | Bin
 .../images/project_settings_pushdown.png           | Bin
 .../images/project_settings_segment_en.png         | Bin
 .../images/project_settings_storage.png            | Bin
 .../images/project_settings_yarn_queue.png         | Bin
 .../images/toolbar.en.png                          | Bin
 .../intro.md                                       |   0
 .../project-operation/project_management.md        |  62 +++++
 .../project_settings.md                            |   0
 .../{ => system-operation}/cli_tool/diagnosis.md   |   0
 .../cli_tool/environment_dependency_check.md       |  48 ++++
 .../system-operation/cli_tool/images/accept_en.png | Bin 0 -> 76977 bytes
 .../system-operation/cli_tool/images/button_en.png | Bin 0 -> 195535 bytes
 .../cli_tool/images/rollback_en.png                | Bin 0 -> 80422 bytes
 .../{ => system-operation}/cli_tool/intro.md       |   0
 .../cli_tool/metadata_tool/intro.md                |  18 ++
 .../metadata_tool/metadata_backup_restore.md       |  88 ++++++
 .../system-operation/cli_tool/rollback.md          | 123 +++++++++
 .../diagnosis/build_flame_graph.md                 |  78 ++++++
 .../system-operation/diagnosis/diagnosis.md        |  86 ++++++
 .../diagnosis/images/diagnosis_web_en.png          | Bin 0 -> 179703 bytes
 .../diagnosis/images/job_diagnosis_web_en.png      | Bin 0 -> 141217 bytes
 .../diagnosis/images/query_diagnosis_web.png       | Bin 0 -> 127898 bytes
 .../operations/system-operation/diagnosis/intro.md |  17 ++
 .../diagnosis/query_flame_graph.md                 |  58 ++++
 .../docs/operations/system-operation/guardian.md   |  62 +++++
 ...den_modify_metadata_during_maintenance_mode.png | Bin 0 -> 189044 bytes
 ..._metadata_promoting_during_maintenance_mode.png | Bin 0 -> 188242 bytes
 .../system-operation/images/maintenance_mode.png   | Bin 0 -> 246534 bytes
 .../system_recover_from_maintenance_mode.png       | Bin 0 -> 178347 bytes
 website/docs/operations/system-operation/intro.md  |  17 ++
 .../operations/system-operation/junk_file_clean.md |  90 ++++++
 .../operations/system-operation/limit_query.md     |  72 +++++
 .../system-operation/maintenance_mode.md           |  76 +++++
 .../system-operation/update-session-table.md       |  46 ++++
 website/sidebars.js                                | 306 +++++++++++++++++----
 83 files changed, 2044 insertions(+), 53 deletions(-)

diff --git a/website/docs/configuration/configuration.md b/website/docs/configuration/configuration.md
index 979e92303f..3046f38233 100644
--- a/website/docs/configuration/configuration.md
+++ b/website/docs/configuration/configuration.md
@@ -82,7 +82,7 @@ The file **kylin.properties** occupies some of the most important configurations
 | kylin.engine.spark-conf.spark.driver.host                    | Configure the IP of the node where the Kylin is located |
 | kylin.engine.sanity-check-enabled                            | Configure Kylin whether to open Sanity Check during indexes building. The default value is `true` |
 | kylin.job.finished-notifier-url                              | When the building job is completed, the job status information will be sent to the url via HTTP request |
-| kylin.diag.obf.level                                         | The desensitization level of the diagnostic package. `RAW` means no desensitization, `OBF` means desensitization. Configuring `OBF` will desensitize sensitive information such as usernames and passwords in the `kylin.properties` file (please refer to the [Diagnosis Kit Tool](../operations/cli_tool/diagnosis.md) chapter), The default value is `OBF`. |
+| kylin.diag.obf.level                                         | The desensitization level of the diagnostic package. `RAW` means no desensitization, `OBF` means desensitization. Configuring `OBF` will desensitize sensitive information such as usernames and passwords in the `kylin.properties` file (please refer to the [Diagnosis Kit Tool](../operations/system-operation/cli_tool/diagnosis.md) chapter), The default value is `OBF`. |
 | kylin.diag.task-timeout                                      | The subtask timeout time for the diagnostic package, whose default value is 3 minutes |
 | kylin.diag.task-timeout-black-list                           | Diagnostic package subtask timeout blacklist (the values are separated by commas). The subtasks in the blacklist will be skipped by the timeout settings and will run until it finished. The default value is `METADATA`, `LOG` <br />The optional value is as below: <br />METADATA, AUDIT_LOG, CLIENT, JSTACK, CONF, HADOOP_CONF, BIN, HADOOP_ENV, CATALOG_INFO, SYSTEM_METRICS, MONITOR_METRICS, SPARK_LOGS, SPARDER_HISTORY, KG_LOGS, L [...]
 | kylin.query.queryhistory.max-size                            | The total number of records in the query history of all projects, the default is 10000000 |
diff --git a/website/docs/configuration/hadoop_queue_config.md b/website/docs/configuration/hadoop_queue_config.md
index b252ec2350..f85925250b 100644
--- a/website/docs/configuration/hadoop_queue_config.md
+++ b/website/docs/configuration/hadoop_queue_config.md
@@ -50,4 +50,4 @@ Similarly, you may set up YARN queue for other Kylin instances to achieve comput
 
 ###<span id="project">Project-level YARN Queue Setting</span>
 
-The system admin user can set the YARN Application Queue of the project in **Setting -> Advanced Settings -> YARN Application Queue**, please refer to the [Project Settings](../operations/project-maintenance/project_settings.md) for more information.
+The system admin user can set the YARN Application Queue of the project in **Setting -> Advanced Settings -> YARN Application Queue**, please refer to the [Project Settings](../operations/project-operation/project_settings.md) for more information.
diff --git a/website/docs/configuration/query_cache.md b/website/docs/configuration/query_cache.md
index 27e09396f1..f767537f57 100644
--- a/website/docs/configuration/query_cache.md
+++ b/website/docs/configuration/query_cache.md
@@ -19,7 +19,7 @@ By default, Kylin enables query cache in each process to improve query performan
 > **Note**: In order to ensure data consistency, query cache is not available in pushdown.
 
 
-###Use Default Cache
+### Use Default Cache
 
 Kylin enables query cache by default at each node/process level. The configuration details are described  below. You can change them in `$KYLIN_HOME/conf/kylin.properties` under Kylin installation directory.
 
diff --git a/website/docs/configuration/spark_rpc_encryption.md b/website/docs/configuration/spark_rpc_encryption.md
index 0e696b829e..e6e3b9bb17 100644
--- a/website/docs/configuration/spark_rpc_encryption.md
+++ b/website/docs/configuration/spark_rpc_encryption.md
@@ -21,8 +21,11 @@ For more details about Spark RPC communication encryption, please see [Spark Sec
 This function is disabled by default. If you need to enable it, please refer to the following method for configuration.
 
 ### Spark RPC Communication Encryption Configuration
-1、1. Please refer to [Spark Security](http://spark.apache.org/docs/1.6.2/job-scheduling.html#dynamic-resource-allocation) to ensure that RPC communication encryption is enabled in the Spark cluster.
+
+1、Please refer to [Spark Security](http://spark.apache.org/docs/1.6.2/job-scheduling.html#dynamic-resource-allocation) to ensure that RPC communication encryption is enabled in the Spark cluster.
+
 2、Add the following configurations in `$KYLIN_HOME/conf/kylin.properties`, to To enable Kylin nodes and Spark cluster communication encryption
+
 ```
 ### spark rpc encryption for build jobs
 kylin.storage.columnar.spark-conf.spark.authenticate=true
diff --git a/website/docs/operations/access-control/data-access-control/acl_table.md b/website/docs/operations/access-control/data-access-control/acl_table.md
new file mode 100644
index 0000000000..5978d8aabc
--- /dev/null
+++ b/website/docs/operations/access-control/data-access-control/acl_table.md
@@ -0,0 +1,75 @@
+---
+title: Table Access Control
+language: en
+sidebar_label: Table Access Control
+pagination_label: Table Access Control
+toc_min_heading_level: 2
+toc_max_heading_level: 6
+pagination_prev: null
+pagination_next: null
+keywords:
+    - table access control
+draft: true
+last_update:
+    date: Aug 16, 2022
+---
+
+### <span id="table">Table ACL</span>
+
+**Introduction**
+
+Table ACLs determines whether a user/user group can access a certain table loaded into Kyligence Enterprise. When a user/group is restricted to a table, the user/user group cannot query the table. 
+
+- System administrator can grant table-level data access to a user/user group. All users/user groups that have access rights to the current project can read or query all tables in the current project by default.
+- When the access rights of the user/user group are deleted, or the user/user group is removed from the system, the corresponding table-level permissions are also deleted.
+- When the table is deleted from the project, the Table ACL for all users/user groups are also deleted.
+- When the table is reloaded in the project, the Table ACL for all users/user groups are retained.
+
+**Example**
+
+Now we will use specific examples to show the product behavior after setting table ACLs.
+
+If a user do not have the access to table `SSB.SUPPLIER`, he cannot see the corresponding table under the project or in the connected BI tool.
+
+![Set Table ACL](#TODO)
+
+![The table is not visible](#TODO)
+
+If you query the table, the result will show an error.
+
+![Result shows an error](#TODO)
+
+### <span id="set">Grant Table ACL</span>
+
+1. In the **Admin** -> Project page, the system administrator can grant user/user group project-level access rights. For details, please refer to [Project ACL](project_acl.en.md).
+
+2. Select the project you want to authorize,then click **Authorization** under the right **Action** bar and go to the authorization page.
+
+3. Click the left arrow button and expand the user/user group that requires authorization, and the interface displays the tables / columns / rows that the user/user group has access to.
+
+   ![Grant Table ACL](#TODO)
+
+4. Click the **Edit** button and check the tables and columns that need to be granted access. There is no row-level access restriction by default, which means that users can access all the rows in the column.
+
+   ![Edit Table ACL](#TODO)
+
+5. Click the **+ Add** button on the right of the **Row Access List**, select the column in the pop-up window and enter the rows that can be accessed. Support for **IN** or **LIKE** rules to set row level permissions, increase or decrease row-level access via the **+/-** button on the right, and click **Submit**.
+
+   ![Add Row ACL](#TODO)
+
+6. For granted row-level access, click the **...** button on the right to modify the settings, or click **Delete** on the right.
+
+   ![Edit Row ACL](#TODO)
+
+7. Confirm that the currently settings for Table ACLs are correct and click **Submit**.
+
+
+
+### <span id="notice">Notices</span>
+
+- The authorization operation is a whitelist display for the user/user group, that is, only the tables / rows / columns permissions added for the user/user group are accessible.
+- By default, a user/user group will be automatically granted all access permissions on all tables in this project after added into this project. You can modify the configuration item `kylin.acl.project-internal-default-permission-granted=true` in the configuration file. After setting it to `false`, when the user/user group is added to the project, there is no table granted by default. System administrators can manually select tables and set access permissions.
+- The access to the user/user group takes the largest set of results that can be accessed (union).
+  - If user `user1` has access to table `table1`, user `user1` is in user group `group1`, and user group `group1` has access to table `table2`. At this time user `user1` can also access the tables `table1` and `table2`.
+  - If user group `group1` has access to tables `table1` and `table2`, user group `group2` has access to tables `table2` and `table3`, user `user1` belongs to user group `group1` and `group2`. At this time `user1` has access to the tables `table1`, `table2` and `table3`.
+- Only system administrator users can perform **add/delete/change ** operations at the Table / Column / Row ACL.
diff --git a/website/docs/operations/access-control/data-access-control/intro.md b/website/docs/operations/access-control/data-access-control/intro.md
new file mode 100644
index 0000000000..b84e0958ab
--- /dev/null
+++ b/website/docs/operations/access-control/data-access-control/intro.md
@@ -0,0 +1,41 @@
+---
+title: Data Access Control
+language: en
+sidebar_label: Data Access Control
+pagination_label: Data Access Control
+toc_min_heading_level: 2
+toc_max_heading_level: 6
+pagination_prev: null
+pagination_next: null
+keywords:
+    - data access control
+draft: true
+last_update:
+    date: Aug 16, 2022
+---
+
+
+Kylin provides a rich set of access control features for big enterprise. Start from Kylin 5, every action from user must satisfy both **Operation Permission** and **Data Access Permission**, before the action can perform.
+
+- Operation Permission: Defined at project level, specifies what operations a user can perform within a project.  User can have one of the four permissions, from weak to powerful:
+  - *QUERY*: Allows to run query in a project.
+  - *OPERATION*: Allows to operate models, like building, refreshing, and managing Segments. Implies the QUERY permission.
+  - *MANAGEMENT*: Allows to manage models and cubes, like create and edit. Implies the OPERATION permission.
+  - *ADMIN*: Project level administrator permission, allows to manage source tables, and all other operations in a project.
+  
+  See [Project ACL](project_acl.md) for more details.
+  
+- Data Access Permission: Defined on data, specifies which tables, columns, and rows a user can access. See [Table](acl_table.md) for more details.
+
+###  Examples of Permission Check
+
+To perform an action, user must have both operation permission and data access permission. Below are a few examples.
+
+- To manage source tables, user needs the ADMIN permission, and only the tables user can access can be seen and acted. (Column and row ACLs does not impact the source table management.)
+- To edit a model, user must have the MANAGEMENT permission and have access to all the tables and columns in the model.
+- Running queries is mostly about data access control, since all users in a project have at least QUERY permission. First user must have access to all the tables and columns in the query, or the system will prompt permission error and refuse to execute. Second the system will only return rows that are accessible to a user. If different row ACLs are set for users, they may see different results from a same query.
+
+### Other Notes
+
+- The system administrator is not restricted by the data access controls by default, he/she has access to all data.
+- The system does not provide operation permissions at model level yet.
diff --git a/website/docs/operations/access-control/data-access-control/project_acl.md b/website/docs/operations/access-control/data-access-control/project_acl.md
new file mode 100755
index 0000000000..2b38cac6e7
--- /dev/null
+++ b/website/docs/operations/access-control/data-access-control/project_acl.md
@@ -0,0 +1,54 @@
+---
+title: Project Access Control
+language: en
+sidebar_label: Project Access Control
+pagination_label: Project Access Control
+toc_min_heading_level: 2
+toc_max_heading_level: 6
+pagination_prev: null
+pagination_next: null
+keywords:
+    - project access control
+draft: true
+last_update:
+    date: Aug 16, 2022
+---
+
+Project ACLs determines whether a user/user group can access a certain project in Kylin. Kylin has four built-in project level permissions, *Admin*, *Management*, *Operation* and *Query*. *Admin* includes the other three permissions, *Management* includes *Operation* and *Query* permissions, *Operation* includes *Query* permissions.
+
+- *QUERY*: Permission to query tables/models in the project. If pushdown is enabled, user/group can query tables loaded to the project when there's no ready model to answer the query.
+- *OPERATION*: Permission to build a model in the project, including rebuild a segment, resume or discard jobs. 
+- *MANAGEMENT*: Permission to edit/delete models in the project. 
+- *ADMIN*: Permission to manage data sources, models in the project.
+
+After the system administrator logs in to Kylin, click the **Admin** button in the global toolbar to enter the system management page, and click the **Project** field to enter the Project Management page.
+
+After the system administrator assigns project access permission to a group, users in the group will inherit the access permission on data source, models and segments accordingly. 
+
+
+### Grant Project ACL
+
+1. Select the project and click the **Authorization** icon under the **Actions** column on the right to enter the authorization page.
+2. Expand a project on the project list.
+3. Click **+ User / Group** to grant access for a user / user group.
+4. Select the grant type : by **User** or by **User Group**. Then select the user / user group and access permission to be granted, and click **Submit**. 
+
+![Grant Project ACL](#TODO)
+
+
+### Modify Project ACL
+
+1. Select the project and click the **Authorization** icon under the **Actions** column on the right to enter the authorization page.
+2. Select the user / user group in the list and click the **Edit** icon under the **Actions** column on the right.
+3. Modify user / user group's access permission and click **Submit**. 
+
+### Revoke Project ACL
+
+1. Select the project and click the **Authorization** icon under the **Actions** column on the right to enter the authorization page.
+2. Select the user / user group in the list and click the **Delete** icon under the **Actions** column on the right.
+
+> **Caution**: When user/user group's project access permission has been revoked, all access permission on this project including table-level, row-level and column-level will be revoked subsequently.
+
+### Data authority control
+
+After setting the system level configuration parameter **kylin.security.allow-project-admin-grant-acl=false**, the project administrator in each project has no right to assign table / row / column access rights to users or user groups, but can still view the table / row / column access rights of users or user groups.
diff --git a/website/docs/operations/access-control/group_management.md b/website/docs/operations/access-control/group_management.md
new file mode 100644
index 0000000000..1045c03d45
--- /dev/null
+++ b/website/docs/operations/access-control/group_management.md
@@ -0,0 +1,52 @@
+---
+title: User Group Management
+language: en
+sidebar_label: User Group Management
+pagination_label: User Group Management
+toc_min_heading_level: 2
+toc_max_heading_level: 6
+pagination_prev: null
+pagination_next: null
+keywords:
+    - user group management
+draft: true
+last_update:
+    date: Aug 16, 2022
+---
+
+This chapter provides an overview of what a user group is and how a user group can be managed. 
+
+### <span id="group">About User Group</span>
+
+A user group is a collection of users, and users in a user group share the same ACL. By default, Kylin initializes four user groups, namely ALL_USERS, ROLE_ADMIN, ROLE_ANALYST, and ROLE_MODELER, and ALL_USERS group is a default user group, all users are included in the ALL_USERS user group. ALL_USERS and ROLE_ADMIN user group cannot be modified or deleted. System administrators can add or remove users in user groups except ALL_USERS, or add a user to multiple groups except ALL_USERS. Use [...]
+
+
+### <span id="authority">About User Group Permissions</span>
+
+The system administrator can grant the project-level access permissions to a user group. When a user group has been granted the project-level permissions, users in this group will inherit the corresponding permissions from the group.
+
+When a user belongs to multiple groups, the user will inherit the project-level permissions from the groups he/she belongs to. 
+
+### <span id="management">Manage user groups</span>
+
+After the system administrator logs in to Kylin, click the **Admin** button in the top toolbar to enter the system management page, and click the **Group** field to enter the User Group Management page.
+
+### <span id="add">Create a user group</span>
+
+On the User Group Management page,  click **+ User Group** button to create a new group. In the pop-up window, the system administrator can fill in the group name and click **OK** to save a new user group. 
+
+### <span id="drop">Delete a user group</span>
+
+On the User Group Management page, select a user to be deleted, click the **Drop** button under the **Actions** bar on the right. In the pop-up window, the system administrator can confirm to delete a user group, once a user group is deleted, users in this user group will not be deleted and permission grant to this user group will be removed.
+
+### <span id="assign">Assign users to a user group</span>
+
+1. On the User Group Management page, select the user group to be assigned users to.
+2. Click **Assign Users** under the **Actions** bar on the right.
+3. In the pop-up window, check the users who need to be assigned to the group, click the right arrow **>**, the user will be assigned to the **Assigned Users**.
+4. Click **OK** and the user will be assigned to this group.
+
+### <span id="update_group">Modify user's user group</span>
+
+Please refer to [User Management](user_management.md) 
+
diff --git a/website/docs/operations/access-control/images/acl_5_en.png b/website/docs/operations/access-control/images/acl_5_en.png
new file mode 100644
index 0000000000..ae06dff693
Binary files /dev/null and b/website/docs/operations/access-control/images/acl_5_en.png differ
diff --git a/website/docs/operations/access-control/images/table_acl_1_en.png b/website/docs/operations/access-control/images/table_acl_1_en.png
new file mode 100644
index 0000000000..b2baa58ea3
Binary files /dev/null and b/website/docs/operations/access-control/images/table_acl_1_en.png differ
diff --git a/website/docs/operations/access-control/images/table_acl_2_en.png b/website/docs/operations/access-control/images/table_acl_2_en.png
new file mode 100644
index 0000000000..abd00a9022
Binary files /dev/null and b/website/docs/operations/access-control/images/table_acl_2_en.png differ
diff --git a/website/docs/operations/access-control/images/table_acl_3_en.png b/website/docs/operations/access-control/images/table_acl_3_en.png
new file mode 100644
index 0000000000..0e7e47e31d
Binary files /dev/null and b/website/docs/operations/access-control/images/table_acl_3_en.png differ
diff --git a/website/docs/operations/access-control/intro.md b/website/docs/operations/access-control/intro.md
new file mode 100644
index 0000000000..fcc139d327
--- /dev/null
+++ b/website/docs/operations/access-control/intro.md
@@ -0,0 +1,24 @@
+---
+title: Access Control
+language: en
+sidebar_label: Access Control
+pagination_label: Access Control
+toc_min_heading_level: 2
+toc_max_heading_level: 6
+pagination_prev: null
+pagination_next: null
+keywords:
+    - access control
+draft: true
+last_update:
+    date: Aug 16, 2022
+---
+
+
+This chapter will describe how to grant roles to users/groups in Kyligence to control their access rights, and how to perform fine-grained data access control, it will cover:
+
+* [User Management](user_management.en.md)
+* [User Group Management](group_management.md)
+
+* [Data Access Control](access_control.md)
+  * [Project Access Control](project_acl.md)
diff --git a/website/docs/operations/access-control/user_management.md b/website/docs/operations/access-control/user_management.md
new file mode 100644
index 0000000000..0b7a4fdfd6
--- /dev/null
+++ b/website/docs/operations/access-control/user_management.md
@@ -0,0 +1,93 @@
+---
+title: User Management
+language: en
+sidebar_label: User Management
+pagination_label: User Management
+toc_min_heading_level: 2
+toc_max_heading_level: 6
+pagination_prev: null
+pagination_next: null
+keywords:
+    - user management
+draft: true
+last_update:
+    date: Aug 16, 2022
+---
+
+
+This chapter introduces what a user is and how a user can be managed.
+
+### <span id="user">About Users</span>
+
+To use Kylin, a user must log in to the system using a user name and corresponding password. Every user is unique in a Kylin instance, which is to say, it is not necessary to create the same user for every project in a single instance. 
+By default, Kylin initializes one user, namely `ADMIN`. The user `ADMIN` is a built-in system administrator, and the system administrator has all the permissions of the entire system.
+
+
+### <span id="management">Manage Users</span>
+
+After the system administrator logs in to Kylin, click the **Admin** button in the top toolbar to enter the system management page, and click the **User** field to enter the User Management page.
+
+**Note**:
+
+1. Except for the system administrator, simply creating a user does not give the user access to any project.
+2. Except for the system administrator, other users need to be given access at the project level.
+
+
+### <span id="add">Add a User</span>
+
+On the User Management page, the system administrator can click the **+User** button to add new users. In the pop-up window, please fill in the user name, password,  confirm new password, select whether the user role is a system administrator or a normal user, and click **OK**.
+
+> **tips:** username is case insensitive, so duplicate names with existing user names are not allowed.
+
+### <span id="edit">Edit a User Role</span>
+
+On the User Management page, select a user to be edited, click the **...** (More Actions) button under the **Actions** bar on the right. Then click **Edit Role**. 
+
+In the pop-up window,  the system administrator can modify user role to administrator or user. 
+
+### <span id="drop">Delete a User</span>
+
+On the User Management page, select a user to be deleted, click the **...** (More Actions) button under the **Actions** bar on the right. Then click **Delete**. The system administrator can confirm to delete a user in the prompted window. User can not be restored after deleting, and user's access permission on all projects will be removed.
+
+### <span id="disable">Enable/Disable a User</span>
+
+On the User Management page, select a user, and click the **...** (More Actions) button under the **Actions** bar on the right. Then click **Enable / Disable**. The system administrator can enable or disable a user, and disabled users cannot login to the system. 
+
+### <span id="adminpwd">Reset Password for ADMIN</span>
+
+On the User Management page,  select a user, click **Reset Password** under the **Actions** bar on the right. 
+
+In the pop-up window, the system administrator can change the password and need to enter the new password twice.
+
+The initial ADMIN account password needs to be modified after the first login. To reset the password, you can execute the following command. After successful execution, the ADMIN account will regenerate a random password and display it on the console. When you log in, you need to change the password:
+
+```sh
+$KYLIN_HOME/bin/admin-tool.sh admin-password-reset
+```
+
+When the parameter `kylin.metadata.random-admin-password.enabled=false`, it will not regenerate a random password but the fixed password `KYLIN`. If the parameter `kylin.metadata.random-admin-password.enabled` is set from `false` to `true` , it will regenerate a random password and display it on the console after all the Kylin nodes restarted.
+
+**Caution** When run this command, Kylin will enter maintenance mode. If the command is interrupted by force, you may need to exit maintain mode manually. Refer to [maintenance_mode](../system-operation/maintenance_mode.en.md).
+
+
+### <span id="pwd">Reset password for Non-admin</span>
+
+Click  **<username\>**-->**Setup** on the top right corner of the navigation bar. In the pop-up window, user need to provide the old password and repeat the new password twice to reset password.
+
+
+### <span id="group">Assign a User to a Group</span>
+
+To assign a user to a group, please do the followings:
+1. On the User Management page,  select a user to be grouped.
+2. Click **Assign to Group** under the **Actions** bar on the right.
+3. Select a group to assign the user to under **Candidates**, and then click the right arrow **>**. The group will enter into **Selected**.
+4. Click **OK** and the user will be in the selected group.
+
+
+### <span id="update_group">Modify User Group</span>
+
+To modify user group, please do the following steps:
+1. On the User Management page,  select a user to modify the group membership.
+2.  Click **Assign to Group** under the **Actions** bar on the right.
+3. Select the group to be modified under **Selected**, and then click the left arrow **<**. The group will enter into **Candidates**.
+4. Click **OK** and the user group membership will be modified.
diff --git a/website/docs/operations/access-control/users/user_w1.png b/website/docs/operations/access-control/users/user_w1.png
new file mode 100755
index 0000000000..82c4ef5d29
Binary files /dev/null and b/website/docs/operations/access-control/users/user_w1.png differ
diff --git a/website/docs/operations/access-control/users/user_w2.png b/website/docs/operations/access-control/users/user_w2.png
new file mode 100755
index 0000000000..d4fd0d31cd
Binary files /dev/null and b/website/docs/operations/access-control/users/user_w2.png differ
diff --git a/website/docs/operations/access-control/users/user_w3.png b/website/docs/operations/access-control/users/user_w3.png
new file mode 100755
index 0000000000..442612fbdc
Binary files /dev/null and b/website/docs/operations/access-control/users/user_w3.png differ
diff --git a/website/docs/operations/access-control/users/user_w4.png b/website/docs/operations/access-control/users/user_w4.png
new file mode 100755
index 0000000000..52c313cfc2
Binary files /dev/null and b/website/docs/operations/access-control/users/user_w4.png differ
diff --git a/website/docs/operations/access-control/users/user_w5.png b/website/docs/operations/access-control/users/user_w5.png
new file mode 100755
index 0000000000..c7722851e7
Binary files /dev/null and b/website/docs/operations/access-control/users/user_w5.png differ
diff --git a/website/docs/operations/access-control/users/user_w6.png b/website/docs/operations/access-control/users/user_w6.png
new file mode 100755
index 0000000000..a436ebbbc3
Binary files /dev/null and b/website/docs/operations/access-control/users/user_w6.png differ
diff --git a/website/docs/operations/access-control/users/user_w7.png b/website/docs/operations/access-control/users/user_w7.png
new file mode 100755
index 0000000000..e88c9701db
Binary files /dev/null and b/website/docs/operations/access-control/users/user_w7.png differ
diff --git a/website/docs/operations/access-control/users/user_w8.png b/website/docs/operations/access-control/users/user_w8.png
new file mode 100755
index 0000000000..46b7233371
Binary files /dev/null and b/website/docs/operations/access-control/users/user_w8.png differ
diff --git a/website/docs/operations/logs/audit_log.md b/website/docs/operations/logs/audit_log.md
new file mode 100644
index 0000000000..3cd52a124f
--- /dev/null
+++ b/website/docs/operations/logs/audit_log.md
@@ -0,0 +1,208 @@
+---
+title: Audit Log
+language: en
+sidebar_label: Audit Log
+pagination_label: Audit Log
+toc_min_heading_level: 2
+toc_max_heading_level: 6
+pagination_prev: null
+pagination_next: null
+keywords:
+    - audit log
+draft: false
+last_update:
+    date: 08/16/2022
+---
+
+### Basic Concept
+
+In the database, Audit Log is mainly used to monitor and record the operating behavior of data, which is simply understood as a log.
+
+Kylin instances are stateless services. All state information is stored in metadata. All operations that change data will create or modify metadata. Changes to metadata are included in a database transaction. At the same time, every time Modifications to metadata are recorded in the audit log, which is equivalent to a snapshot of each version of the metadata. Audit Log mechanism can not only monitor metadata through the Audit Log, but also help disaster recovery.
+
+
+
+> Caution:The Audit Log can only be considered as a log of metadata, used to monitor and troubleshoot problems, and can be used to repair some metadata. If you want to ensure the stability of the system, you need to ensure that the metadata is correct and back up the metadata in a timely manner.
+
+
+
+When Kylin is started for the first time, according to the metadata table name you filled in for the configuration item `kylin.metadata.url` in the configuration file` kylin.properties`, create a file named `{identifier} _audit_log` in the metadata database. The audit table has a suffix `_audit_log` compared to the metadata table.
+
+
+
+e.g:
+
+`kylin.metadata.url=ke_metadata@jdbc,driverClassName=org.postgresql.Driver,url=jdbc:postgresql://sandbox:5432/kylin,username=postgres,password=`
+
+The metadata is named `kylin`, the metadata table is named` ke_metadata`, and the Audit Log table is named `ke_metadata_audit_log`.
+
+
+
+In Kylin, PostgreSQL is used as the metastore by default, and PostgreSQL is used as an example later.
+
+
+
+**Audit Log table field descriptions**
+
+| name         | type(postgresql) | type(mysql)  | description                                                  |
+| :----------- | ------------------ | ------------ | :----------------------------------------------------------- |
+| id           | bigserial          | bigint       | Auto incremental id                                          |
+| meta_key     | varchar(255)       | varchar(255) | The key of metadata, corresponding to the META_TABLE_KEY field in the metadata table |
+| meta_content | bytea              | longblob     | The content of the current metadata, when the operation is deletion, the value is NULL |
+| meta_ts      | bigint             | bigint       | Update timestamp, when the operation is deletion, the value is NULL |
+| meta_mvcc    | bigint             | bigint       | The version of the current metadata, when the operation is deletion, the value is NULL |
+| unit_id      | varchar(255)       | varchar(255) | Transaction id                                               |
+| operator     | varchar(255)       | varchar(255) | The username of operator                                     |
+| instance     | varchar            | varchar      | The instance of operator                                     |
+
+
+
+### Version Information
+
+The `meta_table_key` field in the metadata table is associated with the `meta_key` in the audit log table.
+
+- Metadata version: In the metadata table, the `meta_table_mvcc` field records the latest version number of each item of metadata;
+
+- Audit log version: In the audit log table, the `meta_mvcc` field records the version number. You can filter and view all historical versions of a certain metadata according to the` meta_key` field;
+
+
+
+### Functions
+
+The following functions can be implemented through audit logs:
+
+- View the change history of all / a certain metadata and the corresponding operation user
+- View the change of metadata in a transaction
+- View the audit log over a period of time
+- Facilitates metadata disaster recovery
+
+
+
+### Sample
+
+**Tool**
+
+PostgreSQL client tool:DBeaver
+
+
+
+**Table description**
+
+![metadata table](images/metadata_table.png)
+
+
+
+As shown in the table, the meta_key field is a metadata item and meta_content is a metadata value. The meta_key value starts with `/ _global` to indicate global metadata,` / project_name` starts to indicate metadata for a project, and `/ UUID` is a globally unique identifier, which serves as an identifier for a piece of metadata.
+
+e.g:
+
+- `_global/user/ADMIN` Represents metadata information of ADMIN users, the specific information is in the meta_content field;
+- `_global/project/kylin.json` Represents metadata information for a project named kylin;
+- `/${project_name}/model_desc/${model_id}` Model description information representing a project;
+
+
+
+**Basic Operations**
+
+1. View the history of an item of metadata
+
+   ```
+   select * from ke_metadata_audit_log where meta_key = '/_global/project/default.json';
+   ```
+
+2. View the history of a model
+
+   ```
+   select * from ke_metadata_audit_log where meta_key = '/project/model_desc/49529000-c161-4013-bb80-9a78f4f0248d.json' 
+   ```
+
+3. View the change of metadata in a transaction
+
+   ```
+   select * from ke_metadata_audit_log where unit_id = '6090bfb5-2401-4176-8475-fe6fd82bc439';
+   ```
+
+4. View audit logs for metadata over a period of time
+
+   ```
+   select * from ke_metadata_audit_log where meta_ts > 1325376000000 and meta_ts < 1328054400000 ;
+   ```
+
+5. Associate the metadata table to view the history changes of a user
+
+   ```
+   select a.meta_mvcc, a.meta_content, b.meta_table_mvcc, b.meta_table_content from ke_metadata_audit_log a left join ke_metadata b on a.meta_key = b.meta_table_key where a.meta_key = '/_global/user/ADMIN'
+   ```
+
+
+
+**Examples of actual scenarios**
+
+- Monitor if user password is changed
+
+  The ADMIN user is very important. It is not allowed to modify the password by anyone other than the system administrator. You can monitor the content of meta_content whose meta_key is `/_global/user/ADMIN`. One of the fields is password. If this value changes, explained the password modified.
+
+  
+
+  The meta_mvcc field version number increases before and after the password is changed, the password value in the meta_content field changes, and the value of default_password also changes from true to false:
+
+  ![metadata](images/before_update_pwd.png)
+
+  ![metadata](images/after_update_pwd.png)
+
+​		
+
+- Monitor if the model has been modified
+
+  Assume that the project name is kylin, and the table connection relationship of model name test_model is not allowed to be modified. You can view the JSON format of a model on the Kylin model page, where uuid represents the model id, then the corresponding meta_key is `/kylin/model_desc/${model_id} `, monitor whether the corresponding meta_mvcc field value increases, if there is a change, the model is modified.
+
+  
+
+  The second record is to change the format of the time partition column of the model, and the unit_id field value of the two records is different, indicating that the two changes were made in different transactions, and the user who checked the operator field was ADMIN:
+
+  ![metadata](images/before_update_model.png)
+
+  ![metadata](images/after_update_model.png)
+
+  
+
+### Configuration instructions
+
+
+In the Kylin configuration file `kylin.properties`, there are the following configuration items about the audit log, which can be modified as needed. **Please make sure the disk space of the audit log node is always sufficient.**
+
+
+- `kylin.metadata.audit-log.max-size=500000`  The audit log stores the latest 500,000 rows by default. By default, the redundant operation log is cleared every morning. You can modify this configuration item to adjust it.
+
+
+
+### Export Audit Log
+
+The Audit Log is stored in the database. You can use the tools provided by Kylin to export the data within the specified time range to the local for backup, or export it as an attachment to the Kylin ticket when encountering problems, which is convenient for technology support personnel to locate the problem.
+
+There are two ways to execute commands on the KE node:
+
+1. Use the diagnostic package command: `$ {KYLIN_HOME}/bin/diag.sh` 
+
+   - -The Audit Log of the last 3 days will be obtained by default and stored in the `audit_log/${starttime}_${endtime}.jsonl` file in the diagnostic package directory;
+
+     
+
+2. Using the AuditLogTool tool: `${KYLIN_HOME}/bin/kylin.sh io.kyligence.kap.tool.AuditLogTool -startTime ${starttime} -endTime ${endtime} -dir ${target_dir}`
+
+   - `${starttime}` and `${endtime}` Retrieves the specified range of Audit Log. The format is timestamp in milliseconds: e.g `1579868382749`;
+   - `${target_dir}` specifies the directory where your Audit Log files are stored. The generated Audit Log is stored in the `${target_dir}/${starttime}_${endtime}` file;
+
+
+
+### Import Audit Log
+
+If you have the Audit Log file exported locally and want to view and analyze it through the database, you can use the following methods to import.
+
+On a machine that already has a Kylin environment, use the AuditLogTool tool: `${KYLIN_HOME}/kylin.sh io.kyligence.kap.tool.AuditLogTool -restore -table ${target_table_name} -dir ${auditlog_dir}`
+
+- The `$ {target_table_name}` parameter specifies the name of the Audit Log table to be generated. Be careful not to duplicate the name of the Audit Log table already in the Kylin environment.
+- The `$ {auditlog_dir}` parameter specifies the directory where the Audit Log file is located;
+
+After the execution of the command is completed, the Audit Log table is generated under the metastore specified by the configuration item `kylin.metadata.url` in the` $ {KYLIN_HOME}/conf/kylin.properties` file.
+
diff --git a/website/docs/operations/logs/images/after_update_model.png b/website/docs/operations/logs/images/after_update_model.png
new file mode 100644
index 0000000000..c0da4545a8
Binary files /dev/null and b/website/docs/operations/logs/images/after_update_model.png differ
diff --git a/website/docs/operations/logs/images/after_update_pwd.png b/website/docs/operations/logs/images/after_update_pwd.png
new file mode 100644
index 0000000000..4bcfc0c801
Binary files /dev/null and b/website/docs/operations/logs/images/after_update_pwd.png differ
diff --git a/website/docs/operations/logs/images/before_update_model.png b/website/docs/operations/logs/images/before_update_model.png
new file mode 100644
index 0000000000..e60309d83a
Binary files /dev/null and b/website/docs/operations/logs/images/before_update_model.png differ
diff --git a/website/docs/operations/logs/images/before_update_pwd.png b/website/docs/operations/logs/images/before_update_pwd.png
new file mode 100644
index 0000000000..88fea477c6
Binary files /dev/null and b/website/docs/operations/logs/images/before_update_pwd.png differ
diff --git a/website/docs/operations/logs/images/metadata_table.png b/website/docs/operations/logs/images/metadata_table.png
new file mode 100644
index 0000000000..85baef4deb
Binary files /dev/null and b/website/docs/operations/logs/images/metadata_table.png differ
diff --git a/website/docs/operations/logs/intro.md b/website/docs/operations/logs/intro.md
new file mode 100644
index 0000000000..9c2f2ebec6
--- /dev/null
+++ b/website/docs/operations/logs/intro.md
@@ -0,0 +1,21 @@
+---
+title: Logs
+language: en
+sidebar_label: Logs
+pagination_label: Logs
+toc_min_heading_level: 2
+toc_max_heading_level: 6
+pagination_prev: null
+pagination_next: null
+keywords:
+    - logs
+draft: false
+last_update:
+    date: 08/16/2022
+---
+
+This chapter mainly introduces different log types:
+
+* [System Log](logging.md)
+* [Audit Log](audit_log.md)
+
diff --git a/website/docs/operations/logs/system_log.md b/website/docs/operations/logs/system_log.md
new file mode 100755
index 0000000000..d80321a73d
--- /dev/null
+++ b/website/docs/operations/logs/system_log.md
@@ -0,0 +1,249 @@
+---
+title: System Log
+language: en
+sidebar_label: System Log
+pagination_label: System Log
+toc_min_heading_level: 2
+toc_max_heading_level: 6
+pagination_prev: null
+pagination_next: null
+keywords:
+    - system log
+draft: false
+last_update:
+    date: 08/16/2022
+---
+
+
+## System Log
+
+After being successfully started, Kylin will create a directory named `logs/` by default, all logs generated during Kylin runtime will be stored in this directory.
+
+### Log files
+Log files generated by Kylin is as followings.
+
+#### `kylin.log`
+This file is Kylin's main log file, whose default logging level is DEBUG.
+
+#### `kylin.out`
+The standard output of Kylin process will be redirected to this file, including the output of Tomcat and Hive.
+
+#### `kylin.gc`
+This file is the GC(Garbage Collection) log of Kylin Java process. And it appends pid as filename suffix to avoid being overwritten.
+
+#### `access.log`
+This file stores the Tomcat access log. It records all HTTP request response information.For example, User-Agent, access URL, etc.
+
+#### `jstack.timed.log`
+
+This file records Java stack traces of Java threads of Kylin, which is used to record some threads running status. To avoid the storage overused, only 20 log files can be kept. The new file will replace the oldest one, when exceeding the maximum number. 
+
+> Note:Because the execution of jstack depends on the .java_pid file written by jvm in the /tmp directory, if the file is deleted (for example, a scheduled clean up script), it will cause the jstack to not run properly, so that the jstack.timed .log will not be generated
+
+#### `check-env.out`
+The standard output of executing `check-env.sh` script will be redirected to this file.
+
+#### `check-env.error`
+The error message of executing `check-env.sh` script will be redirected to this file.
+
+#### `shell.stderr`
+The result of running command lines will be stored in this file.
+
+#### `shell.stdout`
+The standard output of running command lines will be redirected to this file.
+
+#### `kylin.security.log`
+
+The log of system start, stop, upgrade, login and logout will be redirected to this file.
+
+> Notes: When using LDAP service to implement user authentication, two logs will be recorded for each login failure. Because when using the LDAP service, if the login fails, another method will be used for authentication.
+
+#### `kylin.schedule.log`
+This file records logs related to task scheduling, whose default logging level is DEBUG.
+
+#### `kylin.query.log`
+This file records query related logs, whose default logging level is DEBUG.
+
+#### `kylin.smart.log`
+This file records recommendation-related logs, whose default logging level is DEBUG.
+
+#### `dump.hprof`
+When Out of Memory (OOM) occurs in Kylin, it will dump the entire heap, which is convenient for checking the cause.
+> Note: When you have a large memory setting and Out of Memory OOM occurs, the file dump.hprof will occupy a large storage space, which may cause your disk space to be insufficient and the node to be abnormal. You can manually clean up the historical file.
+
+### Logging Analysis
+Take query as an example, submitting a query on Web UI, and we'll see the following information in `kylin.query.log` 
+
+
+```
+==========================[QUERY]===============================
+Query Id: 8586e718-67b4-c840-61b4-a8898415a154
+SQL: select lo_revenue as from p_lineorder;
+User: ADMIN
+Success: true
+Duration: 1.243
+Project: ssb100_10
+Realization Names: [AUTO_MODEL_P_LINEORDER_1]
+Index Layout Ids: [30001]
+Snapshot Names: []
+Is Partial Match Model: [false]
+Scan rows: [35000]
+Total Scan rows: 35000
+Scan bytes: [246530]
+Total Scan Bytes: 246530
+Result Row Count: 280
+Shuffle partitions: 1
+Hit Exception Cache: false
+Storage Cache Used: false
+Storage Cache Type: null
+Is Query Push-Down: false
+Is Prepare: false
+Is Timeout: false
+Time Line Schema: massage,end calcite parse sql,end_convert_to_relnode,end_calcite_optimize,end_plan,collect_olap_context_info,end select realization,end_rewrite,to_spark_plan,seg_pruning,fetch_file_status,shard_pruning,executed_plan,collect_result
+Time Line: 6,1,4,11,0,0,1,1,14,6,0,0,1,1198
+Message: null
+Is forced to Push-Down: false
+User Agent: null
+Scan Segment Count: 1
+Scan File Count: 1
+==========================[QUERY]===============================
+```
+The main fields in the above clip are described as follows:
+
+* `Query Id`: Query id
+* `SQL`: Query statement
+* `User`: The user name to execute the query
+* `Success`: Status flag of query result, true execution succeeded, false execution failed
+* `Duration`: Query time (unit: seconds)
+* `Project`: The name of the project used in the query
+* `Realization Names`: The name of the model hit by the query
+* `Index Layout Ids`: ID of the layout hit by the query
+* `Snapshot Names`: Query the hit snapshot
+* `Is Partial Match Model`: Partial match model, such as a left B, you can check table a alone
+* `Scan rows`: Query the number of data rows scanned
+* `Total Scan rows`: Total rows of data scanned by query
+* `Scan bytes`: Query the number of data bytes scanned
+* `Total Scan Bytes` : Query the total number of bytes of scanned data
+* `Result Row Count`: The number of data rows returned by the query
+* `Shuffle partitions`: A spark query parameter that affects how many partitions / tasks are generated after a shuffle. It is calculated by kylin.query.engine.sparkl-sql-shuffle-parittions or dynamic calculation. The calculation formula is min (the estimated value of data size and the total number of cores of spark cluster)
+* `Hit Exception Cache`: Whether to hit the cache of failed queries
+* `Storage Cache Used`: Whether to hit the cache successfully queried
+* `Storage Cache Type`: The cache type of the hit query
+* `Is Query Push-Down`: Is it a push down query
+* `Is Prepare`: Whether it is a probe query (this item will be true for the query sent by BI)
+* `Is Timeout`: Whether to timeout
+* `Time Line Schema`: Steps in query module
+* `Time Line`: Time spent in each step of the query module (MS)
+* `Message`:Query the prompt information on the page. The query is successful. This item is null
+* `Is forced to Push-Down`: Whether to force down
+* `User Agent`: The environment information used to submit the query
+* `Scan Segment Count`: Number of scanned segments
+* `Scan File Count`: Number of scanned files
+
+### Logging Configuration
+
+Kylin uses log4j2 to configure logs. Users can edit the `kylin-server-log4j.xml` file in the `$KYLIN_HOME/server/conf/` directory to modify the log level, path, etc.
+After modification, you need to restart Kylin for the configuration to take effect.
+
+The configuration of all logs starting with kylin and ending with log is in `kylin-server-log4j.xml`, the configuration code is as follows.
+
+```xml
+        <Routing name="routing">
+            <Routes pattern="$${ctx:logCategory}">
+                <Route>
+                    <RollingFile name="rolling-${ctx:logCategory}"
+                                 fileName="${env:KYLIN_HOME}/logs/kylin.${ctx:logCategory}.log"
+                                 filePattern="${env:KYLIN_HOME}/logs/kylin.${ctx:logCategory}.log.%i">
+                        <Policies>
+                            <SizeBasedTriggeringPolicy size="268435456"/>
+                        </Policies>
+                        <DefaultRolloverStrategy max="10"/>
+                        <PatternLayout pattern="%d{ISO8601} %-5p %X{request.project}[%t] %c{2} : %mask{%m}%n"/>
+                    </RollingFile>
+                </Route>
+
+                <Route ref="server" key="$${ctx:logCategory}"/>
+            </Routes>
+        </Routing>
+
+```
+
+In the default configuration, log rolling is triggered when the log file reaches 256MB, keeping the last 10 log files.
+
+If you need to configure one of the log files (such as kylin.query.log) separately, you need to add a new Route under the Routes configuration in the above configuration code, and configure the key as the corresponding log file name (query, schedule).
+It should be noted that the new route needs to be configured before the existing route, otherwise it will not take effect.
+
+The following is an example, modify the rolling strategy of kylin.query.log to trigger at 0:00 every day, back up the last 5 logs.
+
+```xml
+<Route key="query">
+    <RollingFile name="rolling-${ctx:logCategory}" fileName="${env:KYLIN_HOME}/logs/kylin.${ctx:logCategory}.log" filePattern="${env:KYLIN_HOME}/logs/kylin.${ctx:logCategory}.log.%i">
+        <Policies>
+            <CronTriggeringPolicy schedule="0 0 0 * * ?"/>
+        </Policies>
+        <DefaultRolloverStrategy max="5" />
+        <PatternLayout pattern="%d{ISO8601} %-5p %X{request.project}[%t] %c{2} : %mask{%m}%n" />
+    </RollingFile>
+</Route>
+```
+
+If you need to configure kylin.log, you can modify the RollingRandomAccessFile configuration, for example, change the number of reserved files to 5
+
+```xml
+<RollingRandomAccessFile name="server" fileName="${env:KYLIN_HOME}/logs/kylin.log" append="true"
+                         filePattern="${env:KYLIN_HOME}/logs/kylin.log.%i" immediateFlush="false" >
+    <Policies>
+        <SizeBasedTriggeringPolicy size="268435456"/>
+    </Policies>
+    <DefaultRolloverStrategy max="5"/>
+    <PatternLayout pattern="%d{ISO8601} %-5p %X{request.project}[%t] %c{2} : %mask{%m}%n"/>
+</RollingRandomAccessFile>
+```
+
+### Error Code In Log
+
+The format of log error code is KE-AABBBCCC, AA refers to the error reporting module, BBB refers to the more detailed business error reporting and CCC refers to the error number.
+
+| AA                                                     | Description                                              |
+| ----------------------------------------------------------- | ------------------------------------------------------------ |
+| 00                                             | common       |
+| 10                                             | server       |
+| 20                                             | query        |
+| 30                                             | build        |
+| 40                                             | system       |
+| 50                                             | tool         |
+
+
+
+| BBB                                                     | Description                                              |
+| ----------------------------------------------------------- | ------------------------------------------------------------ |
+| 000                                             | general       |
+| 001                                             | project       |
+| 002                                             | model        |
+| 003                                             | user        |
+| 004                                             | user group       |
+| 005                                             | password         |
+| 006                                             | column       |
+| 007                                             | table        |
+| 008                                             | database        |
+| 009                                             | measure       |
+| 010                                             | dimension         |
+| 011                                             | cc       |
+| 012                                             | index        |
+| 013                                             | job        |
+| 014                                             | sql expression       |
+| 015                                             | license         |
+| 016                                             | email       |
+| 017                                             | file        |
+| 018                                             | kerberos        |
+| 019                                             | catalog       |
+| 020                                             | recommendation         |
+| 021                                             | server       |
+| 022                                             | segment        |
+| 023                                             | diag        |
+| 024                                             | auth       |
+| 025                                             | shell         |
+| 026                                             | metadata       |
+| 027                                             | frequency query        |
+| 028                                             | json        |
+
diff --git a/website/docs/operations/overview.md b/website/docs/operations/overview.md
new file mode 100755
index 0000000000..d3c9b22883
--- /dev/null
+++ b/website/docs/operations/overview.md
@@ -0,0 +1,22 @@
+---
+title: Overview
+language: en
+sidebar_label: Overview
+pagination_label: Overview
+toc_min_heading_level: 2
+toc_max_heading_level: 6
+pagination_prev: null
+pagination_next: null
+keywords:
+    - operation overview
+draft: false
+last_update:
+    date: 08/16/2022
+---
+
+As Kylin system administrator, typical daily operations include:
+
+- To ensure Kylin service running smoothly, system administrator should monitor system logs on a regular basis.
+- To ensure building jobs run successfully, system administrator needs to monitor jobs execution status via email notification or system web UI.
+- To ensure there are enough cluster resources for Kylin, system administrator should check the YARN queue and storage utilization frequently.
+- To prevent any data loss or system failure, system administrator should make plans for system backup and disaster recovery.
diff --git a/website/docs/operations/project-maintenance/images/project_settings_acceleration.png b/website/docs/operations/project-maintenance/images/project_settings_acceleration.png
deleted file mode 100644
index e88b5e7167..0000000000
Binary files a/website/docs/operations/project-maintenance/images/project_settings_acceleration.png and /dev/null differ
diff --git a/website/docs/operations/project-maintenance/images/project_settings_acceleration_tips.png b/website/docs/operations/project-maintenance/images/project_settings_acceleration_tips.png
deleted file mode 100644
index e5d611f514..0000000000
Binary files a/website/docs/operations/project-maintenance/images/project_settings_acceleration_tips.png and /dev/null differ
diff --git a/website/docs/operations/project-maintenance/images/project_settings_storage_low_usage.png b/website/docs/operations/project-maintenance/images/project_settings_storage_low_usage.png
deleted file mode 100644
index e11df66530..0000000000
Binary files a/website/docs/operations/project-maintenance/images/project_settings_storage_low_usage.png and /dev/null differ
diff --git a/website/docs/operations/project-maintenance/images/recommendation_preferences_en.png b/website/docs/operations/project-maintenance/images/recommendation_preferences_en.png
deleted file mode 100644
index 6538741e6c..0000000000
Binary files a/website/docs/operations/project-maintenance/images/recommendation_preferences_en.png and /dev/null differ
diff --git a/website/docs/operations/project-maintenance/images/service_state.en.png b/website/docs/operations/project-maintenance/images/service_state.en.png
deleted file mode 100644
index 69dd4e44b1..0000000000
Binary files a/website/docs/operations/project-maintenance/images/service_state.en.png and /dev/null differ
diff --git a/website/docs/operations/project-maintenance/images/storage_quota.en.png b/website/docs/operations/project-maintenance/images/storage_quota.en.png
deleted file mode 100644
index 40953f6ebc..0000000000
Binary files a/website/docs/operations/project-maintenance/images/storage_quota.en.png and /dev/null differ
diff --git a/website/docs/operations/project-maintenance/alerting.md b/website/docs/operations/project-operation/alerting.md
similarity index 100%
rename from website/docs/operations/project-maintenance/alerting.md
rename to website/docs/operations/project-operation/alerting.md
diff --git a/website/docs/operations/project-operation/images/add_project.png b/website/docs/operations/project-operation/images/add_project.png
new file mode 100644
index 0000000000..474e307aac
Binary files /dev/null and b/website/docs/operations/project-operation/images/add_project.png differ
diff --git a/website/docs/operations/project-operation/images/project_list.png b/website/docs/operations/project-operation/images/project_list.png
new file mode 100644
index 0000000000..f9763fe6b1
Binary files /dev/null and b/website/docs/operations/project-operation/images/project_list.png differ
diff --git a/website/docs/operations/project-maintenance/images/project_settings.png b/website/docs/operations/project-operation/images/project_settings.png
similarity index 100%
rename from website/docs/operations/project-maintenance/images/project_settings.png
rename to website/docs/operations/project-operation/images/project_settings.png
diff --git a/website/docs/operations/project-maintenance/images/project_settings_basic_general.png b/website/docs/operations/project-operation/images/project_settings_basic_general.png
similarity index 100%
rename from website/docs/operations/project-maintenance/images/project_settings_basic_general.png
rename to website/docs/operations/project-operation/images/project_settings_basic_general.png
diff --git a/website/docs/operations/project-maintenance/images/project_settings_cc_expose.png b/website/docs/operations/project-operation/images/project_settings_cc_expose.png
similarity index 100%
rename from website/docs/operations/project-maintenance/images/project_settings_cc_expose.png
rename to website/docs/operations/project-operation/images/project_settings_cc_expose.png
diff --git a/website/docs/operations/project-maintenance/images/project_settings_custom_config.png b/website/docs/operations/project-operation/images/project_settings_custom_config.png
similarity index 100%
rename from website/docs/operations/project-maintenance/images/project_settings_custom_config.png
rename to website/docs/operations/project-operation/images/project_settings_custom_config.png
diff --git a/website/docs/operations/project-maintenance/images/project_settings_default_database_en.png b/website/docs/operations/project-operation/images/project_settings_default_database_en.png
similarity index 100%
rename from website/docs/operations/project-maintenance/images/project_settings_default_database_en.png
rename to website/docs/operations/project-operation/images/project_settings_default_database_en.png
diff --git a/website/docs/operations/project-maintenance/images/project_settings_job_notification.png b/website/docs/operations/project-operation/images/project_settings_job_notification.png
similarity index 100%
rename from website/docs/operations/project-maintenance/images/project_settings_job_notification.png
rename to website/docs/operations/project-operation/images/project_settings_job_notification.png
diff --git a/website/docs/operations/project-maintenance/images/project_settings_job_notification_page.png b/website/docs/operations/project-operation/images/project_settings_job_notification_page.png
similarity index 100%
rename from website/docs/operations/project-maintenance/images/project_settings_job_notification_page.png
rename to website/docs/operations/project-operation/images/project_settings_job_notification_page.png
diff --git a/website/docs/operations/project-maintenance/images/project_settings_model_rewrite.png b/website/docs/operations/project-operation/images/project_settings_model_rewrite.png
similarity index 100%
rename from website/docs/operations/project-maintenance/images/project_settings_model_rewrite.png
rename to website/docs/operations/project-operation/images/project_settings_model_rewrite.png
diff --git a/website/docs/operations/project-maintenance/images/project_settings_pushdown.png b/website/docs/operations/project-operation/images/project_settings_pushdown.png
similarity index 100%
rename from website/docs/operations/project-maintenance/images/project_settings_pushdown.png
rename to website/docs/operations/project-operation/images/project_settings_pushdown.png
diff --git a/website/docs/operations/project-maintenance/images/project_settings_segment_en.png b/website/docs/operations/project-operation/images/project_settings_segment_en.png
similarity index 100%
rename from website/docs/operations/project-maintenance/images/project_settings_segment_en.png
rename to website/docs/operations/project-operation/images/project_settings_segment_en.png
diff --git a/website/docs/operations/project-maintenance/images/project_settings_storage.png b/website/docs/operations/project-operation/images/project_settings_storage.png
similarity index 100%
rename from website/docs/operations/project-maintenance/images/project_settings_storage.png
rename to website/docs/operations/project-operation/images/project_settings_storage.png
diff --git a/website/docs/operations/project-maintenance/images/project_settings_yarn_queue.png b/website/docs/operations/project-operation/images/project_settings_yarn_queue.png
similarity index 100%
rename from website/docs/operations/project-maintenance/images/project_settings_yarn_queue.png
rename to website/docs/operations/project-operation/images/project_settings_yarn_queue.png
diff --git a/website/docs/operations/project-maintenance/images/toolbar.en.png b/website/docs/operations/project-operation/images/toolbar.en.png
similarity index 100%
rename from website/docs/operations/project-maintenance/images/toolbar.en.png
rename to website/docs/operations/project-operation/images/toolbar.en.png
diff --git a/website/docs/operations/project-maintenance/intro.md b/website/docs/operations/project-operation/intro.md
similarity index 100%
rename from website/docs/operations/project-maintenance/intro.md
rename to website/docs/operations/project-operation/intro.md
diff --git a/website/docs/operations/project-operation/project_management.md b/website/docs/operations/project-operation/project_management.md
new file mode 100644
index 0000000000..ba84002070
--- /dev/null
+++ b/website/docs/operations/project-operation/project_management.md
@@ -0,0 +1,62 @@
+---
+title: Project Management
+language: en
+sidebar_label: Project Management
+pagination_label: Project Management
+toc_min_heading_level: 2
+toc_max_heading_level: 6
+pagination_prev: null
+pagination_next: null
+keywords:
+    - project management
+draft: true
+last_update:
+    date: Aug 16, 2022
+---
+
+This chapter introduces what a project is and how to manage projects.
+
+### <span id="about">About Projects</span>
+
+Project is the primary management unit of Kylin. In a project, you can design multiple models and perform query analysis.
+
+System settings are isolated at the project level, so you can set different operational preferences for different projects.
+
+### <span id="management">Manage Projects</span>
+
+After the system administrator logs in to Kylin, click the **Admin** button in the top toolbar to enter the system management page, and click the **Porject** field to enter the Project Management page.
+
+**Note**: if no project exist, you will not be allowed to access the **Admin** page. Please add a project firstly and then enter the **Admin** page.
+
+On the project management page, the system administrator can view the project information in the project list, and can also add projects, delete projects, backup projects, or grant user access permissions.
+
+![Project List](images/project_list.png)
+
+### <span id="add">Add a Project</span>
+
+The system administrator has two ways to add a new project:
+
+- On the **Admin -> Project Management** page, click the **+ Project** button above the project list.
+- On the product normal page, click the **+**(Add Project) button at the top toolbar.
+
+Fill in the project name and description in the pop-up window. The project name is mandatory; the project description is optional. A good project description will help with the maintenance of the project in the future.
+
+![Add Projects](images/add_project.png)
+
+> **tips:** project name is case insensitive, so duplicate names with existing project names are not allowed.
+
+### <span id="delete">Delete a Project</span>
+
+On the Project Management page, select a project to be deleted, click the **...**(More Actions) button under the **Actions** bar on the right, then click **Delete**. 
+
+The system administrator can confirm to delete a project in the prompted window. After the project is deleted, it will not be restored and the related data will be cleared.
+
+If there are jobs in **RUNNING, PENDING, or PAUSED** status in the project, it is needed to terminate the jobs before deleting the project.
+
+### <span id="change_owner">Change Project Owner</span>
+
+On the Project Management page, select a project to change owner, click the **...**(More Actions) button under the **Actions** bar on the right, then click **Change Owner**. Only the system administrator has permission to change the project owner.
+
+### <span id="grant">Grant Porject-level Access Rights to User</span>
+
+On the Project Management page, select a project to authorizer, click the **Authorization** button under the **Actions** bar on the right and set permissions for the project. You can find out more at the [Project ACL](../access-control/project_acl.md) section.
diff --git a/website/docs/operations/project-maintenance/project_settings.md b/website/docs/operations/project-operation/project_settings.md
similarity index 100%
rename from website/docs/operations/project-maintenance/project_settings.md
rename to website/docs/operations/project-operation/project_settings.md
diff --git a/website/docs/operations/cli_tool/diagnosis.md b/website/docs/operations/system-operation/cli_tool/diagnosis.md
similarity index 100%
rename from website/docs/operations/cli_tool/diagnosis.md
rename to website/docs/operations/system-operation/cli_tool/diagnosis.md
diff --git a/website/docs/operations/system-operation/cli_tool/environment_dependency_check.md b/website/docs/operations/system-operation/cli_tool/environment_dependency_check.md
new file mode 100644
index 0000000000..c6bf7a05a9
--- /dev/null
+++ b/website/docs/operations/system-operation/cli_tool/environment_dependency_check.md
@@ -0,0 +1,48 @@
+---
+title: Environment Dependency Check
+language: en
+sidebar_label: Environment Dependency Check
+pagination_label: Environment Dependency Check
+toc_min_heading_level: 2
+toc_max_heading_level: 6
+pagination_prev: null
+pagination_next: null
+keywords:
+    - environment dependency check
+draft: false
+last_update:
+    date: 08/16/2022
+---
+
+Before you start Kylin, we provide an environment dependency checking tool to help you spot the potential problems in advance. This tool will be automatically executed by startup script when you run Kylin at the first time.
+
+### How To Use
+
+As said above, if you start Kylin at the first time, the startup script will automatically run this tool. If it check failed, this tool will be executed again when you start this product. Once successfully passed this check, the tool will not be executed automatically. 
+
+If you need to check the environment dependency manually, just run the below command:
+
+```sh
+$KYLIN_HOME/bin/check-env.sh
+```
+
+### What To Check
+
+The following table describes what will be checked in the tool.
+
+|     Check Item        | Description                                                         |
+| ---------------------- | ------------------------------------------------------------ |
+| Kerberos               | To check whether user enable Kerberos in the settings. If not, the check will be skipped. Otherwise, it will execute the following operations: <br /> 1. check if Kerberos command exists <br /> 2. initialize Kerberos|
+| OS version and command | Kylin only supports Linux operating systems. Besides operating system, this tool will also check if `hadoop` and `yarn` commands exist. If these two commands are not available, please make sure Hadoop cluster whether is available. |
+| Hadoop configuration files            | Kylin copies Hadoop configuration files to Kylin installation directory `$KYLIN_HOME/hadoop_conf`. For instance, `core-site.xml`, `hdfs-site.xml`, `yarn-site.xml`, `hive-site.xml`, etc. This tool will check if `$KYLIN_HOME/hadoop_conf` exists and contains necessary configuration files. |
+| HDFS working directory             | 1. Check if HDFS working directory exists <br /> 2. If yes, check whether current user has write privilege |
+| Java version               | Currently, we only support Java versions above 1.8 |
+| Server port              | Check if the port is in use |
+| Spark      | 1. Check if the configured resource size exceeds the cluster's actual resource size, such as, executor cores and executor instances. <br /> 2. Check if Spark is available  <br /> 3. Check if the configured yarn queues for submitting query jobs and build jobs are legal  4. Check if the configured driver host address is legal|
+| Spark log directory    | Users can configure a HDFS directory to store Spark logs, so it checks if the directory exists and current user has read and write privileges. |
+| Metastore | Check if the metastore is accessible and current user can perform necessary operations on metadata. |
+| InfluxDB                  | 1. Check if InfluxDB is accessible <br /> 2. Check if current user has read and write privileges  |
+| ZooKeeper              | Check if the service discovery is available. |
+| Clickhouse| Checking Clickhouse cluster health. |
+| KylinConfig | Checking kylin config, must starts with kylin / spring / server. |
+| Query history | Check whether the current user has permissions of reading and writing on the `query_history` and `query_history_realization` tables in the RDBMS database|
diff --git a/website/docs/operations/system-operation/cli_tool/images/accept_en.png b/website/docs/operations/system-operation/cli_tool/images/accept_en.png
new file mode 100644
index 0000000000..f79cbb094e
Binary files /dev/null and b/website/docs/operations/system-operation/cli_tool/images/accept_en.png differ
diff --git a/website/docs/operations/system-operation/cli_tool/images/button_en.png b/website/docs/operations/system-operation/cli_tool/images/button_en.png
new file mode 100644
index 0000000000..cfdcb1966d
Binary files /dev/null and b/website/docs/operations/system-operation/cli_tool/images/button_en.png differ
diff --git a/website/docs/operations/system-operation/cli_tool/images/rollback_en.png b/website/docs/operations/system-operation/cli_tool/images/rollback_en.png
new file mode 100644
index 0000000000..c3f5742818
Binary files /dev/null and b/website/docs/operations/system-operation/cli_tool/images/rollback_en.png differ
diff --git a/website/docs/operations/cli_tool/intro.md b/website/docs/operations/system-operation/cli_tool/intro.md
similarity index 100%
rename from website/docs/operations/cli_tool/intro.md
rename to website/docs/operations/system-operation/cli_tool/intro.md
diff --git a/website/docs/operations/system-operation/cli_tool/metadata_tool/intro.md b/website/docs/operations/system-operation/cli_tool/metadata_tool/intro.md
new file mode 100644
index 0000000000..683caa8623
--- /dev/null
+++ b/website/docs/operations/system-operation/cli_tool/metadata_tool/intro.md
@@ -0,0 +1,18 @@
+---
+title: Metadata Tool
+language: en
+sidebar_label: Metadata Tool
+pagination_label: Metadata Tool
+toc_min_heading_level: 2
+toc_max_heading_level: 6
+pagination_prev: null
+pagination_next: null
+keywords:
+    - metadata tool
+draft: true
+last_update:
+    date: 08/16/2022
+---
+
+This chapter introduces the metadata tool.
+
diff --git a/website/docs/operations/system-operation/cli_tool/metadata_tool/metadata_backup_restore.md b/website/docs/operations/system-operation/cli_tool/metadata_tool/metadata_backup_restore.md
new file mode 100644
index 0000000000..2669da34e5
--- /dev/null
+++ b/website/docs/operations/system-operation/cli_tool/metadata_tool/metadata_backup_restore.md
@@ -0,0 +1,88 @@
+---
+title: System Metadata Backup and Restore
+language: en
+sidebar_label: System Metadata Backup and Restore
+pagination_label: System Metadata Backup and Restore
+toc_min_heading_level: 2
+toc_max_heading_level: 6
+pagination_prev: null
+pagination_next: null
+keywords:
+    - system metadata backup and restore
+draft: true
+last_update:
+    date: 08/16/2022
+---
+
+Kylin instances are stateless services, and all state information is stored in metadata. Therefore, backing up and restoring metadata is a crucial part of operation and maintenance.
+
+Metadata is divided into system level and project level. 
+
+### Metadata Backup	{#metadata_backup}
+
+In general, it is a good practice to back up metadata before each failure recovery or system upgrade. This can guarantee the possibility of rollback after the operation fails, and still maintain the stability of the system in the worst case.
+
+In addition, metadata backup is also a tool for fault finding. When the system fails, the frontend frequently reports errors. By downloading and viewing metadata, it is often helpful to determine whether there is a problem with the metadata or not.
+
+Metadata can be backed up via the command line, as follows:
+
+- Metadata backup via **command line**
+
+  Kylin provides a command line tool for backing up metadata, using the following methods:
+
+  - Backup **system level** metadata
+
+     ```sh
+     $KYLIN_HOME/bin/metastore.sh backup METADATA_BACKUP_PATH
+     ```
+    Parameter Description:
+
+    - `METADATA_BACKUP_PATH` - optional, represents the metadata storage path of the backup, the default value is `${KYLIN_HOME}/meta_backups/`
+    
+  - Backup **project level** metadata
+
+     ```sh
+     $KYLIN_HOME/bin/metastore.sh backup-project PROJECT_NAME METADATA_BACKUP_PATH
+     ```
+
+     Parameter Description:
+
+     - `PROJECT_NAME` - required, the name of the project to be backed up, such as learn_kylin
+     - `METADATA_BACKUP_PATH` - optional, represents the metadata storage path of the backup, the default value is `${KYLIN_HOME}/meta_backups/`
+     
+
+### Metadata Restore    {#metadata_restore}
+
+Metadata recovery is required in Kylin with the **command line**.
+
+- Restore **system level** metadata
+
+  ```sh
+  $KYLIN_HOME/bin/metastore.sh restore METADATA_BACKUP_PATH [--after-truncate]
+  ```
+  Example:
+  ```sh
+  ./bin/metastore.sh restore meta_backups/2019-12-19-14-18-01_backup/
+  ```
+  
+  Parameter Description:
+  - `METADATA_BACKUP_PATH` - required, represents the metadata path that are going to be recovered, the default value is `${KYLIN_HOME}/meta_backups/
+  - `--after-truncate` - optional, if this parameter is added, the system metadata will be completely restored, otherwise only the deleted and modified metadata will be restored, and the new metadata will still be retained.
+
+- Restore **project level** metadata 
+
+   ```sh
+   $KYLIN_HOME/bin/metastore.sh restore-project PROJECT_NAME METADATA_BACKUP_PATH [--after-truncate]
+   ```
+  Example:
+  ```sh
+  ./bin/metastore.sh restore-project projectA meta_backups/2019-12-19-14-18-01_backup/
+  ```
+
+  Parameter Description:
+
+   - `PROJECT_NAME` - required, represents the project name
+   - `METADATA_BACKUP_PATH` - required, represents the metadata path that are going to be recovered, the default value is `${KYLIN_HOME}/meta_backups/
+   - `--after-truncate` - optional, if this parameter is added, the project metadata will be completely restored, otherwise only the deleted and modified metadata will be restored, and the new metadata will still be retained.
+   
+**Caution** When run this command, Kylin will enter maintenance mode. If the command is interrupted by force, you may need to exit maintain mode manually. Refer [maintenance_mode](../../maintenance_mode.en.md).
diff --git a/website/docs/operations/system-operation/cli_tool/rollback.md b/website/docs/operations/system-operation/cli_tool/rollback.md
new file mode 100644
index 0000000000..a27193153c
--- /dev/null
+++ b/website/docs/operations/system-operation/cli_tool/rollback.md
@@ -0,0 +1,123 @@
+---
+title: Rollback Tool
+language: en
+sidebar_label: Rollback Tool
+pagination_label: Rollback Tool
+toc_min_heading_level: 2
+toc_max_heading_level: 6
+pagination_prev: null
+pagination_next: null
+keywords:
+    - rollback tool
+draft: false
+last_update:
+    date: 08/12/2022
+---
+
+When a user error causes metadata or data loss, or when Kylin is unavailable due to an unknown issue, you can roll back to a specified moment with the rollback tool to ensure production stability.
+
+> Note: The rollback tool is used in some emergency cases, please use this before read the materials carefully.
+
+### Introduction {#tools_Introduction}
+
+**How to Use** 
+
+- Stop all Kylin services.
+
+- Use tools to roll back
+
+  ```bash
+  $KYLIN_HOME/bin/rollback.sh  --project project_example --time '2020-09-01 15:20:19'
+  ```
+
+- Observe logs to identify differences of metadata such as project, model, user, Segment, task, etc.
+
+- Complete the interaction and confirmation to ensure that you are aware of the impact of the rollback.
+
+- After completed the rollback, start Kylin service.
+
+##### Parameters:
+
+- `-p,--project <arg> `: Project name [optional], `<arg>` is the project name.
+- `-t, --time <arg>`: Historical time point to roll back [required]. `<arg>` is the specific time to roll back to, the format is ` yyyy-MM-dd HH: mm: ss`. The available value is the time point from the earliest backup version time to date.
+- `--skip-check-data`: Skip checking whether the resource file is available [optional].
+
+### Use Case {#user_case}
+
+Below is a common scenario of using the rollback tool in the operational process, describing how the tool can be used to roll back and downgrade issues in the event of product agnostic issues.
+
+- In AI augmented mode, the `rollback_example` project has recommendation with recommendation mode turned on. If the user accepts the recommendations under the model at 16:06:05 on September 1, 2020, then the original model of this project and the metadata related to the index will be updated.
+  ![accept_recommendations](images/accept_en.png)
+- At this point, it can be seen that the index recommended by the system has been generated, but at this point there is an unknown problem, which results in the index not being built properly and affects the health of the entire cluster, and the product is also in an inoperable state.
+- To guarantee production availability, the rollback tool can be used to roll back the metadata and data for this item to 15:20 on September 1.
+
+```sh
+$KYLIN_HOME/bin/rollback.sh  --project rollback_example --time '2020-09-01 15:20:19'
+```
+
+- It can be seen that the item has returned to the state before the accident, the index recommended by the system has disappeared, and the cluster has returned to a stable state..
+
+![rollback_finish](images/rollback_en.png)
+
+- After the rollback is complete, a downgrade is also required for issues that occur. In this example, you can click **Setting**, temporarily turn off the smart recommendation feature under the **Basic Settings** tab first and communicate with the Kylin technical support team in a timely manner.
+  ![downgrade](images/button_en.png)
+- After the product problem is fixed, you can turn on the recommendation mode again.
+
+### Difference from Metadata Backup and Rollback Tool{#difference}
+
+Kylin now offers metadata backup and restore tools that go some way to protecting metadata from loss. However, the tool has some limitations.
+
+- There is no way to rewind to the specified moment, you can only rewind to the version that has been backed up in the past.
+- The metadata backup tool is straightforward, and it is possible that metadata may not be available after being backed up. For example, some files are cleaned up as garbage because the metadata does not exist, and the corresponding backup metadata is not available.
+
+### Configurations{#related_configurations}
+
+
+The premise of using the rollback tool is that the resource data (cube data, dictionary data, snapshot data, etc.) must be guaranteed not to be deleted within the rollback time range. The retention period of the resource data involves two configurations
+
+*  `kylin.storage.time-machine-enabled` After this configuration is enabled, the resources in the retention period will not be deleted in the KE service. After being enabled, the snapshot data retention time will be the same as the time configured in `kylin.storage.resource-survival-time-threshold`, the default value is False.
+*  `kylin.storage.resource-survival-time-threshold` Resource data retention time, the default value is `7d`, unit description:` d` (day), `h` (hour),` m` (minute).
+
+### Caution and Common Errors {#caution_and_common_errors}
+
+The following are some errors and points of attention that may be encountered during the use of the tool
+
+**Points to take attention**
+
+- Using the rollback tool will roll back the state of the task execution to the state of the historical moment, and will restart the execution after the KE service is started.
+- After the rollback tool configuration is turned on, more garbage files may be saved and more storage space may be token up. Using the garbage cleaning tool during the retention period cannot clean up the expired resource data during the retention period.
+- During the execution of the tool, if it is run multiple times, each run will keep a backup of the current metadata in the `{working-dir}/_ current_backup` directory, the file names are distinguished by time.
+- The time specified by the user cannot be greater than the current time.
+- All service nodes must be shut down before using the tool, otherwise it will cause data inconsistency.
+- If the user manually deletes the dictionary data of the project and then regenerates the dictionary data again, using the rollback tool will cause the dictionary data and the index data to be inconsistent.
+- After opening the `kylin.storage.time-machine-enabled` configuration after upgrading, users need to wait for a configured retention period before they can be rolled back.
+- The user rolls back to the historical moment, and the snapshot data used is also the snapshot data of the historical moment instead of using the latest snapshot data.
+- If the rollback time specified by the user is less than the minimum time of the metadata backup, the rollback cannot be performed.
+
+**Possible error results**
+
+- Using the rollback tool reverts the state of the task execution back to the historical moment, and the execution is triggered again when the KE is started.
+- Turning on the time machine causes more junk files to be saved, taking up more storage space, and using the junk cleanup tool during the retention period does not clean up resource data that has expired during the retention period.
+- During tool execution, if there are multiple runs, each run keeps a backup of the current metadata in the `{working-dir}/_current_backup` directory, distinguishing the file name by time.
+- The time specified by the user cannot be greater than the current time.
+- All service nodes must be turned off before using the tool, otherwise data inconsistencies will result.
+- If a user manually deletes the dictionary data for an item and then regenerates the dictionary data, using the rollback tool can cause inconsistencies between the dictionary data and CUBE data.
+- A user who has just upgraded a `kylin.storage.time-machine-enabled` configuration needs to wait until a configuration's retention period has passed before being guaranteed to roll back any time within the retention period.
+- The user rolls back to the historical moment and the snapshot data used is also the snapshot data for the historical moment, not the latest snapshot data used.
+- If the user-specified rollback time is less than the minimum time for metadata backup, it cannot be rolled back.
+- `dectect port available failed` -> Failure to detect user ports requires shutting down the service nodes of the cluster.
+- `check storage data available failed` -> Failed to detect resource file, user can use `--skip-check-data` parameter to force rollback。
+- `restore current metadata failed, please restore the metadata database manually` -> The metadata rollback fails, and overwriting with the current backup also fails. Manual intervention is required to solve the problem. This situation must be handled carefully to avoid loss of metadata.
+- The rollback scope of the rollback tool does not include historical recommendations and projects manually deleted by the user
+
+### Appendix {#appendix}
+
+The following is a detailed process for the tool to perform rollback.
+
+- Backup metadata
+- Check if the cluster is stopped
+- Find the snapshot file of metadata from the backup directory, and then replay the `auditlog` log to the time specified by the user
+- Compare the metadata differences and remind the user
+- Wait for confirmation
+- Check if the resource referenced to by metadata is available
+- Roll back the metadata. If the rollback fails, it will be overwritten with a backup of the current metadata
diff --git a/website/docs/operations/system-operation/diagnosis/build_flame_graph.md b/website/docs/operations/system-operation/diagnosis/build_flame_graph.md
new file mode 100644
index 0000000000..bfea568978
--- /dev/null
+++ b/website/docs/operations/system-operation/diagnosis/build_flame_graph.md
@@ -0,0 +1,78 @@
+---
+title: Build Flame Graph
+language: en
+sidebar_label: Build Flame Graph
+pagination_label: Build Flame Graph
+toc_min_heading_level: 2
+toc_max_heading_level: 6
+pagination_prev: null
+pagination_next: null
+keywords:
+    - build flame graph
+draft: false
+last_update:
+    date: 08/12/2022
+---
+
+Kylin has built-in async-profiler. When flame graphs are needed to diagnose build tasks performance, users can generate query flame graphs for Spark Driver and Executor by calling the API interface.
+
+Since the flame graph is generated at the system level, it will affect all projects. Only the Admin user has the authority to use this function.
+
+### Configs
+| Config                                      | Comment                                                                                                                                          |
+|---------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------|
+| kylin.engine.async-profiler-enabled         | enable the profiling feature (default to FALSE). After enables, you can trigger the generation and download of the flame graph by calling the API |
+| kylin.engine.async-profiler-result-timeout  | the timeout for the result collection (default to 60s)                                                                                           |
+| kylin.engine.async-profiler-profile-timeout | the timeout for the profiling (default to 5min)                                                                                                  |
+
+
+### Start Profiling
+invoke the below HTTP API to start generating flame graph
+
+- HTTP Header
+  - `Accept: application/vnd.apache.kylin-v4-public+json`
+    - `Accept-Language: en`
+    - `Accept-Language: zh`
+  - `Content-Type: application/json;charset=utf-8`
+
+**There are two ways to generate**
+
+- GET `http://host:port/kylin/api/jobs/profile/start_project?project={projectName}&step_id={jobStepId}&params={params}`
+  - URL Parameters
+    - `project`, Required, String, specifies the projectName where the current build task is located, no default value
+    - `step_id`, Required, String, specifies the jobStepId of the current build task, which can be found in the YARN interface, copying the rest of its Name except `job_step_`.
+    - `params`, Optional, String, specify async-profiler parameter, default is `start,event=cpu` (profile cpu usage)
+
+- GET `http://host:port/kylin/api/jobs/profile/start_appid?app_id={yarnAppId}&params={params}`
+  - URL Parameters
+    - `app_id`, Required, String, specifies the Application ID of the current build task submitted to YARN
+    - `params`, Optional, String, specify async-profiler parameter, default is `start,event=cpu` (profile cpu usage)
+
+### Stop Profiling
+invoke the below HTTP API to stop generating flame graph and download flame graph
+
+- HTTP Header
+  - `Accept: application/vnd.apache.kylin-v4-public+json`
+    - `Accept-Language: en`
+    - `Accept-Language: zh`
+  - `Content-Type: application/json;charset=utf-8`
+
+**There are two ways to get it**
+
+- GET `http://host:port/kylin/api/jobs/profile/dump_project?project={projectName}&step_id={jobStepId}&params={params}`
+  - URL Parameters
+    - `project`, Required, String, specifies the projectName where the current build task is located, no default value
+    - `step_id`, Required, String, specifies the jobStepId of the current build task, which can be found in the YARN interface, copying the rest of its Name except `job_step_`.
+    - `params`, Optional, String, specify the async-profiler parameter, default is `flamegraph` (collects the results as a flame graph)
+
+- GET `http://host:port/kylin/api/jobs/profile/dump_appid?app_id={yarnAppId}&params={params}`
+  - URL Parameters
+    - `app_id`, Required,String,specify the Application ID of the current build task submitted to YARN
+    - `params`, Optional, String, specify the async-profiler parameter, the default is `flamegraph` (collects the results as a flame graph)
+
+### Limitations
+1. Current async-profiler version comes with Kylin is Linux x64 (glibc): async-profiler-2.5-linux-x64.tar.gz, Other platforms are not supported.
+2. The profiling may have some impact on the performance of Kylin, avoid doing a long time profiling in production.
+3. The parameters involved in building the flame chart are system level parameters, please do not set them at other levels as they may cause abnormal behavior.
+4. The `params` support configuration parameters can be found at https://github.com/jvm-profiling-tools/async-profiler
+5. On some machines, the required native libraries may fail to load when the `/tmp` disk has the noexec attribute, causing Spark initialization to fail and affecting normal build tasks, so this feature is disabled by default.
diff --git a/website/docs/operations/system-operation/diagnosis/diagnosis.md b/website/docs/operations/system-operation/diagnosis/diagnosis.md
new file mode 100644
index 0000000000..7f16a0475c
--- /dev/null
+++ b/website/docs/operations/system-operation/diagnosis/diagnosis.md
@@ -0,0 +1,86 @@
+---
+title: System, Job and Query Diagnosis
+language: en
+sidebar_label: System, Job and Query Diagnosis
+pagination_label: System, Job and Query Diagnosis
+toc_min_heading_level: 2
+toc_max_heading_level: 6
+pagination_prev: null
+pagination_next: null
+keywords:
+   - diagnosis
+   - system diagnosis
+   - job diagnosis
+   - query diagnosis
+draft: false
+last_update:
+   date: 08/12/2022
+---
+
+
+## System, Job and Query Diagnosis
+
+Kylin users may face with many problems during usage, such as  job failure, SQL query failure, SQL query overtime, etc. In order to help solve these problems efficiently, Kylin provides a *Diagnosis* function on Web UI to pack related information into a zip package to help operation staff and Kyligence Support team to analyze the root cause. 
+
+Diagnosis function includes System, Job and Query Diagnosis. In addition to the method of generating diagnostic package on web UI described in this chapter, you can also generate the diagnostic package through the bash script. For details, please refer to [Diagnosis Tool](cli_tool/diagnosis.en.md).
+
+
+### Generate System Diagnostic Package in Web UI
+
+System diagnostic package includes all diagnostic information of a Kylin instance, and users can generate system diagnostic package on Web UI following the following steps:
+
+![Generate System Diagnostic Package in Web UI](images/diagnosis_web_en.png)
+
+1. Enter the **Admin** page and click the **Diagnosis** button in the lower left corner.
+
+   > **Note**: Only the system administrator can generate the system diagnostic package in web ui for the time being.
+
+2. Select **Time Range**: You can select *last one hour*, *last one day*, *last three days* and *last one month*, or self-defined.
+
+   > **Note:** The selected time range must include the period of incidents.
+
+3. Select **Server**.
+
+   > **Note:** If Kylin is deployed on multiple nodes, please locate the specific node on which your issue happened by selecting the right server name, otherwise the generated system diagnostic package may not include useful information about the issue.
+
+4. Click **Generate and Download** button: After the diagnostic package is generated, the downloads will be triggered automatically. If the diagnostic package generation fails, you can view the details of the failure on the interface.
+
+### Generate Job Diagnostic Package in Web UI
+
+Job diagnostic package includes all diagnostic information of a specific job, and users can generate job diagnostic package on Web UI by following the following steps:
+
+![Generate Job Diagnostic Package in Web UI](images/job_diagnosis_web_en.png)
+
+1. After logging in to Kylin, click **Monitor** in the left navigation bar. In the action bar of a job on the **Jobs List** page, click the **Download Job Diagnostic Package** button.
+2. Select **Server**.
+3. Click **Generate and Download** button: After the diagnostic package is generated, the downloads will be triggered automatically. If the diagnostic package generation fails, you can view the details of the failure on the interface.
+
+### Generate Query Diagnosis Package in Web UI
+
+Query diagnosis package includes all diagnostic information of a specific query, and users can generate query diagnosis package on Web UI by following the following steps:
+
+![Generate Query Diagnosis Package in Web UI](images/query_diagnosis_web.png)
+
+1. After logging in to Kylin, click **Query** in the left navigation bar. In the action bar of a query on the **History** page, click the **Download Query Diagnostic Package** button in **Action**.
+2. Click **Generate and Download** button: After the diagnosis package is generated, the downloads will be triggered automatically. If the diagnosis package generation fails, you can view the details of the failure on the interface.
+
+By default, all users with project query permissions can download the query diagnostic package to facilitate query problem diagnosis.
+Since the query diagnostic package contains some configuration information, if you want to reduce the relevant permissions for downloading the query diagnostic package, you can add configuration `kylin.security.allow-non-admin-generate-query-diag-package=false` in `$KYLIN_HOME/conf/kylin.properties`, only system administrators and users with project ADMIN permissions are allowed to download the query diagnostic package.
+
+### FAQ
+
+**Q: What are the differences in the contents of the three diagnostic packages?**
+
+For the contents of the three diagnostic packages, please refer to [Diagnosis Package Tool](../cli_tool/diagnosis.md).
+
+**Q: If I failed to generate diagnostic packages because of timeout.**
+
+Please change parameter `kylin.diag.package.timeout-seconds`(in seconds, the default value is one hour) in `$KYLIN_HOME/conf/kylin.properties` and restart Kylin.
+
+**Q: What should I do if the page does not download the diagnostic package automatically after the packaging is completed?**
+
+If the system has generated the diagnostic package successfully but fails to download it automatically, you can click **Download Manually** at the bottom left, select the diagnostic package you want to download, and then click the download button to download manually.
+
+**Q: What should I do if the hostname used by Kylin contains an underscore (`_`) and generates a diagnostic package has exception?**
+
+Please add service discovery parameter `spring.cloud.zookeeper.discovery.instance-host=IP` in `$KYLIN_HOME/kylin.properties.override` and restart Kylin.
diff --git a/website/docs/operations/system-operation/diagnosis/images/diagnosis_web_en.png b/website/docs/operations/system-operation/diagnosis/images/diagnosis_web_en.png
new file mode 100644
index 0000000000..329ee9c778
Binary files /dev/null and b/website/docs/operations/system-operation/diagnosis/images/diagnosis_web_en.png differ
diff --git a/website/docs/operations/system-operation/diagnosis/images/job_diagnosis_web_en.png b/website/docs/operations/system-operation/diagnosis/images/job_diagnosis_web_en.png
new file mode 100644
index 0000000000..5a6f0457e2
Binary files /dev/null and b/website/docs/operations/system-operation/diagnosis/images/job_diagnosis_web_en.png differ
diff --git a/website/docs/operations/system-operation/diagnosis/images/query_diagnosis_web.png b/website/docs/operations/system-operation/diagnosis/images/query_diagnosis_web.png
new file mode 100644
index 0000000000..9c84ffd914
Binary files /dev/null and b/website/docs/operations/system-operation/diagnosis/images/query_diagnosis_web.png differ
diff --git a/website/docs/operations/system-operation/diagnosis/intro.md b/website/docs/operations/system-operation/diagnosis/intro.md
new file mode 100644
index 0000000000..d4a4705068
--- /dev/null
+++ b/website/docs/operations/system-operation/diagnosis/intro.md
@@ -0,0 +1,17 @@
+---
+title: Diagnosis
+language: en
+sidebar_label: Diagnosis
+pagination_label: Diagnosis
+toc_min_heading_level: 2
+toc_max_heading_level: 6
+pagination_prev: null
+pagination_next: null
+keywords:
+    - diagnosis
+draft: false
+last_update:
+    date: 08/12/2022
+---
+
+Kylin provides a diagnosis function to help users solve problems they may encounter, such as job failure, SQL query failure, SQL query overtime, etc. 
diff --git a/website/docs/operations/system-operation/diagnosis/query_flame_graph.md b/website/docs/operations/system-operation/diagnosis/query_flame_graph.md
new file mode 100644
index 0000000000..117b28c8fa
--- /dev/null
+++ b/website/docs/operations/system-operation/diagnosis/query_flame_graph.md
@@ -0,0 +1,58 @@
+---
+title: Query Flame Graph
+language: en
+sidebar_label: Query Flame Graph
+pagination_label: Query Flame Graph
+toc_min_heading_level: 2
+toc_max_heading_level: 6
+pagination_prev: null
+pagination_next: null
+keywords:
+    - query flame graph
+draft: false
+last_update:
+    date: 08/12/2022
+---
+
+Kylin has built-in async-profiler. When flame graphs are needed to diagnose query performance, users can generate query flame graphs for Spark Driver and Executor by calling the API interface.
+
+Since the flame graph is generated at the system level, it will affect all projects. Only the Admin user has the authority to use this function.
+
+### Configs
+| Config                                                      | Comment                                                         |
+| ----------------------------------------------------------- | ------------------------------------------------------------ |
+| kylin.query.async-profiler-enabled                          | enable the profiling feature (default to TRUE). After enables, you can trigger the generation and download of the flame graph by calling the API  |
+| kylin.query.async-profiler-result-timeout                   | the timeout for the result collection (default to 60s) |
+| kylin.query.async-profiler-profile-timeout                  | the timeout for the profiling (default to 5min)  |
+
+
+### Start Profiling
+invoke the below HTTP API to start generating flame graph
+
+- GET `http://host:port/kylin/api/query/profile/start?params={params}`
+
+- URL Parameters
+  - `params`, Optional, String, specify async-profiler params to start profiling, default to `start,event=cpu` (profile the cpu only), ref to https://github.com/jvm-profiling-tools/async-profiler for more parameters
+
+- HTTP Header
+  - `Accept: application/vnd.apache.kylin-v4-public+json`
+  - `Accept-Language: en`
+  - `Content-Type: application/json;charset=utf-8`
+
+### Stop Profiling
+invoke the below HTTP API to stop generating flame graph and download flame graph
+
+- GET `http://host:port/kylin//api/query/profile/dump?params={params}`
+
+- URL Parameters
+  - `params`, Optional, String, specify async-profiler params to start profiling, default to `flamegraph` (dump the result as flamegraph), ref to https://github.com/jvm-profiling-tools/async-profiler for more parameters
+
+- HTTP Header
+  - `Accept: application/vnd.apache.kylin-v4-public+json`
+  - `Accept-Language: en`
+  - `Content-Type: application/json;charset=utf-8`
+
+### Limitations
+1. Current async-profiler version comes with Kylin is Linux x64 (glibc): async-profiler-2.5-linux-x64.tar.gz, Other platforms are not supported.
+2. The profiling may have some impact on the performance of Kylin, avoid doing a long time profiling in production.
+3. The flame graph result can only be downloaded once.
diff --git a/website/docs/operations/system-operation/guardian.md b/website/docs/operations/system-operation/guardian.md
new file mode 100755
index 0000000000..ec80d2fc7e
--- /dev/null
+++ b/website/docs/operations/system-operation/guardian.md
@@ -0,0 +1,62 @@
+---
+title: Kylin Guardian Process
+language: en
+sidebar_label: Kylin Guardian Process
+pagination_label: Kylin Guardian Process
+toc_min_heading_level: 2
+toc_max_heading_level: 6
+pagination_prev: null
+pagination_next: null
+keywords:
+    - guardian process
+draft: false
+last_update:
+    date: 08/12/2022
+---
+
+Since Kylin 5.0, the system added a function of a daemon process for monitoring the health state of Kylin. This function is called **Kylin Guardian Process**. If the Kylin Guardian Process detects Kylin is in an unhealthy state, it will restart Kylin server or downgrade service.
+
+### Usage
+
+#### Turn On
+Kylin Guardian Process is **disabled** by default. If you want to enable it, you need to add the configuration `kylin.guardian.enabled = true` in the global configuration file `$KYLIN_HOME/conf/kylin.properties`.
+> **Note**: All the following configurations take effect if `kylin.guardian.enabled = true`
+
+If Kylin Guardian Process is enabled, a daemon process will be automatically started after starting Kylin. This process is bound to environment variable `KYLIN_HOME`, which means each Kylin instance has only one Kylin Guardian Process corresponding to it.
+
+Kylin Guardian Process description:
+- The process ID is recorded in `$KYLIN_HOME/kgid`.
+
+- The log of the process is output in `$KYLIN_HOME/logs/guardian.log`.
+
+- Kylin Guardian Process will periodically check the health status of Kylin. The time delay of the first check is configured by the parameter `kylin.guardian.check-init-delay` (Unit: minutes), the default is 5 minutes, and the check interval is set by the parameter `kylin.guardian.check-interval` (Unit: minutes), the default is 1 minute.
+
+
+#### Check Items
+Kylin Guardian Process currently checks the following 4 aspects of Kylin instance's health.
+
+- Kylin process status
+
+  If the process number file `$KYLIN_HOME/pid` exists and the corresponding process does not exist, it means Kylin server is in an abnormal down state, and Kylin Guardian Process will restart it.
+
+- Spark Context restart failure check
+  
+  If the number of Spark Context restart failure times is greater than or equals to the value of configuration `kylin.guardian.restart-spark-fail-threshold`, which is 3 times by default, Kylin Guardian Process will restart Kylin. This function is enabled by default. If you want to disable it, please add the configuration `kylin.guardian.restart-spark-fail-restart-enabled = false` in `$KYLIN_HOME/conf/kylin.properties`.
+
+- **Bad Query** canceled failed check
+
+  >**Note**: Some queries will be forcibly closed due to abnormal reasons. At this time, the query is **Bad Query**, and the common case is a timeout query.
+
+  If Kylin Guardian Process detects the number of Bad Query cancellation times is greater than or equals to the value of configuration `kylin.guardian.kill-slow-query-fail-threshold`, which is 3 times by default, Kylin Guardian Process will restart Kylin. It is enabled by default. If you want to disable it, you can add the configuration `kylin.guardian.kill-slow-query-fail-restart-enabled = false` in `$KYLIN_HOME/conf/kylin.properties`.
+
+- Full GC(Garbage Collection, Garbage collection mechanism in Java) duration check
+
+  If the Full GC duration ratio in most recent period (default is value of `kylin.guardian.full-gc-check-factor` * value of `kylin.guardian.check-interval`) is greater than or equals to the value of configuration `kylin.guardian.full-gc-duration-ratio-threshold` which is 75% by default, Kylin Guardian Process will restart Kylin. It is enabled by default. If you want to disable it, you can add the configuration `kylin.guardian.full-gc-duration-ratio-restart-enabled = false` in `$KYLIN_HOM [...]
+
+
+#### Kylin Guardian Process High Availability
+To ensure the high availability of Kylin Guardian Process, Kylin will also periodically check the status of Kylin Guardian Process. If Kylin detects the Kylin Guardian Process does not exist, it will automatically start it. The feature is enabled by default. If you want to disable it, you can add the configuration `kylin.guardian.ha-enabled=false` in `$$KYLIN_HOME/conf/kylin.properties`. The time delay of the first check is configured by the parameter `kylin.guardian.ha-check-init-delay` [...]
+
+
+#### Kylin OOM(Out of Memory) restarts automatically
+Kylin Guardian Process supports restarting Kylin when the JVM of Kylin appears OOM.
diff --git a/website/docs/operations/system-operation/images/forbidden_modify_metadata_during_maintenance_mode.png b/website/docs/operations/system-operation/images/forbidden_modify_metadata_during_maintenance_mode.png
new file mode 100644
index 0000000000..b5fdfd120d
Binary files /dev/null and b/website/docs/operations/system-operation/images/forbidden_modify_metadata_during_maintenance_mode.png differ
diff --git a/website/docs/operations/system-operation/images/forbidden_modify_metadata_promoting_during_maintenance_mode.png b/website/docs/operations/system-operation/images/forbidden_modify_metadata_promoting_during_maintenance_mode.png
new file mode 100644
index 0000000000..6f5c7afdd2
Binary files /dev/null and b/website/docs/operations/system-operation/images/forbidden_modify_metadata_promoting_during_maintenance_mode.png differ
diff --git a/website/docs/operations/system-operation/images/maintenance_mode.png b/website/docs/operations/system-operation/images/maintenance_mode.png
new file mode 100644
index 0000000000..2becffa013
Binary files /dev/null and b/website/docs/operations/system-operation/images/maintenance_mode.png differ
diff --git a/website/docs/operations/system-operation/images/system_recover_from_maintenance_mode.png b/website/docs/operations/system-operation/images/system_recover_from_maintenance_mode.png
new file mode 100644
index 0000000000..23b1050322
Binary files /dev/null and b/website/docs/operations/system-operation/images/system_recover_from_maintenance_mode.png differ
diff --git a/website/docs/operations/system-operation/intro.md b/website/docs/operations/system-operation/intro.md
new file mode 100644
index 0000000000..c78f5ee144
--- /dev/null
+++ b/website/docs/operations/system-operation/intro.md
@@ -0,0 +1,17 @@
+---
+title: System Operation
+language: en
+sidebar_label: System Operation
+pagination_label: System Operation
+toc_min_heading_level: 2
+toc_max_heading_level: 6
+pagination_prev: null
+pagination_next: null
+keywords:
+    - system operation
+draft: false
+last_update:
+    date: 08/12/2022
+---
+
+This chapter introduces how to do system operation.
diff --git a/website/docs/operations/system-operation/junk_file_clean.md b/website/docs/operations/system-operation/junk_file_clean.md
new file mode 100644
index 0000000000..6bd6008ed8
--- /dev/null
+++ b/website/docs/operations/system-operation/junk_file_clean.md
@@ -0,0 +1,90 @@
+---
+title: Junk File Cleanup
+language: en
+sidebar_label: Junk File Cleanup
+pagination_label: Junk File Cleanup
+toc_min_heading_level: 2
+toc_max_heading_level: 6
+pagination_prev: null
+pagination_next: null
+keywords:
+    - junk file cleanup
+draft: false
+last_update:
+    date: 08/12/2022
+---
+
+
+## Junk File Cleanup
+
+After Kylin runs for a period of time, the system may generate a certain number of junk files, which may occupy a large amount of storage space. At this time, junk cleaning is required.
+
+Junk file cleaning can improve the stability and performance of the Kylin system. Effective junk file cleaning can not only save storage space, but also ensure the ecological health of the cluster where Kylin is located.
+
+
+### Default recommended regular junk file cleaning method
+
+By default, the system will automatically clean up junk every day at 0:00 AM.
+
+- To modify the time and frequency of regular junk file cleaning, adjust the parameters in `$KYLIN_HOME/conf/kylin.properties`. The default configuration is `kylin.metadata.ops-cron=0 0 0 * * *`, which refers to junk file cleaning at 0:00 a.m. every day. The parameters from left to right in the configuration items represent: seconds, minutes, hours, Day, month, day of the week. By modifying the cron configuration, users can customize the junk file cleaning time, for example, every Saturd [...]
+
+- The default 4-hour timeout for automatic junk file cleaning, and it will automatically terminate after the timeout. The default configuration is `kylin.metadata.ops-cron-timeout=4h`.
+
+- Before the system regularly cleans up junk files, the metadata will be automatically backed up to the HDFS path `{kylin.env.hdfs-working-dir}/{MetadataIdentitiy}/_backup/{yyyy-MM-dd-HH-mm-ss}_backup/ metadata.zip`.
+
+- The system regularly cleans up junk files and will not enter system maintenance mode.
+
+- For more details on cron configuration, please refer to [Introduction to CronTrigger](http://www.quartz-scheduler.org/documentation/quartz-2.3.0/tutorials/crontrigger.html).
+
+### Junk file cleanup range
+
+The scope of junk file cleanup includes:
+- Invalid or expired metadata:
+  - Query history.
+    - The total number of query history for all projects. The query history that exceeds this threshold number `kylin.query.queryhistory.project-max-size=10000000` (default) will be cleared.
+    - The query history of a single project exceeds this threshold `kylin.query.queryhistory.project-max-size=1000000` (default) The query history will be cleared.
+    - The query history time of all projects. The query history that exceeds this threshold `kylin.query.queryhistory.survival-time-threshold=30d` (default 30 days) will be cleared. This configuration also supports units: milliseconds ms, microseconds us, minutes m or min, hours h.
+  - Real-time job status/record table. Realtime jobs that exceed this threshold `kylin.streaming.jobstats.survival-time-threshold=7d` (default 7 days) will be cleaned up.
+  - Invalid optimization suggestion table data.
+  - Expired capacity billing metadata. Capacity billing information that exceeds this threshold `kylin.garbage.storage.sourceusage-survival-time-threshold=90d` (default 90 days) will be cleaned up.
+  - Invalid or out-of-date item-related metadata.
+    - `kylin.garbage.storage.executable-survival-time-threshold=30d` (default 30 days) above this threshold and completed metadata tasks are cleaned up.
+  - Audit log. Audit logs that exceed this threshold `kylin.metadata.audit-log.max-size=500000` (default) will be cleaned up.
+- Invalid or expired HDFS data:
+  - Asynchronous query result file. HDFS asynchronous query result files that exceed this threshold `kylin.query.async.result-retain-days=7d` (default 7 days) will be cleaned up.
+  - Invalid or expired files on HDFS. Include invalid or expired indexes, snapshots, dictionaries, etc.
+    - Invalid files on HDFS that exceed this threshold `kylin.garbage.storage.cuboid-layout-survival-time-threshold=7d` (default 7 days) are cleaned up.
+  - Low Usage indexes on HDFS.
+    - Low usage storage refers to indexes whose usage frequency is lower than a certain threshold and data built under them within a certain time interval. You can configure the definition of low usage storage under a project in the project's Settings > Basic Settings > Index Optimization > Low Usage Storage .
+    - If recommendation is turned off, indexes with low cost performance will be cleaned according to the index optimization strategy during junk file cleaning. You can also manually clean up by clicking the **Clear** button under **Dashboard > Storage Quota > Low Usage Storage**.
+    - If recommendation is turned on, the cleanup of Low Usage storage will no longer be triggered during junk file cleaning, and the corresponding inefficient index will be converted to **model optimization suggestions**, and the button to clean up junk file will not appear in the dashboard.
+
+  > Note: The default timed junk file cleaning method starts from Kylin 5.0 and later, will clean up invalid or expired HDFS data.
+
+### Compatible with historically supported junk cleaning tools
+
+> Note: In order to be compatible with the command-line tool cleanup that has been provided in history, the behavior of the previously provided tools has not changed. Users who have used this method can gradually abandon this method according to the actual situation. Users who are not using this tool could not pay attention to this section.
+
+Kylin provides a junk file cleaning command line tool for checking and cleaning HDFS data, so as to ensure that the system is in a good running state. Please execute the following command in the terminal:
+
+````sh
+$KYLIN_HOME/bin/kylin.sh org.apache.kylin.tool.routine.RoutineTool
+````
+
+When executing this command without any parameters, it will only list the data in HDFS that can be cleaned, but will not perform the actual cleaning action.
+
+This command supports standard short and long parameters. The parameter descriptions are as follows:
+- `-m, --metadata`: Perform metadata junk file cleaning.
+- `-c, --cleanup`: Perform data junk file cleanup. Without this parameter, the tool will not make any modification to the HDFS data.
+- `-p [project...], --projects=[project...]`: Specifies the projects to clean. When specifying multiple items, separate them with commas. Without this parameter, the tool will clean up all items.
+- `-h, --help`: Print help information.
+- `-r number`: The number of requests per second when accessing cloud environment object storage. `-r 10` means 10 requests per second. You can use this parameter to limit the frequency of requests for object storage in the cloud environment by the junk file cleaning tool to avoid errors due to exceeding the request frequency limit.
+- `-t number`: The number of request retries when accessing the cloud environment object storage fails. `-t 3` means to retry 3 times.
+
+**Note**: Whether this command executes metadata junk file cleaning through -m or data junk file cleaning through -c, Kylin will enter maintenance mode. If junk file cleaning is forcibly interrupted, you need to manually exit maintenance mode. Refer to [ Maintenance Mode](system-operation/maintenance_mode.en.md).
+
+In addition, from Kylin 4.5.6, the new command line tool `FastRoutineTool`
+````sh
+$KYLIN_HOME/bin/kylin.sh org.apache.kylin.tool.routine.FastRoutineTool
+````
+The only difference compared to `RoutineTool` is that when performing data junk file cleaning with the `-c` parameter, it does not enter maintenance mode. Maintenance mode is still entered when performing metadata junk file cleanup via -m.
diff --git a/website/docs/operations/system-operation/limit_query.md b/website/docs/operations/system-operation/limit_query.md
new file mode 100644
index 0000000000..b53e46b151
--- /dev/null
+++ b/website/docs/operations/system-operation/limit_query.md
@@ -0,0 +1,72 @@
+---
+title: Limit query current capacity, protect query stability
+language: en
+sidebar_label: Limit query current capacity, protect query stability
+pagination_label: Limit query current capacity, protect query stability
+toc_min_heading_level: 2
+toc_max_heading_level: 6
+pagination_prev: null
+pagination_next: null
+keywords:
+    - limit query current capacity
+    - protect query stability
+draft: false
+last_update:
+    date: 08/12/2022
+---
+
+Query resources are usually limited. During certain periods of time, the query volume suddenly increases, or when a small number of large queries occupy too many resources, query resource competition may occur, resulting in large fluctuations in overall query performance.
+
+In order to avoid the above situation, we can adopt the query current capacity limiting strategy, by rejecting or limiting the performance of part of large queries, to ensure that most of the small queries are not affected, and to ensure the overall stability of the query.
+
+
+### Query classification
+
+Through long-term observation, we can roughly divide queries into two categories: large queries and small queries. They have different typical characteristics:
+
+- **Big query**: The number is small and the resources are occupied. The fluctuation of the big query has a great impact on the overall stability of the query.
+- **Small queries**: The number is large, each small query occupies less resources, protecting small queries can effectively ensure the overall stability of the query.
+
+According to the characteristics of these two types of queries, we have designed different query current limiting strategies, which can be selected as needed. For details, see **two query current limiting strategies** below.
+
+At the same time, for the judgment of large and small queries, we also provide parameters, allowing users to fine-tune according to the actual situation. See below for **Determination of Large Query**.
+
+### Two query current capacity limiting strategies
+
+**Strategy 1: Small query priority scheduling strategy**
+
+After enabling the priority scheduling policy for small queries, small queries will be scheduled first, and large queries will be scheduled later.
+
+Set `kylin.query.query-limit-enabled = true` in `kylin.properties`, the default value is **false**. Also configure Ops Plan to enable large query rejection policy.
+
+**Strategy 2: Large query rejection strategy**
+
+Different from the post-scheduling of large queries in strategy 1, when strategy 2 is used, large queries will be rejected directly after reaching the upper limit of Spark task load. Spark task load refers to the ratio of the number of tasks in the Pending state to the number of tasks in the Running state in the Spark cluster. This strategy requires the cooperation of the Ops Plan to collect the task load indicator, and when the indicator value reaches the upper limit, it triggers the re [...]
+
+Set `kylin.query.share-state-switch-implement=jdbc` in `kylin.properties`, and configure Ops Plan to enable large query rejection policy. The default value is **close**.
+
+Among them, the default value of Spark task load is 50. Generally, it is not recommended to modify it. 
+
+To configure the Ops Plan to turn on the large query rejection strategy, please contact the [Kyligence Technical Support Team](https://support.kyligence.io/#/) for help.
+
+
+### Judgment of large query
+
+An important factor that affects the effect of the above query current limiting strategy is the determination of large queries. We provide both default values and allow flexible adjustments based on actual queries and system conditions.
+
+**Main principle:**
+
+The system mainly uses **data scan rows** as the basis for judging whether it is a large query. The sum of the number of rows scanned for a query data, when this value exceeds the threshold, it is determined as a large query, otherwise it is a small query. This value may be different from the "Number of records scanned by query" displayed on the page of the query result. This number of rows refers to the number of rows of the parquet file scanned after **pruning**.
+
+**Judgment settings for large queries:**
+
+The system provides the initial threshold setting for determining whether it is a large query and the number of data scan rows, and also provides a mechanism to automatically update this threshold. The configuration of related parameters will be described in detail below.
+
+To adjust, adjust the following parameters in `kylin.properties`:
+- `kylin.query.big-query-source-scan-rows-threshold`: Determines whether it is a big query, the initial threshold of the number of rows to be scanned. The default value is `-1` , which means that the user does not specify, and the system automatically calculates the initial threshold at startup. In addition, this threshold can be automatically updated to suit the cluster environment by collecting query information during system operation.
+- `kylin.query.auto-adjust-big-query-rows-threshold-enabled`: Whether to automatically update the above thresholds. The default value is false, set to true to enable automatic update.
+- `kylin.query.big-query-threshold-update-interval-second`: Interval to automatically update the above threshold. The default value is 10800, in seconds.
+- `kylin.query.big-query-second`: The time limit that the big query needs to meet when the above threshold is automatically updated, the default value is 10, in seconds.
+
+In addition, when the query contains limit, the following optimizations can also be enabled to make the automatic update threshold more accurate and avoid misjudgment of large queries.
+- `kylin.query.apply-limit-info-to-source-scan-rows-enabled`: Whether to apply limit information to optimize scan row count estimation. The default value is false.
diff --git a/website/docs/operations/system-operation/maintenance_mode.md b/website/docs/operations/system-operation/maintenance_mode.md
new file mode 100644
index 0000000000..1765bb97d9
--- /dev/null
+++ b/website/docs/operations/system-operation/maintenance_mode.md
@@ -0,0 +1,76 @@
+---
+title: Maintenance Mode
+language: en
+sidebar_label: Maintenance Mode
+pagination_label: Maintenance Mode
+toc_min_heading_level: 2
+toc_max_heading_level: 6
+pagination_prev: null
+pagination_next: null
+keywords:
+    - maintenance mode
+draft: true
+last_update:
+    date: 08/16/2022
+---
+
+## Basic Concepts
+
+When in maintenance mode, Kylin nodes will not be able to modify metadata, and only read operations such as queries will not be affected
+
+## Entering maintenance mode
+  Run the following command to enter maintenance mode:
+  ```sh
+  ${KYLIN_HOME}/bin/kylin.sh org.apache.kylin.tool.MaintainModeTool -on -reason ${reason}
+  ```
+
+  **Note**:
+
+- You need to use the argument -reason to explain why you turn on maintenance mode。
+
+  - When it is in maintenance mode, it is not allowed to enter maintenance mode again. You need to manually exit maintenance mode first
+  
+- ${reason} refers to the reason for entering maintenance mode. There are no fixed characters. You can enter any word, such as `upgrade`
+
+  When in maintenance mode, you will get following prompt:
+
+  ![maintenance mode](images/maintenance_mode.png)
+
+  metadata modification operations, such as create project, load/unload tables, create/update models, etc., 
+  can't be executed.
+
+  If you do the above, the following errors will occur:
+
+  ![forbidden modify metadata promoting during maintenance mode](images/forbidden_modify_metadata_promoting_during_maintenance_mode.png)
+
+  ![forbidden modify metadata during maintenance mode](images/forbidden_modify_metadata_during_maintenance_mode.png)
+
+## Exiting Maintenance mode
+  Run the following command to exit maintenance mode:
+  ```sh
+  ${KYLIN_HOME}/bin/kylin.sh org.apache.kylin.tool.MaintainModeTool -off
+  ```
+  **Note**:While system is already in maintenance mode, the system will prompt you after executing command. In speciality, you can use `-f` or `--force` parameter to force to turn off maintenance mode, 
+  to release all occupation of project.
+
+  After the command was executed, you may not modify metadata immediately. It should be waiting Kylin nodes to
+  get the resources. You can refer following properties: 
+  ```properties
+  kylin.server.leader-race.heart-beat-interval=30
+  ```
+  Its unit is seconds. You should wait up to 30 seconds.
+
+  During the maintenance, if you try to modify metadata, you will get following prompt:
+
+  ![system recover from maintenance mode](images/system_recover_from_maintenance_mode.png)
+
+
+## Recommendations for the use of maintenance mode
+
+Maintenance mode is provided to prevent metadata write conflicts in the system.
+In principle, users are not recommended to turn on or turn off this function manually.
+When running the following commands, the system will automatically turn on the maintenance mode, and turn off the maintenance mode after the operation ends.
+
+ - [reset admin password](../access-control/user_management.md)
+ - [junk file clean](junk_file_clean.md)
+ - [metadata restore](cli_tool/metadata_tool/metadata_backup_restore.en.md#metadata-restore----metadata_restore)
diff --git a/website/docs/operations/system-operation/update-session-table.md b/website/docs/operations/system-operation/update-session-table.md
new file mode 100644
index 0000000000..01f1b15af5
--- /dev/null
+++ b/website/docs/operations/system-operation/update-session-table.md
@@ -0,0 +1,46 @@
+---
+title: Update Session Table Tool
+language: en
+sidebar_label: Update Session Table Tool
+pagination_label: Update Session Table Tool
+toc_min_heading_level: 2
+toc_max_heading_level: 6
+pagination_prev: null
+pagination_next: null
+keywords:
+    - update session table tool
+draft: false
+last_update:
+    date: 08/12/2022
+---
+
+When configured `kylin.web.session.secure-random-create-enabled=true` or `kylin.web.session.jdbc-encode-enabled=true`, the session table needs to be upgraded, otherwise the user cannot log in.
+
+**How to Use**
+
+- Use tools to update
+  
+    ```bash
+      $KYLIN_HOME/bin/kylin.sh org.apache.kylin.tool.upgrade.UpdateSessionTableCLI
+    ```
+    
+> Note: During the upgrade process, the update may fail due to permission reasons. At this time, the operation and maintenance personnel need to manually execute the statement to update the session table.
+
+### Sql
+
+**Use PostgreSQL as Metastore**
+
+```sql
+ALTER TABLE spring_session ALTER COLUMN SESSION_ID TYPE VARCHAR(180) , ALTER COLUMN SESSION_ID SET NOT NULL;
+
+ALTER TABLE spring_session_ATTRIBUTES ALTER COLUMN SESSION_ID TYPE VARCHAR(180) , ALTER COLUMN SESSION_ID SET NOT NULL;
+```
+
+**Use MySQL as Metastore**
+
+```sql
+ALTER TABLE spring_session MODIFY COLUMN SESSION_ID VARCHAR(180) NOT NULL;
+
+ALTER TABLE spring_session_ATTRIBUTES MODIFY COLUMN SESSION_ID VARCHAR(180) NOT NULL;
+```
+
diff --git a/website/sidebars.js b/website/sidebars.js
index 37f85b5db4..ec86ae733f 100644
--- a/website/sidebars.js
+++ b/website/sidebars.js
@@ -30,7 +30,6 @@ const sidebars = {
         {
             type: 'category',
             label: 'Tutorial',
-
             items: [
                 {
                     type: 'doc',
@@ -143,9 +142,265 @@ const sidebars = {
                             id: 'deployment/deploy_mode/rw_separation'
                         },
                     ]
+                },
+                {
+                    type: 'category',
+                    label: 'System Configuration',
+                    link: {
+                        type: 'doc',
+                        id: 'configuration/intro',
+                    },
+                    items: [
+                        {
+                            type: 'doc',
+                            id: 'configuration/configuration'
+                        },
+                        {
+                            type: 'doc',
+                            id: 'configuration/spark_dynamic_allocation'
+                        },
+                        {
+                            type: 'doc',
+                            id: 'configuration/hadoop_queue_config'
+                        },
+                        {
+                            type: 'doc',
+                            id: 'configuration/query_cache'
+                        },
+                        {
+                            type: 'doc',
+                            id: 'configuration/https'
+                        },
+                        {
+                            type: 'doc',
+                            id: 'configuration/spark_rpc_encryption'
+                        },
+                        {
+                            type: 'doc',
+                            id: 'configuration/log_rotate'
+                        },
+                    ],
+                },
+                {
+                    type: 'doc',
+                    id: 'deployment/installation/uninstallation'
                 }
             ],
         },
+        {
+            type: 'category',
+            label: 'Operation and Maintenance Guide',
+            link: {
+                type: 'doc',
+                id: 'operations/intro',
+            },
+            items: [
+                {
+                    type: 'doc',
+                    id: 'operations/overview'
+                },
+                {
+                    type: 'category',
+                    label: 'Project Operation',
+                    link: {
+                        type: 'doc',
+                        id: 'operations/project-operation/intro'
+                    },
+                    items: [
+                        {
+                            type: 'doc',
+                            id: 'operations/project-operation/project_management'
+                        },
+                        {
+                            type: 'doc',
+                            id: 'operations/project-operation/project_settings'
+                        },
+                        {
+                            type: 'doc',
+                            id: 'operations/project-operation/alerting'
+                        },
+                    ],
+                },
+                {
+                    type: 'category',
+                    label: 'Access Control',
+                    link: {
+                        type: 'doc',
+                        id: 'operations/access-control/intro'
+                    },
+                    items: [
+                        {
+                            type: 'doc',
+                            id: 'operations/access-control/user_management'
+                        },
+                        {
+                            type: 'doc',
+                            id: 'operations/access-control/group_management'
+                        },
+                        {
+                            type: 'category',
+                            label: 'Data Access Control',
+                            link: {
+                                type: 'doc',
+                                id: 'operations/access-control/data-access-control/intro'
+                            },
+                            items: [
+                                {
+                                    type: 'doc',
+                                    id: 'operations/access-control/data-access-control/project_acl'
+                                },
+                                {
+                                    type: 'doc',
+                                    id: 'operations/access-control/data-access-control/acl_table'
+                                },
+                            ],
+                        },
+                    ],
+                },
+                {
+                    type: 'category',
+                    label: 'System Operation',
+                    link: {
+                        type: 'doc',
+                        id: 'operations/system-operation/intro',
+                    },
+                    items: [
+                        {
+                            type: 'category',
+                            label: 'Diagnosis',
+                            link: {
+                                type: 'doc',
+                                id: 'operations/system-operation/diagnosis/intro',
+                            },
+                            items: [
+                                {
+                                    type: 'doc',
+                                    id: 'operations/system-operation/diagnosis/diagnosis',
+                                },
+                                {
+                                    type: 'doc',
+                                    id: 'operations/system-operation/diagnosis/query_flame_graph',
+                                },
+                                {
+                                    type: 'doc',
+                                    id: 'operations/system-operation/diagnosis/build_flame_graph',
+                                },
+                            ],
+                        },
+                        {
+                            type: 'doc',
+                            id: 'operations/system-operation/update-session-table',
+                        },
+                        {
+                            type: 'category',
+                            label: 'CLI Operation Tool',
+                            link: {
+                                type: 'doc',
+                                id: 'operations/system-operation/cli_tool/intro',
+                            },
+                            items: [
+                                {
+                                    type: 'doc',
+                                    id: 'operations/system-operation/cli_tool/environment_dependency_check',
+                                },
+                                {
+                                    type: 'doc',
+                                    id: 'operations/system-operation/cli_tool/diagnosis'
+                                },
+                                {
+                                    type: 'category',
+                                    label: 'Metadata Tool',
+                                    link: {
+                                        type: 'doc',
+                                        id: 'operations/system-operation/cli_tool/metadata_tool/intro',
+                                    },
+                                    items: [
+                                        {
+                                            type: 'doc',
+                                            id: 'operations/system-operation/cli_tool/metadata_tool/metadata_backup_restore'
+                                        },
+                                    ],
+                                },
+                                {
+                                    type: 'doc',
+                                    id: 'operations/system-operation/cli_tool/rollback'
+                                },
+                            ],
+                        },
+                        {
+                            type: 'doc',
+                            id: 'operations/system-operation/maintenance_mode'
+                        },
+                        {
+                            type: 'doc',
+                            id: 'operations/system-operation/guardian',
+                        },
+                        {
+                            type: 'doc',
+                            id: 'operations/system-operation/junk_file_clean',
+                        },
+                        {
+                            type: 'doc',
+                            id: 'operations/system-operation/limit_query',
+                        },
+                    ],
+                },
+                {
+                    type: 'category',
+                    label: 'Monitoring',
+                    link: {
+                        type: 'doc',
+                        id: 'operations/monitoring/intro',
+                    },
+                    items: [
+                        {
+                            type: 'category',
+                            label: 'InfluxDB',
+                            link: {
+                                type: 'doc',
+                                id: 'operations/monitoring/influxdb/intro',
+                            },
+                            items: [
+                                {
+                                    type: 'doc',
+                                    id: 'operations/monitoring/influxdb/influxdb'
+                                },
+                                {
+                                    type: 'doc',
+                                    id: 'operations/monitoring/influxdb/influxdb_maintenance'
+                                },
+                            ],
+                        },
+                        {
+                            type: 'doc',
+                            id: 'operations/monitoring/metrics_intro',
+                        },
+                        {
+                            type: 'doc',
+                            id: 'operations/monitoring/service'
+                        },
+                    ],
+                },
+                {
+                    type: 'category',
+                    label: 'Logs',
+                    link: {
+                        type: 'doc',
+                        id: 'operations/logs/intro',
+                    },
+                    items: [
+                        {
+                            type: 'doc',
+                            id: 'operations/logs/system_log'
+                        },
+                        {
+                            type: 'doc',
+                            id: 'operations/logs/audit_log'
+                        },
+                    ],
+                },
+            ],
+        },
         {
             type: 'category',
             label: 'Modeling',
@@ -272,54 +527,7 @@ const sidebars = {
                 },
             ],
         },
-        {
-            type: 'category',
-            label: 'Operation and Maintenance Guide',
-            link: {
-                type: 'doc',
-                id: 'operations/intro',
-            },
-            items: [
-                {
-                    type: 'category',
-                    label: 'Monitoring',
-                    link: {
-                        type: 'doc',
-                        id: 'operations/monitoring/intro',
-                    },
-                    items: [
-                        {
-                            type: 'category',
-                            label: 'InfluxDB',
-                            link: {
-                                type: 'doc',
-                                id: 'operations/monitoring/influxdb/intro',
-                            },
-                            items: [
-                                {
-                                    type: 'doc',
-                                    id: 'operations/monitoring/influxdb/influxdb'
-                                },
-                                {
-                                    type: 'doc',
-                                    id: 'operations/monitoring/influxdb/influxdb_maintenance'
-                                },
-                            ],
-                        },
-                    ],
-                },
-            ],
-        },
-        {
-            type: 'category',
-            label: 'Configuration Guide',
-            items: [
-                {
-                    type: 'doc',
-                    id: 'configuration/intro'
-                },
-            ],
-        },
+
     ],
     DevelopmentSideBar: [
         {


[kylin] 03/07: KYLIN-5221 add operations docs

Posted by xx...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

xxyu pushed a commit to branch doc5.0
in repository https://gitbox.apache.org/repos/asf/kylin.git

commit 02e31db7f0b14469d39efa49fbbd242512ccede5
Author: Mukvin <bo...@163.com>
AuthorDate: Tue Aug 16 14:35:11 2022 +0800

    KYLIN-5221 add operations docs
---
 website/docs/operations/cli_tool/diagnosis.md      | 139 +++++++++++++++++++++
 website/docs/operations/cli_tool/intro.md          |  17 +++
 .../operations/project-maintenance/alerting.md     |  50 ++++++++
 .../images/project_settings.png                    | Bin 0 -> 244469 bytes
 .../images/project_settings_acceleration.png       | Bin 0 -> 213058 bytes
 .../images/project_settings_acceleration_tips.png  | Bin 0 -> 150813 bytes
 .../images/project_settings_basic_general.png      | Bin 0 -> 170160 bytes
 .../images/project_settings_cc_expose.png          | Bin 0 -> 48912 bytes
 .../images/project_settings_custom_config.png      | Bin 0 -> 58667 bytes
 .../project_settings_default_database_en.png       | Bin 0 -> 297604 bytes
 .../images/project_settings_job_notification.png   | Bin 0 -> 144128 bytes
 .../project_settings_job_notification_page.png     | Bin 0 -> 354436 bytes
 .../images/project_settings_model_rewrite.png      | Bin 0 -> 250137 bytes
 .../images/project_settings_pushdown.png           | Bin 0 -> 302372 bytes
 .../images/project_settings_segment_en.png         | Bin 0 -> 191173 bytes
 .../images/project_settings_storage.png            | Bin 0 -> 233852 bytes
 .../images/project_settings_storage_low_usage.png  | Bin 0 -> 240252 bytes
 .../images/project_settings_yarn_queue.png         | Bin 0 -> 90074 bytes
 .../images/recommendation_preferences_en.png       | Bin 0 -> 153741 bytes
 .../images/service_state.en.png                    | Bin 0 -> 58508 bytes
 .../images/storage_quota.en.png                    | Bin 0 -> 34171 bytes
 .../project-maintenance/images/toolbar.en.png      | Bin 0 -> 688505 bytes
 .../docs/operations/project-maintenance/intro.md   |  17 +++
 .../project-maintenance/project_settings.md        | 127 +++++++++++++++++++
 24 files changed, 350 insertions(+)

diff --git a/website/docs/operations/cli_tool/diagnosis.md b/website/docs/operations/cli_tool/diagnosis.md
new file mode 100644
index 0000000000..e26e470720
--- /dev/null
+++ b/website/docs/operations/cli_tool/diagnosis.md
@@ -0,0 +1,139 @@
+---
+title: Diagnostic Package
+language: en
+sidebar_label: Diagnostic Package
+pagination_label: Diagnostic Package
+toc_min_heading_level: 2
+toc_max_heading_level: 6
+pagination_prev: null
+pagination_next: null
+keywords:
+    - diagnostic package
+draft: false
+last_update:
+    date: 08/16/2022
+---
+
+Kylin users may face with many problems during usage, such as failure in creating a model or query errors. Kylin provides a cli tool to pack related information into a zip package to help system administrator to better analyze the root cause of these problems.
+Diagnosis function including System Diagnosis、Job Diagnosis and Query Diagnosis.
+
+### Generate Diagnostic Package using bash script
+- In FusionInsight, you need to execute command `source /opt/hadoopclient/bigdata_env` first. The `hadoopclient` is a variable.
+
+- Generate system diagnostic package
+Execute `$KYLIN_HOME/bin/diag.sh [-startTime <START_TIMESTAMP> -endTime <END_TIMESTAMP>] [-destDir <DESTINATION_DIR>]` to generate the system diagnostic package. The default time range is last 1 day, START_TIMESTAMP and END_TIMESTAMP is in unix timestamp. You may get the current unix timestamp by run ```echo $((`date +%s`*1000))``` in Linux.
+
+- Generate job diagnostic package
+Execute `$KYLIN_HOME/bin/diag.sh -job <jobid> [-destDir <DESTINATION_DIR>]` to generate the job diagnostic package with replacing `<jobid>` with the job ID number.
+
+- Generate query diagnostic package
+  Execute `$KYLIN_HOME/bin/diag.sh -project <project> -query <queryid> [-destDir <DESTINATION_DIR>]` to generate the query diagnostic package with replacing `<queryid>` with the actual query ID number and `<project>` with the name of the project in which the actual query is made.
+  
+- Diagnostic package storage location
+Diagnostic packages generated by scripts are stored under `$KYLIN_HOME/diag_dump/` by default, you can specify the location by configuring `-destDir` parameter.
+   > Note: In order to avoid the diagnostic package occupying a lot of storage, please clean up the `$KYLIN_HOME/diag_dump/` directory in time.
+
+- Skip metadata files
+    If you want to exclude metadata files, please specify `-includeMeta false`.
+
+- Skip audit log files
+    If you want to exclude audit log files, please specify `-includeAuditLog false` or add configuration `kylin.diag.include-auditlog=false` in the `kylin.properties`
+
+### Diagnostic Package Content
+
+#### Full Diagnostic Package Content
+
+- `/conf`: configuration information under the `$KYLIN_HOME/conf` directory.
+- `/hadoop_conf`: configuration information under the `$KYLIN_HOME/hadoop_conf` directory.
+- `/metadata`: metadata files.
+- `/logs`: all the logs in the specified time range, 1 day is by default.
+- `/spark_logs`: all Spark executor logs of query in the specified time range.
+- `/sparder_history`:all Sparder logs of query in  the specified time range.
+- `/system_metrics`: all system metrics in the specified time range. 
+- `/audit_log`: all audit logs of metdata in the specified time range.
+- `/job_tmp`: the optimization suggestions log.
+- `/client`: operating system resources occupied information, Hadoop version and Kerberos information.
+- `/bin`: program execute and manager binary files.
+- `/monitor_metrics`: System monitoring statistics.
+- `/rec_candidate`: optimization suggestions for the model.
+- `/write_ hadoop_ conf`:`$KYLIN_HOME/write_hadoop_conf`, Hadoop configuration of the build cluster. This directory will not be available when Read/Write separation deployment is not configured.
+- file `catalog_info`: directory structure of install package.
+- file `commit_SHA1`: git-commit version.
+- file `hadoop_env`: hadoop environment information.
+- file `info`: license,package and hostname.
+- file `kylin_env`: Kylin version, operating system information, Java related information, git-commit information.
+- file `time_used_info`: Time statistics of each file generated in the diagnostic package.
+
+#### Job Diagnostic Package Content
+
+- `/conf`: configuration information under the `$KYLIN_HOME/conf` directory.
+- `/hadoop_conf`: configuration information under the `$KYLIN_HOME/hadoop_conf` directory.
+- `/job_history`:Job execution history information mainly includes the execution information of yarn application.
+- `/metadata`: metadata files.
+- `/logs`: the logs generated during the execution of the job.
+- `/spark_logs`: all spark executor logs generated during job execution.
+- `/system_metrics`: the system metrics generated during the execution.
+- `/audit_log`: the audit logs generated during the execution.
+- `/job_tmp`: the temporary files, logs and optimization suggestions log of job.
+- `/yarn_application_log`: specifies the logs of yarn application of job. 
+- `/client`: operating system resources occupied information, Hadoop version and Kerberos information.
+- `/bin`: program execute and manager binary files.
+- `/monitor_metrics`: System monitoring statistics.
+- `/rec_candidate`: optimization suggestions for the model.
+- `/write_ hadoop_ conf`:`$KYLIN_HOME/write_hadoop_conf`, Hadoop configuration of the build cluster. This directory will not be available when Read/Write separation deployment is not configured.
+- file `catalog_info`: directory structure of install package.
+- file `commit_SHA1`: git-commit version.
+- file `hadoop_env`: hadoop environment information.
+- file `info`: license, package and hostname.
+- file `kylin_env`:kyligence Enterprise version, operating system information, Java related information, git-commit information.
+- file `time_used_info`: Time statistics of each file generated in the diagnostic package.
+
+#### Query Diagnostic Package Content
+
+- `/conf`: configuration information under the `$KYLIN_HOME/conf` directory.
+- `/hadoop_conf`: configuration information under the `$KYLIN_HOME/hadoop_conf` directory.
+- `/metadata`:specify the metadata for all models under the project.
+- `/logs`:`$KYLIN_HOME/logs/kylin.log`,specify the log of the query.
+- `/spark_logs`:all Spark executor logs within the time range are included in the query diagnostic package.
+- `/sparder_history`:all Sparder logs within the time range are included in the query diagnostic package.
+- `/client`:operating system resource usage, Version information for Hadoop, and Kerberos information.
+- file `catalog_info`: directory structure of install package.
+- file `commit_SHA1`: git-commit version.
+- file `hadoop_env`: hadoop environment information.
+- file `info`: license, package and hostname.
+- file `kylin_env`:kyligence Enterprise version, operating system information, Java related information, git-commit information.
+- file `time_used_info`: Time statistics of each file generated in the diagnostic package.
+
+### Multi-Node Diagnosis
+At present, there is no API to know which nodes are in the cluster. You need to record the deployed nodes by yourself, and then go to each node to generate diagnostic package separately. The method of generating the diagnostic package is the same as the above.
+
+### Diagnostic package desensitization
+
+The diagnostic package desensitization function can hide sensitive information in the diagnostic package, such as user names, passwords, etc. While helping users solve problems, it can meet users' data security requirements.
+
+You can enable the diagnostic package desensitization function through the following configuration item:
+
+```properties
+## The desensitization level of the diagnostic package. RAW stands for no desensitization, OBF stands for desensitization
+kylin.diag.obf.level=OBF
+```
+
+After the configuration is enabled, the diagnostic package generated through the Web UI or through the terminal CLI tool will be desensitized. The system will desensitize all files starting with `kylin.properties` in the `KYLIN_HONE/conf` directory. All configuration items including `password`, `user`, `zookeeper.zk-auth`, ` The configuration items of source.jdbc.pass` will be desensitized. The desensitization method is to replace the value of the configuration item with `<hidden>`.
+
+### Common Questions
+
+**Q: Why is the system diagnostic package log content incomplete?**
+
+A: The extraction of the log is a text-based match (based on the minute-level time string). If the content is found to be incomplete, it may be that the specified timestamp is not converted to the corresponding one when converted to a time string. You can try to modify the time range and re-generate the diagnostic package.
+
+**Q: Why is the `system_metrics` directory missing content in diagnostic package?**
+
+A: `system_metrics` contains system metrics, which are stored in InfluxDB. You need to specify an RPC port when using InfluxDB to back up the data, so please verify whether the configuration item `kylin.metrics.influx-rpc-service-bind-address` in the file `$KYLIN_HOME/conf/kylin.properties` is correct.
+
+**Q: How to deal with Out of Memory (OOM) problem that happens during diagnostic package generating?**
+
+A: Please check the value of `JAVA_VM_XMX` in `conf/setenv.sh`, which is recommended to be adjusted to more than 4 times the size of metadata. For example, if the size of metadata is 1G, please set the value to 4G or above.
+
+**Q: Why is the file of the exported model optimization suggestion 0KB? **
+
+A: If the model has no optimization suggestions, then the optimization suggestions generated by the corresponding model will be 0KB.
diff --git a/website/docs/operations/cli_tool/intro.md b/website/docs/operations/cli_tool/intro.md
new file mode 100644
index 0000000000..4c034e42c8
--- /dev/null
+++ b/website/docs/operations/cli_tool/intro.md
@@ -0,0 +1,17 @@
+---
+title: CLI Operation Tool
+language: en
+sidebar_label: CLI Operation Tool
+pagination_label: CLI Operation Tool
+toc_min_heading_level: 2
+toc_max_heading_level: 6
+pagination_prev: null
+pagination_next: null
+keywords:
+    - cli operation tool
+draft: false
+last_update:
+    date: 08/12/2022
+---
+
+This chapter introduces how to use the Command-Line Interface tool to do daily operation work. Such as environment dependency checking tool, metadata tool, and diagnostic package.
diff --git a/website/docs/operations/project-maintenance/alerting.md b/website/docs/operations/project-maintenance/alerting.md
new file mode 100755
index 0000000000..23477573fd
--- /dev/null
+++ b/website/docs/operations/project-maintenance/alerting.md
@@ -0,0 +1,50 @@
+---
+title: Job Status Alert
+language: en
+sidebar_label: Job Status Alert
+pagination_label: Job Status Alert
+toc_min_heading_level: 2
+toc_max_heading_level: 6
+pagination_prev: null
+pagination_next: null
+keywords:
+    - job status alert
+draft: true
+last_update:
+    date: 08/16/2022
+---
+
+Kylin provides *Job Status Alert* feature that sends emails to system administrator if any job loads empty data or failed. It is very convenient for follow-ups like troubleshooting or incremental building.
+
+Job status alert by email can be enabled by the following steps,
+
+**Step one**: You need to additionally set following properties in the configuration file `$KYLIN_HOME/conf/kylin.properties`,
+
+   ```properties
+   kylin.job.notification-enabled=true|false  # set to true to enable the feature
+   kylin.job.notification-mail-enable-starttls=true|false 
+   kylin.job.notification-mail-host=your-smtp-server  # address of SMTP server
+   kylin.job.notification-mail-port=your-smtp-port  # port of SMTP server
+   kylin.job.notification-mail-username=your-smtp-account  # SMTP account username
+   kylin.job.notification-mail-password=your-smtp-pwd  # SMTP account password
+   kylin.job.notification-mail-sender=your-sender-address  # sender address 
+   ```
+
+> **Note**: If you need to encrypt `kylin.job.notification-mail-password`, you can do it like this:
+>
+> i. run following commands in `${KYLIN_HOME}`, it will print encrypted password
+>  ```shell
+>  ./bin/kylin.sh org.apache.kylin.tool.general.CryptTool -e AES -s <password>
+>  ```
+> ii. config `kylin.job.notification-mail-password` like this
+>  ```properties
+>   kylin.job.notification-mail-password=ENC('${encrypted_password}')
+>  ```
+
+   Please **Restart Kylin** to make configurations take effect.
+
+**Step two**: Set in the project settings page,
+
+   - Modelers and Analysts need to fill in the **Advanced Settings** --> **Email Notification** with your email addresses.
+
+   ![job notification](images/project_settings_job_notification_page.png)
diff --git a/website/docs/operations/project-maintenance/images/project_settings.png b/website/docs/operations/project-maintenance/images/project_settings.png
new file mode 100644
index 0000000000..20a687a052
Binary files /dev/null and b/website/docs/operations/project-maintenance/images/project_settings.png differ
diff --git a/website/docs/operations/project-maintenance/images/project_settings_acceleration.png b/website/docs/operations/project-maintenance/images/project_settings_acceleration.png
new file mode 100644
index 0000000000..e88b5e7167
Binary files /dev/null and b/website/docs/operations/project-maintenance/images/project_settings_acceleration.png differ
diff --git a/website/docs/operations/project-maintenance/images/project_settings_acceleration_tips.png b/website/docs/operations/project-maintenance/images/project_settings_acceleration_tips.png
new file mode 100644
index 0000000000..e5d611f514
Binary files /dev/null and b/website/docs/operations/project-maintenance/images/project_settings_acceleration_tips.png differ
diff --git a/website/docs/operations/project-maintenance/images/project_settings_basic_general.png b/website/docs/operations/project-maintenance/images/project_settings_basic_general.png
new file mode 100644
index 0000000000..6f5ddd598b
Binary files /dev/null and b/website/docs/operations/project-maintenance/images/project_settings_basic_general.png differ
diff --git a/website/docs/operations/project-maintenance/images/project_settings_cc_expose.png b/website/docs/operations/project-maintenance/images/project_settings_cc_expose.png
new file mode 100644
index 0000000000..1f5a5a9ea1
Binary files /dev/null and b/website/docs/operations/project-maintenance/images/project_settings_cc_expose.png differ
diff --git a/website/docs/operations/project-maintenance/images/project_settings_custom_config.png b/website/docs/operations/project-maintenance/images/project_settings_custom_config.png
new file mode 100644
index 0000000000..84324896a0
Binary files /dev/null and b/website/docs/operations/project-maintenance/images/project_settings_custom_config.png differ
diff --git a/website/docs/operations/project-maintenance/images/project_settings_default_database_en.png b/website/docs/operations/project-maintenance/images/project_settings_default_database_en.png
new file mode 100644
index 0000000000..c7a28165ac
Binary files /dev/null and b/website/docs/operations/project-maintenance/images/project_settings_default_database_en.png differ
diff --git a/website/docs/operations/project-maintenance/images/project_settings_job_notification.png b/website/docs/operations/project-maintenance/images/project_settings_job_notification.png
new file mode 100644
index 0000000000..1e082cc79b
Binary files /dev/null and b/website/docs/operations/project-maintenance/images/project_settings_job_notification.png differ
diff --git a/website/docs/operations/project-maintenance/images/project_settings_job_notification_page.png b/website/docs/operations/project-maintenance/images/project_settings_job_notification_page.png
new file mode 100644
index 0000000000..05de4610b3
Binary files /dev/null and b/website/docs/operations/project-maintenance/images/project_settings_job_notification_page.png differ
diff --git a/website/docs/operations/project-maintenance/images/project_settings_model_rewrite.png b/website/docs/operations/project-maintenance/images/project_settings_model_rewrite.png
new file mode 100644
index 0000000000..43b61350ac
Binary files /dev/null and b/website/docs/operations/project-maintenance/images/project_settings_model_rewrite.png differ
diff --git a/website/docs/operations/project-maintenance/images/project_settings_pushdown.png b/website/docs/operations/project-maintenance/images/project_settings_pushdown.png
new file mode 100644
index 0000000000..c4b9a45cdd
Binary files /dev/null and b/website/docs/operations/project-maintenance/images/project_settings_pushdown.png differ
diff --git a/website/docs/operations/project-maintenance/images/project_settings_segment_en.png b/website/docs/operations/project-maintenance/images/project_settings_segment_en.png
new file mode 100644
index 0000000000..825e3a384f
Binary files /dev/null and b/website/docs/operations/project-maintenance/images/project_settings_segment_en.png differ
diff --git a/website/docs/operations/project-maintenance/images/project_settings_storage.png b/website/docs/operations/project-maintenance/images/project_settings_storage.png
new file mode 100644
index 0000000000..5aa17d2588
Binary files /dev/null and b/website/docs/operations/project-maintenance/images/project_settings_storage.png differ
diff --git a/website/docs/operations/project-maintenance/images/project_settings_storage_low_usage.png b/website/docs/operations/project-maintenance/images/project_settings_storage_low_usage.png
new file mode 100644
index 0000000000..e11df66530
Binary files /dev/null and b/website/docs/operations/project-maintenance/images/project_settings_storage_low_usage.png differ
diff --git a/website/docs/operations/project-maintenance/images/project_settings_yarn_queue.png b/website/docs/operations/project-maintenance/images/project_settings_yarn_queue.png
new file mode 100644
index 0000000000..3d3590f228
Binary files /dev/null and b/website/docs/operations/project-maintenance/images/project_settings_yarn_queue.png differ
diff --git a/website/docs/operations/project-maintenance/images/recommendation_preferences_en.png b/website/docs/operations/project-maintenance/images/recommendation_preferences_en.png
new file mode 100644
index 0000000000..6538741e6c
Binary files /dev/null and b/website/docs/operations/project-maintenance/images/recommendation_preferences_en.png differ
diff --git a/website/docs/operations/project-maintenance/images/service_state.en.png b/website/docs/operations/project-maintenance/images/service_state.en.png
new file mode 100644
index 0000000000..69dd4e44b1
Binary files /dev/null and b/website/docs/operations/project-maintenance/images/service_state.en.png differ
diff --git a/website/docs/operations/project-maintenance/images/storage_quota.en.png b/website/docs/operations/project-maintenance/images/storage_quota.en.png
new file mode 100644
index 0000000000..40953f6ebc
Binary files /dev/null and b/website/docs/operations/project-maintenance/images/storage_quota.en.png differ
diff --git a/website/docs/operations/project-maintenance/images/toolbar.en.png b/website/docs/operations/project-maintenance/images/toolbar.en.png
new file mode 100644
index 0000000000..2e88c1d75a
Binary files /dev/null and b/website/docs/operations/project-maintenance/images/toolbar.en.png differ
diff --git a/website/docs/operations/project-maintenance/intro.md b/website/docs/operations/project-maintenance/intro.md
new file mode 100755
index 0000000000..93b8062075
--- /dev/null
+++ b/website/docs/operations/project-maintenance/intro.md
@@ -0,0 +1,17 @@
+---
+title: Project Operation
+language: en
+sidebar_label: Project Operation
+pagination_label: Project Operation
+toc_min_heading_level: 2
+toc_max_heading_level: 6
+pagination_prev: null
+pagination_next: null
+keywords:
+    - project operation
+draft: false
+last_update:
+    date: 08/16/2022
+---
+
+The following sections introduce how to do project operation.
diff --git a/website/docs/operations/project-maintenance/project_settings.md b/website/docs/operations/project-maintenance/project_settings.md
new file mode 100644
index 0000000000..4f247ffbd6
--- /dev/null
+++ b/website/docs/operations/project-maintenance/project_settings.md
@@ -0,0 +1,127 @@
+---
+title: Project Settings
+language: en
+sidebar_label: Project Settings
+pagination_label: Project Settings
+toc_min_heading_level: 2
+toc_max_heading_level: 6
+pagination_prev: null
+pagination_next: null
+keywords:
+	- project settings
+draft: true
+last_update: 
+    date: Aug 16, 2022
+---
+
+On the left side navigation bar of the page, click **Setting**,you can adjust some settings at the project level on your business demands.
+
+![project settings](images/project_settings.png)
+
+All settings are composed of three main parts:
+
+- [Project Settings](#project-settings)
+	- [<span id="basic">Basic Settings</span>](#basic-settings)
+	- [<span id="advanced">Advanced Settings</span>](#advanced-settings)
+	- [<span id="rewrite_models">Model/Index Group Rewrite Settings</span>](#modelindex-group-rewrite-settings)
+
+### <span id="basic">Basic Settings</span>
+
+#### 1. General Information
+
+In this part, you can check current project's name, type and description, also, you can modify project description.
+
+![general information](images/project_settings_basic_general.png)
+
+#### 2. Storage Setting
+
+In this part, you can check the storage quota, which is the upper limit of the storage. By default, storage size is 10TB.
+
+The picture below shows where to set storage quota:
+
+![storage setting](images/project_settings_storage.png)
+
+#### 3. Pushdown Setting
+
+If you don't have any models or there is no avaliable models to answer your queries, you can use **pushdown** to get results for a more flexible user experience, and your queries will be pushdown to Spark SQL by default. This setting is turned on by default.
+
+![pushdown setting](images/project_settings_pushdown.png)
+
+#### 4. Segment Settings
+
+This part is about settings of segment, including Segment Merge, Retention Threshold and Creating Reserved Segments.
+
+**Segment Merge** means the system will automatically merge segments when those segments match the rules and contain the same indexes. Below is how to define the rules.
+
+- **Auto-Merge**: You can choose to automatically merge segments within the time range in 1 hour / 1 day / 1 week / 1 month / 1 quarter / 1 year (natural concepts).
+      
+        > Example of natural concept: Natural week means Monday to Sunday. Natural month means the first day of a month to the last day of the month.     Civil year means the first day of a year to the last day of the year.
+
+- **Volatile Range**: The system will delay for a period of time (i.e. Volatile Range) to trigger automatic merging of Segments. You can set the time range to N hour(s), day(s), week(s), month(s), quarter(s), and year(s), where day(s), week(s), and month(s) are natural concepts. N is an integer, and the default value is 0.
+  
+  - Usage scenario: In actual business, due to the delay of the ETL process, for example, the business often needs to refresh the data of the past N days every day. During auto-merge, in order to reduce resource waste, you can set Volatile Range to prevent the system from automatically merging segments to be refreshed for the past N days.
+    
+> For example: If you build a segment every day and you set the auto-merge time range as 1 week, then you will have 7 segments no.01-07 over last week. 
+>
+> - Volatile range is 0 day , the system will automatically merge 7 segments.
+> - Volatile range is 1 day(i.e. the business needs to refresh no.07 Segment on the next day), therefore, the system will not merge no.01-07 segments; the system will not merge the 01-07 segments until the segment no.08 is added in the second week. 
+> - Volatile range is 2 days(i.e. the business needs to refresh no.06-07 Segments on the next day), therefore, the system will not merge no.01-07 segments until the segments no.08-09 are added in the second week.
+
+**Retention Threshold** sets the oldest segment time range. Support setting day, month, or year as units. By default, Kylin only keeps segments for 1 year, segments beyond 1 year will be deleted automatically.
+
+**Creating Reserved Segments** With this switch ON, you may create a segment with no index (reserved segment). Please note that queries would be answered by pushdown engine when they hit reserved segments.
+
+The picture below is the segment setting page.
+
+![segment settings](images/project_settings_segment_en.png)
+
+### <span id="advanced">Advanced Settings</span>
+
+This module includes 5 parts mainly: default database, job notification, YARN application queue, computed column exposure and custom project configuration.
+
+#### 1. Default Database
+
+After setting the default database, the database name can be omitted in SQL statements when executing a query or importing a SQL file. Modifying the default database may result in saved queries or SQL files being unavailable, historical queries cannot hit the models. Please modify the default database prudently.
+
+The picture below is the default database setting page:
+
+![default database](images/project_settings_default_database_en.png)
+
+#### 2. Job Notification
+
+If you want to receive notification of abnormal jobs, you can add your email addresses in this page, once there is any job which loads empty data or gets failed, the system will send you a notification email, the example email goes like this:
+
+![job notification](images/project_settings_job_notification.png)
+
+For specific configuration, please refer to [Job Status Alert](alerting.md) for more details.
+
+#### 3. YARN Application Queue
+
+The system admin user can set the YARN Application Queue of the project. After setting the queue, the jobs will be submitted to the specified queue to achieve computing resources allocation and separation between projects. This queue resource is used for non-query jobs such as refreshing data, merging segments, building indexes, loading data and sampling table.
+
+The system will submit the job to the **default** queue of YARN by default. The name of YARN queue is case sensitive. Please make sure the queue you set is available, otherwise the jobs may fail to execute or be submitted to the default queue according to the current **Scheduler Policy** of YARN.
+
+The picture below is the yarn queue setting page:
+
+![yarn_queue](images/project_settings_yarn_queue.png)
+
+#### 4. Computed Column Exposure
+
+This config will control the exposure of the computed columns in current project. If this config is on, Kylin will add computed columns of current project to the table schemas returned. Otherwise, computed columns are hidden from the table schema. This config will influence the table schemas in JDBC, ODBC or BI tools.
+You may not want to change this config frequently as it might break the project in your BI tools.
+
+![computed_column_exposure](images/project_settings_cc_expose.png)
+
+#### 5. Custom Project Configuration
+
+Administrators can add additional project configuration items needed by customizing the project configuration. You can click the **+ Configuration** button, enter the configuration item and parameter value in the pop-up window, and then click **OK**. If you need to modify or delete the added configuration items, you can click the **Edit** or **Delete** button on the right side of the list. These operations take effect immediately.
+
+![computed_column_exposure](images/project_settings_custom_config.png)
+
+### <span id="rewrite_models">Model/Index Group Rewrite Settings</span>
+
+Kylin supports rewriting some specific properties at level, including Auto-Merge, Volatile Range, Retention Threshold, spark executor resource size and Custom Settings.
+
+Click **+** button (Add Setting Item) under the right **Actions** tab:
+
+![model rewrite](images/project_settings_model_rewrite.png)


[kylin] 02/07: KYLIN-5221 add configuration docs

Posted by xx...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

xxyu pushed a commit to branch doc5.0
in repository https://gitbox.apache.org/repos/asf/kylin.git

commit 69ee8500bb27e6585f877772b2da0f6921e5e949
Author: Mukvin <bo...@163.com>
AuthorDate: Tue Aug 16 14:33:59 2022 +0800

    KYLIN-5221 add configuration docs
---
 website/docs/configuration/configuration.md        | 220 +++++++++++++++++++++
 website/docs/configuration/hadoop_queue_config.md  |  53 +++++
 website/docs/configuration/https.md                |  74 +++++++
 .../docs/configuration/images/hadoop_queue/1.png   | Bin 0 -> 126858 bytes
 .../docs/configuration/images/hadoop_queue/2.png   | Bin 0 -> 44273 bytes
 .../docs/configuration/images/hadoop_queue/3.png   | Bin 0 -> 183045 bytes
 .../configuration/images/spark_executor_max.jpg    | Bin 0 -> 71527 bytes
 .../configuration/images/spark_executor_min.jpg    | Bin 0 -> 35309 bytes
 .../images/spark_executor_original.jpg             | Bin 0 -> 53356 bytes
 website/docs/configuration/intro.md                |  35 +++-
 website/docs/configuration/log_rotate.md           |  36 ++++
 website/docs/configuration/query_cache.md          |  72 +++++++
 .../docs/configuration/spark_dynamic_allocation.md |  93 +++++++++
 website/docs/configuration/spark_rpc_encryption.md |  43 ++++
 14 files changed, 619 insertions(+), 7 deletions(-)

diff --git a/website/docs/configuration/configuration.md b/website/docs/configuration/configuration.md
new file mode 100644
index 0000000000..979e92303f
--- /dev/null
+++ b/website/docs/configuration/configuration.md
@@ -0,0 +1,220 @@
+---
+title: Basic Configuration
+language: en
+sidebar_label: Basic Configuration
+pagination_label: Basic Configuration
+toc_min_heading_level: 2
+toc_max_heading_level: 6
+pagination_prev: null
+pagination_next: null
+keywords:
+    - Basic Configuration
+draft: true
+last_update:
+    date: 08/16/2022
+---
+
+This chapter will introduce some common configurations, the main contents are as follows:
+
+- [Common Configuration](#conf)
+- [Configuration Override](#override)
+- [JVM Configuration Setting](#jvm)
+- [Kylin Warm Start after Config Parameters Modified](#update)
+- [Recommended Configurations for Production](#min_prod)
+- [Spark-related Configuration](#spark)
+- [Spark Context Canary Configuration](#spark_canary)
+
+
+
+### <span id="conf">Common Configuration</span>
+
+The file **kylin.properties** occupies some of the most important configurations in Kylin. This section will give detailed explanations of some common properties.  
+
+| Properties                                                   | Description                                                  |
+| ------------------------------------------------------------ | ------------------------------------------------------------ |
+| server.port                                                  | This parameter specifies the port used by the Kylin service. The default is `7070`. |
+| server.address                                               | This parameter specifies the address used by the Kylin service. The default is `0.0.0.0`. |
+| kylin.env.ip-address                                         | When the network address of the node where the Kylin service is located has the ipv6 format, you can specify the ipv4 format through this configuration item. The default is `0.0.0.0` |
+| kylin.env.hdfs-working-dir                                   | Working path of Kylin instance on HDFS is specified by this property. The default value is `/kylin` on HDFS, with table name in metadata path as the sub-directory. For example, suppose the metadata path is `kylin_metadata@jdbc`, the HDFS default path should be `/kylin/kylin_metadata`. Please make sure the user running Kylin instance has read/write permissions on that directory. |
+| kylin.env.zookeeper-connect-string                           | This parameter specifies the address of ZooKeeper. There is no default value. **This parameter must be manually configured before starting Kylin instance**, otherwise Kylin will not start. |
+| kylin.metadata.url                                           | Kylin metadata path is specified by this property. The default value is `kylin_metadata` table in PostgreSQL while users can customize it to store metadata into any other table. When deploying multiple Kylin instances on a cluster, it's necessary to specify a unique path for each of them to guarantee the isolation among them. For example, the value of this property for Production instance could be `kylin_metadata_prod`, whi [...]
+| kylin.metadata.ops-cron                                      | This parameter specifies the timing task cron expression for timed backup metadata and garbage cleanup. The default value is `0 0 0 * * *`. |
+| kylin.metadata.audit-log.max-size                            | This parameter specifies the maximum number of rows in the audit-log. The default value is `500000`. |
+| kylin.metadata.compress.enabled                              | This parameter specifies whether to compress the contents of metadata and audit log. The default value is `true`. |
+| kylin.server.mode                                            | There are three modes in Kylin, `all` , `query` and `job`, and you can change it by modifying the property. The default value is `all`. For `query` mode, it can only serves queries. For`job` mode, it can run building jobs and execute metadata operations and cannot serve queries. `all` mode can handle both of them. |
+| kylin.web.timezone                                           | Time zone used for Kylin Rest service is specified by this property. The default value is the time zone of the local machine's system. You can change it according to the requirement of your application. For more details, please refer to https://en.wikipedia.org/wiki/List_of_tz_database_time_zones with the `TZ database name` column. |
+| kylin.web.export-allow-admin                                 | Whether to allow Admin user to export query results to a CSV file, the default is true. |
+| kylin.web.export-allow-other                                 | Whether to allow non-Admin user to export query results to a CSV file, the default is true. |
+| kylin.web.stack-trace.enabled                                | The error prompts whether the popup window displays details. The default value is false. Introduced in: 4.1.1 |
+| kylin.env                                                    | The usage of the Kylin instance is specified by this property. Optional values include `DEV`, `PROD` and `QA`, among them `PROD` is the default one. In `DEV` mode some developer functions are enabled. |
+| kylin.circuit-breaker.threshold.project                      | The maximum number of projects allowed to be created, the default value is `100` |
+| kylin.circuit-breaker.threshold.model                        | The maximum number of models allowed to be created in a single project, the default value is `100` |
+| kylin.query.force-limit                                      | Some BI tools always send query like `select * from fact_table`, but the process may stuck if the table size is extremely large. `LIMIT` clause helps in this case, and setting the value of this property to a positive integer make Kylin append `LIMIT` clause if there's no one. For instance the value is `1000`, query `select * from fact_table` will be transformed to `select * from fact_table limit 1000`. This configuration ca [...]
+| kylin.query.max-result-rows                                  | This property specifies the maximum number of rows that a query can return. This property applies on all ways of executing queries, including Web UI, Asynchronous Query, JDBC Driver and ODBC Driver. This configuration can be overridden at **project** level. For this property to take effect, it needs to be a positive integer less than or equal to 2147483647. The default value is 0, meaning no limit on the result. <br />Below [...]
+| kylin.query.init-sparder-async                               | The default value is `true`,which means that sparder will start asynchronously. Therefore, the Kylin web service and the query spark service will start separately; If set to `false`, the Kylin web service will be only available after the sparder service has been started. |
+| kylin.circuit-breaker.threshold.query-result-row-count       | This parameter is the maximum number of rows in the result set returned by the SQL query. The default is `2000000`. If the maximum number of rows is exceeded, the backend will throw an exception |
+| kylin.query.timeout-seconds                                  | Query timeout, in seconds. The default value is `300` seconds. If the query execution time exceeds 300 seconds, an error will be returned: `Query timeout after: 300s`. The minimum value is `30` seconds, and the configured value less than `30` seconds also takes effect according to `30` seconds. |
+| kylin.query.convert-create-table-to-with                     | Some BI software will send Create Table statement to create a permanent or temporary table in the data source. If this setting is set to `true`, the create table statement in the query will be converted to a with statement, when a later query utilizes the table that the query created in the previous step, the create table statement will be converted into a subquery, which can hit on an index if there is one to serve the query. |
+| kylin.query.replace-count-column-with-count-star             | The default value is `false` , which means that COUNT(column) measure will hit a model only after it has been set up in the model. If COUNT(column) measure is called in SQL while not having been set up in the model, this parameter value can be set to `true`, then the system will use COUNT(constant) measure to replace COUNT(column) measure approximately. COUNT(constant) measure takes all Null value into calculation. |
+| kylin.query.match-partial-inner-join-model                   | The default value is `false`, which means that the multi-table inner join model does not support the SQL which matches the inner join part partially. For example: Assume there are three tables A, B, and C . By default, the SQL `A inner join B` can only be answered by the model of A inner join B or the model of A inner join B left join C. The model of A inner join B inner join C cannot answer it. If this parameter is set to  [...]
+| kylin.query.match-partial-non-equi-join-model                | default to `false` ,currently if the model contains non-equi joins, the query can be matched with the model only if it contains all the non-equi joins defined in the model. If the config is set to `true`, the query is allowed to contain only part of the non-equi joins. e.g. model: A left join B non-equi left join C. When the config is set to `false`, only query with the complete join relations of the model can be matched wi [...]
+| kylin.query.use-tableindex-answer-non-raw-query              | The default value is `false`, which means that the aggregate query can only be answered with the aggregate index. If the parameter is set to `true`, the system allows the corresponding table index to be used to answer the aggregate query. |
+| kylin.query.layout.prefer-aggindex                           | The default value is `true`, which means that when index comparison selections are made for aggregate indexes and detail indexes, aggregate indexes are preferred. |
+| kylin.storage.columnar.spark-conf.spark.yarn.queue           | This property specifies the yarn queue which is used by spark query cluster. |
+| kylin.storage.columnar.spark-conf.spark.master               | Spark deployment is normally divided into **Spark on YARN**, **Spark on Mesos**, and **standalone**. We usually use Spark on YARN as default. This property enables Kylin to use standalone deployment, which could submit jobs to the specific spark-master-url. |
+| kylin.job.retry                                              | This property specifies the auto retry times for error jobs. The default value is 0, which means job will not auto retry when it's in error. Set a value greater than 0 to enable this property and it applies on every step within a job and it will be reset if that step is finished. |
+| kylin.job.retry-interval                                     | This property specifies the time interval to retry an error job and the default value is `30000` ms. This property is valid only when the job retry property is set to be 1 or above. |
+| kylin.job.max-concurrent-jobs                                | Kylin has a default concurrency limit of **20** for jobs in a single project. If there are already too many running jobs reaching the limit, the new submitted job will be added into job queue. Once one running job finishes, jobs in the queue will be scheduled using FIFO mechanism. |
+| kylin.scheduler.schedule-job-timeout-minute                  | Job execution timeout period. The default is `0` minute. This property is valid only when the it is set to be 1 or above. When the job execution exceeds the timeout period, it will change to the Error status. |
+| kylin.garbage.storage.cuboid-layout-survival-time-threshold  | This property specifies the threshold of invalid files on HDFS. When executing the command line tool to clean up the garbage, invalid files on HDFS that exceed this threshold will be cleaned up. The default value is `7d`, which means 7 days. Invalid files on HDFS include expired indexes, expired snapshots, expired dictionaries, etc. At the same time, indexes with lower cost performance will be cleaned up according to the in [...]
+| kylin.garbage.storage.executable-survival-time-threshold     | This property specifies the threshold for the expired job. The metadata of jobs that have exceeded this threshold and have been completed will be cleaned up. The default is `30d`, which means 30 days. |
+| kylin.storage.quota-in-giga-bytes                            | This property specifies the storage quota for each project. The default is `10240`, in gigabytes. |
+| kylin.influxdb.address                                       | This property specifies the address of InfluxDB. The default is `localhost:8086`. |
+| kylin.influxdb.username                                      | This property specifies the username of InfluxDB. The defaul is `root`. |
+| kylin.influxdb.password                                      | This property specifiess the password of InfluxDB. The default is `root`. |
+| kylin.metrics.influx-rpc-service-bind-address                | If the property `# bind-address = "127.0.0.1:8088"` was modified in the influxdb's configuration file, the value of this should be modified at the same time. This parameter will influence whether the diagnostic package can contain system metrics. |
+| kylin.security.user-password-encoder                         | Encryption algorithm of user password. The default is the BCrypt algorithm. If you want to use the Pbkdf2 algorithm, configure the value to <br />org.springframework.security.crypto.<br />password.Pbkdf2PasswordEncoder. <br />Note: Please do not change this configuration item arbitrarily, otherwise the user may not be able to log in |
+| kylin.web.session.secure-random-create-enabled               | The default is false. Use UUID to generate sessionId, and use JDK's SecureRandom random number to enable sessionId after MD5 encryption, please use the upgrade session table tool to upgrade the session table first otherwise the user will report an error when logging in. |
+| kylin.web.session.jdbc-encode-enabled                        | The default is false, sessionId is saved directly into the database without encryption, and sessionId will be encrypted and saved to the database after opening. Note: If the encryption function is configured, Please use the upgrade session table tool to upgrade the session table first, otherwise the user will report an error when logging in. |
+| kylin.server.cors.allow-all                                  | allow all corss origin requests(CORS). `true` for allowing any CORS request, `false` for refusing all CORS requests. Default to `false`. |
+| kylin.server.cors.allowed-origin                             | Specify a whitelist that allows cross-domain, default all domain names (*), use commas (,) to separate multiple domain names. This parameter is valid when `kylin.server.cors.allow-all`=true |
+| kylin.storage.columnar.spark-conf.spark.driver.host          | Configure the IP of the node where the Kylin is located |
+| kylin.engine.spark-conf.spark.driver.host                    | Configure the IP of the node where the Kylin is located |
+| kylin.engine.sanity-check-enabled                            | Configure Kylin whether to open Sanity Check during indexes building. The default value is `true` |
+| kylin.job.finished-notifier-url                              | When the building job is completed, the job status information will be sent to the url via HTTP request |
+| kylin.diag.obf.level                                         | The desensitization level of the diagnostic package. `RAW` means no desensitization, `OBF` means desensitization. Configuring `OBF` will desensitize sensitive information such as usernames and passwords in the `kylin.properties` file (please refer to the [Diagnosis Kit Tool](../operations/cli_tool/diagnosis.md) chapter), The default value is `OBF`. |
+| kylin.diag.task-timeout                                      | The subtask timeout time for the diagnostic package, whose default value is 3 minutes |
+| kylin.diag.task-timeout-black-list                           | Diagnostic package subtask timeout blacklist (the values are separated by commas). The subtasks in the blacklist will be skipped by the timeout settings and will run until it finished. The default value is `METADATA`, `LOG` <br />The optional value is as below: <br />METADATA, AUDIT_LOG, CLIENT, JSTACK, CONF, HADOOP_CONF, BIN, HADOOP_ENV, CATALOG_INFO, SYSTEM_METRICS, MONITOR_METRICS, SPARK_LOGS, SPARDER_HISTORY, KG_LOGS, L [...]
+| kylin.query.queryhistory.max-size                            | The total number of records in the query history of all projects, the default is 10000000 |
+| kylin.query.queryhistory.project-max-size                    | The number of records in the query history retained of a single project, the default is 1000000 |
+| kylin.query.queryhistory.survival-time-threshold             | The number of records in the query history retention time of all items, the default is 30d, which means 30 days, and other units are also supported: millisecond ms, microsecond us, minute m or min, hour h |
+| kylin.query.engine.spark-scheduler-mode                      | The scheduling strategy of query engine whose default is FAIR (Fair scheduler). The optional value is SJF (Smallest Job First scheduler). Other value is illegal and FAIR strategy will be used as the default strategy. |
+| kylin.query.realization.chooser.thread-core-num              | The number of core threads of the model matching thread pool in the query engine, the default is 5. It should be noted that when the number of core threads is set to less than 0, this thread pool will be unavailable, which will cause the entire query engine to be unavailable |
+| kylin.query.realization.chooser.thread-max-num               | The maximum number of threads in the model matching thread pool in the query engine, the default is 50. It should be noted that when the maximum number of threads is set to be less than or equal to 0 or less than the number of core threads, this thread pool will be unavailable, which will cause the entire query engine to be unavailable |
+| kylin.query.memory-limit-during-collect-mb                   | Limit the memory usage when getting query result in Kylin,the unit is megabytes, defaults to 5400mb |
+| kylin.query.auto-model-view-enabled                          | Automatically generate views for model. When the config is on, a view will be generated for each model and user can query on that view. The view will be named with {project_name}.{model_name} and contains all the tables defined in the model and all the columns referenced by the dimension and measure of the table. |
+| kylin.streaming.job.max-concurrent-jobs                      | Only for Kylin Realtime. Max tasks numbers used to ingesting realtime data and merging segments. |
+| kylin.streaming.kafka-conf.maxOffsetsPerTrigger              | Only for Kylin Realtime. Max records numbers of ingesting data at one time. -1 stands for no limitation. |
+| kylin.streaming.job-status-watch-enabled                     | Only for Kylin Realtime. Whether enabling tasks monitor, "true" stands for enabled and "false" stands for disabled. |
+| kylin.streaming.job-retry-enabled                            | Only for Kylin Realtime. Whether retrying after tasks failed, "true" stands for enabled and "false" stands for disabled. |
+| kylin.streaming.job-retry-interval                           | Only for Kylin Realtime. How many minutes the tasks will retry after failed. |
+| kylin.streaming.job-retry-max-interval                       | Only for Kylin Realtime. How many minutes the interval is when the tasks retry. |
+| kylin.engine.streaming-metrics-enabled                       | Only for Kylin Realtime. Whether enabling tasks metrics monitor, "true" stands for enabled and "false" stands for disabled. |
+| kylin.engine.streaming-segment-merge-interval                | Only for Kylin Realtime. How many seconds the interval is when merging segments. |
+| kylin.engine.streaming-segment-clean-interval                | Only for Kylin Realtime. How many hours the time is before which the segments will be cleaned after being merged. |
+| kylin.engine.streaming-segment-merge-ratio                   | Only for Kylin Realtime. The ratio, which the summary of the segments reach, will trigger merging segments. |
+| kylin.streaming.jobstats.survival-time-threshold             | Only for Kylin Realtime. How many days the realtime data statistics keeps. The default value is 7. |
+| kylin.streaming.spark-conf.spark.yarn.queue                  | Only for Kylin Realtime. The name of the yarn queue which realtime tasks exclusively use. |
+| kylin.streaming.spark-conf.spark.port.maxRetries             | Only for Kylin Realtime. The number to retry when the port is occupied. |
+| kylin.streaming.kafka.starting-offsets                       | Only for Kylin Realtime. The offset from where to consume Kafka message. The default value is 'earliest'. |
+| kylin.storage.columnar.spark-conf.spark.sql.view-truncate-enabled | Allow spark view to lose precision when loading tables and queries, the default value is false |
+| kylin.engine.spark-conf.spark.sql.view-truncate-enabled=true | Allow spark view to lose precision during construction, the default value is false |
+| kylin.source.hive.databases                                  | Configure the database list loaded by the data source. There is no default value. Both the system level and the project level can be configured. The priority of the project level is greater than the system level. |
+| kylin.query.spark-job-trace-enabled                          | Enable the job tracking log of spark. Record additional information about spark: Submission waiting time, execution waiting time, execution time and result acquisition time are displayed in the timeline of history. |
+| kylin.query.spark-job-trace-timeout-ms                       | Only for the job tracking log of spark. The longest waiting time of query history. If it exceeds, the job tracking log of spark will not be recorded. |
+| kylin.query.spark-job-trace-cache-max                        | Only for the job tracking log of spark. The maximum number of job tracking log caches in spark. The elimination strategy is LRU,TTL is kylin.query.spark-job-trace-timeout-ms + 20000 ms. |
+| kylin.query.spark-job-trace-parallel-max                     | Only for the job tracking log of spark. Spark's job tracks the concurrency of log processing, "Additional information about spark" will be lost if the concurrency exceeds this limit. |
+| kylin.query.replace-dynamic-params-enabled                   | Whether to enable dynamic parameter binding for JDBC query, the default value is false, which means it is not enabled. For more, please refer to [Kylin JDBC Driver](#TODO) |
+| kylin.second-storage.route-when-ch-fail                      | When tiered storage is enabled, whether the query matching the base table index is answered only by tiered storage. The default value is `0`, which means that when tiered storage cannot answer, it is answered by the base table index on HDFS, configured as `1` indicates that when the tiered storage cannot answer the query, the query will be pushdown, configured as `2`, indicates that the query fails when the tiered storage c [...]
+| kylin.second-storage.query-pushdown-limit                    | When query result sets are large, the performance of query using tiered storage may degrade. This parameter indicates whether to use the limit statement to limit whether the detailed query uses tiered storage, the default value is `0`, which means it is not enabled. If you need to enable it, you can configure a specific value. For example, if it is configured as `100000`, it means that the detailed query with the value afte [...]
+
+### <span id="override">Configuration Override</span>
+
+There are many configurations avaiable in the file `kylin.properties`. If you need to modify several of them, you can create a new file named `kylin.properties.override` in the `$KYLIN_HOME/conf` directory. Then you can put the customized config items into `kylin.properties.override`, 
+the items in this file will override the default value in `kylin.properties` at runtime. 
+It is easy to upgrade. In the system upgrade, put the `kylin.properties.override` together with new version `kylin.properties`. 
+
+
+
+### <span id="jvm">JVM Configuration Setting</span>
+
+In `$KYLIN_HOME/conf/setenv.sh.template`, the sample setting for `KYLIN_JVM_SETTINGS` environment variable is given. The default setting uses relatively little memory. You can always adjust it according to your own environment. The default configuration is: 
+
+```properties
+export KYLIN_JVM_SETTINGS="-server -Xms1g -Xmx8g -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:G1HeapRegionSize=16m -XX:+PrintFlagsFinal -XX:+PrintReferenceGC -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -XX:+PrintAdaptiveSizePolicy -XX:+UnlockDiagnosticVMOptions -XX:+G1SummarizeConcMark  -Xloggc:$KYLIN_HOME/logs/kylin.gc.$$  -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=64M -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${KYLIN_HOME}/logs"
+```
+
+If you need to change it, you need to make a copy, name it `setenv.sh` and put it in the` $KYLIN_HOME/conf/ `folder, then modify the configuration in it. The parameter "-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${KYLIN_HOME}/logs" would generate logs when OutOfMemory happened. The default log file path is ${KYLIN_HOME}/logs, you can modify it if needed.
+
+```bash
+export JAVA_VM_XMS=1g        #The initial memory of the JVM when kylin starts.
+export JAVA_VM_XMX=8g        #The maximum memory of the JVM when kylin starts.
+export JAVA_VM_TOOL_XMS=1g   #The initial memory of the JVM when the tool class is started.
+export JAVA_VM_TOOL_XMX=8g   #The maximum memory of the JVM when the tool class is started.
+```
+
+If the value of JAVA_VM_TOOL_XMS is not set, then the value of JAVA_VM_TOOL_XMS will use the value of JAVA_VM_XMS. Similarly, when the value of JAVA_VM_TOOL_XMX is not set, JAVA_VM_TOOL_XMX will use the value of JAVA_VM_XMX.
+
+Note: 1. Some special tool classes, such as guardian.sh, check-2100-hive-acl.sh, get-properties.sh, are not affected by the JAVA_VM_TOOL_XMS, JAVA_VM_TOOL_XMX configuration.
+      2. The two configuration items JAVA_VM_TOOL_XMS and JAVA_VM_TOOL_XMX have been added and take effect. You need to configure them manually when upgrading the old version.
+
+### <span id="update">Kylin Warm Start after Config Parameters Modified</span>
+
+The parameters defined in `kylin.properties` (global) will be loaded by default when Kylin is started. Once modified, restart Kylin for the changes to take effect. 
+
+
+
+### <span id="min_prod">Recommended Configurations for Production</span>
+
+Under `$KYLIN_HOME/conf/`, there are two sets of configurations ready for use: `production` and `minimal`. The former is the default configuration, which is recommended for production environment. The latter uses minimal resource, and is suitable for sandbox or other single node with limited resources. You can switch to `minimal` configurations if your environment has only limited resource. To switch to `minimal`, please uncomment the following configuration items in `$KYLIN_HOME/conf/ky [...]
+
+```properties
+# KAP provides two configuration profiles: minimal and production(by default).
+# To switch to minimal: uncomment the properties
+# kylin.storage.columnar.spark-conf.spark.driver.memory=512m
+# kylin.storage.columnar.spark-conf.spark.executor.memory=512m
+# kylin.storage.columnar.spark-conf.spark.executor.memoryOverhead=512m
+# kylin.storage.columnar.spark-conf.spark.executor.extraJavaOptions=-Dhdp.version=current -Dlog4j.configuration=spark-executor-log4j.properties -Dlog4j.debug -Dkylin.hdfs.working.dir=${kylin.env.hdfs-working-dir} -Dkylin.metadata.identifier=${kylin.metadata.url.identifier} -    Dkylin.spark.category=sparder -Dkylin.spark.project=${job.project} -XX:MaxDirectMemorySize=512M
+# kylin.storage.columnar.spark-conf.spark.yarn.am.memory=512m
+# kylin.storage.columnar.spark-conf.spark.executor.cores=1
+# kylin.storage.columnar.spark-conf.spark.executor.instances=1
+```
+
+
+### <span id="spark"> Spark-related Configuration</span>
+
+For a detailed explanation of the spark configuration, please refer to the official documentation, [Spark Configuration](https://spark.apache.org/docs/latest/configuration.html). The following are some configurations related to the query and build tasks in Kylin.
+
+The parameters start with ```kylin.storage.columnar.spark-conf```, the subsequent part is the spark parameter used by the query task. The default parameters in the recommended configuration file `kylin.properties` are as follows:
+
+| Properties Name                                                  | Min     | Prod   |
+| ---------------------------------------------------------------- | ------- | ------ |
+| kylin.storage.columnar.spark-conf.spark.driver.memory              | 512m    | 4096m  |
+| kylin.storage.columnar.spark-conf.spark.executor.memory            | 512m    | 12288m |
+| kylin.storage.columnar.spark-conf.spark.executor.memoryOverhead    | 512m    | 3072m  |
+| kylin.storage.columnar.spark-conf.spark.yarn.am.memory             | 512m    | 1024m  |
+| kylin.storage.columnar.spark-conf.spark.executor.cores             | 1       | 5      |
+| kylin.storage.columnar.spark-conf.spark.executor.instances         | 1       | 4      |
+
+Kylin provides customized Spark configurations. The configurations will have an affect on how Spark Execution Plan is generated. The default parameters in the recommended configuration file `kylin.properties` are as follows:
+
+| Properties Name                                                  | Default     | Description   |
+| ---------------------------------------------------------------- | ------- | ------ |
+| kylin.storage.columnar.spark-conf.spark.sql.cartesianPartitionNumThreshold |  -1     | Threshold for Cartesian Partition number in Spark Execution Plan. Query will be terminated if Cartesian Partition number reaches or exceeds the threshold. If this value is set to empty or negative, the threshold will be set to spark.executor.cores * spark.executor.instances * 100. |
+
+The parameters start with ```kylin.engine.spark-conf```, the subsequent part is the spark parameter used for the build task. The default parameters are not configured and they will be automatically adjusted and configured according to the cluster environment during the build task. If you configure these parameters in `kylin.properties`, Kylin will use the configuration in `kylin.properties` first.
+
+```properties
+kylin.engine.spark-conf.spark.executor.instances
+kylin.engine.spark-conf.spark.executor.cores
+kylin.engine.spark-conf.spark.executor.memory
+kylin.engine.spark-conf.spark.executor.memoryOverhead
+kylin.engine.spark-conf.spark.sql.shuffle.partitions
+kylin.engine.spark-conf.spark.driver.memory
+kylin.engine.spark-conf.spark.driver.memoryOverhead
+kylin.engine.spark-conf.spark.driver.cores
+```
+
+If you need to enable Spark RPC communication encryption, you can refer to the [Spark RPC Communication Encryption](spark_rpc_encryption.md) chapter.
+
+
+### <span id="spark_canary">Spark Context Canary Configuration</span>
+Sparder Canary is a component used to monitor the running status of Sparder. It will periodically check whether the current Sparder is running normally. If the running status is abnormal, such as Sparder unexpectedly exits or becomes unresponsive, Sparder Canary will create a new Sparder instance.
+
+| Properties                                                      | Description                                                         |
+| ----------------------------------------------------------- | ------------------------------------------------------------ |
+| kylin.canary.sqlcontext-enabled                             | Whether to enable the Sparder Canary function, the default is `false`                   |
+| kylin.canary.sqlcontext-threshold-to-restart-spark          | When the number of abnormal detection times exceeds this threshold, restart spark context                   |
+| kylin.canary.sqlcontext-period-min                          | Check interval, default is `3` minutes                                 |
+| kylin.canary.sqlcontext-error-response-ms                   | Single detection timeout time, the default is `3` minutes, if single detection timeout means no response from spark context                                   |
+| kylin.canary.sqlcontext-type                                | The detection method, the default is `file`, this method confirms whether the spark context is still running normally by writing a parquet file to the directory configured by `kylin.env.hdfs-working-dir` . It can also be configured as `count` to confirm whether the spark context is running normally by performing an accumulation operation|                                 |
diff --git a/website/docs/configuration/hadoop_queue_config.md b/website/docs/configuration/hadoop_queue_config.md
new file mode 100644
index 0000000000..b252ec2350
--- /dev/null
+++ b/website/docs/configuration/hadoop_queue_config.md
@@ -0,0 +1,53 @@
+---
+title: Hadoop Queue Configuration
+language: en
+sidebar_label: Hadoop Queue Configuration
+pagination_label: Hadoop Queue Configuration
+toc_min_heading_level: 2
+toc_max_heading_level: 6
+pagination_prev: null
+pagination_next: null
+keywords:
+    - hadoop queue configuration
+draft: true
+last_update:
+    date: 08/16/2022
+---
+
+
+## Hadoop Queue Configuration
+
+In the case of a multiple-tenants environment, to securely share a large cluster, each tenant needs to have the allocated resources in a timely manner under the constraints of the allocated capacities. To achieve computing resources allocation and separation, each Kylin instance or project can be configured to use a different YARN queue.  
+
+
+###<span id="instance">Instance-level YARN Queue Setting</span>
+
+To achieve this, first create a new YARN capacity scheduler queue. By default, the job sent out by Kylin will go to the default YARN queue.
+
+In the screenshot below, a new YARN queue `learn_kylin` has been set up.
+
+![](images/hadoop_queue/1.png)
+
+Then you may modify `kylin.properties` to configure the YARN queue used in Kylin for building or querying (you will need to change the YOUR_QUEUE_NAME to your queue name).
+
+```shell
+Building configuration: kylin.engine.spark-conf.spark.yarn.queue=YOUR_QUEUE_NAME
+Querying configuration: kylin.storage.columnar.spark-conf.spark.yarn.queue=YOUR_QUEUE_NAME
+```
+
+![](images/hadoop_queue/2.png)
+
+In this example, the queue for querying has been changed to `learn_kylin` (as shown above). You can test this change by triggering a querying job.
+
+Now, go to YARN Resource Manager on the cluster. You will see this job has been submitted under queue `learn_kylin`. 
+
+![](images/hadoop_queue/3.png)
+
+
+Similarly, you may set up YARN queue for other Kylin instances to achieve computing resource separation.
+
+
+
+###<span id="project">Project-level YARN Queue Setting</span>
+
+The system admin user can set the YARN Application Queue of the project in **Setting -> Advanced Settings -> YARN Application Queue**, please refer to the [Project Settings](../operations/project-maintenance/project_settings.md) for more information.
diff --git a/website/docs/configuration/https.md b/website/docs/configuration/https.md
new file mode 100644
index 0000000000..dd41340f55
--- /dev/null
+++ b/website/docs/configuration/https.md
@@ -0,0 +1,74 @@
+---
+title: HTTPS Configuration
+language: en
+sidebar_label: HTTPS Configuration
+pagination_label: HTTPS Configuration
+toc_min_heading_level: 2
+toc_max_heading_level: 6
+pagination_prev: null
+pagination_next: null
+keywords:
+    - https configuration
+draft: false
+last_update:
+    date: 08/16/2022
+---
+
+Kylin 5.x provides a HTTPS connection. It is disabled by default. If you need to enable it, please follow the steps below.
+
+### Use Default Certificate
+
+Kylin ships a HTTPS certificate. If you want to enable this function with the default certificate, you just need to add or modify the following properties in `$KYLIN_HOME/conf/kylin.properties`.
+
+```properties
+# enable HTTPS connection
+kylin.server.https.enable=true
+# port number
+kylin.server.https.port=7443
+```
+
+The default port is `7443`, please check the port has not been taken by other processes. You can run the command below to check. If the port is in use, please use an available port number.
+
+```
+netstat -tlpn | grep 7443
+```
+
+After modifying the above properties, please restart Kylin for the changes to take effect. Assuming you set the https port to 7443, the access url would be `https://localhost:7443/kylin/index.html`.
+
+**Note:**  Because the certificate is generated automatically, you may see a browser notice about certificate installation when you access the url. Please ignore it.
+
+### User Other Certificates
+
+Kylin also supports third-party certificates, you just need to provide the certificate file and make the following changes in the `$KYLIN_HOME/conf/kylin.properties` file:
+
+```properties
+# enable HTTPS connection
+kylin.server.https.enable=true
+# port number
+kylin.server.https.port=7443
+# ormat of keystore, Tomcat 8 supports JKS, PKCS11 or PKCS12 format
+kylin.server.https.keystore-type=JKS
+# location of your certificate file
+kylin.server.https.keystore-file=${KYLIN_HOME}/server/.keystore
+# password
+kylin.server.https.keystore-password=changeit
+# alias name for keystore entry, which is optional. Please skip it if you don't need.
+kylin.server.https.key-alias=tomcat
+```
+
+### Encrypt kylin.server.https.keystore-password
+If you need to encrypt `kylin.server.https.keystore-password`, you can do it like this:
+
+i.run following commands in `${KYLIN_HOME}`, it will print encrypted password
+```shell
+./bin/kylin.sh io.kyligence.kap.tool.general.CryptTool -e AES -s <password>
+```
+
+ii.config `kylin.server.https.keystore-password` like this
+```properties
+kylin.server.https.keystore-password=ENC('${encrypted_password}')
+```
+
+After modifying the properties above, please restart Kylin for the changes to take effect. Assuming you set the https port to 7443, the access url would be `https://localhost:7443/kylin/index.html`.
+
+> **Note**: If you are not using the default SSL certificate and put your certificate under `$KYLIN_HOME`. Please backup your certificate before upgrading your instance, and specify the file path in the new Kylin configuration file. We recommend putting the certificate under an independent path.
diff --git a/website/docs/configuration/images/hadoop_queue/1.png b/website/docs/configuration/images/hadoop_queue/1.png
new file mode 100644
index 0000000000..96562495aa
Binary files /dev/null and b/website/docs/configuration/images/hadoop_queue/1.png differ
diff --git a/website/docs/configuration/images/hadoop_queue/2.png b/website/docs/configuration/images/hadoop_queue/2.png
new file mode 100644
index 0000000000..42dad34da8
Binary files /dev/null and b/website/docs/configuration/images/hadoop_queue/2.png differ
diff --git a/website/docs/configuration/images/hadoop_queue/3.png b/website/docs/configuration/images/hadoop_queue/3.png
new file mode 100644
index 0000000000..a63b446fb2
Binary files /dev/null and b/website/docs/configuration/images/hadoop_queue/3.png differ
diff --git a/website/docs/configuration/images/spark_executor_max.jpg b/website/docs/configuration/images/spark_executor_max.jpg
new file mode 100644
index 0000000000..96adbf72f3
Binary files /dev/null and b/website/docs/configuration/images/spark_executor_max.jpg differ
diff --git a/website/docs/configuration/images/spark_executor_min.jpg b/website/docs/configuration/images/spark_executor_min.jpg
new file mode 100644
index 0000000000..4544a426f0
Binary files /dev/null and b/website/docs/configuration/images/spark_executor_min.jpg differ
diff --git a/website/docs/configuration/images/spark_executor_original.jpg b/website/docs/configuration/images/spark_executor_original.jpg
new file mode 100644
index 0000000000..5b0e783873
Binary files /dev/null and b/website/docs/configuration/images/spark_executor_original.jpg differ
diff --git a/website/docs/configuration/intro.md b/website/docs/configuration/intro.md
index 0cca415b79..ff4769bade 100644
--- a/website/docs/configuration/intro.md
+++ b/website/docs/configuration/intro.md
@@ -1,13 +1,34 @@
 ---
-sidebar_position: 1
+title: System Configuration
+language: en
+sidebar_label: System Configuration
+pagination_label: System Configuration
+toc_min_heading_level: 2
+toc_max_heading_level: 6
+pagination_prev: null
+pagination_next: null
+keywords:
+    - system configuration
+draft: false
+last_update:
+    date: 08/16/2022
 ---
 
-# Tutorial Intro
+After deploying Kylin on your cluster, configure Kylin so that it can interact with Apache Hadoop and Apache Hive. You can also optimize the performance of Kylin by configuring to your own environment.
 
-Let's discover ** Kylin 5.0 in than 15 minutes **.
+This chapter introduces some configurations for Kylin.
 
-## Basic Configuration
+### Kylin Configuration File List
 
-| asda | asdas|
-|--|--|
-|sdasda|dasda|
+| Component            | File                        | Description                                                  |
+| -------------------- | --------------------------- | ------------------------------------------------------------ |
+| Kylin                | conf/kylin.properties                   | This is the global configuration file, with all configuration properties about Kylin in it. Details will be discussed in the subsequent chapter [Basic Configuration](configuration.md). |
+| Hadoop               | hadoop_conf/core-site.xml               | Global configuration file used by Hadoop, which defines system-level parameters such as HDFS URLs and Hadoop temporary directories, etc. |
+| Hadoop               | hadoop_conf/hdfs-site.xml               | HDFS configuration file, which defines HDFS parameters such as the storage location of NameNode and DataNode and the number of file copies, etc. |
+| Hadoop               | hadoop_conf/yarn-site.xml               | Yarn configuration file,which defines Hadoop cluster resource management system parameters, such as ResourceManager, NodeManager communication port and web monitoring port, etc. |
+| Hadoop               | hadoop_conf/mapred-site.xml             | Map Reduce configuration file used in Hadoop,which defines the default number of reduce tasks, the default upper and lower limits of the memory that the task can use, etc. |
+| Hive                 | hadoop_conf/hive-site.xml               | Hive configuration file, which defines Hive parameters such as hive data storage directory and database address, etc. |
+
+>Note:
+>
+>+ Unless otherwise specified, the configuration file `kylin.properties` mentioned in this manual refers to the corresponding configuration file in the list.
diff --git a/website/docs/configuration/log_rotate.md b/website/docs/configuration/log_rotate.md
new file mode 100644
index 0000000000..cd163c2bd8
--- /dev/null
+++ b/website/docs/configuration/log_rotate.md
@@ -0,0 +1,36 @@
+---
+title: Log Rotate Configuration
+language: en
+sidebar_label: Log Rotate Configuration
+pagination_label: Log Rotate Configuration
+toc_min_heading_level: 2
+toc_max_heading_level: 6
+pagination_prev: null
+pagination_next: null
+keywords:
+    - log rotate configuration
+draft: false
+last_update:
+    date: 08/16/2022
+---
+
+The three log files, `shell.stderr`, `shell.stdout`, and `kylin.out` under the log directory `$KYLIN_HOME/logs/` of Kylin, trigger log rolling checks regularly by default.
+
+> **Caution:** Any change of configurations below requires a restart to take effect. 
+
+| Properties                               | Descript                        | Default              | Options |
+|------------------------------------------| --------------------------------|----------------------|---------|
+| kylin.env.max-keep-log-file-number       | Maximum number of files to keep for log rotate | 10                   |         |
+| kylin.env.max-keep-log-file-threshold-mb | Log files are rotated when they grow bigger than this  | 256,whose unit is MB |         |
+| kylin.env.log-rotate-check-cron          | The `crontab` time configuration                         | 33 * * * *           |         |
+| kylin.env.log-rotate-enabled             | Whether to enable `crontab` to check log rotate               | true                 | false   |
+
+### Default Regularly Rotate strategy
+
+To use the default regularly rotate strategy, you need to set the parameter `kylin.env.log-rotate-enabled=true` (default), and also need to ensure that users running Kylin can use the `logrotate` and `crontab` commands to add a scheduled task.
+
+When using the rotate strategy, Kylin will add or update `crontab` tasks according to the `kylin.env.log-rotate-check-cron` parameter on startup or restart, and remove the added `crontab` tasks on exit.
+
+### Known Limitations
+- If the default regularly rotate policy conditions are not met, Kylin will only trigger the log rolling check at startup. Every time the `kylin.sh start` command is executed, according to the parameter `kylin.env.max-keep-log-file-number` and `kylin.env.max-keep-log-file-threshold-mb` for log rolling. If Kylin runs for a long time, the log file may be too large.
+- When using `crontab` to control log rotation, the rolling operation is implemented by the `logrotate` command. If the log file is too large, the log may be lost during the rotation.
diff --git a/website/docs/configuration/query_cache.md b/website/docs/configuration/query_cache.md
new file mode 100644
index 0000000000..27e09396f1
--- /dev/null
+++ b/website/docs/configuration/query_cache.md
@@ -0,0 +1,72 @@
+---
+title: Query Cache Settings
+language: en
+sidebar_label: Query Cache Settings
+pagination_label: Query Cache Settings
+toc_min_heading_level: 2
+toc_max_heading_level: 6
+pagination_prev: null
+pagination_next: null
+keywords:
+    - query cache settings
+draft: false
+last_update:
+    date: 08/16/2022
+---
+
+By default, Kylin enables query cache in each process to improve query performance.
+
+> **Note**: In order to ensure data consistency, query cache is not available in pushdown.
+
+
+###Use Default Cache
+
+Kylin enables query cache by default at each node/process level. The configuration details are described  below. You can change them in `$KYLIN_HOME/conf/kylin.properties` under Kylin installation directory.
+
+> **Caution:** Must restart for any configurations to take effect. 
+
+| Properties                | Description                                                  | Default | Options |
+| ------------------------- | ------------------------------------------------------------ | ------- | ------- |
+| kylin.query.cache-enabled | Whether to enable query cache. When this property is enabled, the following properties take effect. | true    | false   |
+
+
+### Query Cache Criteria
+Kylin doesn't cache the query result of all SQL queries by default (because the memory resource might be limited). It only caches slow queries and the result size is appropriate. The criterion are configured by the following parameters. 
+The query that satisfies any one of the No.1, No.2, No.3 configuration and also satisfies No.4 configuration will be cached.
+
+|No |  Properties                         | Description                                                  | Default        | Default unit |
+| ----| ---------------------------------- | ------------------------------------------------------------ | -------------- | ------- |
+| 1|kylin.query.cache-threshold-duration          | Queries whose duration is above this value | 2000           | millisecond |
+| 2|kylin.query.cache-threshold-scan-count          | Queries whose scan row count is above this value | 10240           | row |
+| 3|kylin.query.cache-threshold-scan-bytes          | Queries whose scan bytes is above this value | 1048576           | byte |
+| 4|kylin.query.large-query-threshold          | Queries whose result set size is below this value  | 1000000           | cell |
+
+### Ehcache Cache Configuration
+
+By default, Kylin uses Ehcache as the query cache. You can configure Ehcache to control the query cache size and policy. You can replace the default query cache configuration by modifying the following configuration item. For more Ehcache configuration items, please refer to the official website [ehcache documentation](https://www.ehcache.org/generated/2.9.0/html/ehc-all/#page/Ehcache_Documentation_Set%2Fehcache_all.1.017.html%23).
+
+| Properties | Description | Default |
+| ----- | ---- | ----- |
+| kylin.cache.config | The path to ehcache.xml. To replace the default query cache configuration file, you can create a new file `xml`, for exemple `ekcache2.xml`, in the directory  `${KYLIN_HOME}/conf/`, and modify the value of this configuration item: `file://${KYLIN_HOME}/conf/ehcache2.xml` | classpath:ehcache.xml |
+
+
+### Redis Cache Configuration
+
+The default query cache cannot be shared among different nodes or processes because it is process level. Because of this,  when subsequent and same queries are routed to different Kylin nodes, the cache of the first query result cannot be used in cluster deployment mode. Therefore, you can configure Redis cluster as distributed cache, which can be shared across all Kylin nodes. The detail configurations are described as below:
+(Redis 5.0 or 5.0.5 is recommended.)
+
+| Properties                         | Description                                                  | Default        | Options |
+| ---------------------------------- | ------------------------------------------------------------ | -------------- | ------- |
+| kylin.cache.redis.enabled          | Whether to enable query cache by using Redis cluster.         | false          | true    |
+| kylin.cache.redis.cluster-enabled  | Whether to enable Redis cluster mode.                         | false          | true    |
+| kylin.cache.redis.hosts             | Redis host. If you need to connect to a Redis cluster, please use comma to split the hosts, such as, kylin.cache.redis.hosts=localhost:6379,localhost:6380 | localhost:6379 |         |
+| kylin.cache.redis.expire-time-unit | Time unit for cache period. EX means seconds and PX means milliseconds. | EX             | PX      |
+| kylin.cache.redis.expire-time      | Valid cache period.                                           | 86400          |         |
+| kylin.cache.redis.reconnection.enabled | Whether to enable redis reconnection when cache degrades to ehcache | true | false |
+| kylin.cache.redis.reconnection.interval | Automatic reconnection interval, in minutes | 60 | |
+| kylin.cache.redis.password | Redis password | | |
+
+#### Limitation
+Due to metadata inconsistency between Query nodes and All/Job nodes, the redis cache swith `kylin.cache.redis.enabled=true` should be configured along with `kylin.server.store-type=jdbc`.
+
+> **Caution:** Redis passwords can be encrypted, please refer to: [Use MySQL as Metastore](../deployment/rdbms_metastore/mysql/mysql_metastore.md)
diff --git a/website/docs/configuration/spark_dynamic_allocation.md b/website/docs/configuration/spark_dynamic_allocation.md
new file mode 100644
index 0000000000..c1f4d2c2eb
--- /dev/null
+++ b/website/docs/configuration/spark_dynamic_allocation.md
@@ -0,0 +1,93 @@
+---
+title: Spark Dynamic Allocation
+language: en
+sidebar_label: Spark Dynamic Allocation
+pagination_label: Spark Dynamic Allocation
+toc_min_heading_level: 2
+toc_max_heading_level: 6
+pagination_prev: null
+pagination_next: null
+keywords:
+      - spark dynamic allocation
+draft: false
+last_update:
+      date: 08/16/2022
+---
+
+In Spark, the resource unit is executor, something like containers in YARN. Under Spark on YARN, we use num-executors to specify the executor numbers. While executor-memory and executor-cores will limit the memory and virtual CPU cores each executor consumes.
+
+Take Kylin as sample, if user choose fixed resource allocation strategy and set num-executor to 3. Then each Kylin instance will always keep 4 YARN containers(1 for application master and 3 for executor). These 4 containers will be occupied until user log out. While we use Dynamic Resource Allocation, Spark will dynamically increase and reduce executors according to Kylin query engine workload which will dramatically save resource.
+
+Please refer to official document for details of Spark Dynamic Allocation:
+
+http://spark.apache.org/docs/2.4.1/job-scheduling.html#dynamic-resource-allocation
+
+### Spark Dynamic Allocation Config
+
+#### Overview
+There are two parts we need to configure for Spark Dynamic Allocation:
+1.  Resource Management for cluster, it will be diversed due to different resource manager(YARN、Mesos、Standalone).
+2.  Configure file spark-default.conf, this one is irrespective of the environment.
+
+#### Resource Manager Configuration
+##### CDH
+
+1. Log into Cloudera Manager, choose YARN configuration and find NodeManager Advanced Configuration Snippet(Safety Valve) for yarn-site.xml, config as following:
+
+```
+<property>
+ <name>yarn.nodemanager.aux-services</name>
+ <value>mapreduce_shuffle,spark_shuffle</value>
+</property>
+<property>
+ <name>yarn.nodemanager.aux-services.spark_shuffle.class</name>
+ <value>org.apache.spark.network.yarn.YarnShuffleService</value>
+</property>
+```
+
+2. Copy the `$KYLIN_HOME/spark/yarn/spark-<version>-yarn-shuffle.jar` and put it under path /opt/lib/kylin/ of Hadoop node.
+
+   Find NodeManager Environment Advanced Configuration Snippet  (Safety Valve) in Cloudera Manager, Config:
+
+   `YARN_USER_CLASSPATH=/opt/lib/kylin/*`
+
+   Then yarn-shuffle.jar will be added into the startup classpath of Node Manager.
+
+3. Save the config and restart
+   In Cloudera Manager, choose actions --> deploy client configuration, save and restart all services.
+
+##### HDP
+1. Log into Ambari management page, choose Yarn -> Configs -> Advanced, find following configurations via filter and update: 
+   `yarn.nodemanager.aux-services.spark_shuffle.class=org.apache.spark.network.yarn.YarnShuffleService`
+
+2. Save the config and restart all services.
+
+
+#### Kylin configuration
+To enable the Spark Dynamic Allocaiton, we will need to add some configuration items in Spark config files. Since we can override spark configuraion in kylin.properties, we will add following configuration items in it:
+
+`kylin.storage.columnar.spark-conf.spark.dynamicAllocation.enabled=true`
+
+`kylin.storage.columnar.spark-conf.spark.dynamicAllocation.maxExecutors=5`
+
+`kylin.storage.columnar.spark-conf.spark.dynamicAllocation.minExecutors=1`
+
+`kylin.storage.columnar.spark-conf.spark.shuffle.service.enabled=true`
+
+`kylin.storage.columnar.spark-conf.spark.dynamicAllocation.initialExecutors=3`
+
+More configurations please refer to: 
+http://spark.apache.org/docs/latest/configuration.html#dynamic-allocation
+
+### Spark Dynamic Allocation Verification
+After above configurations, start Kylin and monitor current executor numbers in Spark Executor page.
+
+![](images/spark_executor_original.jpg)
+
+The executors will keep idle, so they will be reduced after a while until reaching the minimum number in configuration item.
+
+![](images/spark_executor_min.jpg)
+
+Submit multi-thread queries to Kylin via Restful API. The executors will be increase but never exceed the maximum number in configuration item. 
+
+![](images/spark_executor_max.jpg)
diff --git a/website/docs/configuration/spark_rpc_encryption.md b/website/docs/configuration/spark_rpc_encryption.md
new file mode 100644
index 0000000000..0e696b829e
--- /dev/null
+++ b/website/docs/configuration/spark_rpc_encryption.md
@@ -0,0 +1,43 @@
+---
+title: Spark RPC Communication Encryption
+language: en
+sidebar_label: Spark RPC Communication Encryption
+pagination_label: Spark RPC Communication Encryption
+toc_min_heading_level: 2
+toc_max_heading_level: 6
+pagination_prev: null
+pagination_next: null
+keywords:
+    - spark rpc communication encryption
+draft: false
+last_update:
+    date: 08/16/2022
+---
+
+Kylin supports the configuration of communication encryption between Spark nodes, which can improve the security of internal communication and prevent specific security attacks.
+
+For more details about Spark RPC communication encryption, please see [Spark Security](http://spark.apache.org/docs/1.6.2/job-scheduling.html#dynamic-resource-allocation).
+
+This function is disabled by default. If you need to enable it, please refer to the following method for configuration.
+
+### Spark RPC Communication Encryption Configuration
+1、1. Please refer to [Spark Security](http://spark.apache.org/docs/1.6.2/job-scheduling.html#dynamic-resource-allocation) to ensure that RPC communication encryption is enabled in the Spark cluster.
+2、Add the following configurations in `$KYLIN_HOME/conf/kylin.properties`, to To enable Kylin nodes and Spark cluster communication encryption
+```
+### spark rpc encryption for build jobs
+kylin.storage.columnar.spark-conf.spark.authenticate=true
+kylin.storage.columnar.spark-conf.spark.authenticate.secret=kylin
+kylin.storage.columnar.spark-conf.spark.network.crypto.enabled=true
+kylin.storage.columnar.spark-conf.spark.network.crypto.keyLength=256
+kylin.storage.columnar.spark-conf.spark.network.crypto.keyFactoryAlgorithm=PBKDF2WithHmacSHA256
+
+### spark rpc encryption for query jobs
+kylin.engine.spark-conf.spark.authenticate=true
+kylin.engine.spark-conf.spark.authenticate.secret=kylin
+kylin.engine.spark-conf.spark.network.crypto.enabled=true
+kylin.engine.spark-conf.spark.network.crypto.keyLength=256
+kylin.engine.spark-conf.spark.network.crypto.keyFactoryAlgorithm=PBKDF2WithHmacSHA256
+```
+
+### Spark RPC Communication Encryption Cerification
+After the configuration is complete, start Kylin and verify that the query and build tasks can be executed normally.


[kylin] 06/07: KYLIN-5221 add search feature

Posted by xx...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

xxyu pushed a commit to branch doc5.0
in repository https://gitbox.apache.org/repos/asf/kylin.git

commit 04f81da701827a8d26aa185b323e0d299d09bb41
Author: Mukvin <bo...@163.com>
AuthorDate: Tue Aug 16 19:02:10 2022 +0800

    KYLIN-5221 add search feature
---
 .../operations/access-control/user_management.md   |  2 +-
 .../operations/monitoring/influxdb/influxdb.md     |  2 +-
 .../system-operation/diagnosis/diagnosis.md        |  2 +-
 .../operations/system-operation/junk_file_clean.md |  2 +-
 .../docs/restapi/model_api/model_management_api.md |  8 +--
 website/docs/restapi/project_api.md                |  2 +-
 website/docusaurus.config.js                       | 77 +++++++++++++++++++++-
 website/package.json                               |  1 +
 8 files changed, 86 insertions(+), 10 deletions(-)

diff --git a/website/docs/operations/access-control/user_management.md b/website/docs/operations/access-control/user_management.md
index 0b7a4fdfd6..f553776846 100644
--- a/website/docs/operations/access-control/user_management.md
+++ b/website/docs/operations/access-control/user_management.md
@@ -67,7 +67,7 @@ $KYLIN_HOME/bin/admin-tool.sh admin-password-reset
 
 When the parameter `kylin.metadata.random-admin-password.enabled=false`, it will not regenerate a random password but the fixed password `KYLIN`. If the parameter `kylin.metadata.random-admin-password.enabled` is set from `false` to `true` , it will regenerate a random password and display it on the console after all the Kylin nodes restarted.
 
-**Caution** When run this command, Kylin will enter maintenance mode. If the command is interrupted by force, you may need to exit maintain mode manually. Refer to [maintenance_mode](../system-operation/maintenance_mode.en.md).
+**Caution** When run this command, Kylin will enter maintenance mode. If the command is interrupted by force, you may need to exit maintain mode manually. Refer to [maintenance_mode](../system-operation/maintenance_mode.md).
 
 
 ### <span id="pwd">Reset password for Non-admin</span>
diff --git a/website/docs/operations/monitoring/influxdb/influxdb.md b/website/docs/operations/monitoring/influxdb/influxdb.md
index efc00a2782..dfaa38a3c0 100644
--- a/website/docs/operations/monitoring/influxdb/influxdb.md
+++ b/website/docs/operations/monitoring/influxdb/influxdb.md
@@ -196,7 +196,7 @@ To ensure the connectivity of InfluxDB service, it is recommended that you perfo
   ```
   If the query fails and the message `authorization failed` is displayed, please confirm whether the user has sufficient permissions.
 
-For more information about InfluxDB connectivity, please refer to the [InfluxDB Maintenance](../../Operation-and-Maintenance-Guide/influxdb/influxdb_maintenance.en.md) section.
+For more information about InfluxDB connectivity, please refer to the [InfluxDB Maintenance](influxdb_maintenance.md) section.
 
 
 
diff --git a/website/docs/operations/system-operation/diagnosis/diagnosis.md b/website/docs/operations/system-operation/diagnosis/diagnosis.md
index 7f16a0475c..0527c12bad 100644
--- a/website/docs/operations/system-operation/diagnosis/diagnosis.md
+++ b/website/docs/operations/system-operation/diagnosis/diagnosis.md
@@ -22,7 +22,7 @@ last_update:
 
 Kylin users may face with many problems during usage, such as  job failure, SQL query failure, SQL query overtime, etc. In order to help solve these problems efficiently, Kylin provides a *Diagnosis* function on Web UI to pack related information into a zip package to help operation staff and Kyligence Support team to analyze the root cause. 
 
-Diagnosis function includes System, Job and Query Diagnosis. In addition to the method of generating diagnostic package on web UI described in this chapter, you can also generate the diagnostic package through the bash script. For details, please refer to [Diagnosis Tool](cli_tool/diagnosis.en.md).
+Diagnosis function includes System, Job and Query Diagnosis. In addition to the method of generating diagnostic package on web UI described in this chapter, you can also generate the diagnostic package through the bash script. For details, please refer to [Diagnosis Tool](../cli_tool/diagnosis.md).
 
 
 ### Generate System Diagnostic Package in Web UI
diff --git a/website/docs/operations/system-operation/junk_file_clean.md b/website/docs/operations/system-operation/junk_file_clean.md
index 6bd6008ed8..8fcfbcdb1b 100644
--- a/website/docs/operations/system-operation/junk_file_clean.md
+++ b/website/docs/operations/system-operation/junk_file_clean.md
@@ -81,7 +81,7 @@ This command supports standard short and long parameters. The parameter descript
 - `-r number`: The number of requests per second when accessing cloud environment object storage. `-r 10` means 10 requests per second. You can use this parameter to limit the frequency of requests for object storage in the cloud environment by the junk file cleaning tool to avoid errors due to exceeding the request frequency limit.
 - `-t number`: The number of request retries when accessing the cloud environment object storage fails. `-t 3` means to retry 3 times.
 
-**Note**: Whether this command executes metadata junk file cleaning through -m or data junk file cleaning through -c, Kylin will enter maintenance mode. If junk file cleaning is forcibly interrupted, you need to manually exit maintenance mode. Refer to [ Maintenance Mode](system-operation/maintenance_mode.en.md).
+**Note**: Whether this command executes metadata junk file cleaning through -m or data junk file cleaning through -c, Kylin will enter maintenance mode. If junk file cleaning is forcibly interrupted, you need to manually exit maintenance mode. Refer to [ Maintenance Mode](maintenance_mode.md).
 
 In addition, from Kylin 4.5.6, the new command line tool `FastRoutineTool`
 ````sh
diff --git a/website/docs/restapi/model_api/model_management_api.md b/website/docs/restapi/model_api/model_management_api.md
index 93757f8a99..b77fcd281b 100644
--- a/website/docs/restapi/model_api/model_management_api.md
+++ b/website/docs/restapi/model_api/model_management_api.md
@@ -89,7 +89,7 @@ last_update:
       - `primary_key` - `required` `string[]`, primary key
       - `simplified_non_equi_join_conditions` -  `optional` `JSON Object`, non-equivalent join conditions
 
-        (note1: The support of this settings should have 'Support History Table' enabled in advance. Seeing [Slowly Changing Dimension](../../../Designers-Guide/model/model_design/slowly_changing_dimension.en.md))
+        (note1: The support of this settings should have 'Support History Table' enabled in advance. Seeing [Slowly Changing Dimension](#TODO))
 
         (note2: Join relationship >= and < must be used in pairs, and same column must be joint in both conditions)
 
@@ -102,7 +102,7 @@ last_update:
     - `join_relation_type` -  `optional` `string`, join type: MANY_TO_ONE,MANY_TO_MANY, default: MANY_TO_ONE
   - `partition_desc` -  `optional` `JSON Object`, partition columns info
     - `partition_date_column` - `required` `string`, partition date column, format: TABLE.COLUMN
-    - `partition_date_format` - `required` `string`, partition date column format, including: yyyy-MM-dd, yyyyMMdd... Supported date format please check "[Model Design Basics](../../../Designers-Guide/model/model_design/data_modeling.en.md#faq)"
+    - `partition_date_format` - `required` `string`, partition date column format, including: yyyy-MM-dd, yyyyMMdd... Supported date format please check "[Model Design Basics](#TODO)"
     - `partition_type` -  `optional` `string`, partition type, including: APPEND, default: APPEND
   - `owner` -  `optional` `string`, the owner of model, default current user
   - `description` -  `optional` `string`, model description
@@ -360,7 +360,7 @@ last_update:
 
   > [!NOTE]
   >
-  > For parameters not listed in this page, you may go to the [Kylin Console](../../../Designers-Guide/model/model_concepts_operations.en.md) for details.
+  > For parameters not listed in this page, you may go to the [Kylin Console](#TODO) for details.
 
   ```json
     {
@@ -504,7 +504,7 @@ last_update:
         - `hierarchy_dims`: `JSON`, dimension hierarchy
         - `mandatory_dims`: `JSON`, required hierarchy
         - `joint_dims`:  `JSON`, joint dimensions
-        - `computed_columns`: `JSON`, [Computed Column](../../../Designers-Guide/model/model_design/computed_column/README.md)
+        - `computed_columns`: `JSON`, [Computed Column](#TODO)
         - `tableIdentity`: `String`, table ID
         - `tableAlias`: `String`, table alias
         - `columnName`: `String`, column name
diff --git a/website/docs/restapi/project_api.md b/website/docs/restapi/project_api.md
index 433d1cff9c..646f140c13 100644
--- a/website/docs/restapi/project_api.md
+++ b/website/docs/restapi/project_api.md
@@ -561,7 +561,7 @@ last_update:
 
 ### <span id="update-job-engine">Update the Linking Relationship between Projects and Job Engines</span>
 
-**Note:** This Rest API need to cooperate with multi-active job engines. For more details, please refer to [Kylin Multi-Active Job Engines](../../../installation/deploy/cluster_lb.en.md).
+**Note:** This Rest API need to cooperate with multi-active job engines. For more details, please refer to [Kylin Multi-Active Job Engines](#TODO).
 
 - `POST http://host:port/kylin/api/epoch`
 
diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js
index a396bd12b8..6e1036ed49 100644
--- a/website/docusaurus.config.js
+++ b/website/docusaurus.config.js
@@ -10,7 +10,7 @@ const config = {
   tagline: 'Kylin 5.0 is a unified and powerful OLAP platform for Hadoop and Cloud.',
   url: 'https://kylin.apache.org',
   baseUrl: '/',
-  onBrokenLinks: 'throw',
+  onBrokenLinks: 'warn',
   onBrokenMarkdownLinks: 'warn',
   favicon: 'img/favicon.ico',
 
@@ -20,6 +20,81 @@ const config = {
   projectName: 'kylin', // Usually your repo name.
   deploymentBranch:'kylin5_doc',
 
+  // add search plugin
+  plugins: [require.resolve("@cmfcmf/docusaurus-search-local")],
+  plugins: [
+    [
+      require.resolve("@cmfcmf/docusaurus-search-local"),
+      {
+        // Options here
+        // whether to index docs pages
+        indexDocs: true,
+
+        // Whether to also index the titles of the parent categories in the sidebar of a doc page.
+        // 0 disables this feature.
+        // 1 indexes the direct parent category in the sidebar of a doc page
+        // 2 indexes up to two nested parent categories of a doc page
+        // 3...
+        //
+        // Do _not_ use Infinity, the value must be a JSON-serializable integer.
+        indexDocSidebarParentCategories: 0,
+
+        // whether to index blog pages
+        indexBlog: true,
+
+        // whether to index static pages
+        // /404.html is never indexed
+        indexPages: false,
+
+        // language of your documentation, see next section
+        language: "en",
+
+        // setting this to "none" will prevent the default CSS to be included. The default CSS
+        // comes from autocomplete-theme-classic, which you can read more about here:
+        // https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-theme-classic/
+        // When you want to overwrite CSS variables defined by the default theme, make sure to suffix your
+        // overwrites with `!important`, because they might otherwise not be applied as expected. See the
+        // following comment for more information: https://github.com/cmfcmf/docusaurus-search-local/issues/107#issuecomment-1119831938.
+        style: undefined,
+
+        // The maximum number of search results shown to the user. This does _not_ affect performance of
+        // searches, but simply does not display additional search results that have been found.
+        maxSearchResults: 8,
+
+        // lunr.js-specific settings
+        lunr: {
+          // When indexing your documents, their content is split into "tokens".
+          // Text entered into the search box is also tokenized.
+          // This setting configures the separator used to determine where to split the text into tokens.
+          // By default, it splits the text at whitespace and dashes.
+          //
+          // Note: Does not work for "ja" and "th" languages, since these use a different tokenizer.
+          tokenizerSeparator: /[\s\-]+/,
+          // https://lunrjs.com/guides/customising.html#similarity-tuning
+          //
+          // This parameter controls the importance given to the length of a document and its fields. This
+          // value must be between 0 and 1, and by default it has a value of 0.75. Reducing this value
+          // reduces the effect of different length documents on a term’s importance to that document.
+          b: 0.75,
+          // This controls how quickly the boost given by a common word reaches saturation. Increasing it
+          // will slow down the rate of saturation and lower values result in quicker saturation. The
+          // default value is 1.2. If the collection of documents being indexed have high occurrences
+          // of words that are not covered by a stop word filter, these words can quickly dominate any
+          // similarity calculation. In these cases, this value can be reduced to get more balanced results.
+          k1: 1.2,
+          // By default, we rank pages where the search term appears in the title higher than pages where
+          // the search term appears in just the text. This is done by "boosting" title matches with a
+          // higher value than content matches. The concrete boosting behavior can be controlled by changing
+          // the following settings.
+          titleBoost: 5,
+          contentBoost: 1,
+          tagsBoost: 3,
+          parentCategoriesBoost: 2, // Only used when indexDocSidebarParentCategories > 0
+        }
+      },
+    ],
+  ],
+
   // Even if you don't use internalization, you can use this field to set useful
   // metadata like html lang. For example, if your site is Chinese, you may want
   // to replace "en" with "zh-Hans".
diff --git a/website/package.json b/website/package.json
index eefe7e1f30..b70eccf338 100644
--- a/website/package.json
+++ b/website/package.json
@@ -14,6 +14,7 @@
     "write-heading-ids": "docusaurus write-heading-ids"
   },
   "dependencies": {
+    "@cmfcmf/docusaurus-search-local": "^0.11.0",
     "@docusaurus/core": "2.0.1",
     "@docusaurus/preset-classic": "2.0.1",
     "@mdx-js/react": "^1.6.22",


[kylin] 04/07: KYLIN-5221 minor adapt for sidebars and date in doc metadata

Posted by xx...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

xxyu pushed a commit to branch doc5.0
in repository https://gitbox.apache.org/repos/asf/kylin.git

commit b9cfe7db020fe7f2224ab82dcb4bd3288c4fb160
Author: Mukvin <bo...@163.com>
AuthorDate: Tue Aug 16 14:38:12 2022 +0800

    KYLIN-5221 minor adapt for sidebars and date in doc metadata
---
 .../On-Premises/deploy_mode/cluster_deployment.md  |   2 +-
 .../deployment/On-Premises/deploy_mode/intro.md    |   2 +-
 .../On-Premises/deploy_mode/rw_separation.md       |   2 +-
 .../On-Premises/deploy_mode/service_discovery.md   |   2 +-
 .../On-Premises/network_port_requirements.md       |   2 +-
 .../docs/deployment/On-Premises/prerequisite.md    |   2 +-
 .../On-Premises/rdbms_metastore/intro.md           |   2 +-
 .../rdbms_metastore/mysql/install_mysql.md         |   2 +-
 .../On-Premises/rdbms_metastore/mysql/intro.md     |   2 +-
 .../rdbms_metastore/mysql/mysql_metastore.md       |   2 +-
 .../postgresql/default_metastore.md                |   2 +-
 .../postgresql/install_postgresql.md               |   2 +-
 .../rdbms_metastore/postgresql/intro.md            |   2 +-
 website/docs/development/intro.md                  |   2 +-
 website/docs/intro.md                              |   4 +-
 website/docs/modeling/intro.md                     |   2 +-
 website/docs/operations/intro.md                   |   2 +-
 .../operations/monitoring/influxdb/influxdb.md     |   2 +-
 .../monitoring/influxdb/influxdb_maintenance.md    |   2 +-
 .../docs/operations/monitoring/influxdb/intro.md   |   2 +-
 website/docs/operations/monitoring/intro.md        |   2 +-
 .../docs/operations/monitoring/metrics_intro.md    |   2 +-
 website/docs/operations/monitoring/service.md      |   2 +-
 website/docs/restapi/acl_api/acl_api.md            |   2 +-
 website/docs/restapi/acl_api/intro.md              |   2 +-
 website/docs/restapi/acl_api/project_acl_api.md    |   2 +-
 website/docs/restapi/acl_api/user_api.md           |   2 +-
 website/docs/restapi/acl_api/user_group_api.md     |   2 +-
 website/docs/restapi/async_query_api.md            |   2 +-
 website/docs/restapi/authentication.md             |   2 +-
 website/docs/restapi/callback_api.md               |   2 +-
 website/docs/restapi/data_source_api.md            |   2 +-
 website/docs/restapi/error_code.md                 |   2 +-
 website/docs/restapi/intro.md                      |   2 +-
 website/docs/restapi/job_api.md                    |   2 +-
 website/docs/restapi/model_api/intro.md            |   2 +-
 website/docs/restapi/model_api/model_build_api.md  |   2 +-
 .../model_api/model_import_and_export_api.md       |   2 +-
 .../docs/restapi/model_api/model_management_api.md |   2 +-
 .../model_api/model_multilevel_partitioning_api.md |   2 +-
 website/docs/restapi/project_api.md                |   2 +-
 website/docs/restapi/query_api.md                  |   2 +-
 website/docs/restapi/segment_managment_api.md      |   2 +-
 website/docs/restapi/snapshot_management_api.md    |   2 +-
 website/docs/restapi/streaming_job_api.md          |   2 +-
 website/sidebars.js                                | 696 +++++++++++----------
 46 files changed, 395 insertions(+), 393 deletions(-)

diff --git a/website/docs/deployment/On-Premises/deploy_mode/cluster_deployment.md b/website/docs/deployment/On-Premises/deploy_mode/cluster_deployment.md
index 18b5d4b0ae..233edb3b6e 100644
--- a/website/docs/deployment/On-Premises/deploy_mode/cluster_deployment.md
+++ b/website/docs/deployment/On-Premises/deploy_mode/cluster_deployment.md
@@ -12,7 +12,7 @@ keywords:
     - cluster
 draft: true
 last_update:
-    date: 12/08/2022
+    date: 08/12/2022
 ---
 
 All Kylin state information instance is stored in a RDBMS database, so running Kylin on multiple nodes in a cluster is good practice for better load balance and higher availability. Currently, we only support deployment with one `all` node and multiple `query` nodes.
diff --git a/website/docs/deployment/On-Premises/deploy_mode/intro.md b/website/docs/deployment/On-Premises/deploy_mode/intro.md
index 27ef9f3b86..374f4a4c93 100644
--- a/website/docs/deployment/On-Premises/deploy_mode/intro.md
+++ b/website/docs/deployment/On-Premises/deploy_mode/intro.md
@@ -11,7 +11,7 @@ keywords:
     - deployment mode
 draft: false
 last_update:
-    date: 12/08/2022
+    date: 08/12/2022
 ---
 
 This chapter introduces the different Kylin deployment modes and options to achieve high performance, high stability, and high availability.
diff --git a/website/docs/deployment/On-Premises/deploy_mode/rw_separation.md b/website/docs/deployment/On-Premises/deploy_mode/rw_separation.md
index 2f2dbb1fc1..e36724f586 100644
--- a/website/docs/deployment/On-Premises/deploy_mode/rw_separation.md
+++ b/website/docs/deployment/On-Premises/deploy_mode/rw_separation.md
@@ -12,7 +12,7 @@ keywords:
    - separation
 draft: false
 last_update:
-   date: 12/08/2022
+   date: 08/12/2022
 ---
 
 Kylin's tasks based on Hadoop are mainly divided into two types: build and query. If these two tasks use the same set of Hadoop resources, resource preemption may occur between the build and the query, which makes them not stable and fast.
diff --git a/website/docs/deployment/On-Premises/deploy_mode/service_discovery.md b/website/docs/deployment/On-Premises/deploy_mode/service_discovery.md
index a08758deff..0015f85ae6 100644
--- a/website/docs/deployment/On-Premises/deploy_mode/service_discovery.md
+++ b/website/docs/deployment/On-Premises/deploy_mode/service_discovery.md
@@ -12,7 +12,7 @@ keywords:
     - ha
 draft: false
 last_update:
-    date: 12/08/2022
+    date: 08/12/2022
 ---
 
 Multiple Kylin instances can work together as a cluster. When a Kylin instance is started, stopped, or lost, other instances in the cluster will be updated automatically. Kylin has a new implementation based on Apache Curator framework, which is more convenient and more stable. 
diff --git a/website/docs/deployment/On-Premises/network_port_requirements.md b/website/docs/deployment/On-Premises/network_port_requirements.md
index 55e04ebf7c..5d409ec903 100644
--- a/website/docs/deployment/On-Premises/network_port_requirements.md
+++ b/website/docs/deployment/On-Premises/network_port_requirements.md
@@ -11,7 +11,7 @@ keywords:
    - Network Port
 draft: false
 last_update:
-    date: 11/08/2022
+    date: 08/11/2022
 ---
 
 Kylin needs to communicate with different components. The following are the ports that need to be opened to Kylin. This table only includes the default configuration of the Hadoop environment, and does not include the configuration differences between Hadoop platforms.
diff --git a/website/docs/deployment/On-Premises/prerequisite.md b/website/docs/deployment/On-Premises/prerequisite.md
index 684188db59..7285b35bed 100644
--- a/website/docs/deployment/On-Premises/prerequisite.md
+++ b/website/docs/deployment/On-Premises/prerequisite.md
@@ -11,7 +11,7 @@ keywords:
   - prerequisite
 draft: true
 last_update:
-    date: 11/08/2022
+    date: 08/11/2022
 ---
 
 To ensure system performance and stability, we recommend you run Kylin on a dedicated Hadoop cluster.
diff --git a/website/docs/deployment/On-Premises/rdbms_metastore/intro.md b/website/docs/deployment/On-Premises/rdbms_metastore/intro.md
index fd217647e3..d8e679ac2a 100644
--- a/website/docs/deployment/On-Premises/rdbms_metastore/intro.md
+++ b/website/docs/deployment/On-Premises/rdbms_metastore/intro.md
@@ -11,7 +11,7 @@ keywords:
     - Use RDBMS as Metastore
 draft: false
 last_update:
-    date: 11/08/2022
+    date: 08/11/2022
 ---
 
 Using RDBMS as Metastore is supported, which uses JDBC Driver to connect Metastore database.
diff --git a/website/docs/deployment/On-Premises/rdbms_metastore/mysql/install_mysql.md b/website/docs/deployment/On-Premises/rdbms_metastore/mysql/install_mysql.md
index d3464debea..c65ddc2269 100644
--- a/website/docs/deployment/On-Premises/rdbms_metastore/mysql/install_mysql.md
+++ b/website/docs/deployment/On-Premises/rdbms_metastore/mysql/install_mysql.md
@@ -13,7 +13,7 @@ keywords:
    - install
 draft: true
 last_update:
-   date: 11/08/2022
+   date: 08/11/2022
 ---
 
 ### Prerequisite
diff --git a/website/docs/deployment/On-Premises/rdbms_metastore/mysql/intro.md b/website/docs/deployment/On-Premises/rdbms_metastore/mysql/intro.md
index fd0cf7a152..58f097b972 100644
--- a/website/docs/deployment/On-Premises/rdbms_metastore/mysql/intro.md
+++ b/website/docs/deployment/On-Premises/rdbms_metastore/mysql/intro.md
@@ -11,7 +11,7 @@ keywords:
     - mysql
 draft: false
 last_update:
-    date: 11/08/2022
+    date: 08/11/2022
 ---
 
 Kylin supports to use MySQL as Metastore, this chapter will discuss how to:
diff --git a/website/docs/deployment/On-Premises/rdbms_metastore/mysql/mysql_metastore.md b/website/docs/deployment/On-Premises/rdbms_metastore/mysql/mysql_metastore.md
index 408edf4ceb..6f9a666365 100644
--- a/website/docs/deployment/On-Premises/rdbms_metastore/mysql/mysql_metastore.md
+++ b/website/docs/deployment/On-Premises/rdbms_metastore/mysql/mysql_metastore.md
@@ -13,7 +13,7 @@ keywords:
    - metastore
 draft: false
 last_update:
-   date: 11/08/2022
+   date: 08/11/2022
 ---
 
 
diff --git a/website/docs/deployment/On-Premises/rdbms_metastore/postgresql/default_metastore.md b/website/docs/deployment/On-Premises/rdbms_metastore/postgresql/default_metastore.md
index 43e71ae44f..f801a18f90 100644
--- a/website/docs/deployment/On-Premises/rdbms_metastore/postgresql/default_metastore.md
+++ b/website/docs/deployment/On-Premises/rdbms_metastore/postgresql/default_metastore.md
@@ -11,7 +11,7 @@ keywords:
    - postgresql
 draft: false
 last_update:
-   date: 11/08/2022
+   date: 08/11/2022
 ---
 
 ### <span id="preparation">Prerequisite</span>
diff --git a/website/docs/deployment/On-Premises/rdbms_metastore/postgresql/install_postgresql.md b/website/docs/deployment/On-Premises/rdbms_metastore/postgresql/install_postgresql.md
index 17d47f61d8..6d0acf19e4 100644
--- a/website/docs/deployment/On-Premises/rdbms_metastore/postgresql/install_postgresql.md
+++ b/website/docs/deployment/On-Premises/rdbms_metastore/postgresql/install_postgresql.md
@@ -11,7 +11,7 @@ keywords:
    - mysql 
 draft: true
 last_update:
-  date: 11/08/2022
+  date: 08/11/2022
 ---
 
 ### <span id="preparation">Prerequisite</span>
diff --git a/website/docs/deployment/On-Premises/rdbms_metastore/postgresql/intro.md b/website/docs/deployment/On-Premises/rdbms_metastore/postgresql/intro.md
index b84ad6905a..6d433b8776 100644
--- a/website/docs/deployment/On-Premises/rdbms_metastore/postgresql/intro.md
+++ b/website/docs/deployment/On-Premises/rdbms_metastore/postgresql/intro.md
@@ -11,7 +11,7 @@ keywords:
     - postgresql
 draft: false
 last_update:
-    date: 11/08/2022
+    date: 08/11/2022
 ---
 
 Kylin supports to use PostgreSQL as Metastore, this chapter will discuss how to:
diff --git a/website/docs/development/intro.md b/website/docs/development/intro.md
index d4597f0c27..e3f236c1ed 100644
--- a/website/docs/development/intro.md
+++ b/website/docs/development/intro.md
@@ -11,6 +11,6 @@ keywords:
     - deployment mode
 draft: false
 last_update:
-    date: 12/08/2022
+    date: 08/12/2022
 ---
 # Guide of developer
diff --git a/website/docs/intro.md b/website/docs/intro.md
index e17893a55f..d5912693fc 100644
--- a/website/docs/intro.md
+++ b/website/docs/intro.md
@@ -8,10 +8,10 @@ toc_max_heading_level: 6
 pagination_prev: null
 pagination_next: null
 keywords:
-    - rest api
+    - intro
 draft: false
 last_update:
-    date: 12/08/2022
+    date: 08/12/2022
 ---
 
 # Intro to Kylin 5.0
diff --git a/website/docs/modeling/intro.md b/website/docs/modeling/intro.md
index 533404ab92..c624427c4e 100644
--- a/website/docs/modeling/intro.md
+++ b/website/docs/modeling/intro.md
@@ -11,7 +11,7 @@ keywords:
     - model
 draft: false
 last_update:
-    date: 12/08/2022
+    date: 08/12/2022
 ---
 
 This chapter introduces the core concepts of Kylin: model and index design basics, advanced measures and load data.
diff --git a/website/docs/operations/intro.md b/website/docs/operations/intro.md
index e8feeac788..e75d44f3bf 100644
--- a/website/docs/operations/intro.md
+++ b/website/docs/operations/intro.md
@@ -12,7 +12,7 @@ keywords:
     - maintenance
 draft: false
 last_update:
-    date: 12/08/2022
+    date: 08/12/2022
 ---
 
 This Operation and Maintenance Guide will introduce a suite of capabilities that can help you to manage your Kylin projects, do system maintenance, work with logs.
diff --git a/website/docs/operations/monitoring/influxdb/influxdb.md b/website/docs/operations/monitoring/influxdb/influxdb.md
index d0636f0f64..efc00a2782 100644
--- a/website/docs/operations/monitoring/influxdb/influxdb.md
+++ b/website/docs/operations/monitoring/influxdb/influxdb.md
@@ -11,7 +11,7 @@ keywords:
     - influxdb
 draft: false
 last_update:
-    date: 12/08/2022
+    date: 08/12/2022
 ---
 
 
diff --git a/website/docs/operations/monitoring/influxdb/influxdb_maintenance.md b/website/docs/operations/monitoring/influxdb/influxdb_maintenance.md
index 632a6c675d..9cc609194c 100644
--- a/website/docs/operations/monitoring/influxdb/influxdb_maintenance.md
+++ b/website/docs/operations/monitoring/influxdb/influxdb_maintenance.md
@@ -11,7 +11,7 @@ keywords:
 	- influxdb
 draft: false
 last_update:
-    date: 12/08/2022
+    date: 08/12/2022
 ---
 
 
diff --git a/website/docs/operations/monitoring/influxdb/intro.md b/website/docs/operations/monitoring/influxdb/intro.md
index 96ea606197..f3d5f8934e 100644
--- a/website/docs/operations/monitoring/influxdb/intro.md
+++ b/website/docs/operations/monitoring/influxdb/intro.md
@@ -12,7 +12,7 @@ keywords:
     - maintenance
 draft: false
 last_update:
-    date: 12/08/2022
+    date: 08/12/2022
 ---
 
 Kylin supports to use InfluxDB as its time series database, this chapter will cover:
diff --git a/website/docs/operations/monitoring/intro.md b/website/docs/operations/monitoring/intro.md
index 2d2d302d57..8506f7f158 100644
--- a/website/docs/operations/monitoring/intro.md
+++ b/website/docs/operations/monitoring/intro.md
@@ -12,7 +12,7 @@ keywords:
     - maintenance
 draft: false
 last_update:
-    date: 12/08/2022
+    date: 08/12/2022
 ---
 
 This chapter will discuss how to do system monitoring, we will cover:
diff --git a/website/docs/operations/monitoring/metrics_intro.md b/website/docs/operations/monitoring/metrics_intro.md
index cee36b3265..fc7bc1a0a1 100644
--- a/website/docs/operations/monitoring/metrics_intro.md
+++ b/website/docs/operations/monitoring/metrics_intro.md
@@ -11,7 +11,7 @@ keywords:
     - metrics monitoring
 draft: true
 last_update:
-    date: 12/08/2022
+    date: 08/12/2022
 ---
 
 
diff --git a/website/docs/operations/monitoring/service.md b/website/docs/operations/monitoring/service.md
index d1194457cf..586ac0409b 100644
--- a/website/docs/operations/monitoring/service.md
+++ b/website/docs/operations/monitoring/service.md
@@ -11,7 +11,7 @@ keywords:
   - service monitoring
 draft: true
 last_update:
-  date: 12/08/2022
+  date: 08/12/2022
 ---
 
 ## Service Monitoring
diff --git a/website/docs/restapi/acl_api/acl_api.md b/website/docs/restapi/acl_api/acl_api.md
index 12e444baf4..0e2e95665f 100644
--- a/website/docs/restapi/acl_api/acl_api.md
+++ b/website/docs/restapi/acl_api/acl_api.md
@@ -11,7 +11,7 @@ keywords:
     - data acl api
 draft: false
 last_update:
-    date: 12/08/2022
+    date: 08/12/2022
 ---
 
 > Reminders:
diff --git a/website/docs/restapi/acl_api/intro.md b/website/docs/restapi/acl_api/intro.md
index 2def65af7e..dff7e6148f 100644
--- a/website/docs/restapi/acl_api/intro.md
+++ b/website/docs/restapi/acl_api/intro.md
@@ -11,7 +11,7 @@ keywords:
     - acl management api
 draft: false
 last_update:
-    date: 12/08/2022
+    date: 08/12/2022
 ---
 
 Kylin provides REST APIs on Access Control List Management to help users strictly manage the ACL on projects, tables, users, user group and so on.
diff --git a/website/docs/restapi/acl_api/project_acl_api.md b/website/docs/restapi/acl_api/project_acl_api.md
index 14aa630b52..1d34c3063e 100644
--- a/website/docs/restapi/acl_api/project_acl_api.md
+++ b/website/docs/restapi/acl_api/project_acl_api.md
@@ -11,7 +11,7 @@ keywords:
     - project acl api
 draft: false
 last_update:
-    date: 12/08/2022
+    date: 08/12/2022
 ---
 
 > Reminders:
diff --git a/website/docs/restapi/acl_api/user_api.md b/website/docs/restapi/acl_api/user_api.md
index 3fb7fe77e9..45f1995561 100644
--- a/website/docs/restapi/acl_api/user_api.md
+++ b/website/docs/restapi/acl_api/user_api.md
@@ -11,7 +11,7 @@ keywords:
     - user management api
 draft: false
 last_update:
-    date: 12/08/2022
+    date: 08/12/2022
 ---
 
 > Reminders:
diff --git a/website/docs/restapi/acl_api/user_group_api.md b/website/docs/restapi/acl_api/user_group_api.md
index 97f01a0d03..bb4846e15a 100644
--- a/website/docs/restapi/acl_api/user_group_api.md
+++ b/website/docs/restapi/acl_api/user_group_api.md
@@ -11,7 +11,7 @@ keywords:
     - user group management api
 draft: false
 last_update:
-    date: 12/08/2022
+    date: 08/12/2022
 ---
 
 
diff --git a/website/docs/restapi/async_query_api.md b/website/docs/restapi/async_query_api.md
index 818f76f3e2..e297b20e32 100644
--- a/website/docs/restapi/async_query_api.md
+++ b/website/docs/restapi/async_query_api.md
@@ -11,7 +11,7 @@ keywords:
     - async query api
 draft: false
 last_update:
-    date: 12/08/2022
+    date: 08/12/2022
 ---
 
 > Reminders:
diff --git a/website/docs/restapi/authentication.md b/website/docs/restapi/authentication.md
index 5562d5c780..b1fe66aa0f 100644
--- a/website/docs/restapi/authentication.md
+++ b/website/docs/restapi/authentication.md
@@ -12,7 +12,7 @@ keywords:
   - authentication
 draft: false
 last_update:
-  date: 12/08/2022
+  date: 08/12/2022
 ---
 
 ### Access Information
diff --git a/website/docs/restapi/callback_api.md b/website/docs/restapi/callback_api.md
index c8e5be8fd1..66bfcda8f1 100644
--- a/website/docs/restapi/callback_api.md
+++ b/website/docs/restapi/callback_api.md
@@ -12,7 +12,7 @@ keywords:
     - monitor job
 draft: false 
 last_update: 
-    date: 12/08/2022
+    date: 08/12/2022
 ---
 
 The success returned by calling the required job API only indicates the job is successfully started. Kylin supports callback API to confirm the job execution state, it will return success if the job is successfully completed; it will return error if the job fails and also the error code to help troubleshooting. 
diff --git a/website/docs/restapi/data_source_api.md b/website/docs/restapi/data_source_api.md
index e53ac925bc..598d9b0a6c 100644
--- a/website/docs/restapi/data_source_api.md
+++ b/website/docs/restapi/data_source_api.md
@@ -11,7 +11,7 @@ keywords:
     - data source api
 draft: false
 last_update:
-    date: 12/08/2022
+    date: 08/12/2022
 ---
 
 > Reminder:
diff --git a/website/docs/restapi/error_code.md b/website/docs/restapi/error_code.md
index 198241237c..9231d819bb 100644
--- a/website/docs/restapi/error_code.md
+++ b/website/docs/restapi/error_code.md
@@ -11,7 +11,7 @@ keywords:
     - error code
 draft: true
 last_update:
-    date: 12/08/2022
+    date: 08/12/2022
 ---
 
 [comment]: <#TODO: renew the error code> (#TODO)
diff --git a/website/docs/restapi/intro.md b/website/docs/restapi/intro.md
index cc09056c66..89abd892d1 100644
--- a/website/docs/restapi/intro.md
+++ b/website/docs/restapi/intro.md
@@ -11,7 +11,7 @@ keywords:
     - rest api
 draft: false
 last_update:
-    date: 12/08/2022
+    date: 08/12/2022
 ---
 
 Kylin provides various REST APIs, which can be used to execute queries, trigger a build job and so on. With those APIs, the third-party system could integrate with Kylin system seamlessly.  
diff --git a/website/docs/restapi/job_api.md b/website/docs/restapi/job_api.md
index 9fbcf8472b..43f6843145 100644
--- a/website/docs/restapi/job_api.md
+++ b/website/docs/restapi/job_api.md
@@ -11,7 +11,7 @@ keywords:
     - job api
 draft: false
 last_update:
-    date: 12/08/2022
+    date: 08/12/2022
 ---
 
 
diff --git a/website/docs/restapi/model_api/intro.md b/website/docs/restapi/model_api/intro.md
index 0f49e728ff..966c869d88 100644
--- a/website/docs/restapi/model_api/intro.md
+++ b/website/docs/restapi/model_api/intro.md
@@ -11,7 +11,7 @@ keywords:
     - model api
 draft: false
 last_update: 
-    date: 12/08/2022
+    date: 08/12/2022
 ---
 
 
diff --git a/website/docs/restapi/model_api/model_build_api.md b/website/docs/restapi/model_api/model_build_api.md
index 90a30648f0..95f0de1959 100644
--- a/website/docs/restapi/model_api/model_build_api.md
+++ b/website/docs/restapi/model_api/model_build_api.md
@@ -11,7 +11,7 @@ keywords:
     - model build api
 draft: false
 last_update:
-    date: 12/08/2022
+    date: 08/12/2022
 ---
 
 
diff --git a/website/docs/restapi/model_api/model_import_and_export_api.md b/website/docs/restapi/model_api/model_import_and_export_api.md
index 277183860c..830dead62d 100644
--- a/website/docs/restapi/model_api/model_import_and_export_api.md
+++ b/website/docs/restapi/model_api/model_import_and_export_api.md
@@ -11,7 +11,7 @@ keywords:
     - model import and export api
 draft: false
 last_update:
-    date: 12/08/2022
+    date: 08/12/2022
 ---
 
 
diff --git a/website/docs/restapi/model_api/model_management_api.md b/website/docs/restapi/model_api/model_management_api.md
index 7d0b4352a1..93757f8a99 100644
--- a/website/docs/restapi/model_api/model_management_api.md
+++ b/website/docs/restapi/model_api/model_management_api.md
@@ -11,7 +11,7 @@ keywords:
     - model management api
 draft: false
 last_update:
-    date: 12/08/2022
+    date: 08/12/2022
 ---
 
 
diff --git a/website/docs/restapi/model_api/model_multilevel_partitioning_api.md b/website/docs/restapi/model_api/model_multilevel_partitioning_api.md
index 0af956b037..9bb5043a13 100644
--- a/website/docs/restapi/model_api/model_multilevel_partitioning_api.md
+++ b/website/docs/restapi/model_api/model_multilevel_partitioning_api.md
@@ -11,7 +11,7 @@ keywords:
     - multi-level partitioning model api
 draft: false
 last_update:
-    date: 12/08/2022
+    date: 08/12/2022
 ---
 
 > Reminders:
diff --git a/website/docs/restapi/project_api.md b/website/docs/restapi/project_api.md
index 15fc80476b..433d1cff9c 100644
--- a/website/docs/restapi/project_api.md
+++ b/website/docs/restapi/project_api.md
@@ -11,7 +11,7 @@ keywords:
   - project setting api
 draft: false
 last_update:
-  date: 12/08/2022
+  date: 08/12/2022
 ---
 
 
diff --git a/website/docs/restapi/query_api.md b/website/docs/restapi/query_api.md
index 44813e2c18..1615afe456 100755
--- a/website/docs/restapi/query_api.md
+++ b/website/docs/restapi/query_api.md
@@ -11,7 +11,7 @@ keywords:
     - query api
 draft: false
 last_update:
-    date: 12/08/2022
+    date: 08/12/2022
 ---
 
 > Reminders:
diff --git a/website/docs/restapi/segment_managment_api.md b/website/docs/restapi/segment_managment_api.md
index 8d3c0ea037..b63b008248 100644
--- a/website/docs/restapi/segment_managment_api.md
+++ b/website/docs/restapi/segment_managment_api.md
@@ -11,7 +11,7 @@ keywords:
     - segment management api
 draft: false
 last_update:
-    date: 12/08/2022
+    date: 08/12/2022
 ---
 
 > Reminders:
diff --git a/website/docs/restapi/snapshot_management_api.md b/website/docs/restapi/snapshot_management_api.md
index a20fb44753..329cf09c43 100644
--- a/website/docs/restapi/snapshot_management_api.md
+++ b/website/docs/restapi/snapshot_management_api.md
@@ -11,7 +11,7 @@ keywords:
     - snapshot management api
 draft: false
 last_update:
-    date: 12/08/2022
+    date: 08/12/2022
 ---
 
 > Note:
diff --git a/website/docs/restapi/streaming_job_api.md b/website/docs/restapi/streaming_job_api.md
index e8da883e79..3cd23d6686 100644
--- a/website/docs/restapi/streaming_job_api.md
+++ b/website/docs/restapi/streaming_job_api.md
@@ -11,7 +11,7 @@ keywords:
     - streaming job api
 draft: true
 last_update:
-    date: 12/08/2022
+    date: 08/12/2022
 ---
 
 > Reminders:
diff --git a/website/sidebars.js b/website/sidebars.js
index dfe3ede545..37f85b5db4 100644
--- a/website/sidebars.js
+++ b/website/sidebars.js
@@ -13,354 +13,356 @@
 
 /** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */
 const sidebars = {
-  // By default, Docusaurus generates a sidebar from the docs folder structure
-  KylinDocumentSideBar:[
-      {
-          type: 'doc',
-          id: 'intro',
-          label: 'Introduction to Kylin 5'
-      },
-      {
-          type: 'doc',
-          id: 'download',
-          label: 'Download',
-      },
-      {
-          type: 'category',
-          label: 'Tutorial',
+    // By default, Docusaurus generates a sidebar from the docs folder structure
+    DownloadSideBar: [
+        {
+            type: 'doc',
+            id: 'download',
+            label: 'Download',
+        },
+    ],
+    DocumentSideBar: [
+        {
+            type: 'doc',
+            id: 'intro',
+            label: 'Introduction to Kylin 5'
+        },
+        {
+            type: 'category',
+            label: 'Tutorial',
 
-          items: [
-              {
-                  type: 'doc',
-                  id: 'tutorial/create-a-page'
-              },
-              {
-                  type: 'doc',
-                  id: 'tutorial/create-a-document'
-              },
-              {
-                  type: 'doc',
-                  id: 'tutorial/create-a-blog-post'
-              },
-              {
-                  type: 'doc',
-                  id: 'tutorial/deploy-your-site'
-              },
-          ]
-      },
-      {
-          type: 'category',
-          label: 'Deployment',
-          items: [
-              {
-                  type: 'doc',
-                  id: 'deployment/intro'
-              },
-              {
-                  type: 'category',
-                  label: 'On-Premises',
-                  items: [
-                      {
-                          type: 'doc',
-                          id: 'deployment/On-Premises/prerequisite'
-                      },
-                      {
-                          type: 'doc',
-                          id: 'deployment/On-Premises/network_port_requirements'
-                      },
-                      {
-                          type: 'category',
-                          label: 'Use RDBMS as Metastore',
-                          link: {
-                              type: 'doc',
-                              id: 'deployment/On-Premises/rdbms_metastore/intro',
-                          },
-                          items: [
-                              {
-                                  type: 'category',
-                                  label: 'MySQL',
-                                  link: {
-                                      type: 'doc',
-                                      id: 'deployment/On-Premises/rdbms_metastore/mysql/intro',
-                                  },
-                                  items: [
-                                      {
-                                          type: 'doc',
-                                          id: 'deployment/On-Premises/rdbms_metastore/mysql/install_mysql'
-                                      },
-                                      {
-                                          type: 'doc',
-                                          id: 'deployment/On-Premises/rdbms_metastore/mysql/mysql_metastore'
-                                      },
-                                  ],
-                              },
-                              {
-                                  type: 'category',
-                                  label: 'PostgreSQL',
-                                  link: {
-                                      type: 'doc',
-                                      id: 'deployment/On-Premises/rdbms_metastore/postgresql/intro',
-                                  },
-                                  items: [
-                                      {
-                                          type: 'doc',
-                                          id: 'deployment/On-Premises/rdbms_metastore/postgresql/install_postgresql'
-                                      },
-                                      {
-                                          type: 'doc',
-                                          id: 'deployment/On-Premises/rdbms_metastore/postgresql/default_metastore'
-                                      },
-                                  ],
-                              },
-                          ]
-                      },
-                      {
-                          type: 'category',
-                          label: 'Deployment Mode',
-                          link: {
-                              type: 'doc',
-                              id: 'deployment/On-Premises/deploy_mode/intro',
-                          },
-                          items: [
-                              {
-                                  type: 'doc',
-                                  id: 'deployment/On-Premises/deploy_mode/cluster_deployment'
-                              },
-                              {
-                                  type: 'doc',
-                                  id: 'deployment/On-Premises/deploy_mode/service_discovery'
-                              },
-                              {
-                                  type: 'doc',
-                                  id: 'deployment/On-Premises/deploy_mode/rw_separation'
-                              },
-                          ]
-                      }
-                  ]
-              },
-              {
-                  type: 'category',
-                  label: 'On-Cloud',
-                  items: [
-                      {
-                      type: 'doc',
-                      id: 'deployment/On-Cloud/intro'
-                  }
-                  ]
-              }
-          ],
-      },
-      {
-          type: 'category',
-          label: 'Modeling',
-          items: [
-              {
-                  type: 'doc',
-                  id: 'modeling/intro'
-              },
-          ],
-      },
-      {
-          type: 'category',
-          label: 'Rest API',
-          link: {
-              type: 'doc',
-              id: 'restapi/intro',
-          },
-          items: [
-              {
-                  type: 'doc',
-                  id: 'restapi/authentication'
-              },
-              {
-                  type: 'doc',
-                  id: 'restapi/project_api'
-              },
-              {
-                  type: 'category',
-                  label: 'Model API',
-                  link: {
-                      type: 'doc',
-                      id: 'restapi/model_api/intro',
-                  },
-                  items: [
-                      {
-                          type: 'doc',
-                          id: 'restapi/model_api/model_management_api'
-                      },
-                      {
-                          type: 'doc',
-                          id: 'restapi/model_api/model_build_api'
-                      },
-                      {
-                          type: 'doc',
-                          id: 'restapi/model_api/model_import_and_export_api'
-                      },
-                      {
-                          type: 'doc',
-                          id: 'restapi/model_api/model_multilevel_partitioning_api'
-                      },
-                  ],
-              },
-              {
-                  type: 'doc',
-                  id: 'restapi/segment_managment_api'
-              },
-              {
-                  type: 'doc',
-                  id: 'restapi/snapshot_management_api'
-              },
-              {
-                  type: 'doc',
-                  id: 'restapi/query_api'
-              },
-              {
-                  type: 'doc',
-                  id: 'restapi/data_source_api'
-              },
-              {
-                  type: 'doc',
-                  id: 'restapi/async_query_api'
-              },
-              {
-                  type: 'doc',
-                  id: 'restapi/job_api'
-              },
-              {
-                  type: 'category',
-                  label: 'ACL Management API',
-                  link: {
-                      type: 'doc',
-                      id: 'restapi/acl_api/intro',
-                  },
-                  items: [
-                      {
-                          type: 'doc',
-                          id: 'restapi/acl_api/user_api'
-                      },
-                      {
-                          type: 'doc',
-                          id: 'restapi/acl_api/user_group_api'
-                      },
-                      {
-                          type: 'doc',
-                          id: 'restapi/acl_api/project_acl_api'
-                      },
-                      {
-                          type: 'doc',
-                          id: 'restapi/acl_api/acl_api'
-                      },
-                  ],
-              },
-              {
-                  type: 'doc',
-                  id: 'restapi/streaming_job_api'
-              },
-              {
-                  type: 'doc',
-                  id: 'restapi/callback_api'
-              },
-              {
-                  type: 'doc',
-                  id: 'restapi/error_code'
-              },
-          ],
-      },
-      {
-          type: 'category',
-          label: 'Query',
-          items: [
-              {
-                  type: 'doc',
-                  id: 'query/intro'
-              },
-          ],
-      },
-      {
-          type: 'category',
-          label: 'Operation and Maintenance Guide',
-          link: {
-              type: 'doc',
-              id: 'operations/intro',
-          },
-          items: [
-              {
-                  type: 'category',
-                  label: 'Monitoring',
-                  link: {
-                      type: 'doc',
-                      id: 'operations/monitoring/intro',
-                  },
-                  items: [
-                      {
-                          type: 'category',
-                          label: 'InfluxDB',
-                          link: {
-                              type: 'doc',
-                              id: 'operations/monitoring/influxdb/intro',
-                          },
-                          items: [
-                              {
-                                  type: 'doc',
-                                  id: 'operations/monitoring/influxdb/influxdb'
-                              },
-                              {
-                                  type: 'doc',
-                                  id: 'operations/monitoring/influxdb/influxdb_maintenance'
-                              },
-                          ],
-                      },
-                  ],
-              },
-          ],
-      },
-      {
-          type: 'category',
-          label: 'Configuration Guide',
-          items: [
-              {
-                  type: 'doc',
-                  id: 'configuration/intro'
-              },
-          ],
-      },
-      {
-          type: 'category',
-          label: 'Development Guide',
-          items: [
-              {
-                  type: 'doc',
-                  id: 'development/roadmap'
-              },
-              {
-                  type: 'doc',
-                  id: 'development/how_to_contribute'
-              },
-              {
-                  type: 'doc',
-                  id: 'development/how_to_debug'
-              },
-              {
-                  type: 'doc',
-                  id: 'development/how_to_package'
-              },
-              {
-                  type: 'doc',
-                  id: 'development/how_to_release'
-              },
-          ],
-      },
-      {
-          type: 'doc',
-          id: 'community',
-          label: 'Community',
-      },
-      {
-          type: 'doc',
-          id: 'powerBy',
-          label: 'PowerBy',
-      }
-  ],
+            items: [
+                {
+                    type: 'doc',
+                    id: 'tutorial/create-a-page'
+                },
+                {
+                    type: 'doc',
+                    id: 'tutorial/create-a-document'
+                },
+                {
+                    type: 'doc',
+                    id: 'tutorial/create-a-blog-post'
+                },
+                {
+                    type: 'doc',
+                    id: 'tutorial/deploy-your-site'
+                },
+            ]
+        },
+        {
+            type: 'category',
+            label: 'Deployment',
+            items: [
+                {
+                    type: 'doc',
+                    id: 'deployment/intro'
+                },
+                {
+                    type: 'doc',
+                    id: 'deployment/prerequisite'
+                },
+                {
+                    type: 'doc',
+                    id: 'deployment/network_port_requirements'
+                },
+                // TODO: add Installation part
+                // {
+                //     type: 'category',
+                //     label: 'Installation',
+                //     items:[
+                //         {
+                //
+                //         },
+                //     ],
+                // },
+                {
+                    type: 'category',
+                    label: 'Use RDBMS as Metastore',
+                    link: {
+                        type: 'doc',
+                        id: 'deployment/rdbms_metastore/intro',
+                    },
+                    items: [
+                        {
+                            type: 'category',
+                            label: 'MySQL',
+                            link: {
+                                type: 'doc',
+                                id: 'deployment/rdbms_metastore/mysql/intro',
+                            },
+                            items: [
+                                {
+                                    type: 'doc',
+                                    id: 'deployment/rdbms_metastore/mysql/install_mysql'
+                                },
+                                {
+                                    type: 'doc',
+                                    id: 'deployment/rdbms_metastore/mysql/mysql_metastore'
+                                },
+                            ],
+                        },
+                        {
+                            type: 'category',
+                            label: 'PostgreSQL',
+                            link: {
+                                type: 'doc',
+                                id: 'deployment/rdbms_metastore/postgresql/intro',
+                            },
+                            items: [
+                                {
+                                    type: 'doc',
+                                    id: 'deployment/rdbms_metastore/postgresql/install_postgresql'
+                                },
+                                {
+                                    type: 'doc',
+                                    id: 'deployment/rdbms_metastore/postgresql/default_metastore'
+                                },
+                            ],
+                        },
+                    ]
+                },
+                {
+                    type: 'category',
+                    label: 'Deployment Mode',
+                    link: {
+                        type: 'doc',
+                        id: 'deployment/deploy_mode/intro',
+                    },
+                    items: [
+                        {
+                            type: 'doc',
+                            id: 'deployment/deploy_mode/cluster_deployment'
+                        },
+                        {
+                            type: 'doc',
+                            id: 'deployment/deploy_mode/service_discovery'
+                        },
+                        {
+                            type: 'doc',
+                            id: 'deployment/deploy_mode/rw_separation'
+                        },
+                    ]
+                }
+            ],
+        },
+        {
+            type: 'category',
+            label: 'Modeling',
+            items: [
+                {
+                    type: 'doc',
+                    id: 'modeling/intro'
+                },
+            ],
+        },
+        {
+            type: 'category',
+            label: 'Rest API',
+            link: {
+                type: 'doc',
+                id: 'restapi/intro',
+            },
+            items: [
+                {
+                    type: 'doc',
+                    id: 'restapi/authentication'
+                },
+                {
+                    type: 'doc',
+                    id: 'restapi/project_api'
+                },
+                {
+                    type: 'category',
+                    label: 'Model API',
+                    link: {
+                        type: 'doc',
+                        id: 'restapi/model_api/intro',
+                    },
+                    items: [
+                        {
+                            type: 'doc',
+                            id: 'restapi/model_api/model_management_api'
+                        },
+                        {
+                            type: 'doc',
+                            id: 'restapi/model_api/model_build_api'
+                        },
+                        {
+                            type: 'doc',
+                            id: 'restapi/model_api/model_import_and_export_api'
+                        },
+                        {
+                            type: 'doc',
+                            id: 'restapi/model_api/model_multilevel_partitioning_api'
+                        },
+                    ],
+                },
+                {
+                    type: 'doc',
+                    id: 'restapi/segment_managment_api'
+                },
+                {
+                    type: 'doc',
+                    id: 'restapi/snapshot_management_api'
+                },
+                {
+                    type: 'doc',
+                    id: 'restapi/query_api'
+                },
+                {
+                    type: 'doc',
+                    id: 'restapi/data_source_api'
+                },
+                {
+                    type: 'doc',
+                    id: 'restapi/async_query_api'
+                },
+                {
+                    type: 'doc',
+                    id: 'restapi/job_api'
+                },
+                {
+                    type: 'category',
+                    label: 'ACL Management API',
+                    link: {
+                        type: 'doc',
+                        id: 'restapi/acl_api/intro',
+                    },
+                    items: [
+                        {
+                            type: 'doc',
+                            id: 'restapi/acl_api/user_api'
+                        },
+                        {
+                            type: 'doc',
+                            id: 'restapi/acl_api/user_group_api'
+                        },
+                        {
+                            type: 'doc',
+                            id: 'restapi/acl_api/project_acl_api'
+                        },
+                        {
+                            type: 'doc',
+                            id: 'restapi/acl_api/acl_api'
+                        },
+                    ],
+                },
+                {
+                    type: 'doc',
+                    id: 'restapi/streaming_job_api'
+                },
+                {
+                    type: 'doc',
+                    id: 'restapi/callback_api'
+                },
+                {
+                    type: 'doc',
+                    id: 'restapi/error_code'
+                },
+            ],
+        },
+        {
+            type: 'category',
+            label: 'Query',
+            items: [
+                {
+                    type: 'doc',
+                    id: 'query/intro'
+                },
+            ],
+        },
+        {
+            type: 'category',
+            label: 'Operation and Maintenance Guide',
+            link: {
+                type: 'doc',
+                id: 'operations/intro',
+            },
+            items: [
+                {
+                    type: 'category',
+                    label: 'Monitoring',
+                    link: {
+                        type: 'doc',
+                        id: 'operations/monitoring/intro',
+                    },
+                    items: [
+                        {
+                            type: 'category',
+                            label: 'InfluxDB',
+                            link: {
+                                type: 'doc',
+                                id: 'operations/monitoring/influxdb/intro',
+                            },
+                            items: [
+                                {
+                                    type: 'doc',
+                                    id: 'operations/monitoring/influxdb/influxdb'
+                                },
+                                {
+                                    type: 'doc',
+                                    id: 'operations/monitoring/influxdb/influxdb_maintenance'
+                                },
+                            ],
+                        },
+                    ],
+                },
+            ],
+        },
+        {
+            type: 'category',
+            label: 'Configuration Guide',
+            items: [
+                {
+                    type: 'doc',
+                    id: 'configuration/intro'
+                },
+            ],
+        },
+    ],
+    DevelopmentSideBar: [
+        {
+            type: 'category',
+            label: 'Development Guide',
+            items: [
+                {
+                    type: 'doc',
+                    id: 'development/roadmap'
+                },
+                {
+                    type: 'doc',
+                    id: 'development/how_to_contribute'
+                },
+                {
+                    type: 'doc',
+                    id: 'development/how_to_develop'
+                },
+                {
+                    type: 'doc',
+                    id: 'development/how_to_package'
+                },
+                {
+                    type: 'doc',
+                    id: 'development/how_to_release'
+                },
+            ],
+        },
+    ],
+    CommunitySideBar: [
+        {
+            type: 'doc',
+            id: 'community',
+            label: 'Community',
+        },
+    ],
+    PowerBySideBar:[
+        {
+            type: 'doc',
+            id: 'powerBy',
+            label: 'PowerBy',
+        }
+    ],
 };
 
 module.exports = sidebars;


[kylin] 01/07: KYLIN-5221 add installation docs

Posted by xx...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

xxyu pushed a commit to branch doc5.0
in repository https://gitbox.apache.org/repos/asf/kylin.git

commit d321b51c9da2a9de5ab58b8457ef731ae033463c
Author: Mukvin <bo...@163.com>
AuthorDate: Tue Aug 16 14:32:52 2022 +0800

    KYLIN-5221 add installation docs
---
 .../installation/images/download_krb5.en.png       | Bin 0 -> 520189 bytes
 .../images/installation_job_monitor.png            | Bin 0 -> 97444 bytes
 .../images/installation_query_result.png           | Bin 0 -> 104403 bytes
 .../images/installation_show_model.png             | Bin 0 -> 40453 bytes
 .../docs/deployment/installation/images/job.png    | Bin 0 -> 273294 bytes
 .../deployment/installation/images/minimal.png     | Bin 0 -> 99177 bytes
 .../deployment/installation/images/model_list.png  | Bin 0 -> 123821 bytes
 .../docs/deployment/installation/images/query.png  | Bin 0 -> 199326 bytes
 .../installation/images/query_result.png           | Bin 0 -> 198222 bytes
 .../deployment/installation/install_validation.md  |  81 ++++++++++++++++
 website/docs/deployment/installation/intro.md      |  20 ++++
 .../docs/deployment/installation/uninstallation.md | 103 +++++++++++++++++++++
 12 files changed, 204 insertions(+)

diff --git a/website/docs/deployment/installation/images/download_krb5.en.png b/website/docs/deployment/installation/images/download_krb5.en.png
new file mode 100644
index 0000000000..4f6ad87b8c
Binary files /dev/null and b/website/docs/deployment/installation/images/download_krb5.en.png differ
diff --git a/website/docs/deployment/installation/images/installation_job_monitor.png b/website/docs/deployment/installation/images/installation_job_monitor.png
new file mode 100644
index 0000000000..71d71cde34
Binary files /dev/null and b/website/docs/deployment/installation/images/installation_job_monitor.png differ
diff --git a/website/docs/deployment/installation/images/installation_query_result.png b/website/docs/deployment/installation/images/installation_query_result.png
new file mode 100644
index 0000000000..8c0008424d
Binary files /dev/null and b/website/docs/deployment/installation/images/installation_query_result.png differ
diff --git a/website/docs/deployment/installation/images/installation_show_model.png b/website/docs/deployment/installation/images/installation_show_model.png
new file mode 100644
index 0000000000..1c3b11461e
Binary files /dev/null and b/website/docs/deployment/installation/images/installation_show_model.png differ
diff --git a/website/docs/deployment/installation/images/job.png b/website/docs/deployment/installation/images/job.png
new file mode 100644
index 0000000000..b139648ede
Binary files /dev/null and b/website/docs/deployment/installation/images/job.png differ
diff --git a/website/docs/deployment/installation/images/minimal.png b/website/docs/deployment/installation/images/minimal.png
new file mode 100644
index 0000000000..2761e25a09
Binary files /dev/null and b/website/docs/deployment/installation/images/minimal.png differ
diff --git a/website/docs/deployment/installation/images/model_list.png b/website/docs/deployment/installation/images/model_list.png
new file mode 100644
index 0000000000..1feb8dba00
Binary files /dev/null and b/website/docs/deployment/installation/images/model_list.png differ
diff --git a/website/docs/deployment/installation/images/query.png b/website/docs/deployment/installation/images/query.png
new file mode 100644
index 0000000000..2a02096776
Binary files /dev/null and b/website/docs/deployment/installation/images/query.png differ
diff --git a/website/docs/deployment/installation/images/query_result.png b/website/docs/deployment/installation/images/query_result.png
new file mode 100644
index 0000000000..7c19d2acfa
Binary files /dev/null and b/website/docs/deployment/installation/images/query_result.png differ
diff --git a/website/docs/deployment/installation/install_validation.md b/website/docs/deployment/installation/install_validation.md
new file mode 100644
index 0000000000..a3d0dbc8e2
--- /dev/null
+++ b/website/docs/deployment/installation/install_validation.md
@@ -0,0 +1,81 @@
+---
+title: Install Validation
+language: en
+sidebar_label: Install Validation
+pagination_label: Install Validation
+toc_min_heading_level: 2
+toc_max_heading_level: 6
+pagination_prev: null
+pagination_next: null
+keywords:
+    - install
+    - validation
+draft: true
+last_update:
+    date: 08/12/2022
+---
+
+Kylin uses the open source **SSB** (Star Schema Benchmark) dataset for star schema OLAP scenarios as a test dataset. You can verify whether the installation is successful by running a script to import the SSB dataset into Hive. The SSB dataset is from multiple CSV files.
+
+This section verifies installation with the following steps:
+
+- [Import Sample Data](#ssb)
+- [Validate Product Functions](#function)
+- [Validate Query Analysis](#query)
+
+
+### <span id="ssb">Import Sample Data</span>
+
+Run the following command to import the sample data:
+
+```shell
+$KYLIN_HOME/bin/sample.sh
+```
+
+The script will create 1 database **SSB** and 6 Hive tables then import data into it.
+
+After running successfully, you should be able to see the following information in the console:
+
+```shell
+Sample hive tables are created successfully
+```
+
+We will be using SSB dataset as the data sample to introduce Kylin in several sections of this  product manual. The SSB dataset simulates transaction data for the online store, see more details in [Sample Dataset](../../Get-to-Know-Kyligence-Enterprise/quickstart/sample_dataset.en.md). Below is a brief introduction.
+
+
+| Table        | Description                 | Introduction                                                         |
+| ----------- | -------------------- | ------------------------------------------------------------ |
+| CUSTOMER    | customer information           | includes customer name, address, contact information .etc.                       |
+| DATES       | order date          | includes a order's specific date, week, month, year .etc. |
+| LINEORDER   | order information           | includes some basic information like order date, order amount, order revenue, supplier ID, commodity ID, customer Id .etc. |
+| PART        | product information           | includes some basic information like product name, category, brand .etc.                           |
+| P_LINEORDER | view based on order information table | includes all content in the order information table and new content in the view   |
+| SUPPLIER    | supplier information        | includes supplier name, address, contact information .etc.          |
+
+### <span id="function">Validate Product Functions</span>
+
+On the **Data Asset -> Model** page, you should see an example model with som storage over 0.00 KB, this indicates the data has been is loaded for this model.
+
+![model list](images/model_list.png)
+
+On the **Monitor -> Job** page, you should see all jobs have been completed successfully. 
+
+![job monitor](images/job.png)
+
+### <span id="query">Validate Query Analysis</span>
+
+When the metadata is loaded successfully, at the **Insight** page, 6 sample hive tables would be shown at the left panel. User could input query statements against these tables. For example, the SQL statement queries different product group by order date, and in descending order by total revenue: 
+
+```sql
+SELECT LO_PARTKEY, SUM(LO_REVENUE) AS TOTAL_REVENUE
+FROM SSB.P_LINEORDER
+WHERE LO_ORDERDATE between '19930601' AND '19940601' 
+group by LO_PARTKEY
+order by SUM(LO_REVENUE) DESC 
+```
+
+The query result will be displayed at the **Insight** page, showing that the query hit the sample model.
+
+![query result](images/query.png)
+
+You can also use the same SQL statement to query on Hive to verify the result and response time of this query.
diff --git a/website/docs/deployment/installation/intro.md b/website/docs/deployment/installation/intro.md
new file mode 100644
index 0000000000..acc4d62152
--- /dev/null
+++ b/website/docs/deployment/installation/intro.md
@@ -0,0 +1,20 @@
+---
+title: Install and Uninstall
+language: en
+sidebar_label: Install and Uninstall
+pagination_label: Install and Uninstall
+toc_min_heading_level: 2
+toc_max_heading_level: 6
+pagination_prev: null
+pagination_next: null
+keywords:
+    - install
+    - uninstall
+draft: false
+last_update:
+    date: 08/12/2022
+---
+
+## Install and Uninstall
+
+This chapter will introduce how to install Kylin on different platforms and how to uninstall Kylin.
diff --git a/website/docs/deployment/installation/uninstallation.md b/website/docs/deployment/installation/uninstallation.md
new file mode 100644
index 0000000000..6d005606aa
--- /dev/null
+++ b/website/docs/deployment/installation/uninstallation.md
@@ -0,0 +1,103 @@
+---
+title: Uninstall
+language: en
+sidebar_label: Uninstall
+pagination_label: Uninstall
+toc_min_heading_level: 2
+toc_max_heading_level: 6
+pagination_prev: null
+pagination_next: null
+keywords:
+    - uninstall
+draft: false
+last_update:
+    date: 08/12/2022
+---
+
+In this section, we will show you how to uninstall Kylin.
+
+The steps to uninstall Kylin and remove all relevant data are as follows:
+
+1. Run the following command on all Kylin nodes to stop the Kylin instance:
+
+   ```shell
+   $KYLIN_HOME/bin/kylin.sh stop
+   ```
+
+2. Data backup (optional):
+
+   - Backup metadata before full unloading so that it can be restored when needed.
+
+     ```shell
+     $KYLIN_HOME/bin/metastore.sh backup
+     ```
+
+     > Notice: We recommend that you copy metadata to more reliable storage devices later.
+
+3. Please check the configuration file `$KYLIN_HOME/conf/kylin.properties`  to determine the name of the working directory. Suppose your item is:
+
+   ```properties
+   kylin.hdfs.working.dir=/kylin
+   ```
+
+   Please run the following command to delete the working directory:
+
+   ```shell
+   hdfs dfs -rm -r /kylin
+   ```
+
+4. Please check the configuration file `$KYLIN_HOME/conf/kylin.properties` to confirm the name of the metadata table. Suppose your item is:
+
+   ```properties
+   kylin.metadata.url=kylin_metadata@jdbc
+   ```
+
+   Please run following commands to delete metadata tables:
+
+   - If you are using PostgreSQL as your metastore:
+
+     - Set environment variable of PostgreSQL user password. Say your PostgreSQL user password is `kylin`:
+     
+       ```
+       export PGPASSWORD=kylin
+       ```
+     
+     - Delete metadata tables:
+     
+       ```shell
+       /usr/pgsql-10/bin/psql -h {hostname} -p {port} -U {user} -d {database} -c "drop table if exists {metadataUrl}"
+       ```
+     
+       Below is a description of the fields:
+     
+       - hostname: PostgreSQL host address;
+       - port: PostgreSQL server port;
+       - user: PostgreSQL user password;
+       - database: PostgreSQL database name;
+       - metadataUrl: PostgreSQL metadata table name, it is `kylin_metadata` in this example.
+     
+     You can also log in to PostgreSQL and query `drop table if exists {metadataUrl}` to delete your metadata table.
+     
+   - If you are using MySQL as your metastore, run the following command to delete your metadata tables:
+
+     ```shell
+     mysql -h{hostname} -u {root} -p{password} -D {database} -e "drop table if exists {metadataUrl}"
+     ```
+
+       Below is a description of the fields:
+
+     - hostname: MySQL host address;
+     - user: MySQL user name;
+     - password: MySQL user password, please note that there is no space between `-p` and password;
+     - database: MySQL metadata database name;
+     - metadataUrl: MySQL metadata table name, it is `kylin_metadata` in this example.
+
+     You can also log in to MySQL and query `drop table if exists {metadataUrl}` to delete your metadata table.
+	
+5. Run the following commands on all Kylin nodes to delete the Kylin installation directory:
+
+   ```shell
+   rm -rf $KYLIN_HOME
+   ```
+
+At this point, the Kylin uninstall is complete.