From 7a132477b7cbe06278c127c6732990885210dd56 Mon Sep 17 00:00:00 2001 From: fariel Date: Tue, 28 Apr 2020 16:53:14 +0800 Subject: [PATCH] [Enhancement] documents rebuild with Vuepress (#3408) --- .gitignore | 4 +- .travis.yml | 57 ++ LICENSE.txt | 24 + docs/.markdownlint.yml | 19 + docs/.markdownlintignore | 2 + docs/.vuepress/config.js | 120 ++++ docs/.vuepress/public/favicon.ico | Bin 0 -> 4286 bytes .../public}/images/apache-asf-compressed.png | Bin .../public}/images/apache-incubator-logo.png | Bin .../public}/images/apache-incubator.png | Bin .../public}/images/apache_incubator_logo.png | Bin .../public}/images/architecture.png | Bin .../public}/images/asf_logo_wide_small.png | Bin .../public}/images/backend_state.png | Bin .../images/cluster_link_and_migrate_db.png | Bin .../public}/images/cluster_namaspace.png | Bin .../public}/images/cpu-flame-demo.svg | 0 .../public}/images/cpu-pprof-demo.png | Bin .../public}/images/cpu-pprof-demo.svg | 0 .../public}/images/create-pr.png | Bin .../public}/images/create-pr2.png | Bin .../public}/images/create-pr3.png | Bin .../public}/images/dashboard_navibar.png | Bin .../public}/images/dashboard_overview.png | Bin .../public}/images/dashboard_panel.png | Bin .../public}/images/dashboard_row.png | Bin .../public}/images/doris-logo-1.png | Bin .../public}/images/doris-logo-2.png | Bin .../public/images/doris-logo-only.png | Bin 0 -> 18959 bytes docs/.vuepress/public/images/doris-logo.png | Bin 0 -> 13630 bytes .../public}/images/egg-logo.png | Bin .../public}/images/egg-logo2.png | Bin .../public}/images/export_plan_tree_1.png | Bin .../public}/images/export_plan_tree_2.png | Bin .../public}/images/export_status_change.png | Bin .../public}/images/fe_page_index.png | Bin .../public}/images/fe_page_logs.png | Bin .../public}/images/fe_page_queries.png | Bin .../public}/images/fe_page_sessions.png | Bin .../public}/images/fe_page_system.png | Bin .../public}/images/fe_page_system_access.png | Bin .../images/fe_page_system_backends.png | Bin .../public}/images/fe_page_system_brokers.png | Bin .../public}/images/fe_page_system_dbs.png | Bin .../images/fe_page_system_error_hub.png | Bin .../images/fe_page_system_frontends.png | Bin .../public}/images/fe_page_system_jobs.png | Bin .../images/fe_page_system_statistic.png | Bin .../public}/images/fe_page_system_tasks.png | Bin .../public}/images/fork-repo.png | Bin .../public}/images/graduation-timeline.png | Bin .../images/howtoincubateaproject-thumb.png | Bin .../public}/images/howtoincubateaproject.png | Bin .../incbuator_feather_egg_logo_crop.png | Bin .../public}/images/incubation-process.png | Bin .../public}/images/incubator_ring_logo.png | Bin .../public}/images/log_replication.jpg | Bin .../public}/images/login-gitter1.png | Bin .../public}/images/login-gitter2.PNG | Bin .../public}/images/metadata_contents.png | Bin .../public}/images/metadata_stream.png | Bin .../public}/images/monitor_arch.png | Bin .../public}/images/multi_tenant_arch.png | Bin .../public}/images/new-pr.png | Bin .../public}/images/palo_architecture.jpg | Bin .../public}/images/palo_meta.png | Bin .../public}/images/perf-report-demo.png | Bin .../public}/images/replica_recover.png | Bin .../public}/images/segment_v2.png | Bin .../public}/images/spark_doris_connector.jpg | Bin .../images/subscribe-mail-list-step1.png | Bin .../images/subscribe-mail-list-step2.png | Bin .../images/subscribe-mail-list-step3.png | Bin .../images/subscribe-mail-list-step4.png | Bin .../public}/images/user_authority.png | Bin docs/.vuepress/sidebar/en.js | 442 +++++++++++++ docs/.vuepress/sidebar/zh-CN.js | 450 +++++++++++++ docs/.vuepress/theme/components/Footer.vue | 53 ++ docs/.vuepress/theme/components/Home.vue | 38 ++ docs/.vuepress/theme/components/NavLinks.vue | 56 ++ docs/.vuepress/theme/index.js | 21 + docs/.vuepress/theme/layouts/Layout.vue | 38 ++ docs/Makefile | 43 -- docs/README.md | 292 +++++++++ .../administrator-guide/alter-table/index.rst | 9 - .../cn/administrator-guide/config/index.rst | 9 - .../http-actions/index.rst | 9 - .../cn/administrator-guide/index.rst | 20 - .../administrator-guide/load-data/index.rst | 13 - .../materialized-view/index.rst | 9 - .../administrator-guide/operation/index.rst | 9 - docs/documentation/cn/community/index.rst | 8 - .../cn/developer-guide/index.rst | 8 - docs/documentation/cn/downloads/index.rst | 10 - .../cn/extending-doris/index.rst | 8 - .../cn/getting-started/index.rst | 12 - docs/documentation/cn/index.rst | 18 - docs/documentation/cn/installing/index.rst | 9 - docs/documentation/cn/internal/index.rst | 8 - docs/documentation/cn/sql-reference/index.rst | 9 - .../aggregate-functions/index.rst | 8 - .../sql-functions/bitmap-functions/index.rst | 8 - .../date-time-functions/index.rst | 8 - .../sql-functions/hash-functions/index.rst | 8 - .../cn/sql-reference/sql-functions/index.rst | 18 - .../sql-functions/spatial-functions/index.rst | 8 - .../sql-functions/string-functions/index.rst | 8 - .../Account Management/index.rst | 8 - .../sql-statements/Administration/index.rst | 8 - .../sql-statements/Data Definition/index.rst | 8 - .../Data Manipulation/index.rst | 8 - .../sql-statements/Data Types/index.rst | 8 - .../sql-statements/Utility/index.rst | 8 - .../cn/sql-reference/sql-statements/index.rst | 13 - .../administrator-guide/alter-table/index.rst | 9 - .../en/administrator-guide/config/index.rst | 9 - .../http-actions/index.rst | 9 - .../en/administrator-guide/index.rst | 19 - .../administrator-guide/load-data/index.rst | 13 - .../administrator-guide/operation/index.rst | 9 - docs/documentation/en/community/index.rst | 8 - .../en/developer-guide/index.rst | 8 - docs/documentation/en/downloads/index.rst | 10 - .../en/extending-doris/index.rst | 8 - .../en/getting-started/index.rst | 12 - docs/documentation/en/index.rst | 20 - docs/documentation/en/installing/index.rst | 9 - docs/documentation/en/internal/index.rst | 8 - docs/documentation/en/sql-reference/index.rst | 9 - .../aggregate-functions/index.rst | 8 - .../sql-functions/bitmap-functions/index.rst | 8 - .../date-time-functions/index.rst | 8 - .../sql-functions/hash-functions/index.rst | 8 - .../en/sql-reference/sql-functions/index.rst | 18 - .../sql-functions/spatial-functions/index.rst | 8 - .../sql-functions/string-functions/index.rst | 8 - .../Account Management/index.rst | 8 - .../sql-statements/Administration/index.rst | 8 - .../sql-statements/Data Definition/index.rst | 8 - .../Data Manipulation/index.rst | 8 - .../sql-statements/Data Types/index.rst | 8 - .../sql-statements/Utility/index.rst | 8 - .../en/sql-reference/sql-statements/index.rst | 13 - docs/en/README.md | 8 + .../alter-table/alter-table-bitmap-index.md} | 7 + .../alter-table/alter-table-rollup.md} | 7 + .../alter-table/alter-table-schema-change.md} | 7 + .../alter-table-temp-partition.md} | 7 + .../administrator-guide/backup-restore.md} | 7 + .../administrator-guide/broker.md} | 7 + .../administrator-guide/colocation-join.md} | 7 + .../administrator-guide/config/fe_config.md} | 7 + .../administrator-guide/dynamic-partition.md} | 7 + .../administrator-guide/export_manual.md} | 7 + .../http-actions/cancel-label.md} | 7 + .../http-actions/compaction-action.md} | 11 +- .../http-actions/fe-get-log-file.md} | 7 + .../http-actions/get-label-state.md} | 7 + .../http-actions/restore-tablet.md} | 7 + .../load-data/broker-load-manual.md} | 7 + .../load-data/delete-manual.md} | 7 + .../load-data/insert-into-manual.md} | 7 + .../load-data/load-manual.md} | 7 + .../load-data/routine-load-manual.md} | 7 + .../load-data/stream-load-manual.md} | 7 + .../operation/metadata-operation.md} | 7 + .../operation/monitor-alert.md} | 17 +- .../operation/multi-tenant.md} | 21 +- .../operation/tablet-meta-tool.md} | 7 + .../operation/tablet-repair-and-balance.md} | 7 + .../administrator-guide/privilege.md} | 7 + .../administrator-guide/small-file-mgr.md} | 7 + .../administrator-guide/sql-mode.md} | 7 + .../administrator-guide/time-zone.md} | 7 + .../administrator-guide/variables.md} | 7 + .../gitter_EN.md => en/community/gitter.md} | 11 +- .../community/how-to-contribute.md} | 7 + .../members_EN.md => en/community/members.md} | 7 + .../community/pull-request.md} | 17 +- .../community/release-process.md} | 7 + .../community/subscribe-mail-list.md} | 15 +- .../community/verify-apache-release.md} | 7 + .../en/developer-guide/debug-tool.md | 13 +- .../en/developer-guide/format-code.md | 7 + .../downloads/downloads.md} | 7 + .../extending-doris/audit-plugin.md} | 7 + .../extending-doris/doris-on-es.md} | 7 + .../plugin-development-manual.md} | 7 + .../extending-doris/user-defined-function.md} | 7 + .../getting-started/advance-usage.md} | 7 + .../getting-started/basic-usage.md} | 7 + .../getting-started/best-practice.md} | 7 + .../getting-started/data-model-rollup.md} | 7 + .../getting-started/data-partition.md} | 7 + .../getting-started/hit-the-rollup.md} | 7 + .../installing/compilation.md} | 7 + .../installing/install-deploy.md} | 7 + .../installing/upgrade.md} | 7 + .../internal/doris_storage_optimization.md} | 9 +- .../internal/grouping_sets_design.md} | 7 + .../internal/metadata-design.md} | 13 +- .../sql-functions/aggregate-functions/avg.md} | 7 + .../aggregate-functions/bitmap.md} | 7 + .../aggregate-functions/count.md} | 7 + .../aggregate-functions/hll_union_agg.md} | 7 + .../sql-functions/aggregate-functions/max.md} | 7 + .../sql-functions/aggregate-functions/min.md} | 7 + .../sql-functions/aggregate-functions/ndv.md} | 7 + .../aggregate-functions/percentile_approx.md} | 7 + .../aggregate-functions/stddev.md} | 7 + .../aggregate-functions/stddev_samp.md} | 7 + .../sql-functions/aggregate-functions/sum.md} | 7 + .../aggregate-functions/var_samp.md} | 7 + .../aggregate-functions/variance.md} | 7 + .../bitmap-functions/bitmap_and.md} | 7 + .../bitmap-functions/bitmap_contains.md} | 7 + .../bitmap-functions/bitmap_empty.md} | 7 + .../bitmap-functions/bitmap_from_string.md | 7 + .../bitmap-functions/bitmap_has_any.md} | 7 + .../bitmap-functions/bitmap_hash.md} | 7 + .../bitmap-functions/bitmap_or.md} | 7 + .../bitmap-functions/bitmap_to_string.md | 7 + .../bitmap-functions/to_bitmap.md} | 7 + .../sql-reference/sql-functions/cast.md} | 7 + .../date-time-functions/curdate.md} | 7 + .../date-time-functions/current_timestamp.md} | 7 + .../date-time-functions/date_add.md} | 7 + .../date-time-functions/date_format.md} | 7 + .../date-time-functions/date_sub.md} | 7 + .../date-time-functions/datediff.md} | 7 + .../sql-functions/date-time-functions/day.md} | 7 + .../date-time-functions/dayname.md} | 7 + .../date-time-functions/dayofmonth.md} | 7 + .../date-time-functions/dayofweek.md} | 7 + .../date-time-functions/dayofyear.md} | 7 + .../date-time-functions/from_days.md} | 7 + .../date-time-functions/from_unixtime.md} | 7 + .../date-time-functions/hour.md} | 7 + .../date-time-functions/minute.md} | 7 + .../date-time-functions/month.md} | 7 + .../date-time-functions/monthname.md} | 7 + .../sql-functions/date-time-functions/now.md} | 7 + .../date-time-functions/second.md} | 7 + .../date-time-functions/str_to_date.md} | 7 + .../date-time-functions/timediff.md} | 7 + .../date-time-functions/timestampadd.md} | 7 + .../date-time-functions/timestampdiff.md} | 7 + .../date-time-functions/to_days.md} | 7 + .../date-time-functions/unix_timestamp.md} | 7 + .../date-time-functions/utc_timestamp.md} | 7 + .../date-time-functions/workofyear.md} | 7 + .../date-time-functions/year.md} | 7 + .../hash-functions/murmur_hash3_32.md | 7 + .../spatial-functions/st_astext.md} | 7 + .../spatial-functions/st_circle.md} | 7 + .../spatial-functions/st_contains.md} | 7 + .../spatial-functions/st_distance_sphere.md} | 7 + .../spatial-functions/st_geometryfromtext.md} | 7 + .../spatial-functions/st_linefromtext.md} | 7 + .../spatial-functions/st_point.md} | 7 + .../spatial-functions/st_polygon.md} | 7 + .../sql-functions/spatial-functions/st_x.md} | 7 + .../sql-functions/spatial-functions/st_y.md} | 7 + .../sql-functions/string-functions/ascii.md} | 7 + .../sql-functions/string-functions/concat.md} | 7 + .../string-functions/concat_ws.md} | 7 + .../string-functions/ends_with.md} | 7 + .../string-functions/find_in_set.md} | 7 + .../string-functions/get_json_double.md} | 7 + .../string-functions/get_json_int.md} | 7 + .../string-functions/get_json_string.md} | 7 + .../string-functions/group_concat.md} | 7 + .../sql-functions/string-functions/instr.md} | 7 + .../sql-functions/string-functions/lcase.md} | 7 + .../sql-functions/string-functions/left.md} | 7 + .../sql-functions/string-functions/length.md} | 7 + .../sql-functions/string-functions/locate.md} | 7 + .../sql-functions/string-functions/lower.md} | 7 + .../sql-functions/string-functions/lpad.md} | 7 + .../sql-functions/string-functions/ltrim.md} | 7 + .../string-functions/money_format.md} | 7 + .../string-functions/null_or_empty.md | 7 + .../string-functions/regexp_extract.md} | 7 + .../string-functions/regexp_replace.md} | 7 + .../sql-functions/string-functions/repeat.md} | 7 + .../sql-functions/string-functions/right.md} | 7 + .../string-functions/split_part.md} | 7 + .../string-functions/starts_with.md} | 7 + .../string-functions/strleft.md} | 7 + .../string-functions/strright.md} | 7 + .../Account Management/CREATE ROLE.md} | 7 + .../Account Management/CREATE USER.md} | 7 + .../Account Management/DROP ROLE.md} | 7 + .../Account Management/DROP USER.md} | 7 + .../Account Management/GRANT.md} | 7 + .../Account Management/REVOKE.md} | 7 + .../Account Management/SET PASSWORD.md} | 7 + .../Account Management/SET PROPERTY.md} | 7 + .../Account Management/SHOW GRANTS.md} | 7 + .../Account Management/SHOW ROLES.md} | 7 + .../Administration/ADMIN CANCEL REPAIR.md} | 7 + .../Administration/ADMIN CHECK TABLET.md} | 7 + .../Administration/ADMIN REPAIR.md} | 7 + .../Administration/ADMIN SET CONFIG.md} | 7 + .../ADMIN SET REPLICA STATUS.md} | 7 + .../Administration/ADMIN SHOW CONFIG.md} | 7 + .../ADMIN SHOW REPLICA DISTRIBUTION.md} | 7 + .../ADMIN SHOW REPLICA STATUS.md} | 7 + .../Administration/ALTER CLUSTER.md} | 7 + .../Administration/ALTER SYSTEM.md} | 7 + .../Administration/CANCEL DECOMMISSION.md} | 7 + .../Administration/CREATE CLUSTER.md} | 7 + .../Administration/CREATE FILE.md} | 7 + .../Administration/DROP CLUSTER.md} | 7 + .../Administration/DROP FILE.md} | 7 + .../sql-statements/Administration/ENTER.md} | 7 + .../Administration/INSTALL PLUGIN.md} | 7 + .../Administration/LINK DATABASE.md} | 7 + .../Administration/MIGRATE DATABASE.md} | 7 + .../Administration/SHOW BACKENDS.md} | 7 + .../Administration/SHOW BROKER.md} | 7 + .../Administration/SHOW FILE.md} | 7 + .../Administration/SHOW FRONTENDS.md} | 7 + .../Administration/SHOW FULL COLUMNS.md} | 7 + .../Administration/SHOW INDEX.md} | 7 + .../Administration/SHOW MIGRATIONS.md} | 7 + .../Administration/SHOW PLUGINS.md} | 7 + .../Administration/SHOW TABLE STATUS.md} | 7 + .../Administration/UNINTALL PLUGIN.md} | 7 + .../Data Definition/ALTER DATABASE.md} | 7 + .../Data Definition/ALTER TABLE.md} | 7 + .../Data Definition/ALTER VIEW.md} | 7 + .../sql-statements/Data Definition/BACKUP.md} | 7 + .../Data Definition/CANCEL ALTER.md} | 7 + .../Data Definition/CANCEL BACKUP.md} | 7 + .../Data Definition/CANCEL RESTORE.md} | 7 + .../Data Definition/CREATE DATABASE.md} | 7 + .../Data Definition/CREATE INDEX.md} | 7 + .../CREATE MATERIALIZED VIEW.md | 7 + .../Data Definition/CREATE REPOSITORY.md} | 7 + .../Data Definition/CREATE TABLE.md} | 7 + .../Data Definition/CREATE VIEW.md} | 7 + .../Data Definition/Colocate Join.md} | 7 + .../Data Definition/DROP DATABASE.md} | 7 + .../Data Definition/DROP INDEX.md} | 7 + .../Data Definition/DROP MATERIALIZED VIEW.md | 7 + .../Data Definition/DROP REPOSITORY.md} | 7 + .../Data Definition/DROP TABLE.md} | 7 + .../Data Definition/DROP VIEW.md} | 7 + .../sql-statements/Data Definition/HLL.md} | 7 + .../Data Definition/RECOVER.md} | 7 + .../Data Definition/RESTORE.md} | 7 + .../Data Definition/TRUNCATE TABLE.md} | 7 + .../Data Definition/create-function.md} | 7 + .../Data Definition/drop-function.md} | 7 + .../Data Definition/show-functions.md} | 7 + .../Data Manipulation/BROKER LOAD.md} | 7 + .../Data Manipulation/CANCEL DELETE.md} | 7 + .../Data Manipulation/CANCEL LABEL.md} | 7 + .../Data Manipulation/CANCEL LOAD.md} | 7 + .../Data Manipulation/DELETE.md} | 7 + .../Data Manipulation/EXPORT.md} | 7 + .../Data Manipulation/GET LABEL STATE.md} | 7 + .../Data Manipulation/GROUP BY.md} | 7 + .../sql-statements/Data Manipulation/LOAD.md} | 7 + .../Data Manipulation/MINI LOAD.md} | 7 + .../Data Manipulation/MULTI LOAD.md} | 7 + .../Data Manipulation/PAUSE ROUTINE LOAD.md} | 7 + .../Data Manipulation/RESTORE TABLET.md} | 7 + .../Data Manipulation/RESUME ROUTINE LOAD.md} | 7 + .../Data Manipulation/ROUTINE LOAD.md} | 7 + .../Data Manipulation/SHOW ALTER.md} | 7 + .../Data Manipulation/SHOW BACKUP.md} | 7 + .../Data Manipulation/SHOW DATA.md} | 7 + .../Data Manipulation/SHOW DATABASES.md} | 7 + .../Data Manipulation/SHOW DELETE.md} | 7 + .../SHOW DYNAMIC PARTITION TABLES.md} | 7 + .../Data Manipulation/SHOW EXPORT.md} | 7 + .../Data Manipulation/SHOW LOAD.md} | 7 + .../Data Manipulation/SHOW PARTITIONS.md} | 7 + .../Data Manipulation/SHOW PROPERTY.md} | 7 + .../Data Manipulation/SHOW REPOSITORIES.md} | 7 + .../Data Manipulation/SHOW RESTORE.md} | 7 + .../SHOW ROUTINE LOAD TASK.md} | 7 + .../Data Manipulation/SHOW ROUTINE LOAD.md} | 7 + .../Data Manipulation/SHOW SNAPSHOT.md} | 7 + .../Data Manipulation/SHOW TABLES.md} | 7 + .../Data Manipulation/SHOW TABLET.md} | 7 + .../Data Manipulation/SHOW TRANSACTION.md} | 11 +- .../Data Manipulation/STOP ROUTINE LOAD.md} | 7 + .../Data Manipulation/STREAM LOAD.md} | 7 + .../Data Manipulation/insert.md} | 7 + .../sql-statements/Data Types/BIGINT.md} | 7 + .../sql-statements/Data Types/BOOLEAN.md} | 7 + .../sql-statements/Data Types/CHAR.md} | 7 + .../sql-statements/Data Types/DATE.md} | 7 + .../sql-statements/Data Types/DATETIME.md} | 7 + .../sql-statements/Data Types/DECIMAL.md} | 7 + .../sql-statements/Data Types/DOUBLE.md} | 7 + .../sql-statements/Data Types/FLOAT.md} | 7 + .../Data Types/HLL(HyperLogLog).md} | 7 + .../sql-statements/Data Types/INT.md} | 7 + .../sql-statements/Data Types/SMALLINT.md} | 7 + .../sql-statements/Data Types/TINYINT.md} | 7 + .../sql-statements/Data Types/VARCHAR.md} | 7 + .../sql-statements/Utility/util_stmt.md} | 7 + docs/package.json | 36 ++ docs/readme.md | 314 ++++++++-- docs/resources/palo_export_mind_map.svg | 1 - docs/website/Makefile | 36 -- docs/website/README.md | 61 -- docs/website/build_site.sh | 85 --- docs/website/source/_templates/footer.html | 28 - docs/website/source/conf.py | 199 ------ docs/website/source/index.rst | 590 ------------------ docs/zh-CN/README.md | 8 + .../alter-table/alter-table-bitmap-index.md | 7 + .../alter-table/alter-table-rollup.md | 7 + .../alter-table/alter-table-schema-change.md | 7 + .../alter-table/alter-table-temp-partition.md | 7 + .../administrator-guide/backup-restore.md | 7 + .../administrator-guide/broker.md | 7 + .../administrator-guide/colocation-join.md | 7 + .../administrator-guide/config/fe_config.md | 7 + .../administrator-guide/dynamic-partition.md | 7 + .../administrator-guide/export-manual.md | 7 + .../http-actions/cancel-label.md | 7 + .../http-actions/compaction-action.md | 7 + .../http-actions/fe-get-log-file.md | 7 + .../http-actions/get-label-state.md | 7 + .../http-actions/restore-tablet.md | 7 + .../load-data/broker-load-manual.md | 7 + .../load-data/delete-manual.md | 7 + .../load-data/insert-into-manual.md | 7 + .../load-data/load-manual.md | 7 + .../load-data/routine-load-manual.md | 7 + .../load-data/stream-load-manual.md | 7 + .../operation/disk-capacity.md | 7 + .../operation/metadata-operation.md | 7 + .../operation/monitor-alert.md | 17 +- .../operation/multi-tenant.md | 21 +- .../operation/tablet-meta-tool.md | 7 + .../operation/tablet-repair-and-balance.md | 7 + .../operation/tablet-restore-tool.md | 7 + .../administrator-guide/privilege.md | 7 + .../administrator-guide/segment-v2-usage.md | 7 + .../administrator-guide/small-file-mgr.md | 7 + .../administrator-guide/sql-mode.md | 7 + .../administrator-guide/time-zone.md | 7 + .../administrator-guide/variables.md | 7 + .../cn => zh-CN}/community/gitter.md | 11 +- .../community/how-to-contribute.md | 7 + .../cn => zh-CN}/community/members.md | 7 + .../cn => zh-CN}/community/pull-request.md | 17 +- .../cn => zh-CN}/community/release-process.md | 7 + .../community/subscribe-mail-list.md | 15 +- .../community/verify-apache-release.md | 7 + .../developer-guide/debug-tool.md | 13 +- .../developer-guide/format-code.md | 7 + .../cn => zh-CN}/downloads/downloads.md | 7 + .../extending-doris/audit-plugin.md | 7 + .../extending-doris/doris-on-es.md | 7 + .../plugin-development-manual.md | 7 + .../extending-doris/user-defined-function.md | 7 + .../getting-started/advance-usage.md | 7 + .../getting-started/basic-usage.md | 7 + .../getting-started/best-practice.md | 7 + .../getting-started/data-model-rollup.md | 7 + .../getting-started/data-partition.md | 7 + .../getting-started/hit-the-rollup.md | 7 + .../cn => zh-CN}/installing/compilation.md | 7 + .../cn => zh-CN}/installing/install-deploy.md | 7 + .../cn => zh-CN}/installing/upgrade.md | 7 + .../internal/doris_storage_optimization.md | 9 +- .../internal/grouping_sets_design.md | 7 + .../cn => zh-CN}/internal/metadata-design.md | 13 +- .../cn => zh-CN}/internal/spark_load.md | 7 + .../sql-functions/aggregate-functions/avg.md | 7 + .../aggregate-functions/bitmap.md | 7 + .../aggregate-functions/count.md | 7 + .../aggregate-functions/hll_union_agg.md | 7 + .../sql-functions/aggregate-functions/max.md | 7 + .../sql-functions/aggregate-functions/min.md | 7 + .../sql-functions/aggregate-functions/ndv.md | 7 + .../aggregate-functions/percentile_approx.md | 7 + .../aggregate-functions/stddev.md | 7 + .../aggregate-functions/stddev_samp.md | 7 + .../sql-functions/aggregate-functions/sum.md | 7 + .../aggregate-functions/var_samp.md | 7 + .../aggregate-functions/variance.md | 7 + .../bitmap-functions/bitmap_and.md | 7 + .../bitmap-functions/bitmap_contains.md | 7 + .../bitmap-functions/bitmap_empty.md | 7 + .../bitmap-functions/bitmap_from_string.md | 7 + .../bitmap-functions/bitmap_has_any.md | 7 + .../bitmap-functions/bitmap_hash.md | 7 + .../bitmap-functions/bitmap_or.md | 7 + .../bitmap-functions/bitmap_to_string.md | 7 + .../bitmap-functions/to_bitmap.md | 7 + .../sql-reference/sql-functions/cast.md | 7 + .../date-time-functions/convert_tz.md | 7 + .../date-time-functions/curdate.md | 7 + .../date-time-functions/current_timestamp.md | 7 + .../date-time-functions/curtime.md | 7 + .../date-time-functions/date_add.md | 7 + .../date-time-functions/date_format.md | 7 + .../date-time-functions/date_sub.md | 7 + .../date-time-functions/datediff.md | 7 + .../sql-functions/date-time-functions/day.md | 7 + .../date-time-functions/dayname.md | 7 + .../date-time-functions/dayofmonth.md | 7 + .../date-time-functions/dayofweek.md | 7 + .../date-time-functions/dayofyear.md | 7 + .../date-time-functions/from_days.md | 7 + .../date-time-functions/from_unixtime.md | 7 + .../sql-functions/date-time-functions/hour.md | 7 + .../date-time-functions/minute.md | 7 + .../date-time-functions/month.md | 7 + .../date-time-functions/monthname.md | 7 + .../sql-functions/date-time-functions/now.md | 7 + .../date-time-functions/second.md | 7 + .../date-time-functions/str_to_date.md | 7 + .../date-time-functions/timediff.md | 7 + .../date-time-functions/timestampadd.md | 7 + .../date-time-functions/timestampdiff.md | 7 + .../date-time-functions/to_days.md | 7 + .../date-time-functions/unix_timestamp.md | 7 + .../date-time-functions/utc_timestamp.md | 7 + .../date-time-functions/workofyear.md | 7 + .../sql-functions/date-time-functions/year.md | 7 + .../hash-functions/murmur_hash3_32.md | 7 + .../spatial-functions/st_astext.md | 7 + .../spatial-functions/st_circle.md | 7 + .../spatial-functions/st_contains.md | 7 + .../spatial-functions/st_distance_sphere.md | 7 + .../spatial-functions/st_geometryfromtext.md | 7 + .../spatial-functions/st_linefromtext.md | 7 + .../spatial-functions/st_point.md | 7 + .../spatial-functions/st_polygon.md | 7 + .../sql-functions/spatial-functions/st_x.md | 7 + .../sql-functions/spatial-functions/st_y.md | 7 + .../sql-functions/string-functions/ascii.md | 7 + .../sql-functions/string-functions/concat.md | 7 + .../string-functions/concat_ws.md | 7 + .../string-functions/ends_with.md | 7 + .../string-functions/find_in_set.md | 7 + .../string-functions/get_json_double.md | 7 + .../string-functions/get_json_int.md | 7 + .../string-functions/get_json_string.md | 7 + .../string-functions/group_concat.md | 7 + .../sql-functions/string-functions/instr.md | 7 + .../sql-functions/string-functions/lcase.md | 7 + .../sql-functions/string-functions/left.md | 7 + .../sql-functions/string-functions/length.md | 7 + .../sql-functions/string-functions/locate.md | 7 + .../sql-functions/string-functions/lower.md | 7 + .../sql-functions/string-functions/lpad.md | 7 + .../sql-functions/string-functions/ltrim.md | 7 + .../string-functions/money_format.md | 7 + .../string-functions/null_or_empty.md | 7 + .../string-functions/regexp_extract.md | 7 + .../string-functions/regexp_replace.md | 7 + .../sql-functions/string-functions/repeat.md | 7 + .../sql-functions/string-functions/right.md | 7 + .../string-functions/split_part.md | 7 + .../string-functions/starts_with.md | 7 + .../sql-functions/string-functions/strleft.md | 7 + .../string-functions/strright.md | 7 + .../Account Management/CREATE ROLE.md | 7 + .../Account Management/CREATE USER.md | 7 + .../Account Management/DROP ROLE.md | 7 + .../Account Management/DROP USER.md | 7 + .../Account Management/GRANT.md | 7 + .../Account Management/REVOKE.md | 7 + .../Account Management/SET PASSWORD.md | 7 + .../Account Management/SET PROPERTY.md | 7 + .../Account Management/SHOW GRANTS.md | 7 + .../Account Management/SHOW ROLES.md | 7 + .../Administration/ADMIN CANCEL REPAIR.md | 7 + .../Administration/ADMIN CHECK TABLET.md | 7 + .../Administration/ADMIN REPAIR.md | 7 + .../Administration/ADMIN SET CONFIG.md | 7 + .../ADMIN SET REPLICA STATUS.md | 7 + .../Administration/ADMIN SHOW CONFIG.md | 7 + .../ADMIN SHOW REPLICA DISTRIBUTION.md | 7 + .../ADMIN SHOW REPLICA STATUS.md | 7 + .../Administration/ALTER CLUSTER.md | 7 + .../Administration/ALTER SYSTEM.md | 7 + .../Administration/CANCEL DECOMMISSION.md | 7 + .../Administration/CREATE CLUSTER.md | 7 + .../Administration/CREATE FILE.md | 7 + .../Administration/DROP CLUSTER.md | 7 + .../Administration/DROP FILE.md | 7 + .../sql-statements/Administration/ENTER.md | 7 + .../Administration/INSTALL PLUGIN.md | 7 + .../Administration/LINK DATABASE.md | 7 + .../Administration/MIGRATE DATABASE.md | 7 + .../Administration/SHOW BACKENDS.md | 7 + .../Administration/SHOW BROKER.md | 7 + .../Administration/SHOW FILE.md | 7 + .../Administration/SHOW FRONTENDS.md | 7 + .../Administration/SHOW FULL COLUMNS.md | 7 + .../Administration/SHOW INDEX.md | 7 + .../Administration/SHOW MIGRATIONS.md | 7 + .../Administration/SHOW PLUGINS.md | 7 + .../Administration/SHOW TABLE STATUS.md | 7 + .../Administration/UNINSTALL PLUGIN.md | 7 + .../Data Definition/ALTER DATABASE.md | 7 + .../Data Definition/ALTER TABLE.md | 7 + .../Data Definition/ALTER VIEW.md | 7 + .../sql-statements/Data Definition/BACKUP.md | 7 + .../Data Definition/CANCEL ALTER.md | 7 + .../Data Definition/CANCEL BACKUP.md | 7 + .../Data Definition/CANCEL RESTORE.md | 7 + .../Data Definition/CREATE DATABASE.md | 7 + .../Data Definition/CREATE INDEX.md | 7 + .../CREATE MATERIALIZED VIEW.md | 7 + .../Data Definition/CREATE REPOSITORY.md | 7 + .../Data Definition/CREATE TABLE.md | 7 + .../Data Definition/CREATE VIEW.md | 7 + .../Data Definition/DROP DATABASE.md | 7 + .../Data Definition/DROP INDEX.md | 7 + .../Data Definition/DROP MATERIALIZED VIEW.md | 7 + .../Data Definition/DROP REPOSITORY.md | 7 + .../Data Definition/DROP TABLE.md | 7 + .../Data Definition/DROP VIEW.md | 7 + .../sql-statements/Data Definition/HLL.md | 7 + .../sql-statements/Data Definition/RECOVER.md | 7 + .../sql-statements/Data Definition/RESTORE.md | 7 + .../Data Definition/TRUNCATE TABLE.md | 7 + .../Data Definition/create-function.md | 7 + .../Data Definition/drop-function.md | 7 + .../Data Definition/show-functions.md | 7 + .../Data Manipulation/BROKER LOAD.md | 7 + .../Data Manipulation/CANCEL LOAD.md | 7 + .../Data Manipulation/DELETE.md | 7 + .../Data Manipulation/EXPORT.md | 7 + .../Data Manipulation/GROUP BY.md | 7 + .../sql-statements/Data Manipulation/LOAD.md | 7 + .../Data Manipulation/MINI LOAD.md | 7 + .../Data Manipulation/MULTI LOAD.md | 7 + .../Data Manipulation/PAUSE ROUTINE LOAD.md | 7 + .../Data Manipulation/RESUME ROUTINE LOAD.md | 7 + .../Data Manipulation/ROUTINE LOAD.md | 7 + .../Data Manipulation/SHOW ALTER.md | 7 + .../Data Manipulation/SHOW BACKUP.md | 7 + .../Data Manipulation/SHOW DATA.md | 7 + .../Data Manipulation/SHOW DATABASES.md | 7 + .../Data Manipulation/SHOW DELETE.md | 7 + .../SHOW DYNAMIC PARTITION TABLES.md | 7 + .../Data Manipulation/SHOW EXPORT.md | 7 + .../Data Manipulation/SHOW LOAD.md | 7 + .../Data Manipulation/SHOW PARTITIONS.md | 7 + .../Data Manipulation/SHOW PROPERTY.md | 7 + .../Data Manipulation/SHOW REPOSITORIES.md | 7 + .../Data Manipulation/SHOW RESTORE.md | 7 + .../SHOW ROUTINE LOAD TASK.md | 7 + .../Data Manipulation/SHOW ROUTINE LOAD.md | 7 + .../Data Manipulation/SHOW SNAPSHOT.md | 7 + .../Data Manipulation/SHOW TABLES.md | 7 + .../Data Manipulation/SHOW TABLET.md | 7 + .../Data Manipulation/SHOW TRANSACTION.md | 7 + .../Data Manipulation/STOP ROUTINE LOAD.md | 7 + .../Data Manipulation/STREAM LOAD.md | 7 + .../Data Manipulation/insert.md | 7 + .../sql-statements/Data Types/BIGINT.md | 7 + .../sql-statements/Data Types/BOOLEAN.md | 7 + .../sql-statements/Data Types/CHAR.md | 7 + .../sql-statements/Data Types/DATE.md | 7 + .../sql-statements/Data Types/DATETIME.md | 7 + .../sql-statements/Data Types/DECIMAL.md | 7 + .../sql-statements/Data Types/DOUBLE.md | 7 + .../sql-statements/Data Types/FLOAT.md | 7 + .../sql-statements/Data Types/HLL.md | 7 + .../sql-statements/Data Types/INT.md | 7 + .../sql-statements/Data Types/LARGEINT.md | 7 + .../sql-statements/Data Types/SMALLINT.md | 7 + .../sql-statements/Data Types/TINYINT.md | 7 + .../sql-statements/Data Types/VARCHAR.md | 7 + .../sql-statements/Utility/DESCRIBE.md | 7 + 680 files changed, 5658 insertions(+), 1759 deletions(-) create mode 100644 .travis.yml create mode 100644 docs/.markdownlint.yml create mode 100644 docs/.markdownlintignore create mode 100644 docs/.vuepress/config.js create mode 100644 docs/.vuepress/public/favicon.ico rename docs/{resources => .vuepress/public}/images/apache-asf-compressed.png (100%) rename docs/{resources => .vuepress/public}/images/apache-incubator-logo.png (100%) rename docs/{resources => .vuepress/public}/images/apache-incubator.png (100%) rename docs/{resources => .vuepress/public}/images/apache_incubator_logo.png (100%) rename docs/{resources => .vuepress/public}/images/architecture.png (100%) rename docs/{resources => .vuepress/public}/images/asf_logo_wide_small.png (100%) rename docs/{resources => .vuepress/public}/images/backend_state.png (100%) rename docs/{resources => .vuepress/public}/images/cluster_link_and_migrate_db.png (100%) rename docs/{resources => .vuepress/public}/images/cluster_namaspace.png (100%) rename docs/{resources => .vuepress/public}/images/cpu-flame-demo.svg (100%) rename docs/{resources => .vuepress/public}/images/cpu-pprof-demo.png (100%) rename docs/{resources => .vuepress/public}/images/cpu-pprof-demo.svg (100%) rename docs/{resources => .vuepress/public}/images/create-pr.png (100%) rename docs/{resources => .vuepress/public}/images/create-pr2.png (100%) rename docs/{resources => .vuepress/public}/images/create-pr3.png (100%) rename docs/{resources => .vuepress/public}/images/dashboard_navibar.png (100%) rename docs/{resources => .vuepress/public}/images/dashboard_overview.png (100%) rename docs/{resources => .vuepress/public}/images/dashboard_panel.png (100%) rename docs/{resources => .vuepress/public}/images/dashboard_row.png (100%) rename docs/{resources => .vuepress/public}/images/doris-logo-1.png (100%) rename docs/{resources => .vuepress/public}/images/doris-logo-2.png (100%) create mode 100644 docs/.vuepress/public/images/doris-logo-only.png create mode 100644 docs/.vuepress/public/images/doris-logo.png rename docs/{resources => .vuepress/public}/images/egg-logo.png (100%) rename docs/{resources => .vuepress/public}/images/egg-logo2.png (100%) rename docs/{resources => .vuepress/public}/images/export_plan_tree_1.png (100%) rename docs/{resources => .vuepress/public}/images/export_plan_tree_2.png (100%) rename docs/{resources => .vuepress/public}/images/export_status_change.png (100%) rename docs/{resources => .vuepress/public}/images/fe_page_index.png (100%) rename docs/{resources => .vuepress/public}/images/fe_page_logs.png (100%) rename docs/{resources => .vuepress/public}/images/fe_page_queries.png (100%) rename docs/{resources => .vuepress/public}/images/fe_page_sessions.png (100%) rename docs/{resources => .vuepress/public}/images/fe_page_system.png (100%) rename docs/{resources => .vuepress/public}/images/fe_page_system_access.png (100%) rename docs/{resources => .vuepress/public}/images/fe_page_system_backends.png (100%) rename docs/{resources => .vuepress/public}/images/fe_page_system_brokers.png (100%) rename docs/{resources => .vuepress/public}/images/fe_page_system_dbs.png (100%) rename docs/{resources => .vuepress/public}/images/fe_page_system_error_hub.png (100%) rename docs/{resources => .vuepress/public}/images/fe_page_system_frontends.png (100%) rename docs/{resources => .vuepress/public}/images/fe_page_system_jobs.png (100%) rename docs/{resources => .vuepress/public}/images/fe_page_system_statistic.png (100%) rename docs/{resources => .vuepress/public}/images/fe_page_system_tasks.png (100%) rename docs/{resources => .vuepress/public}/images/fork-repo.png (100%) rename docs/{resources => .vuepress/public}/images/graduation-timeline.png (100%) rename docs/{resources => .vuepress/public}/images/howtoincubateaproject-thumb.png (100%) rename docs/{resources => .vuepress/public}/images/howtoincubateaproject.png (100%) rename docs/{resources => .vuepress/public}/images/incbuator_feather_egg_logo_crop.png (100%) rename docs/{resources => .vuepress/public}/images/incubation-process.png (100%) rename docs/{resources => .vuepress/public}/images/incubator_ring_logo.png (100%) rename docs/{resources => .vuepress/public}/images/log_replication.jpg (100%) rename docs/{resources => .vuepress/public}/images/login-gitter1.png (100%) rename docs/{resources => .vuepress/public}/images/login-gitter2.PNG (100%) rename docs/{resources => .vuepress/public}/images/metadata_contents.png (100%) rename docs/{resources => .vuepress/public}/images/metadata_stream.png (100%) rename docs/{resources => .vuepress/public}/images/monitor_arch.png (100%) rename docs/{resources => .vuepress/public}/images/multi_tenant_arch.png (100%) rename docs/{resources => .vuepress/public}/images/new-pr.png (100%) rename docs/{resources => .vuepress/public}/images/palo_architecture.jpg (100%) rename docs/{resources => .vuepress/public}/images/palo_meta.png (100%) rename docs/{resources => .vuepress/public}/images/perf-report-demo.png (100%) rename docs/{resources => .vuepress/public}/images/replica_recover.png (100%) rename docs/{resources => .vuepress/public}/images/segment_v2.png (100%) rename docs/{resources => .vuepress/public}/images/spark_doris_connector.jpg (100%) rename docs/{resources => .vuepress/public}/images/subscribe-mail-list-step1.png (100%) rename docs/{resources => .vuepress/public}/images/subscribe-mail-list-step2.png (100%) rename docs/{resources => .vuepress/public}/images/subscribe-mail-list-step3.png (100%) rename docs/{resources => .vuepress/public}/images/subscribe-mail-list-step4.png (100%) rename docs/{resources => .vuepress/public}/images/user_authority.png (100%) create mode 100644 docs/.vuepress/sidebar/en.js create mode 100644 docs/.vuepress/sidebar/zh-CN.js create mode 100644 docs/.vuepress/theme/components/Footer.vue create mode 100644 docs/.vuepress/theme/components/Home.vue create mode 100644 docs/.vuepress/theme/components/NavLinks.vue create mode 100644 docs/.vuepress/theme/index.js create mode 100644 docs/.vuepress/theme/layouts/Layout.vue delete mode 100644 docs/Makefile create mode 100644 docs/README.md delete mode 100644 docs/documentation/cn/administrator-guide/alter-table/index.rst delete mode 100644 docs/documentation/cn/administrator-guide/config/index.rst delete mode 100644 docs/documentation/cn/administrator-guide/http-actions/index.rst delete mode 100644 docs/documentation/cn/administrator-guide/index.rst delete mode 100644 docs/documentation/cn/administrator-guide/load-data/index.rst delete mode 100644 docs/documentation/cn/administrator-guide/materialized-view/index.rst delete mode 100644 docs/documentation/cn/administrator-guide/operation/index.rst delete mode 100644 docs/documentation/cn/community/index.rst delete mode 100644 docs/documentation/cn/developer-guide/index.rst delete mode 100644 docs/documentation/cn/downloads/index.rst delete mode 100644 docs/documentation/cn/extending-doris/index.rst delete mode 100644 docs/documentation/cn/getting-started/index.rst delete mode 100644 docs/documentation/cn/index.rst delete mode 100644 docs/documentation/cn/installing/index.rst delete mode 100644 docs/documentation/cn/internal/index.rst delete mode 100644 docs/documentation/cn/sql-reference/index.rst delete mode 100644 docs/documentation/cn/sql-reference/sql-functions/aggregate-functions/index.rst delete mode 100644 docs/documentation/cn/sql-reference/sql-functions/bitmap-functions/index.rst delete mode 100644 docs/documentation/cn/sql-reference/sql-functions/date-time-functions/index.rst delete mode 100644 docs/documentation/cn/sql-reference/sql-functions/hash-functions/index.rst delete mode 100644 docs/documentation/cn/sql-reference/sql-functions/index.rst delete mode 100644 docs/documentation/cn/sql-reference/sql-functions/spatial-functions/index.rst delete mode 100644 docs/documentation/cn/sql-reference/sql-functions/string-functions/index.rst delete mode 100644 docs/documentation/cn/sql-reference/sql-statements/Account Management/index.rst delete mode 100644 docs/documentation/cn/sql-reference/sql-statements/Administration/index.rst delete mode 100644 docs/documentation/cn/sql-reference/sql-statements/Data Definition/index.rst delete mode 100644 docs/documentation/cn/sql-reference/sql-statements/Data Manipulation/index.rst delete mode 100644 docs/documentation/cn/sql-reference/sql-statements/Data Types/index.rst delete mode 100644 docs/documentation/cn/sql-reference/sql-statements/Utility/index.rst delete mode 100644 docs/documentation/cn/sql-reference/sql-statements/index.rst delete mode 100644 docs/documentation/en/administrator-guide/alter-table/index.rst delete mode 100644 docs/documentation/en/administrator-guide/config/index.rst delete mode 100644 docs/documentation/en/administrator-guide/http-actions/index.rst delete mode 100644 docs/documentation/en/administrator-guide/index.rst delete mode 100644 docs/documentation/en/administrator-guide/load-data/index.rst delete mode 100644 docs/documentation/en/administrator-guide/operation/index.rst delete mode 100644 docs/documentation/en/community/index.rst delete mode 100644 docs/documentation/en/developer-guide/index.rst delete mode 100644 docs/documentation/en/downloads/index.rst delete mode 100644 docs/documentation/en/extending-doris/index.rst delete mode 100644 docs/documentation/en/getting-started/index.rst delete mode 100644 docs/documentation/en/index.rst delete mode 100644 docs/documentation/en/installing/index.rst delete mode 100644 docs/documentation/en/internal/index.rst delete mode 100644 docs/documentation/en/sql-reference/index.rst delete mode 100644 docs/documentation/en/sql-reference/sql-functions/aggregate-functions/index.rst delete mode 100644 docs/documentation/en/sql-reference/sql-functions/bitmap-functions/index.rst delete mode 100644 docs/documentation/en/sql-reference/sql-functions/date-time-functions/index.rst delete mode 100644 docs/documentation/en/sql-reference/sql-functions/hash-functions/index.rst delete mode 100644 docs/documentation/en/sql-reference/sql-functions/index.rst delete mode 100644 docs/documentation/en/sql-reference/sql-functions/spatial-functions/index.rst delete mode 100644 docs/documentation/en/sql-reference/sql-functions/string-functions/index.rst delete mode 100644 docs/documentation/en/sql-reference/sql-statements/Account Management/index.rst delete mode 100644 docs/documentation/en/sql-reference/sql-statements/Administration/index.rst delete mode 100644 docs/documentation/en/sql-reference/sql-statements/Data Definition/index.rst delete mode 100644 docs/documentation/en/sql-reference/sql-statements/Data Manipulation/index.rst delete mode 100644 docs/documentation/en/sql-reference/sql-statements/Data Types/index.rst delete mode 100644 docs/documentation/en/sql-reference/sql-statements/Utility/index.rst delete mode 100644 docs/documentation/en/sql-reference/sql-statements/index.rst create mode 100644 docs/en/README.md rename docs/{documentation/en/administrator-guide/alter-table/alter-table-bitmap-index_EN.md => en/administrator-guide/alter-table/alter-table-bitmap-index.md} (97%) rename docs/{documentation/en/administrator-guide/alter-table/alter-table-rollup_EN.md => en/administrator-guide/alter-table/alter-table-rollup.md} (99%) rename docs/{documentation/en/administrator-guide/alter-table/alter-table-schema-change_EN.md => en/administrator-guide/alter-table/alter-table-schema-change.md} (99%) rename docs/{documentation/en/administrator-guide/alter-table/alter-table-temp-partition_EN.md => en/administrator-guide/alter-table/alter-table-temp-partition.md} (99%) rename docs/{documentation/en/administrator-guide/backup-restore_EN.md => en/administrator-guide/backup-restore.md} (99%) rename docs/{documentation/en/administrator-guide/broker_EN.md => en/administrator-guide/broker.md} (99%) rename docs/{documentation/en/administrator-guide/colocation-join_EN.md => en/administrator-guide/colocation-join.md} (99%) rename docs/{documentation/en/administrator-guide/config/fe_config_en.md => en/administrator-guide/config/fe_config.md} (96%) rename docs/{documentation/en/administrator-guide/dynamic-partition_EN.md => en/administrator-guide/dynamic-partition.md} (99%) rename docs/{documentation/en/administrator-guide/export_manual_EN.md => en/administrator-guide/export_manual.md} (99%) rename docs/{documentation/en/administrator-guide/http-actions/cancel-label_EN.md => en/administrator-guide/http-actions/cancel-label.md} (95%) rename docs/{documentation/en/administrator-guide/http-actions/compaction-action_EN.md => en/administrator-guide/http-actions/compaction-action.md} (97%) rename docs/{documentation/en/administrator-guide/http-actions/fe-get-log-file_EN.md => en/administrator-guide/http-actions/fe-get-log-file.md} (96%) rename docs/{documentation/en/administrator-guide/http-actions/get-label-state_EN.md => en/administrator-guide/http-actions/get-label-state.md} (95%) rename docs/{documentation/en/administrator-guide/http-actions/restore-tablet_EN.md => en/administrator-guide/http-actions/restore-tablet.md} (94%) rename docs/{documentation/en/administrator-guide/load-data/broker-load-manual_EN.md => en/administrator-guide/load-data/broker-load-manual.md} (99%) rename docs/{documentation/en/administrator-guide/load-data/delete-manual_EN.md => en/administrator-guide/load-data/delete-manual.md} (99%) rename docs/{documentation/en/administrator-guide/load-data/insert-into-manual_EN.md => en/administrator-guide/load-data/insert-into-manual.md} (99%) rename docs/{documentation/en/administrator-guide/load-data/load-manual_EN.md => en/administrator-guide/load-data/load-manual.md} (99%) rename docs/{documentation/en/administrator-guide/load-data/routine-load-manual_EN.md => en/administrator-guide/load-data/routine-load-manual.md} (99%) rename docs/{documentation/en/administrator-guide/load-data/stream-load-manual_EN.md => en/administrator-guide/load-data/stream-load-manual.md} (99%) rename docs/{documentation/en/administrator-guide/operation/metadata-operation_EN.md => en/administrator-guide/operation/metadata-operation.md} (99%) rename docs/{documentation/en/administrator-guide/operation/monitor-alert_EN.md => en/administrator-guide/operation/monitor-alert.md} (98%) rename docs/{documentation/en/administrator-guide/operation/multi-tenant_EN.md => en/administrator-guide/operation/multi-tenant.md} (97%) rename docs/{documentation/en/administrator-guide/operation/tablet-meta-tool_EN.md => en/administrator-guide/operation/tablet-meta-tool.md} (97%) rename docs/{documentation/en/administrator-guide/operation/tablet-repair-and-balance_EN.md => en/administrator-guide/operation/tablet-repair-and-balance.md} (99%) rename docs/{documentation/en/administrator-guide/privilege_EN.md => en/administrator-guide/privilege.md} (99%) rename docs/{documentation/en/administrator-guide/small-file-mgr_EN.md => en/administrator-guide/small-file-mgr.md} (99%) rename docs/{documentation/en/administrator-guide/sql-mode_EN.md => en/administrator-guide/sql-mode.md} (98%) rename docs/{documentation/en/administrator-guide/time-zone_EN.md => en/administrator-guide/time-zone.md} (98%) rename docs/{documentation/en/administrator-guide/variables_EN.md => en/administrator-guide/variables.md} (99%) rename docs/{documentation/en/community/gitter_EN.md => en/community/gitter.md} (95%) rename docs/{documentation/en/community/how-to-contribute_EN.md => en/community/how-to-contribute.md} (98%) rename docs/{documentation/en/community/members_EN.md => en/community/members.md} (96%) rename docs/{documentation/en/community/pull-request_EN.md => en/community/pull-request.md} (96%) rename docs/{documentation/en/community/release-process_EN.md => en/community/release-process.md} (99%) rename docs/{documentation/en/community/subscribe-mail-list_EN.md => en/community/subscribe-mail-list.md} (90%) rename docs/{documentation/en/community/verify-apache-release_EN.md => en/community/verify-apache-release.md} (97%) rename docs/{documentation => }/en/developer-guide/debug-tool.md (98%) rename docs/{documentation => }/en/developer-guide/format-code.md (97%) rename docs/{documentation/en/downloads/downloads_EN.md => en/downloads/downloads.md} (97%) rename docs/{documentation/en/extending-doris/audit-plugin_EN.md => en/extending-doris/audit-plugin.md} (98%) rename docs/{documentation/en/extending-doris/doris-on-es_EN.md => en/extending-doris/doris-on-es.md} (99%) rename docs/{documentation/en/extending-doris/plugin-development-manual_EN.md => en/extending-doris/plugin-development-manual.md} (99%) rename docs/{documentation/en/extending-doris/user-defined-function_EN.md => en/extending-doris/user-defined-function.md} (98%) rename docs/{documentation/en/getting-started/advance-usage_EN.md => en/getting-started/advance-usage.md} (99%) rename docs/{documentation/en/getting-started/basic-usage_EN.md => en/getting-started/basic-usage.md} (99%) rename docs/{documentation/en/getting-started/best-practice_EN.md => en/getting-started/best-practice.md} (99%) rename docs/{documentation/en/getting-started/data-model-rollup_EN.md => en/getting-started/data-model-rollup.md} (99%) rename docs/{documentation/en/getting-started/data-partition_EN.md => en/getting-started/data-partition.md} (99%) rename docs/{documentation/en/getting-started/hit-the-rollup_EN.md => en/getting-started/hit-the-rollup.md} (99%) rename docs/{documentation/en/installing/compilation_EN.md => en/installing/compilation.md} (98%) rename docs/{documentation/en/installing/install-deploy_EN.md => en/installing/install-deploy.md} (99%) rename docs/{documentation/en/installing/upgrade_EN.md => en/installing/upgrade.md} (98%) rename docs/{documentation/en/internal/doris_storage_optimization_EN.md => en/internal/doris_storage_optimization.md} (98%) rename docs/{documentation/en/internal/grouping_sets_design_EN.md => en/internal/grouping_sets_design.md} (99%) rename docs/{documentation/en/internal/metadata-design_EN.md => en/internal/metadata-design.md} (98%) rename docs/{documentation/en/sql-reference/sql-functions/aggregate-functions/avg_EN.md => en/sql-reference/sql-functions/aggregate-functions/avg.md} (96%) rename docs/{documentation/en/sql-reference/sql-functions/aggregate-functions/bitmap_EN.md => en/sql-reference/sql-functions/aggregate-functions/bitmap.md} (98%) rename docs/{documentation/en/sql-reference/sql-functions/aggregate-functions/count_EN.md => en/sql-reference/sql-functions/aggregate-functions/count.md} (96%) rename docs/{documentation/en/sql-reference/sql-functions/aggregate-functions/hll_union_agg_EN.md => en/sql-reference/sql-functions/aggregate-functions/hll_union_agg.md} (96%) rename docs/{documentation/en/sql-reference/sql-functions/aggregate-functions/max_EN.md => en/sql-reference/sql-functions/aggregate-functions/max.md} (95%) rename docs/{documentation/en/sql-reference/sql-functions/aggregate-functions/min_EN.md => en/sql-reference/sql-functions/aggregate-functions/min.md} (95%) rename docs/{documentation/en/sql-reference/sql-functions/aggregate-functions/ndv_EN.md => en/sql-reference/sql-functions/aggregate-functions/ndv.md} (95%) rename docs/{documentation/en/sql-reference/sql-functions/aggregate-functions/percentile_approx_EN.md => en/sql-reference/sql-functions/aggregate-functions/percentile_approx.md} (97%) rename docs/{documentation/en/sql-reference/sql-functions/aggregate-functions/stddev_EN.md => en/sql-reference/sql-functions/aggregate-functions/stddev.md} (95%) rename docs/{documentation/en/sql-reference/sql-functions/aggregate-functions/stddev_samp_EN.md => en/sql-reference/sql-functions/aggregate-functions/stddev_samp.md} (94%) rename docs/{documentation/en/sql-reference/sql-functions/aggregate-functions/sum_EN.md => en/sql-reference/sql-functions/aggregate-functions/sum.md} (95%) rename docs/{documentation/en/sql-reference/sql-functions/aggregate-functions/var_samp_EN.md => en/sql-reference/sql-functions/aggregate-functions/var_samp.md} (93%) rename docs/{documentation/en/sql-reference/sql-functions/aggregate-functions/variance_EN.md => en/sql-reference/sql-functions/aggregate-functions/variance.md} (94%) rename docs/{documentation/en/sql-reference/sql-functions/bitmap-functions/bitmap_and_EN.md => en/sql-reference/sql-functions/bitmap-functions/bitmap_and.md} (95%) rename docs/{documentation/en/sql-reference/sql-functions/bitmap-functions/bitmap_contains_EN.md => en/sql-reference/sql-functions/bitmap-functions/bitmap_contains.md} (94%) rename docs/{documentation/en/sql-reference/sql-functions/bitmap-functions/bitmap_empty_EN.md => en/sql-reference/sql-functions/bitmap-functions/bitmap_empty.md} (95%) rename docs/{documentation => }/en/sql-reference/sql-functions/bitmap-functions/bitmap_from_string.md (96%) rename docs/{documentation/en/sql-reference/sql-functions/bitmap-functions/bitmap_has_any_EN.md => en/sql-reference/sql-functions/bitmap-functions/bitmap_has_any.md} (95%) rename docs/{documentation/en/sql-reference/sql-functions/bitmap-functions/bitmap_hash_EN.md => en/sql-reference/sql-functions/bitmap-functions/bitmap_hash.md} (95%) rename docs/{documentation/en/sql-reference/sql-functions/bitmap-functions/bitmap_or_EN.md => en/sql-reference/sql-functions/bitmap-functions/bitmap_or.md} (95%) rename docs/{documentation => }/en/sql-reference/sql-functions/bitmap-functions/bitmap_to_string.md (96%) rename docs/{documentation/en/sql-reference/sql-functions/bitmap-functions/to_bitmap_EN.md => en/sql-reference/sql-functions/bitmap-functions/to_bitmap.md} (95%) rename docs/{documentation/en/sql-reference/sql-functions/cast_EN.md => en/sql-reference/sql-functions/cast.md} (97%) rename docs/{documentation/en/sql-reference/sql-functions/date-time-functions/curdate_EN.md => en/sql-reference/sql-functions/date-time-functions/curdate.md} (95%) rename docs/{documentation/en/sql-reference/sql-functions/date-time-functions/current_timestamp_EN.md => en/sql-reference/sql-functions/date-time-functions/current_timestamp.md} (94%) rename docs/{documentation/en/sql-reference/sql-functions/date-time-functions/date_add_EN.md => en/sql-reference/sql-functions/date-time-functions/date_add.md} (95%) rename docs/{documentation/en/sql-reference/sql-functions/date-time-functions/date_format_EN.md => en/sql-reference/sql-functions/date-time-functions/date_format.md} (98%) rename docs/{documentation/en/sql-reference/sql-functions/date-time-functions/date_sub_EN.md => en/sql-reference/sql-functions/date-time-functions/date_sub.md} (95%) rename docs/{documentation/en/sql-reference/sql-functions/date-time-functions/datediff_EN.md => en/sql-reference/sql-functions/date-time-functions/datediff.md} (97%) rename docs/{documentation/en/sql-reference/sql-functions/date-time-functions/day_EN.md => en/sql-reference/sql-functions/date-time-functions/day.md} (95%) rename docs/{documentation/en/sql-reference/sql-functions/date-time-functions/dayname_EN.md => en/sql-reference/sql-functions/date-time-functions/dayname.md} (95%) rename docs/{documentation/en/sql-reference/sql-functions/date-time-functions/dayofmonth_EN.md => en/sql-reference/sql-functions/date-time-functions/dayofmonth.md} (95%) rename docs/{documentation/en/sql-reference/sql-functions/date-time-functions/dayofweek_EN.md => en/sql-reference/sql-functions/date-time-functions/dayofweek.md} (96%) rename docs/{documentation/en/sql-reference/sql-functions/date-time-functions/dayofyear_EN.md => en/sql-reference/sql-functions/date-time-functions/dayofyear.md} (95%) rename docs/{documentation/en/sql-reference/sql-functions/date-time-functions/from_days_EN.md => en/sql-reference/sql-functions/date-time-functions/from_days.md} (94%) rename docs/{documentation/en/sql-reference/sql-functions/date-time-functions/from_unixtime_EN.md => en/sql-reference/sql-functions/date-time-functions/from_unixtime.md} (97%) rename docs/{documentation/en/sql-reference/sql-functions/date-time-functions/hour_EN.md => en/sql-reference/sql-functions/date-time-functions/hour.md} (95%) rename docs/{documentation/en/sql-reference/sql-functions/date-time-functions/minute_EN.md => en/sql-reference/sql-functions/date-time-functions/minute.md} (95%) rename docs/{documentation/en/sql-reference/sql-functions/date-time-functions/month_EN.md => en/sql-reference/sql-functions/date-time-functions/month.md} (95%) rename docs/{documentation/en/sql-reference/sql-functions/date-time-functions/monthname_EN.md => en/sql-reference/sql-functions/date-time-functions/monthname.md} (95%) rename docs/{documentation/en/sql-reference/sql-functions/date-time-functions/now_EN.md => en/sql-reference/sql-functions/date-time-functions/now.md} (95%) rename docs/{documentation/en/sql-reference/sql-functions/date-time-functions/second_EN.md => en/sql-reference/sql-functions/date-time-functions/second.md} (95%) rename docs/{documentation/en/sql-reference/sql-functions/date-time-functions/str_to_date_EN.md => en/sql-reference/sql-functions/date-time-functions/str_to_date.md} (97%) rename docs/{documentation/en/sql-reference/sql-functions/date-time-functions/timediff_EN.md => en/sql-reference/sql-functions/date-time-functions/timediff.md} (97%) rename docs/{documentation/en/sql-reference/sql-functions/date-time-functions/timestampadd_EN.md => en/sql-reference/sql-functions/date-time-functions/timestampadd.md} (96%) rename docs/{documentation/en/sql-reference/sql-functions/date-time-functions/timestampdiff_EN.md => en/sql-reference/sql-functions/date-time-functions/timestampdiff.md} (97%) rename docs/{documentation/en/sql-reference/sql-functions/date-time-functions/to_days_EN.md => en/sql-reference/sql-functions/date-time-functions/to_days.md} (95%) rename docs/{documentation/en/sql-reference/sql-functions/date-time-functions/unix_timestamp_EN.md => en/sql-reference/sql-functions/date-time-functions/unix_timestamp.md} (97%) rename docs/{documentation/en/sql-reference/sql-functions/date-time-functions/utc_timestamp_EN.md => en/sql-reference/sql-functions/date-time-functions/utc_timestamp.md} (95%) rename docs/{documentation/en/sql-reference/sql-functions/date-time-functions/workofyear_EN.md => en/sql-reference/sql-functions/date-time-functions/workofyear.md} (95%) rename docs/{documentation/en/sql-reference/sql-functions/date-time-functions/year_EN.md => en/sql-reference/sql-functions/date-time-functions/year.md} (95%) rename docs/{documentation => }/en/sql-reference/sql-functions/hash-functions/murmur_hash3_32.md (95%) rename docs/{documentation/en/sql-reference/sql-functions/spatial-functions/st_astext_EN.md => en/sql-reference/sql-functions/spatial-functions/st_astext.md} (94%) rename docs/{documentation/en/sql-reference/sql-functions/spatial-functions/st_circle_EN.md => en/sql-reference/sql-functions/spatial-functions/st_circle.md} (95%) rename docs/{documentation/en/sql-reference/sql-functions/spatial-functions/st_contains_EN.md => en/sql-reference/sql-functions/spatial-functions/st_contains.md} (97%) rename docs/{documentation/en/sql-reference/sql-functions/spatial-functions/st_distance_sphere_EN.md => en/sql-reference/sql-functions/spatial-functions/st_distance_sphere.md} (95%) rename docs/{documentation/en/sql-reference/sql-functions/spatial-functions/st_geometryfromtext_EN.md => en/sql-reference/sql-functions/spatial-functions/st_geometryfromtext.md} (94%) rename docs/{documentation/en/sql-reference/sql-functions/spatial-functions/st_linefromtext_EN.md => en/sql-reference/sql-functions/spatial-functions/st_linefromtext.md} (93%) rename docs/{documentation/en/sql-reference/sql-functions/spatial-functions/st_point_EN.md => en/sql-reference/sql-functions/spatial-functions/st_point.md} (95%) rename docs/{documentation/en/sql-reference/sql-functions/spatial-functions/st_polygon_EN.md => en/sql-reference/sql-functions/spatial-functions/st_polygon.md} (93%) rename docs/{documentation/en/sql-reference/sql-functions/spatial-functions/st_x_EN.md => en/sql-reference/sql-functions/spatial-functions/st_x.md} (95%) rename docs/{documentation/en/sql-reference/sql-functions/spatial-functions/st_y_EN.md => en/sql-reference/sql-functions/spatial-functions/st_y.md} (95%) rename docs/{documentation/en/sql-reference/sql-functions/string-functions/ascii_EN.md => en/sql-reference/sql-functions/string-functions/ascii.md} (95%) rename docs/{documentation/en/sql-reference/sql-functions/string-functions/concat_EN.md => en/sql-reference/sql-functions/string-functions/concat.md} (96%) rename docs/{documentation/en/sql-reference/sql-functions/string-functions/concat_ws_EN.md => en/sql-reference/sql-functions/string-functions/concat_ws.md} (96%) rename docs/{documentation/en/sql-reference/sql-functions/string-functions/ends_with_EN.md => en/sql-reference/sql-functions/string-functions/ends_with.md} (96%) rename docs/{documentation/en/sql-reference/sql-functions/string-functions/find_in_set_EN.md => en/sql-reference/sql-functions/string-functions/find_in_set.md} (95%) rename docs/{documentation/en/sql-reference/sql-functions/string-functions/get_json_double_EN.md => en/sql-reference/sql-functions/string-functions/get_json_double.md} (97%) rename docs/{documentation/en/sql-reference/sql-functions/string-functions/get_json_int_EN.md => en/sql-reference/sql-functions/string-functions/get_json_int.md} (97%) rename docs/{documentation/en/sql-reference/sql-functions/string-functions/get_json_string_EN.md => en/sql-reference/sql-functions/string-functions/get_json_string.md} (98%) rename docs/{documentation/en/sql-reference/sql-functions/string-functions/group_concat_EN.md => en/sql-reference/sql-functions/string-functions/group_concat.md} (96%) rename docs/{documentation/en/sql-reference/sql-functions/string-functions/instr_EN.md => en/sql-reference/sql-functions/string-functions/instr.md} (95%) rename docs/{documentation/en/sql-reference/sql-functions/string-functions/lcase_EN.md => en/sql-reference/sql-functions/string-functions/lcase.md} (93%) rename docs/{documentation/en/sql-reference/sql-functions/string-functions/left_EN.md => en/sql-reference/sql-functions/string-functions/left.md} (95%) rename docs/{documentation/en/sql-reference/sql-functions/string-functions/length_EN.md => en/sql-reference/sql-functions/string-functions/length.md} (95%) rename docs/{documentation/en/sql-reference/sql-functions/string-functions/locate_EN.md => en/sql-reference/sql-functions/string-functions/locate.md} (96%) rename docs/{documentation/en/sql-reference/sql-functions/string-functions/lower_EN.md => en/sql-reference/sql-functions/string-functions/lower.md} (94%) rename docs/{documentation/en/sql-reference/sql-functions/string-functions/lpad_EN.md => en/sql-reference/sql-functions/string-functions/lpad.md} (96%) rename docs/{documentation/en/sql-reference/sql-functions/string-functions/ltrim_EN.md => en/sql-reference/sql-functions/string-functions/ltrim.md} (95%) rename docs/{documentation/en/sql-reference/sql-functions/string-functions/money_format_EN.md => en/sql-reference/sql-functions/string-functions/money_format.md} (96%) rename docs/{documentation => }/en/sql-reference/sql-functions/string-functions/null_or_empty.md (95%) rename docs/{documentation/en/sql-reference/sql-functions/string-functions/regexp_extract_EN.md => en/sql-reference/sql-functions/string-functions/regexp_extract.md} (96%) rename docs/{documentation/en/sql-reference/sql-functions/string-functions/regexp_replace_EN.md => en/sql-reference/sql-functions/string-functions/regexp_replace.md} (95%) rename docs/{documentation/en/sql-reference/sql-functions/string-functions/repeat_EN.md => en/sql-reference/sql-functions/string-functions/repeat.md} (95%) rename docs/{documentation/en/sql-reference/sql-functions/string-functions/right_EN.md => en/sql-reference/sql-functions/string-functions/right.md} (95%) rename docs/{documentation/en/sql-reference/sql-functions/string-functions/split_part_EN.md => en/sql-reference/sql-functions/string-functions/split_part.md} (97%) rename docs/{documentation/en/sql-reference/sql-functions/string-functions/starts_with_EN.md => en/sql-reference/sql-functions/string-functions/starts_with.md} (96%) rename docs/{documentation/en/sql-reference/sql-functions/string-functions/strleft_EN.md => en/sql-reference/sql-functions/string-functions/strleft.md} (95%) rename docs/{documentation/en/sql-reference/sql-functions/string-functions/strright_EN.md => en/sql-reference/sql-functions/string-functions/strright.md} (95%) rename docs/{documentation/en/sql-reference/sql-statements/Account Management/CREATE ROLE_EN.md => en/sql-reference/sql-statements/Account Management/CREATE ROLE.md} (94%) rename docs/{documentation/en/sql-reference/sql-statements/Account Management/CREATE USER_EN.md => en/sql-reference/sql-statements/Account Management/CREATE USER.md} (97%) rename docs/{documentation/en/sql-reference/sql-statements/Account Management/DROP ROLE_EN.md => en/sql-reference/sql-statements/Account Management/DROP ROLE.md} (95%) rename docs/{documentation/en/sql-reference/sql-statements/Account Management/DROP USER_EN.md => en/sql-reference/sql-statements/Account Management/DROP USER.md} (94%) rename docs/{documentation/en/sql-reference/sql-statements/Account Management/GRANT_EN.md => en/sql-reference/sql-statements/Account Management/GRANT.md} (98%) rename docs/{documentation/en/sql-reference/sql-statements/Account Management/REVOKE_EN.md => en/sql-reference/sql-statements/Account Management/REVOKE.md} (96%) rename docs/{documentation/en/sql-reference/sql-statements/Account Management/SET PASSWORD_EN.md => en/sql-reference/sql-statements/Account Management/SET PASSWORD.md} (96%) rename docs/{documentation/en/sql-reference/sql-statements/Account Management/SET PROPERTY_EN.md => en/sql-reference/sql-statements/Account Management/SET PROPERTY.md} (98%) rename docs/{documentation/en/sql-reference/sql-statements/Account Management/SHOW GRANTS_EN.md => en/sql-reference/sql-statements/Account Management/SHOW GRANTS.md} (95%) rename docs/{documentation/en/sql-reference/sql-statements/Account Management/SHOW ROLES_EN.md => en/sql-reference/sql-statements/Account Management/SHOW ROLES.md} (94%) rename docs/{documentation/en/sql-reference/sql-statements/Administration/ADMIN CANCEL REPAIR_EN.md => en/sql-reference/sql-statements/Administration/ADMIN CANCEL REPAIR.md} (94%) rename docs/{documentation/en/sql-reference/sql-statements/Administration/ADMIN CHECK TABLET_EN.md => en/sql-reference/sql-statements/Administration/ADMIN CHECK TABLET.md} (96%) rename docs/{documentation/en/sql-reference/sql-statements/Administration/ADMIN REPAIR_EN.md => en/sql-reference/sql-statements/Administration/ADMIN REPAIR.md} (96%) rename docs/{documentation/en/sql-reference/sql-statements/Administration/ADMIN SET CONFIG_EN.md => en/sql-reference/sql-statements/Administration/ADMIN SET CONFIG.md} (94%) rename docs/{documentation/en/sql-reference/sql-statements/Administration/ADMIN SET REPLICA STATUS_EN.md => en/sql-reference/sql-statements/Administration/ADMIN SET REPLICA STATUS.md} (96%) rename docs/{documentation/en/sql-reference/sql-statements/Administration/ADMIN SHOW CONFIG_EN.md => en/sql-reference/sql-statements/Administration/ADMIN SHOW CONFIG.md} (95%) rename docs/{documentation/en/sql-reference/sql-statements/Administration/ADMIN SHOW REPLICA DISTRIBUTION_EN.md => en/sql-reference/sql-statements/Administration/ADMIN SHOW REPLICA DISTRIBUTION.md} (94%) rename docs/{documentation/en/sql-reference/sql-statements/Administration/ADMIN SHOW REPLICA STATUS_EN.md => en/sql-reference/sql-statements/Administration/ADMIN SHOW REPLICA STATUS.md} (95%) rename docs/{documentation/en/sql-reference/sql-statements/Administration/ALTER CLUSTER_EN.md => en/sql-reference/sql-statements/Administration/ALTER CLUSTER.md} (96%) rename docs/{documentation/en/sql-reference/sql-statements/Administration/ALTER SYSTEM_EN.md => en/sql-reference/sql-statements/Administration/ALTER SYSTEM.md} (98%) rename docs/{documentation/en/sql-reference/sql-statements/Administration/CANCEL DECOMMISSION_EN.md => en/sql-reference/sql-statements/Administration/CANCEL DECOMMISSION.md} (94%) rename docs/{documentation/en/sql-reference/sql-statements/Administration/CREATE CLUSTER_EN.md => en/sql-reference/sql-statements/Administration/CREATE CLUSTER.md} (96%) rename docs/{documentation/en/sql-reference/sql-statements/Administration/CREATE FILE_EN.md => en/sql-reference/sql-statements/Administration/CREATE FILE.md} (97%) rename docs/{documentation/en/sql-reference/sql-statements/Administration/DROP CLUSTER_EN.md => en/sql-reference/sql-statements/Administration/DROP CLUSTER.md} (94%) rename docs/{documentation/en/sql-reference/sql-statements/Administration/DROP FILE_EN.md => en/sql-reference/sql-statements/Administration/DROP FILE.md} (95%) rename docs/{documentation/en/sql-reference/sql-statements/Administration/ENTER_EN.md => en/sql-reference/sql-statements/Administration/ENTER.md} (95%) rename docs/{documentation/en/sql-reference/sql-statements/Administration/INSTALL PLUGIN_EN.md => en/sql-reference/sql-statements/Administration/INSTALL PLUGIN.md} (95%) rename docs/{documentation/en/sql-reference/sql-statements/Administration/LINK DATABASE_EN.md => en/sql-reference/sql-statements/Administration/LINK DATABASE.md} (95%) rename docs/{documentation/en/sql-reference/sql-statements/Administration/MIGRATE DATABASE_EN.md => en/sql-reference/sql-statements/Administration/MIGRATE DATABASE.md} (94%) rename docs/{documentation/en/sql-reference/sql-statements/Administration/SHOW BACKENDS_EN.md => en/sql-reference/sql-statements/Administration/SHOW BACKENDS.md} (96%) rename docs/{documentation/en/sql-reference/sql-statements/Administration/SHOW BROKER_EN.md => en/sql-reference/sql-statements/Administration/SHOW BROKER.md} (94%) rename docs/{documentation/en/sql-reference/sql-statements/Administration/SHOW FILE_EN.md => en/sql-reference/sql-statements/Administration/SHOW FILE.md} (95%) rename docs/{documentation/en/sql-reference/sql-statements/Administration/SHOW FRONTENDS_EN.md => en/sql-reference/sql-statements/Administration/SHOW FRONTENDS.md} (95%) rename docs/{documentation/en/sql-reference/sql-statements/Administration/SHOW FULL COLUMNS_EN.md => en/sql-reference/sql-statements/Administration/SHOW FULL COLUMNS.md} (94%) rename docs/{documentation/en/sql-reference/sql-statements/Administration/SHOW INDEX_EN.md => en/sql-reference/sql-statements/Administration/SHOW INDEX.md} (95%) rename docs/{documentation/en/sql-reference/sql-statements/Administration/SHOW MIGRATIONS_EN.md => en/sql-reference/sql-statements/Administration/SHOW MIGRATIONS.md} (93%) rename docs/{documentation/en/sql-reference/sql-statements/Administration/SHOW PLUGINS_EN.md => en/sql-reference/sql-statements/Administration/SHOW PLUGINS.md} (94%) rename docs/{documentation/en/sql-reference/sql-statements/Administration/SHOW TABLE STATUS_EN.md => en/sql-reference/sql-statements/Administration/SHOW TABLE STATUS.md} (95%) rename docs/{documentation/en/sql-reference/sql-statements/Administration/UNINTALL PLUGIN_EN.md => en/sql-reference/sql-statements/Administration/UNINTALL PLUGIN.md} (94%) rename docs/{documentation/en/sql-reference/sql-statements/Data Definition/ALTER DATABASE_EN.md => en/sql-reference/sql-statements/Data Definition/ALTER DATABASE.md} (96%) rename docs/{documentation/en/sql-reference/sql-statements/Data Definition/ALTER TABLE_EN.md => en/sql-reference/sql-statements/Data Definition/ALTER TABLE.md} (99%) rename docs/{documentation/en/sql-reference/sql-statements/Data Definition/ALTER VIEW_EN.md => en/sql-reference/sql-statements/Data Definition/ALTER VIEW.md} (96%) rename docs/{documentation/en/sql-reference/sql-statements/Data Definition/BACKUP_EN.md => en/sql-reference/sql-statements/Data Definition/BACKUP.md} (97%) rename docs/{documentation/en/sql-reference/sql-statements/Data Definition/CANCEL ALTER_EN.md => en/sql-reference/sql-statements/Data Definition/CANCEL ALTER.md} (96%) rename docs/{documentation/en/sql-reference/sql-statements/Data Definition/CANCEL BACKUP_EN.md => en/sql-reference/sql-statements/Data Definition/CANCEL BACKUP.md} (94%) rename docs/{documentation/en/sql-reference/sql-statements/Data Definition/CANCEL RESTORE_EN.md => en/sql-reference/sql-statements/Data Definition/CANCEL RESTORE.md} (94%) rename docs/{documentation/en/sql-reference/sql-statements/Data Definition/CREATE DATABASE_EN.md => en/sql-reference/sql-statements/Data Definition/CREATE DATABASE.md} (93%) rename docs/{documentation/en/sql-reference/sql-statements/Data Definition/CREATE INDEX_EN.md => en/sql-reference/sql-statements/Data Definition/CREATE INDEX.md} (95%) rename docs/{documentation => }/en/sql-reference/sql-statements/Data Definition/CREATE MATERIALIZED VIEW.md (99%) rename docs/{documentation/en/sql-reference/sql-statements/Data Definition/CREATE REPOSITORY_EN.md => en/sql-reference/sql-statements/Data Definition/CREATE REPOSITORY.md} (97%) rename docs/{documentation/en/sql-reference/sql-statements/Data Definition/CREATE TABLE_EN.md => en/sql-reference/sql-statements/Data Definition/CREATE TABLE.md} (99%) rename docs/{documentation/en/sql-reference/sql-statements/Data Definition/CREATE VIEW_EN.md => en/sql-reference/sql-statements/Data Definition/CREATE VIEW.md} (96%) rename docs/{documentation/en/sql-reference/sql-statements/Data Definition/Colocate Join_EN.md => en/sql-reference/sql-statements/Data Definition/Colocate Join.md} (98%) rename docs/{documentation/en/sql-reference/sql-statements/Data Definition/DROP DATABASE_EN.md => en/sql-reference/sql-statements/Data Definition/DROP DATABASE.md} (94%) rename docs/{documentation/en/sql-reference/sql-statements/Data Definition/DROP INDEX_EN.md => en/sql-reference/sql-statements/Data Definition/DROP INDEX.md} (93%) rename docs/{documentation => }/en/sql-reference/sql-statements/Data Definition/DROP MATERIALIZED VIEW.md (98%) rename docs/{documentation/en/sql-reference/sql-statements/Data Definition/DROP REPOSITORY_EN.md => en/sql-reference/sql-statements/Data Definition/DROP REPOSITORY.md} (95%) rename docs/{documentation/en/sql-reference/sql-statements/Data Definition/DROP TABLE_EN.md => en/sql-reference/sql-statements/Data Definition/DROP TABLE.md} (95%) rename docs/{documentation/en/sql-reference/sql-statements/Data Definition/DROP VIEW_EN.md => en/sql-reference/sql-statements/Data Definition/DROP VIEW.md} (94%) rename docs/{documentation/en/sql-reference/sql-statements/Data Definition/HLL_EN.md => en/sql-reference/sql-statements/Data Definition/HLL.md} (98%) rename docs/{documentation/en/sql-reference/sql-statements/Data Definition/RECOVER_EN.md => en/sql-reference/sql-statements/Data Definition/RECOVER.md} (96%) rename docs/{documentation/en/sql-reference/sql-statements/Data Definition/RESTORE_EN.md => en/sql-reference/sql-statements/Data Definition/RESTORE.md} (98%) rename docs/{documentation/en/sql-reference/sql-statements/Data Definition/TRUNCATE TABLE_EN.md => en/sql-reference/sql-statements/Data Definition/TRUNCATE TABLE.md} (96%) rename docs/{documentation/en/sql-reference/sql-statements/Data Definition/create-function_EN.md => en/sql-reference/sql-statements/Data Definition/create-function.md} (98%) rename docs/{documentation/en/sql-reference/sql-statements/Data Definition/drop-function_EN.md => en/sql-reference/sql-statements/Data Definition/drop-function.md} (95%) rename docs/{documentation/en/sql-reference/sql-statements/Data Definition/show-functions_EN.md => en/sql-reference/sql-statements/Data Definition/show-functions.md} (97%) rename docs/{documentation/en/sql-reference/sql-statements/Data Manipulation/BROKER LOAD_EN.md => en/sql-reference/sql-statements/Data Manipulation/BROKER LOAD.md} (99%) rename docs/{documentation/en/sql-reference/sql-statements/Data Manipulation/CANCEL DELETE_EN.md => en/sql-reference/sql-statements/Data Manipulation/CANCEL DELETE.md} (93%) rename docs/{documentation/en/sql-reference/sql-statements/Data Manipulation/CANCEL LABEL_EN.md => en/sql-reference/sql-statements/Data Manipulation/CANCEL LABEL.md} (96%) rename docs/{documentation/en/sql-reference/sql-statements/Data Manipulation/CANCEL LOAD_EN.md => en/sql-reference/sql-statements/Data Manipulation/CANCEL LOAD.md} (95%) rename docs/{documentation/en/sql-reference/sql-statements/Data Manipulation/DELETE_EN.md => en/sql-reference/sql-statements/Data Manipulation/DELETE.md} (97%) rename docs/{documentation/en/sql-reference/sql-statements/Data Manipulation/EXPORT_EN.md => en/sql-reference/sql-statements/Data Manipulation/EXPORT.md} (98%) rename docs/{documentation/en/sql-reference/sql-statements/Data Manipulation/GET LABEL STATE_EN.md => en/sql-reference/sql-statements/Data Manipulation/GET LABEL STATE.md} (96%) rename docs/{documentation/en/sql-reference/sql-statements/Data Manipulation/GROUP BY_EN.md => en/sql-reference/sql-statements/Data Manipulation/GROUP BY.md} (98%) rename docs/{documentation/en/sql-reference/sql-statements/Data Manipulation/LOAD_EN.md => en/sql-reference/sql-statements/Data Manipulation/LOAD.md} (99%) rename docs/{documentation/en/sql-reference/sql-statements/Data Manipulation/MINI LOAD_EN.md => en/sql-reference/sql-statements/Data Manipulation/MINI LOAD.md} (99%) rename docs/{documentation/en/sql-reference/sql-statements/Data Manipulation/MULTI LOAD_EN.md => en/sql-reference/sql-statements/Data Manipulation/MULTI LOAD.md} (99%) rename docs/{documentation/en/sql-reference/sql-statements/Data Manipulation/PAUSE ROUTINE LOAD_EN.md => en/sql-reference/sql-statements/Data Manipulation/PAUSE ROUTINE LOAD.md} (92%) rename docs/{documentation/en/sql-reference/sql-statements/Data Manipulation/RESTORE TABLET_EN.md => en/sql-reference/sql-statements/Data Manipulation/RESTORE TABLET.md} (95%) rename docs/{documentation/en/sql-reference/sql-statements/Data Manipulation/RESUME ROUTINE LOAD_EN.md => en/sql-reference/sql-statements/Data Manipulation/RESUME ROUTINE LOAD.md} (92%) rename docs/{documentation/en/sql-reference/sql-statements/Data Manipulation/ROUTINE LOAD_EN.md => en/sql-reference/sql-statements/Data Manipulation/ROUTINE LOAD.md} (99%) rename docs/{documentation/en/sql-reference/sql-statements/Data Manipulation/SHOW ALTER_EN.md => en/sql-reference/sql-statements/Data Manipulation/SHOW ALTER.md} (96%) rename docs/{documentation/en/sql-reference/sql-statements/Data Manipulation/SHOW BACKUP_EN.md => en/sql-reference/sql-statements/Data Manipulation/SHOW BACKUP.md} (96%) rename docs/{documentation/en/sql-reference/sql-statements/Data Manipulation/SHOW DATA_EN.md => en/sql-reference/sql-statements/Data Manipulation/SHOW DATA.md} (96%) rename docs/{documentation/en/sql-reference/sql-statements/Data Manipulation/SHOW DATABASES_EN.md => en/sql-reference/sql-statements/Data Manipulation/SHOW DATABASES.md} (93%) rename docs/{documentation/en/sql-reference/sql-statements/Data Manipulation/SHOW DELETE_EN.md => en/sql-reference/sql-statements/Data Manipulation/SHOW DELETE.md} (94%) rename docs/{documentation/en/sql-reference/sql-statements/Data Manipulation/SHOW DYNAMIC PARTITION TABLES_EN.md => en/sql-reference/sql-statements/Data Manipulation/SHOW DYNAMIC PARTITION TABLES.md} (93%) rename docs/{documentation/en/sql-reference/sql-statements/Data Manipulation/SHOW EXPORT_EN.md => en/sql-reference/sql-statements/Data Manipulation/SHOW EXPORT.md} (96%) rename docs/{documentation/en/sql-reference/sql-statements/Data Manipulation/SHOW LOAD_EN.md => en/sql-reference/sql-statements/Data Manipulation/SHOW LOAD.md} (98%) rename docs/{documentation/en/sql-reference/sql-statements/Data Manipulation/SHOW PARTITIONS_EN.md => en/sql-reference/sql-statements/Data Manipulation/SHOW PARTITIONS.md} (95%) rename docs/{documentation/en/sql-reference/sql-statements/Data Manipulation/SHOW PROPERTY_EN.md => en/sql-reference/sql-statements/Data Manipulation/SHOW PROPERTY.md} (94%) rename docs/{documentation/en/sql-reference/sql-statements/Data Manipulation/SHOW REPOSITORIES_EN.md => en/sql-reference/sql-statements/Data Manipulation/SHOW REPOSITORIES.md} (95%) rename docs/{documentation/en/sql-reference/sql-statements/Data Manipulation/SHOW RESTORE_EN.md => en/sql-reference/sql-statements/Data Manipulation/SHOW RESTORE.md} (97%) rename docs/{documentation/en/sql-reference/sql-statements/Data Manipulation/SHOW ROUTINE LOAD TASK_EN.md => en/sql-reference/sql-statements/Data Manipulation/SHOW ROUTINE LOAD TASK.md} (92%) rename docs/{documentation/en/sql-reference/sql-statements/Data Manipulation/SHOW ROUTINE LOAD_EN.md => en/sql-reference/sql-statements/Data Manipulation/SHOW ROUTINE LOAD.md} (96%) rename docs/{documentation/en/sql-reference/sql-statements/Data Manipulation/SHOW SNAPSHOT_EN.md => en/sql-reference/sql-statements/Data Manipulation/SHOW SNAPSHOT.md} (96%) rename docs/{documentation/en/sql-reference/sql-statements/Data Manipulation/SHOW TABLES_EN.md => en/sql-reference/sql-statements/Data Manipulation/SHOW TABLES.md} (93%) rename docs/{documentation/en/sql-reference/sql-statements/Data Manipulation/SHOW TABLET_EN.md => en/sql-reference/sql-statements/Data Manipulation/SHOW TABLET.md} (95%) rename docs/{documentation/en/sql-reference/sql-statements/Data Manipulation/SHOW TRANSACTION_EN.md => en/sql-reference/sql-statements/Data Manipulation/SHOW TRANSACTION.md} (97%) rename docs/{documentation/en/sql-reference/sql-statements/Data Manipulation/STOP ROUTINE LOAD_EN.md => en/sql-reference/sql-statements/Data Manipulation/STOP ROUTINE LOAD.md} (92%) rename docs/{documentation/en/sql-reference/sql-statements/Data Manipulation/STREAM LOAD_EN.md => en/sql-reference/sql-statements/Data Manipulation/STREAM LOAD.md} (99%) rename docs/{documentation/en/sql-reference/sql-statements/Data Manipulation/insert_EN.md => en/sql-reference/sql-statements/Data Manipulation/insert.md} (98%) rename docs/{documentation/en/sql-reference/sql-statements/Data Types/BIGINT_EN.md => en/sql-reference/sql-statements/Data Types/BIGINT.md} (93%) rename docs/{documentation/en/sql-reference/sql-statements/Data Types/BOOLEAN_EN.md => en/sql-reference/sql-statements/Data Types/BOOLEAN.md} (93%) rename docs/{documentation/en/sql-reference/sql-statements/Data Types/CHAR_EN.md => en/sql-reference/sql-statements/Data Types/CHAR.md} (94%) rename docs/{documentation/en/sql-reference/sql-statements/Data Types/DATE_EN.md => en/sql-reference/sql-statements/Data Types/DATE.md} (95%) rename docs/{documentation/en/sql-reference/sql-statements/Data Types/DATETIME_EN.md => en/sql-reference/sql-statements/Data Types/DATETIME.md} (94%) rename docs/{documentation/en/sql-reference/sql-statements/Data Types/DECIMAL_EN.md => en/sql-reference/sql-statements/Data Types/DECIMAL.md} (95%) rename docs/{documentation/en/sql-reference/sql-statements/Data Types/DOUBLE_EN.md => en/sql-reference/sql-statements/Data Types/DOUBLE.md} (93%) rename docs/{documentation/en/sql-reference/sql-statements/Data Types/FLOAT_EN.md => en/sql-reference/sql-statements/Data Types/FLOAT.md} (93%) rename docs/{documentation/en/sql-reference/sql-statements/Data Types/HLL(HyperLogLog)_EN.md => en/sql-reference/sql-statements/Data Types/HLL(HyperLogLog).md} (94%) rename docs/{documentation/en/sql-reference/sql-statements/Data Types/INT_EN.md => en/sql-reference/sql-statements/Data Types/INT.md} (94%) rename docs/{documentation/en/sql-reference/sql-statements/Data Types/SMALLINT_EN.md => en/sql-reference/sql-statements/Data Types/SMALLINT.md} (93%) rename docs/{documentation/en/sql-reference/sql-statements/Data Types/TINYINT_EN.md => en/sql-reference/sql-statements/Data Types/TINYINT.md} (93%) rename docs/{documentation/en/sql-reference/sql-statements/Data Types/VARCHAR_EN.md => en/sql-reference/sql-statements/Data Types/VARCHAR.md} (94%) rename docs/{documentation/en/sql-reference/sql-statements/Utility/util_stmt_EN.md => en/sql-reference/sql-statements/Utility/util_stmt.md} (94%) create mode 100644 docs/package.json delete mode 100644 docs/resources/palo_export_mind_map.svg delete mode 100644 docs/website/Makefile delete mode 100644 docs/website/README.md delete mode 100644 docs/website/build_site.sh delete mode 100644 docs/website/source/_templates/footer.html delete mode 100644 docs/website/source/conf.py delete mode 100644 docs/website/source/index.rst create mode 100644 docs/zh-CN/README.md rename docs/{documentation/cn => zh-CN}/administrator-guide/alter-table/alter-table-bitmap-index.md (97%) rename docs/{documentation/cn => zh-CN}/administrator-guide/alter-table/alter-table-rollup.md (99%) rename docs/{documentation/cn => zh-CN}/administrator-guide/alter-table/alter-table-schema-change.md (99%) rename docs/{documentation/cn => zh-CN}/administrator-guide/alter-table/alter-table-temp-partition.md (99%) rename docs/{documentation/cn => zh-CN}/administrator-guide/backup-restore.md (99%) rename docs/{documentation/cn => zh-CN}/administrator-guide/broker.md (99%) rename docs/{documentation/cn => zh-CN}/administrator-guide/colocation-join.md (99%) rename docs/{documentation/cn => zh-CN}/administrator-guide/config/fe_config.md (96%) rename docs/{documentation/cn => zh-CN}/administrator-guide/dynamic-partition.md (99%) rename docs/{documentation/cn => zh-CN}/administrator-guide/export-manual.md (99%) rename docs/{documentation/cn => zh-CN}/administrator-guide/http-actions/cancel-label.md (95%) rename docs/{documentation/cn => zh-CN}/administrator-guide/http-actions/compaction-action.md (97%) rename docs/{documentation/cn => zh-CN}/administrator-guide/http-actions/fe-get-log-file.md (96%) rename docs/{documentation/cn => zh-CN}/administrator-guide/http-actions/get-label-state.md (96%) rename docs/{documentation/cn => zh-CN}/administrator-guide/http-actions/restore-tablet.md (95%) rename docs/{documentation/cn => zh-CN}/administrator-guide/load-data/broker-load-manual.md (99%) rename docs/{documentation/cn => zh-CN}/administrator-guide/load-data/delete-manual.md (99%) rename docs/{documentation/cn => zh-CN}/administrator-guide/load-data/insert-into-manual.md (99%) rename docs/{documentation/cn => zh-CN}/administrator-guide/load-data/load-manual.md (99%) rename docs/{documentation/cn => zh-CN}/administrator-guide/load-data/routine-load-manual.md (99%) rename docs/{documentation/cn => zh-CN}/administrator-guide/load-data/stream-load-manual.md (99%) rename docs/{documentation/cn => zh-CN}/administrator-guide/operation/disk-capacity.md (98%) rename docs/{documentation/cn => zh-CN}/administrator-guide/operation/metadata-operation.md (99%) rename docs/{documentation/cn => zh-CN}/administrator-guide/operation/monitor-alert.md (98%) rename docs/{documentation/cn => zh-CN}/administrator-guide/operation/multi-tenant.md (96%) rename docs/{documentation/cn => zh-CN}/administrator-guide/operation/tablet-meta-tool.md (97%) rename docs/{documentation/cn => zh-CN}/administrator-guide/operation/tablet-repair-and-balance.md (99%) rename docs/{documentation/cn => zh-CN}/administrator-guide/operation/tablet-restore-tool.md (97%) rename docs/{documentation/cn => zh-CN}/administrator-guide/privilege.md (99%) rename docs/{documentation/cn => zh-CN}/administrator-guide/segment-v2-usage.md (98%) rename docs/{documentation/cn => zh-CN}/administrator-guide/small-file-mgr.md (98%) rename docs/{documentation/cn => zh-CN}/administrator-guide/sql-mode.md (97%) rename docs/{documentation/cn => zh-CN}/administrator-guide/time-zone.md (98%) rename docs/{documentation/cn => zh-CN}/administrator-guide/variables.md (99%) rename docs/{documentation/cn => zh-CN}/community/gitter.md (95%) rename docs/{documentation/cn => zh-CN}/community/how-to-contribute.md (98%) rename docs/{documentation/cn => zh-CN}/community/members.md (96%) rename docs/{documentation/cn => zh-CN}/community/pull-request.md (96%) rename docs/{documentation/cn => zh-CN}/community/release-process.md (99%) rename docs/{documentation/cn => zh-CN}/community/subscribe-mail-list.md (89%) rename docs/{documentation/cn => zh-CN}/community/verify-apache-release.md (97%) rename docs/{documentation/cn => zh-CN}/developer-guide/debug-tool.md (98%) rename docs/{documentation/cn => zh-CN}/developer-guide/format-code.md (97%) rename docs/{documentation/cn => zh-CN}/downloads/downloads.md (97%) rename docs/{documentation/cn => zh-CN}/extending-doris/audit-plugin.md (97%) rename docs/{documentation/cn => zh-CN}/extending-doris/doris-on-es.md (99%) rename docs/{documentation/cn => zh-CN}/extending-doris/plugin-development-manual.md (99%) rename docs/{documentation/cn => zh-CN}/extending-doris/user-defined-function.md (98%) rename docs/{documentation/cn => zh-CN}/getting-started/advance-usage.md (99%) rename docs/{documentation/cn => zh-CN}/getting-started/basic-usage.md (99%) rename docs/{documentation/cn => zh-CN}/getting-started/best-practice.md (99%) rename docs/{documentation/cn => zh-CN}/getting-started/data-model-rollup.md (99%) rename docs/{documentation/cn => zh-CN}/getting-started/data-partition.md (99%) rename docs/{documentation/cn => zh-CN}/getting-started/hit-the-rollup.md (99%) rename docs/{documentation/cn => zh-CN}/installing/compilation.md (98%) rename docs/{documentation/cn => zh-CN}/installing/install-deploy.md (99%) rename docs/{documentation/cn => zh-CN}/installing/upgrade.md (98%) rename docs/{documentation/cn => zh-CN}/internal/doris_storage_optimization.md (98%) rename docs/{documentation/cn => zh-CN}/internal/grouping_sets_design.md (99%) rename docs/{documentation/cn => zh-CN}/internal/metadata-design.md (98%) rename docs/{documentation/cn => zh-CN}/internal/spark_load.md (99%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/aggregate-functions/avg.md (96%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/aggregate-functions/bitmap.md (98%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/aggregate-functions/count.md (96%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/aggregate-functions/hll_union_agg.md (95%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/aggregate-functions/max.md (94%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/aggregate-functions/min.md (94%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/aggregate-functions/ndv.md (95%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/aggregate-functions/percentile_approx.md (96%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/aggregate-functions/stddev.md (94%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/aggregate-functions/stddev_samp.md (94%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/aggregate-functions/sum.md (94%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/aggregate-functions/var_samp.md (93%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/aggregate-functions/variance.md (94%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/bitmap-functions/bitmap_and.md (94%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/bitmap-functions/bitmap_contains.md (94%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/bitmap-functions/bitmap_empty.md (95%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/bitmap-functions/bitmap_from_string.md (96%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/bitmap-functions/bitmap_has_any.md (94%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/bitmap-functions/bitmap_hash.md (95%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/bitmap-functions/bitmap_or.md (94%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/bitmap-functions/bitmap_to_string.md (96%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/bitmap-functions/to_bitmap.md (95%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/cast.md (97%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/date-time-functions/convert_tz.md (96%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/date-time-functions/curdate.md (94%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/date-time-functions/current_timestamp.md (94%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/date-time-functions/curtime.md (93%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/date-time-functions/date_add.md (95%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/date-time-functions/date_format.md (98%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/date-time-functions/date_sub.md (95%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/date-time-functions/datediff.md (97%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/date-time-functions/day.md (95%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/date-time-functions/dayname.md (95%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/date-time-functions/dayofmonth.md (94%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/date-time-functions/dayofweek.md (96%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/date-time-functions/dayofyear.md (95%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/date-time-functions/from_days.md (94%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/date-time-functions/from_unixtime.md (97%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/date-time-functions/hour.md (95%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/date-time-functions/minute.md (95%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/date-time-functions/month.md (95%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/date-time-functions/monthname.md (94%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/date-time-functions/now.md (94%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/date-time-functions/second.md (95%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/date-time-functions/str_to_date.md (97%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/date-time-functions/timediff.md (96%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/date-time-functions/timestampadd.md (96%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/date-time-functions/timestampdiff.md (97%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/date-time-functions/to_days.md (94%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/date-time-functions/unix_timestamp.md (97%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/date-time-functions/utc_timestamp.md (95%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/date-time-functions/workofyear.md (94%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/date-time-functions/year.md (95%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/hash-functions/murmur_hash3_32.md (95%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/spatial-functions/st_astext.md (94%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/spatial-functions/st_circle.md (95%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/spatial-functions/st_contains.md (96%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/spatial-functions/st_distance_sphere.md (95%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/spatial-functions/st_geometryfromtext.md (93%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/spatial-functions/st_linefromtext.md (93%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/spatial-functions/st_point.md (95%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/spatial-functions/st_polygon.md (93%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/spatial-functions/st_x.md (94%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/spatial-functions/st_y.md (94%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/string-functions/ascii.md (95%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/string-functions/concat.md (96%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/string-functions/concat_ws.md (96%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/string-functions/ends_with.md (95%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/string-functions/find_in_set.md (95%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/string-functions/get_json_double.md (97%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/string-functions/get_json_int.md (97%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/string-functions/get_json_string.md (98%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/string-functions/group_concat.md (96%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/string-functions/instr.md (95%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/string-functions/lcase.md (93%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/string-functions/left.md (94%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/string-functions/length.md (95%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/string-functions/locate.md (96%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/string-functions/lower.md (94%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/string-functions/lpad.md (96%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/string-functions/ltrim.md (94%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/string-functions/money_format.md (95%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/string-functions/null_or_empty.md (95%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/string-functions/regexp_extract.md (96%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/string-functions/regexp_replace.md (95%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/string-functions/repeat.md (95%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/string-functions/right.md (94%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/string-functions/split_part.md (96%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/string-functions/starts_with.md (95%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/string-functions/strleft.md (94%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-functions/string-functions/strright.md (94%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Account Management/CREATE ROLE.md (94%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Account Management/CREATE USER.md (97%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Account Management/DROP ROLE.md (94%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Account Management/DROP USER.md (94%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Account Management/GRANT.md (97%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Account Management/REVOKE.md (96%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Account Management/SET PASSWORD.md (96%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Account Management/SET PROPERTY.md (98%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Account Management/SHOW GRANTS.md (95%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Account Management/SHOW ROLES.md (94%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Administration/ADMIN CANCEL REPAIR.md (94%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Administration/ADMIN CHECK TABLET.md (95%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Administration/ADMIN REPAIR.md (95%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Administration/ADMIN SET CONFIG.md (94%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Administration/ADMIN SET REPLICA STATUS.md (96%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Administration/ADMIN SHOW CONFIG.md (95%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Administration/ADMIN SHOW REPLICA DISTRIBUTION.md (94%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Administration/ADMIN SHOW REPLICA STATUS.md (95%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Administration/ALTER CLUSTER.md (95%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Administration/ALTER SYSTEM.md (98%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Administration/CANCEL DECOMMISSION.md (94%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Administration/CREATE CLUSTER.md (96%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Administration/CREATE FILE.md (97%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Administration/DROP CLUSTER.md (94%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Administration/DROP FILE.md (95%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Administration/ENTER.md (94%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Administration/INSTALL PLUGIN.md (95%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Administration/LINK DATABASE.md (95%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Administration/MIGRATE DATABASE.md (94%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Administration/SHOW BACKENDS.md (96%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Administration/SHOW BROKER.md (94%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Administration/SHOW FILE.md (95%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Administration/SHOW FRONTENDS.md (95%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Administration/SHOW FULL COLUMNS.md (93%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Administration/SHOW INDEX.md (94%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Administration/SHOW MIGRATIONS.md (92%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Administration/SHOW PLUGINS.md (94%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Administration/SHOW TABLE STATUS.md (94%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Administration/UNINSTALL PLUGIN.md (94%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Definition/ALTER DATABASE.md (96%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Definition/ALTER TABLE.md (99%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Definition/ALTER VIEW.md (95%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Definition/BACKUP.md (97%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Definition/CANCEL ALTER.md (96%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Definition/CANCEL BACKUP.md (93%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Definition/CANCEL RESTORE.md (94%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Definition/CREATE DATABASE.md (93%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Definition/CREATE INDEX.md (94%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Definition/CREATE MATERIALIZED VIEW.md (99%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Definition/CREATE REPOSITORY.md (97%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Definition/CREATE TABLE.md (99%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Definition/CREATE VIEW.md (96%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Definition/DROP DATABASE.md (94%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Definition/DROP INDEX.md (93%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Definition/DROP MATERIALIZED VIEW.md (98%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Definition/DROP REPOSITORY.md (95%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Definition/DROP TABLE.md (95%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Definition/DROP VIEW.md (94%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Definition/HLL.md (98%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Definition/RECOVER.md (96%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Definition/RESTORE.md (98%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Definition/TRUNCATE TABLE.md (95%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Definition/create-function.md (98%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Definition/drop-function.md (94%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Definition/show-functions.md (97%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Manipulation/BROKER LOAD.md (99%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Manipulation/CANCEL LOAD.md (95%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Manipulation/DELETE.md (97%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Manipulation/EXPORT.md (98%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Manipulation/GROUP BY.md (98%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Manipulation/LOAD.md (99%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Manipulation/MINI LOAD.md (99%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Manipulation/MULTI LOAD.md (99%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Manipulation/PAUSE ROUTINE LOAD.md (92%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Manipulation/RESUME ROUTINE LOAD.md (92%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Manipulation/ROUTINE LOAD.md (99%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Manipulation/SHOW ALTER.md (96%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Manipulation/SHOW BACKUP.md (97%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Manipulation/SHOW DATA.md (96%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Manipulation/SHOW DATABASES.md (93%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Manipulation/SHOW DELETE.md (94%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Manipulation/SHOW DYNAMIC PARTITION TABLES.md (93%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Manipulation/SHOW EXPORT.md (96%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Manipulation/SHOW LOAD.md (98%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Manipulation/SHOW PARTITIONS.md (95%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Manipulation/SHOW PROPERTY.md (94%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Manipulation/SHOW REPOSITORIES.md (95%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Manipulation/SHOW RESTORE.md (97%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Manipulation/SHOW ROUTINE LOAD TASK.md (92%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Manipulation/SHOW ROUTINE LOAD.md (95%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Manipulation/SHOW SNAPSHOT.md (96%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Manipulation/SHOW TABLES.md (93%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Manipulation/SHOW TABLET.md (97%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Manipulation/SHOW TRANSACTION.md (96%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Manipulation/STOP ROUTINE LOAD.md (92%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Manipulation/STREAM LOAD.md (99%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Manipulation/insert.md (98%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Types/BIGINT.md (93%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Types/BOOLEAN.md (93%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Types/CHAR.md (93%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Types/DATE.md (95%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Types/DATETIME.md (93%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Types/DECIMAL.md (94%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Types/DOUBLE.md (93%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Types/FLOAT.md (93%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Types/HLL.md (94%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Types/INT.md (93%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Types/LARGEINT.md (93%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Types/SMALLINT.md (93%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Types/TINYINT.md (93%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Data Types/VARCHAR.md (93%) rename docs/{documentation/cn => zh-CN}/sql-reference/sql-statements/Utility/DESCRIBE.md (94%) diff --git a/.gitignore b/.gitignore index 72fc0c9b645a89..0a8837eb3cc738 100644 --- a/.gitignore +++ b/.gitignore @@ -3,7 +3,9 @@ be/output be/build output -docs/build +docs/.temp +docs/.vuepress/dist +docs/node_modules gensrc/build fe/target thirdparty/src diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 00000000000000..3785143d8c8812 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,57 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +language: node_js +# nodejs版本 +node_js: + - '8' + +# Travis-CI Caching +cache: + directories: + - docs/node_modules + + +# S: Build Lifecycle +install: + - cd docs && npm install + +before_script: + - export PR=https://api.github.com/repos/$TRAVIS_REPO_SLUG/pulls/$TRAVIS_PULL_REQUEST + - export BRANCH=$(if [ "$TRAVIS_PULL_REQUEST" == "false" ]; then echo $TRAVIS_BRANCH; else echo `curl -s $PR | jq -r .head.ref`; fi) + - echo $BRANCH + - sed -i 's/base:.*,/base:\"\/'$BRANCH'\/\",/g' .vuepress/config.js + - sed -i 's/docsBranch:.*,/docsBranch:\"'$BRANCH'\",/g' .vuepress/config.js + - rm -rf site-repo + - git config user.name "${GIT_NAME}" + - git config user.email "${GIT_EMAIL}" + - git clone https://${SITE_REPO} site-repo + +script: + - npm run build + +after_script: + - cd site-repo + - mkdir -p ${BRANCH} && rm -rf ${BRANCH}/* + - cp -r ../.vuepress/dist/* ./${BRANCH}/ + - git checkout ${SITE_BRANCH} + - git add . + - git commit -am "Auto Build" + - git push --force --quiet "https://${SITE_PUSH_TOKEN}@${SITE_REPO}" ${SITE_BRANCH}:${SITE_BRANCH} + +branches: + only: + - master + - /^branch-.*$/ diff --git a/LICENSE.txt b/LICENSE.txt index 571e94b6c87c4c..1dabf41b6576db 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -630,3 +630,27 @@ be/src/util/condition_variable* : BSD-style license Copyright (c) 2011 The Chromium Authors. All rights reserved. Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. + +-------------------------------------------------------------------------------- + +docs/.vuepress/* The MIT License (MIT) + +Copyright (c) 2018-present, Yuxi (Evan) You + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/docs/.markdownlint.yml b/docs/.markdownlint.yml new file mode 100644 index 00000000000000..f01d39144fb1fb --- /dev/null +++ b/docs/.markdownlint.yml @@ -0,0 +1,19 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +{ + "default": true, + "MD013": false, +} diff --git a/docs/.markdownlintignore b/docs/.markdownlintignore new file mode 100644 index 00000000000000..1aea57f9f29788 --- /dev/null +++ b/docs/.markdownlintignore @@ -0,0 +1,2 @@ +node_modules +.vuepress diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js new file mode 100644 index 00000000000000..d8f76a99f66014 --- /dev/null +++ b/docs/.vuepress/config.js @@ -0,0 +1,120 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +function convertSidebar(list, path) { + if (list.length > 0) { + list.forEach((element, i) => { + if (element.children) { + convertSidebar(element.children, path + element.directoryPath) + delete element.directoryPath + } else { + list[i] = path + element + } + }); + } + return list +} + +module.exports = { + base: '', + locales: { + '/en/': { + lang: 'en', + title: 'Apache Doris', + description: 'Apache Doris' + }, + '/zh-CN/': { + lang: 'zh-CN', + title: 'Apache Doris', + description: 'Apache Doris' + } + }, + head: [ + ['meta', { name: 'theme-color', content: '#3eaf7c' }], + ['meta', { name: 'apple-mobile-web-app-capable', content: 'yes' }], + ['meta', { name: 'apple-mobile-web-app-status-bar-style', content: 'black' }], + ['meta', { name: 'msapplication-TileColor', content: '#000000' }] + ], + title: 'Apache Doris', + description: 'Apache Doris', + themeConfig: { + title: 'Doris', + logo: '/images/doris-logo-only.png', + search: true, + smoothScroll: true, + searchMaxSuggestions: 10, + nextLinks: true, + prevLinks: true, + repo: 'apache/incubator-doris', + repoLabel: 'GitHub', + lastUpdated: 'Last Updated', + editLinks: true, + docsDir: 'docs', + docsBranch: '', + locales: { + '/en/': { + selectText: 'Languages', + label: 'English', + ariaLabel: 'Languages', + editLinkText: 'Edit this page on GitHub', + algolia: {}, + nav: [ + { + text: 'Home', link: '/en/' + }, + { + text: 'Docs', link: '/en/installing/compilation' + }, + { + text: 'Download', link: '/en/downloads/downloads' + }, + { + text: 'Apache', link: 'https://www.apache.org/', target: '_blank' + } + ], + sidebar: convertSidebar(require('./sidebar/en.js'), '/en/') + }, + '/zh-CN/': { + selectText: '选择语言', + label: '简体中文', + editLinkText: '在 GitHub 上编辑此页', + nav: [ + { + text: '主页', link: '/zh-CN/' + }, + { + text: '文档', link: '/zh-CN/installing/compilation' + }, + { + text: '下载', link: '/zh-CN/downloads/downloads' + }, + { + text: 'Apache', link: 'https://www.apache.org/', target: '_blank' + } + ], + algolia: {}, + sidebar: { + '/zh-CN/': convertSidebar(require('./sidebar/zh-CN.js'), '/zh-CN/') + } + } + } + }, + plugins: [ + 'reading-progress', 'plugin-back-to-top', 'plugin-medium-zoom' + ] +}; diff --git a/docs/.vuepress/public/favicon.ico b/docs/.vuepress/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..c79ff458a207a9ccd3d5a595ff9ea86e285212f0 GIT binary patch literal 4286 zcmdUxdrVVT9LG;{@}Tx52Y zi@V%qui{L>*>+Oi(m`cu^mN{PHc!n)15^0SoX|StsFTS-?If0`qm*O7=KQ83vA->@ z(l2}OpOIc2tbZmN^h`d&+2Vu18ufDnTOFmC#@V7KVn8J|yGqtw!`C+t0l(;T@PEPY zK>qwYHr+|*G(#RD^mP8ZYG`w0@Ud@slKF2Qe0?(zi$=4nRMyGlt(%7LZoh*d?@a>u z5Fc!|gU;4KzGONoYt0($syt+?$`SXTIkEBL-FK0JDLAYn72~03Xme!Bw4{7Z8cb!G z$Wnn7Sk<}K%XP;N^l{&a!8bMVCxvN{&w~FN&@AKkPpCg**->OF&ujtXx~j8TqP8Hl zl~ahppAa=DH0=~7(^8osNdWEwpVwefDOsW>KlK9lmKfG~T?eI{5grH70C9lvf;BAV zd*h(WVj&kP^n_MQcvR=1{>=*20J#GV7-+x*X;_Z$)d0D$e^i{pKI)7B4Vut2$i2A` zqG2UIufbBKWNo#DDb8_ygwxQ;>D*Hs$BAwYp9>m?V0^!Zt0zlR$VV49 z6P~JbLgN7Aeuf$yyIP%Ijn8YaR_ENl@x>=m>|eT2axtZ&ur#oz^4}MOp6<`8p6_Wp ziRfQ1$@n;|mJ6r{Q&7v&z@Cb4sZ`#ys`7RZ^`%QaR}PiBh@=CKKMdhkcSSSo&BrUP z2RI-4yWADqEUvOO^MQTKR#Uid*rC|sv?hE-;V(X>@a=<)IsPE^r#+mn53t6kmTG|W zdjk681~||4&fxczmGW(-i5g(fl7<&J-Y8?tJ(q2N+Leb!3C zKQn<{1114m)o=d*yd(o+Aord>5c3|Jj}3l9%%Ajokp^S5$7SBN&EzhRhx<_R#XCpB zw2t8W&Cm6>w%UATuls;Mf3d#VW$T8X zp$7l7f?Kz#6%BN0#r+pfhmrVpM4RIdL(C@@ah7BA>kyA72D@JmAGr3KU|z6+{jK1K zDYi)v+Y~bnaeCirPYyO^NPUzc5|M_;meu%_amS?Va;kc4#31>FJ`oZl*x)_RM^NY9fEqWpoQ8RJih7j!SaScy+V8w83A=aw2%4Q3 z6|r4=%3uxt2D$LoI}(qAnzv)bWlt_0VUDl6-+_8qA_-sa|Lz^`L>$N8j7~Lh97+d^1KSF=iJL(ixM?H;L%cPBrGv$RZCxh@^kZyhIuB(asL33nN1A< literal 0 HcmV?d00001 diff --git a/docs/resources/images/apache-asf-compressed.png b/docs/.vuepress/public/images/apache-asf-compressed.png similarity index 100% rename from docs/resources/images/apache-asf-compressed.png rename to docs/.vuepress/public/images/apache-asf-compressed.png diff --git a/docs/resources/images/apache-incubator-logo.png b/docs/.vuepress/public/images/apache-incubator-logo.png similarity index 100% rename from docs/resources/images/apache-incubator-logo.png rename to docs/.vuepress/public/images/apache-incubator-logo.png diff --git a/docs/resources/images/apache-incubator.png b/docs/.vuepress/public/images/apache-incubator.png similarity index 100% rename from docs/resources/images/apache-incubator.png rename to docs/.vuepress/public/images/apache-incubator.png diff --git a/docs/resources/images/apache_incubator_logo.png b/docs/.vuepress/public/images/apache_incubator_logo.png similarity index 100% rename from docs/resources/images/apache_incubator_logo.png rename to docs/.vuepress/public/images/apache_incubator_logo.png diff --git a/docs/resources/images/architecture.png b/docs/.vuepress/public/images/architecture.png similarity index 100% rename from docs/resources/images/architecture.png rename to docs/.vuepress/public/images/architecture.png diff --git a/docs/resources/images/asf_logo_wide_small.png b/docs/.vuepress/public/images/asf_logo_wide_small.png similarity index 100% rename from docs/resources/images/asf_logo_wide_small.png rename to docs/.vuepress/public/images/asf_logo_wide_small.png diff --git a/docs/resources/images/backend_state.png b/docs/.vuepress/public/images/backend_state.png similarity index 100% rename from docs/resources/images/backend_state.png rename to docs/.vuepress/public/images/backend_state.png diff --git a/docs/resources/images/cluster_link_and_migrate_db.png b/docs/.vuepress/public/images/cluster_link_and_migrate_db.png similarity index 100% rename from docs/resources/images/cluster_link_and_migrate_db.png rename to docs/.vuepress/public/images/cluster_link_and_migrate_db.png diff --git a/docs/resources/images/cluster_namaspace.png b/docs/.vuepress/public/images/cluster_namaspace.png similarity index 100% rename from docs/resources/images/cluster_namaspace.png rename to docs/.vuepress/public/images/cluster_namaspace.png diff --git a/docs/resources/images/cpu-flame-demo.svg b/docs/.vuepress/public/images/cpu-flame-demo.svg similarity index 100% rename from docs/resources/images/cpu-flame-demo.svg rename to docs/.vuepress/public/images/cpu-flame-demo.svg diff --git a/docs/resources/images/cpu-pprof-demo.png b/docs/.vuepress/public/images/cpu-pprof-demo.png similarity index 100% rename from docs/resources/images/cpu-pprof-demo.png rename to docs/.vuepress/public/images/cpu-pprof-demo.png diff --git a/docs/resources/images/cpu-pprof-demo.svg b/docs/.vuepress/public/images/cpu-pprof-demo.svg similarity index 100% rename from docs/resources/images/cpu-pprof-demo.svg rename to docs/.vuepress/public/images/cpu-pprof-demo.svg diff --git a/docs/resources/images/create-pr.png b/docs/.vuepress/public/images/create-pr.png similarity index 100% rename from docs/resources/images/create-pr.png rename to docs/.vuepress/public/images/create-pr.png diff --git a/docs/resources/images/create-pr2.png b/docs/.vuepress/public/images/create-pr2.png similarity index 100% rename from docs/resources/images/create-pr2.png rename to docs/.vuepress/public/images/create-pr2.png diff --git a/docs/resources/images/create-pr3.png b/docs/.vuepress/public/images/create-pr3.png similarity index 100% rename from docs/resources/images/create-pr3.png rename to docs/.vuepress/public/images/create-pr3.png diff --git a/docs/resources/images/dashboard_navibar.png b/docs/.vuepress/public/images/dashboard_navibar.png similarity index 100% rename from docs/resources/images/dashboard_navibar.png rename to docs/.vuepress/public/images/dashboard_navibar.png diff --git a/docs/resources/images/dashboard_overview.png b/docs/.vuepress/public/images/dashboard_overview.png similarity index 100% rename from docs/resources/images/dashboard_overview.png rename to docs/.vuepress/public/images/dashboard_overview.png diff --git a/docs/resources/images/dashboard_panel.png b/docs/.vuepress/public/images/dashboard_panel.png similarity index 100% rename from docs/resources/images/dashboard_panel.png rename to docs/.vuepress/public/images/dashboard_panel.png diff --git a/docs/resources/images/dashboard_row.png b/docs/.vuepress/public/images/dashboard_row.png similarity index 100% rename from docs/resources/images/dashboard_row.png rename to docs/.vuepress/public/images/dashboard_row.png diff --git a/docs/resources/images/doris-logo-1.png b/docs/.vuepress/public/images/doris-logo-1.png similarity index 100% rename from docs/resources/images/doris-logo-1.png rename to docs/.vuepress/public/images/doris-logo-1.png diff --git a/docs/resources/images/doris-logo-2.png b/docs/.vuepress/public/images/doris-logo-2.png similarity index 100% rename from docs/resources/images/doris-logo-2.png rename to docs/.vuepress/public/images/doris-logo-2.png diff --git a/docs/.vuepress/public/images/doris-logo-only.png b/docs/.vuepress/public/images/doris-logo-only.png new file mode 100644 index 0000000000000000000000000000000000000000..1c0fa86c1cb493ecd5d5edccabcd498badeae497 GIT binary patch literal 18959 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 nk00;Sr zzu&$8-OM|)vpMHH`yAWdc_)cb{~-Si|0O;E0C=XT0MrBkFc1I$nh7q(<2R#Tke82> zZFLoGxyLCDvw-Gc9%=EQhE*9g6F&{JpvFKhHRId9{$UzsKC+S_S|&kl14~+#w_0Dz z$chHlhw`YHc}a^0e7|>SSygB}KGx;r#Y37yIpoEIq{V%trGqhXX$i|c%bTYk2l8lG zg-A*U5>|S&ttuy`=P8O{g{udgyi!_UfA{voXk`<3k zP0z>1r5HNZ7&%o5ODa3N`I}pT+x8c^cw{DyFE=)KrJ++L<$pw^R5!M^om~AjEz7^h zCCe)td>G1YIavHUTA^)VB`T@Bwu#8dDxzY3YdBK$<*O64sXc0P)5NJpQANLKYt(V7 z#xE$!c5s=uX0&E^Mr}CnlNFeYTT%i#ZaiG{hDU1hY^QGk-nDzSvALzCZ(h4~yt;9a zxjy7G3k6Tss#%p7!-~}ga&!&94jiwmwa!J%w-s0X@g7+-87V2PsEhfLVbZ4`{ zrpZ6L9XwGpb&N9ZS_n(-ojKc0p4&^F+ivS!E%-BCSoUXXZa-vV-Kb|S@z=0ZaLZTE zdQGcheUseUM1x*;GFp2A z%0Oqx4hD)_+_s7`iUU}Q;J8ZGNRvA!G- zINIH9ulYNjW*yT*P;F>r63-p~+2Gt4aPrhdYs0+BX#{#e4z>HJaAb=rngFbxwp46e zlf`=`F7XVetI(z`X;;snwddX(%qIyoCF~;stG|6?_-vKuTRLBep3F)%bJ`eKxGQlZ zb_m3)wfb{9-_B(+8b5!BLpxI#MA&jRA90va@y`s&h0@KF|5pLUt~O1ZtZWW*-zo;IbJn zSUf1Wvm-6P{Ek*^4x5H%r>}=|X1h*K9_RY>6MiZCKmEHOu{sr1&qPH>zjG)3te!v0 zh#@%t;y~r%k}c$rYd<;`xSYZIPq9U$>ECRmx!Vo#PbgLJ=bu$-C8SP99!C`XVIe0M zBU3TK_;GgabgI}5F3-VS5(aec_f!=pqpAot_v*hfi^ z7}jM`Zj=vz5JbkYEP8EB9H%`Z9a$d(l8Op9H_(scx-AG-$dP9>q}sP9juV%E89!yc zNI^V+Bm!0+)$T^UiH`_1Cm%Wd6|Rtm3^pI4B=>?wF*g<~SSnux(M5&lF+3VX_0~R$ z`Mu;uvE!-d1MMdaG8A$q>Yg%L^^X%DbucnoA1&x*faOVE+6$~qP6N*t&qapi zsFu&)Q7Ha#&Ix0}qsidHEr&*JqOh-7=>MWQIl1^2gRBBi^BB!f z5d-Q1Y4Z1CWW8{+jwkArv+8eg^co!ehXhH1BZ3=1i zYin)2zTMp`K4>t0A!rqWbo1t7e3)(Wo@xkWf7%r^5)i31%sZc|Z;RcB%aChH@r!XG zEyQ)rEoxDAJcRUvVg zcc+j)$hyIuOob0S)Mk{gS`aF}Qxw;7te-M@DMU2#-hPj!x+S79qkM>7=J-C9oSxn~ zni^7LW1_$k*US1Bo5qa3V$$1f-=}3)VvOpiYq)GPrPR6Ht0eS*jir@6i9%ofo1s!& zS;C}X1*5UqNGu#IK;Mn2q&w))e%GaC?^$MkzBrKNrD1PF7zSnc@QhdAZ2pCz?d|)E zhW_w$afP^veuH%>d_atlAt+1qYTCv&KTrS%qP;Cdf(_Hdn2MA|_bFT{Oa_hNUSNt*|8~_hxgx12?lgJhA!Ww2&1z`1A zrkcGxh4sh!HtTplO@N~#B4J@H{ja{Oay)YL+yJfpSEd?B9A>dvzk(|JMmr@`_1`w}u09C3!c2t(bkVvYEWwJR^Q;SI_{HIZ5@1(4z))=|L z>v>MHX48|HobcA-?9W-ZxiC9&M%eqbgNoF!TW3%9kf$|Bv6W$3HzT$=L8y9YWvwo^PPWohyX>Oa2-H&%`%Uq=mkof4l)!3M?{x?sWFA zF=*i^P^&vYr)Q1j!3@;5nKY3k9+N4D?G5?H5GQ|B-hEp%J}MlpPUh5ra#mAj|I8r)l;P?U(Y0yO zYI`&OW%ZvAi#}D#{aM6gnDOcE9UP=(&+pJT!m9)-0}Z_$49QMcid}wQFH55$rMn6e z~2r&CzGBCfh<&T-j^$F(hE7h1MIpTcK~ zlC%r~82_T2bu8yqoYKbp-ffDy&nNmIglwViNI!bb(=7SC$l)b_rRm#`cMrdtLh7bT zmCEoQw|rIwjyZP1{!Gv}`Dgh&tbCN%SY-Xt5u;GbhiX(;TUR1kLUmiMrKOz)`fwVN z6YXd8z(mdLlRt0rm-m(_7&tsZs&o>`S+7h)K6 z@|HQRXQ3C)!$ZAYu9OKMYht|t0_zy6W5*XhLM@HpCMPhX z!ygh3G=)*uYA=@(^jocTS5(uE164;3bR zH_MW5lZ5ZN)MDno8q-J0UU-nFiHTb5b5S2OtaoqUnj7{<_OsffX|bT?>{kQBo2pFK zS;pQjKmU^R{ySYXs~_*_ifaLtT?%A+_t53MzN#uPFf@}6an^jiyS|-#7mA!jaMf?a zpHB>75&Jqro|K0$9WaNTYxU`I2H^Mh{6hNX6UvG+k-9qcwd?qv;+)yME$P>fBhgPXA&6C+g(E(P+ zC3{sn=g~Sruh228GJ{;--0}T-c%1w^3ob!*v;{;$KdUUUK?!jp0l^izFy^9)+}wt5 z3gU*lxQOnaiz`VMp ziF(?Ji}y$OF5r?!L}}Y(UdF$Y%uu-e2f!|x0Ej7VF$jT6%B#ImCjaZ7D(U0Le+WDT zHF#exJt3+@fhc!(xL)A8-2i{g69iO2h71#dd8Z9srJW~Fe})?}5=hGdv4B3u5sCcD zJS5%ZjAX?>%FnZ2Fv`wX)hc?9RJ53QT)Z4x;NcFS#lE_|Z(p|rwfy!LLee-;m-+eQ z%F;7N9x2&0Lg3=^rn6kH#i8eoyM5^h+o1Qz4~EyMGu%E2wFNNo*C~;QW*TPPB3!^2 zdyGVVqz*u^Z=xBkU3PLGOEbB6z9=cs?7qfp}i{}|rM~{u^ z8?F%GBS1hxD-hq(4xt;px{1Zaax0b0-nFF(vWs+Yo}adO*o~na^J!oqM!gPtQVZwT2Fp&gqwsJNu-#-cd0p! z%pGPtpvDdr80hL)kp1V{?c3(!Y$rYKStk^wglY!5H!nZL$r)-J1z-5kt(%&*(=Od# zDL$BdCn5tx7aX95!RI~6LPDlq<;P{dM;nIL@_PZk4I|2)_B+N`9Nr`Spr@^yXNS*S zNZ9~#*!fu0qwy1CH#%HcB}DlblTq<{E2RXjWNK*dThX-9h{nQW9lB`{d&>h;<9+p# zu`WzS2-iQOLA9JkhnsgKFtyKhfxW{LSY@m&OmOsQ5YZ7A-0%J}qH|u-R=ra)TrwjV5$SW6-L~k^ z?w^y{4JcudsPq&xc>T&I>^kD$hz1?>SZI$~W`8z%+Xp>k`tHEuaM%2Ir(U{>WcGF+ zyvQ%o&>*f&_V@E!H1?R+(bJ!OZ))T*Jc0YWrW#GZ6Y8xlM@7yVU!pmZH}j*xWezqo z^2@|zxJMY=zFSJe+ngcoaXEF8ov9h0#0j%<3zxR@yUz--t?o4#9X^c1pE7yfQ*GlV z#AdRh;f7NZ=m+x|bf`ST{FA;P3DACT7xnI@g^E?`;-=zRd!0|?yTj2~hi0d9dp6y^ zQVu@M^V@NK8@SE0vUK92mA4%HS3ct+*RmX*CCHw@w1?l~$yw*44ZqfF*F8YPauXbK zH@sYTziM@g!s4h&Y?Nz~O^3wViWLN6A}WN|g>==-Z^Mv$++Go-G@ zI(irIc!(2bKJH2jT(93qib#Wz)9ufM)xHkFw&+wqk(*H7N;_a#5!TwToIXpvH&l$6 z9(Nh~vS?9X_yyeSF^N3rCtGNy!N}*qWdTIyMIp%Mj_|bd*#v$qYH>)|$e2);qT7)U zw)MTC$WqXdvIyQRXvt@2vp^3*RntUUkNKO8d|Kh8@I?$KJHAP27ZW8h!M=Z*hTg|^ zee-Pf>{)_+Xfabx+iL`4B0?;Hr_oRP%_=Bmef3n_CB{UF^)O#1&0ig&>^>is-neo- zxtVVTp#mF4OfdxM#pyNpEj*PgzoM2!=M0c2O&cp}<<$8h^Lb1!=gvkC4kPZ-5r+)9 zvBSA(Fo)~59a7QPPQ^W9S{oY9#*YiQ)!3H(#1|!vypDh($KfW@a8(*2(+7j=ZI7LV zXg*g*%v$u>FZ`l!9a^3NlwMaM3bt3%>xa73A;-j+H6hTZ0_p!k%bkc_0n2)mRk%*T zaNP&qnnXe!RNqAIK#Tpp(N4;8nHNzN%@d)&4%c&e8;kjDL11I_e7dkGWSy@HF{QV< zU#U;Hg(9D{(E+D0KJt5X+sh_Q`>Slr!2kT;SlKMrlp1Ijg`=&*ceVm-k9_GvWSX@IHsulqZZ;&K%3(*athcf^? z%2(UI6RQ40c_RBfqpy6pAZ+{g#+@_@sS5+;;_gW=-KJL1IgRZkk!!M~CrYEug zS+EuN00pTFr~Uh$9?pctw-4^1Do}8dAWY7^0fXDNx14&B=2vgzqfPYSs^zK-aUGh= z{k{)1s-_HwajBT9vkI^IaLr#;A>56lX~PLIJU=j`D8ivOk-!(KMq4=B&_rt!4QJ{p-!U-cADir)MQFN#a z%PV?M&o`>y(AVW3j64#3*-SxH6R?3f3gxHmn;^M)LP0>5O9+;_5LFDIqlh z(^k}HPtemr@Gb>!5XT<`#eU>d*&BM@hk-^trYkRCjXUOadZ&Vqc% z%{E&g4X;3SIG^Vyh2)=G&2VgP`?bEsc(l(1}dR15s(QfbRUdSjVm1P0mE<4y&cLkvBC91mqjNkf5p0G?|2FyVA`55!Uhm1hqgZl@< zRS9U$q0OfJuR^ZDuhd>kn0oDA{qt&ids!fey$-QEp1|l_?(p5wG_^zE7kaff1_}Cm zG0X8q`c+5!Ry6z=4DX8m_8o_#k)!-HPW+91j;tx?`J?&|7IM^k+S3ENp2|u}a1DGG zvL~-iBFaX067U)EOQIqke0mrZQ9UBz1gChWPU#GnpUs$@z**&3*R^RG_a77qVt2w#|wzYYad@(qeX?h%x8$o0y+#&M>Ne*po$nmln1?(W`EWWMlNy zvu~9JIGRHY3WS%=aH@1Cz9*L1CVCERRnJ{%V%T$bde3~GznnLDiY(@8L_p++#^@TZ zLa@Qelf{UCAd?a+1EkE(q%>Q5TZpa*2t!zRvp|Qci;5G0jMu!53j9h+I?$+kTS6+2 z5x_tHlUe4-^AGi19GjE_j}YP2VJ(K4)|HVCS^tmRH#I6VZ>$%{0<7<2F&o%btGd>k zh4XcROKe&rwTU&4XPognysz{r_G}vCV0b!wY~}C8a^I2PcI#Kkg!f=%)$Us?2~T)3 zUI>*f=#)|RK$-u%ru}Z02Z9I-{b23as3-t$q7g=7@=@aZRPnOSd^qw9rZ)C_Kz0#k zky$^|p?fFQxTAcmKsMkl3G7E=6t4*?QJ(u+hmsKiQM=x!;>q^tY*L|& z(@lO8k4#3!!0VgaB22L3#(Cd-P)0un2x37!al5b* zc5Zp=EEa9Ej;_`PigK z5^u!Pp4`>{199NvC;gpPxGl%2kpul!t&o`Q%^Q!X84f5D)JQx|9$JE}0})!0d{5qfx0BcC z_T_-_=D&z^l#D^te~OW|_VY4_Zxv|80tCcPmq-DmH%mfWn(-ISKXPMDVN~1qbSx@Q z#7zm$*OcF?RcmfELl8pYj6kVK1V0VCbQr%jO*?c4GNj6x9n5KS8j4bO;P!-D=qZFrGyRVESb4X%#JW_Jdy}X!O4NMY6 z8z=TVEOYLL|JNeVIe`2)l3E6+a zsh<5V1^vdAM&}HYwY5{(4TtSZJgk4g8%Kv@p&gXlz$G;DxK+_}Fxk?tZkbBRyzp># znvJ3m)#w4zvBTD?CP7$J~#0(~W_VUXpS2_9wSuLNN$qKq$Jgb-bz^TF|lJ9%`MI@8mBA5n{(o zX5AZtT-T*HEBXeUM$6!kh|_R&HCAFiM(O{9nRtY`KIDs4`XT5c`SG$j$N>Jf0%0tN z#*%jKBb+oQQn(EWfbOJ%lvUteNDF~?Sivs=-@2`rbeGNUmG@o;1-tzQvn3Oc(8DDNND}9dyZOO zL)4_MP8=Q&2h$;8gb}+E(K{kPlh3|{o3>o2;X_d(_D2f{38kIG!8YvkhjrAj$$J1j zo>~#aBQ6Q<|B|nyFC%Xi+7G`uUoGyrh!4U<0OAlIcSzaGR=kb()Z@Qp z{iIB#1LpSDmFTMxt;JqP#og^2)H(e08l3@^VeyFwc^CKO)lU*~Waq29cdxL$`JH7A z#j_et4H=;*jw^8nnfX+lq@VNsOCP^W4<*7gmfmIq@)%Srh!;mqXlbf6o&fTJGOV zG@-QpW0ieXghRN*hS&qxyD`$U`V>g1mk#p43+lkcYVte!tm)_M#y7+D02z>z_Nt1VCgm9&`7hR9g`JWF^toY^TJmQ#LO@@tx^>gIC z@ORBP4Z9A#sUT+;7BhBjmDLMRtj0Y$FnU|F?BZwc$;R|8h%YB^v7K#WPt1RBx4zXQ zw`A#dw$Lr~TC9y_*H5&KnFYVm9LYbBb4S>;wu6Sq13Csn5OSUC#~{AAI?TQgH4ytpqBy}mUwnd#3a{+uev*hYQ)$KJ30v|~(7 zO!*?SGKfekzWPKW{gX&U{CX&?k4z+I_1JA5>YI_r>>$kg!{P9v32Zp05-FP_m%u4j z=_*8*;ZF2uY1${k(l2`K&Gh~c``a5qim+dJ44N-p7oe}#@Vb9Tw_iB5iPZ-wVnVg> zc}jjGZQPN${aGHHeU*n?Q|_(YY}g<0GToV)Wt2&x1PPlMgbqi9$~Q*rwLDy62COyv z?XH@@HH!GW!Ys+$GqaxMO{mo)i|L8Wd9gMob(aE6`Vs5cc!lP#NFG+8ft%Q|k3=rD z@J|ff*DBY`Ph!BRVrj z#Oe(hB01K|;x?Onk9|lpS=H5p(?lN~l{($Ct!Zm)IUCXatQmw8Ga#k^WTYB)Y5dJd z^21-U{pHz^2_7<1MdJNd@Ip6}hvS;cE)wDn(!~fQ4@-&^eavzeBy8)hgNb`~j`R4I zL@}bd@p^KEfaQ$>L6D)kc|?^)!Cy=jD?H8kg+ z2Zh){h_7@dI_`*98Xs~O9T~j|Oy@=33p5CC4GOGenbLl0AqK}h<$l8MWl#q)J_QUq#}qTP zKTB6e)NRNBshx%cKf%SMq$9|!i~nPw#!olAJW_geOM?y+=V8I5p7$hwuG-F|B@@mg zS@q`i20Q6Z>xnyJ62;#1b*)D$>G);|+9IFB?2?}|vcCjV8!5d^fT_D9ZqNc&M-r?5 zxW}31%M@nHevO}dE02a6AOv@O(CJdMEA3|CzZe)keqiPTU5qH94M ze>X1fk8n4!3j;ZKny;5`BXmun-fYN7n2r-7SJmC1d%lvQw93f}NweR7y+@wI@|P^# z6j4{E;Hb3Vd*maRNSajfan$po3AH3~xN{cx&rV4CgN*){rWB_Hxu}NEnUucDOohyd zGjXwc7G}N>#Y(Zl^7t70D5H z@Y{HyMDb;a1EMY?hcAR$^4J04fIXjRGYhv}fyJ7no3bMf#Igbu{#e<1m>zE=$tFDh z=Am<6nZbR&GZY2|FMvft+P7sK#8wn@=q(;fzK!g!z_J?Dx0BrN^P`x7LnFS2CeK)O z`zwA)q(r$SY&x|-&THwo?^dJ^WS76*fJ(DtHSqB)hu{1`x-JEbZ zG|!?JH(b2|xv&FVMd!;UjTWer8jIQ)Q?>ewzMJj(IFC2WI1R|!+&5k=- zo8)AI729ar9t1?rev`*a4hLgv1RjRnGdaMLN9xBL0H5lx@d?G=IKO6&b!RM3bq zMUWdWWuwefe#Z}=RMZo~v=gh?G>E>jhwnhkqO$LgR3`U!#t%h6{3A~sNEby!m+dyd zF4#YRe>1G6EWhIvTaisql#9|ObGvU_f@P(nI$c|xQ=+*B5Newg7n=?tZf~;H`mh)Y0-wX2{PA~mzn-|eiE%qw2TxMpSAx3P|p;~ z(T^5a>b=xnutN*cSkKNN5dFmHa5+%a|3-=0T=$b@W|$U^%3?elCRKT=yU9-WidWlK zr)PV5)346Qe)e$^^#?aU3jk;^f+xlk9SkzWHA#rk_bb8>w$v#cUK0_C(6oiz7jDZ+ z4QY!JAmW_Lk!EDGVq{?^PtsULw7jyEX=ydmOUN{FL~Q6~4k^~QIMLMP@h8p&k4SNI z;EQQPFVL3#Cc2Q^U@%!GPuED7qUM`uL%9hsuu5ou1WQrx<}aU$ougxnmU&cS?YpGR znI@F1%krE90!XZgZT2BV*Rh^}F^8E$xqy8*8D~vV{yT=eexyK@RgOwoNU9rcMGntV zfAG_Fv))W9pgP}tUjog|4*I7L0#S*F+Vh?*>F_3`&eweP!Tc-AX{!C!Sb7A+>!1<-V!r!Z}O26w5pC&C&j z&>AOryfPebb1y=}OQp)WUzaD|UL>YI)QO($u()n560D>1uA5!GIGX-wCUAnF zhNPiiz0cv24G?=>3K}>@h}^k_#bS5<#j#J(*`9#{@bD8CS~fCA#&=f2_5^;0I6FV@ zXIBIjndPtlrzo{r2{$Q?|(85zV($$*Eq_+OEI^fRJEoM=i1&jvT2B3ra zr6_Qf+9n3r({5)C@Owh>8TrsDaqc~) zhN2vt8YsPVal&XI@rzmgXLqm>F;Kvzikv(LSrr+YXzt@Gm`PDo%#5a>qM{$ru44Nu zujJpxbt;N8c~BlqF=5RHV6L%-)H6j-5`K~qrHcTjR`sfg>Y|I_b_*~ANjUHNS|2aF z?ntct#R!{{6@2bJ=0;EQ&ze|ns-m_bA-m!SPd(}Je_D=tKFE9i`~gr!T~kLVsB8YW z!`t9!V zLwY7ZWb?=?;n)s8aR<(C%tYv?vDU_bPEZ3AC}NQ=Br-|NzqSc=VRt|FmG1R)E~-0| zY4{lt)lx70@Z#3;;b{_aCrlMr0iqetqhX%Uj5%1Csm=nNv*eu`sfvAZ{Z*n5@X1+?J`s(GJ?iF&U-Xt$yK)g#x&)K@yOTgD^|0D?+$pP%fG$46 z{MoPvae4pAM3kZjH9FzTGU)y;He3!=mw{7pPGGfRN%+`~mlMpwBGW$yTh>Eqdd8aAWGDtW`n^;5$gmFm@U)H5(J zFgUJ}($q2ih8`@l`Cb-1@UEw4&52FBa>0A^iVuIH;lS7*SvlnI?T#GVS8=RQf`1WJ zW?OMc7pfs53HZz)Z61het`@O8|M#8t|2( zoo9~Gal38_mkuvjcx!=1-#xc%@JbuxgQ#>9de{jvm8{^eob@U^J-qm`$}ylNDzWcM z#g=)Yo<2XGJvO`Vw(?p&VEy2rtbXdR^BsHhALsuJH@ifU28XGcZSzaFYHo)qayIk? zT^=5I%@%)y2IAghfZD8ob~sbLw!>-}l$~C$AQB@ZB(~F5A64o(-YYIIo9i03+eA4n z3VEc=dFBe&t!%f)HBNJZgzEk8HUw}A+*_NMj3kpizF`pT_;@x!U)wT+&Abp%3ozF= zg>jGCXqns~q2!E)KNvW!tqn_y>*EB}v#519aFnu`quD=2SU!#LaG1SrmVo_C`F_D} zookK#)$#Tl$_By4)mOr+W?A*61?6gcb+&tr`ZG(Hm&9Sp?p>PlanC{Jw%d~y8*4ziu1kLV zes2)ort@^?K}s)~<3t?EvS@4Vm)`DI*s5Jx`nfOKbynj$eHOy0*z27+T4<@WZQLGe z9X1`fKgxk0N;HW$T4YHsn%JvJ`jlLHTJ_Bi>2Pq1zydup4MJv*?9 zE!1aD)}2q2vZQ52^>*zy$b|MeK3lZSW$Bunh&1-RSEP9|n6El-C7t_`EBkxja_|aGbsEw>G*FywYf5bAv4X)a;+WhVZQ+ zDYK(9Ew*I0rHS2HUM2671)xJ>(lQeg?D=q%cDvH%;KT18SLbMXE5!EdaZP7P-+O-L zY2O49^$~tsPz*gdJ5RUH($Zu;uv0(`iHSpcDeK=2BDj@@aOm^ytn9zFdj1$3;vYDQ zkY6rrSz>V_>dVDk`qOP+-yF6(&F=a!!^Tj)b6?2=cR^hD=%A;)# z1@LZ<&$u%DsQU9+N@1@%kf^gW8af%b@cwt6^sMlFK7?9No7m<{y0S4;nuUu63nrK> zigYW``|x=<|Nc)^in(2kTd`E182S41jLGuC;QZU>r}19rOkA6OKPC%(F$`XHs^I0F z+5eaE2PtFc7+fgmV?!bqI#Ke z{6oTWSu-xyVD%~qz3p*>!xgs|?@|(Zef%#i-;~e8Bpy}{#ZlnsKVICi$FCnuCXfib zN*(C=N28d^8HDP>iLPzf{>9%DUWIsO#sAMEIpsj^?{Sq98A$%`k1UFEAAl9IX5an~ DjC=@B literal 0 HcmV?d00001 diff --git a/docs/resources/images/egg-logo.png b/docs/.vuepress/public/images/egg-logo.png similarity index 100% rename from docs/resources/images/egg-logo.png rename to docs/.vuepress/public/images/egg-logo.png diff --git a/docs/resources/images/egg-logo2.png b/docs/.vuepress/public/images/egg-logo2.png similarity index 100% rename from docs/resources/images/egg-logo2.png rename to docs/.vuepress/public/images/egg-logo2.png diff --git a/docs/resources/images/export_plan_tree_1.png b/docs/.vuepress/public/images/export_plan_tree_1.png similarity index 100% rename from docs/resources/images/export_plan_tree_1.png rename to docs/.vuepress/public/images/export_plan_tree_1.png diff --git a/docs/resources/images/export_plan_tree_2.png b/docs/.vuepress/public/images/export_plan_tree_2.png similarity index 100% rename from docs/resources/images/export_plan_tree_2.png rename to docs/.vuepress/public/images/export_plan_tree_2.png diff --git a/docs/resources/images/export_status_change.png b/docs/.vuepress/public/images/export_status_change.png similarity index 100% rename from docs/resources/images/export_status_change.png rename to docs/.vuepress/public/images/export_status_change.png diff --git a/docs/resources/images/fe_page_index.png b/docs/.vuepress/public/images/fe_page_index.png similarity index 100% rename from docs/resources/images/fe_page_index.png rename to docs/.vuepress/public/images/fe_page_index.png diff --git a/docs/resources/images/fe_page_logs.png b/docs/.vuepress/public/images/fe_page_logs.png similarity index 100% rename from docs/resources/images/fe_page_logs.png rename to docs/.vuepress/public/images/fe_page_logs.png diff --git a/docs/resources/images/fe_page_queries.png b/docs/.vuepress/public/images/fe_page_queries.png similarity index 100% rename from docs/resources/images/fe_page_queries.png rename to docs/.vuepress/public/images/fe_page_queries.png diff --git a/docs/resources/images/fe_page_sessions.png b/docs/.vuepress/public/images/fe_page_sessions.png similarity index 100% rename from docs/resources/images/fe_page_sessions.png rename to docs/.vuepress/public/images/fe_page_sessions.png diff --git a/docs/resources/images/fe_page_system.png b/docs/.vuepress/public/images/fe_page_system.png similarity index 100% rename from docs/resources/images/fe_page_system.png rename to docs/.vuepress/public/images/fe_page_system.png diff --git a/docs/resources/images/fe_page_system_access.png b/docs/.vuepress/public/images/fe_page_system_access.png similarity index 100% rename from docs/resources/images/fe_page_system_access.png rename to docs/.vuepress/public/images/fe_page_system_access.png diff --git a/docs/resources/images/fe_page_system_backends.png b/docs/.vuepress/public/images/fe_page_system_backends.png similarity index 100% rename from docs/resources/images/fe_page_system_backends.png rename to docs/.vuepress/public/images/fe_page_system_backends.png diff --git a/docs/resources/images/fe_page_system_brokers.png b/docs/.vuepress/public/images/fe_page_system_brokers.png similarity index 100% rename from docs/resources/images/fe_page_system_brokers.png rename to docs/.vuepress/public/images/fe_page_system_brokers.png diff --git a/docs/resources/images/fe_page_system_dbs.png b/docs/.vuepress/public/images/fe_page_system_dbs.png similarity index 100% rename from docs/resources/images/fe_page_system_dbs.png rename to docs/.vuepress/public/images/fe_page_system_dbs.png diff --git a/docs/resources/images/fe_page_system_error_hub.png b/docs/.vuepress/public/images/fe_page_system_error_hub.png similarity index 100% rename from docs/resources/images/fe_page_system_error_hub.png rename to docs/.vuepress/public/images/fe_page_system_error_hub.png diff --git a/docs/resources/images/fe_page_system_frontends.png b/docs/.vuepress/public/images/fe_page_system_frontends.png similarity index 100% rename from docs/resources/images/fe_page_system_frontends.png rename to docs/.vuepress/public/images/fe_page_system_frontends.png diff --git a/docs/resources/images/fe_page_system_jobs.png b/docs/.vuepress/public/images/fe_page_system_jobs.png similarity index 100% rename from docs/resources/images/fe_page_system_jobs.png rename to docs/.vuepress/public/images/fe_page_system_jobs.png diff --git a/docs/resources/images/fe_page_system_statistic.png b/docs/.vuepress/public/images/fe_page_system_statistic.png similarity index 100% rename from docs/resources/images/fe_page_system_statistic.png rename to docs/.vuepress/public/images/fe_page_system_statistic.png diff --git a/docs/resources/images/fe_page_system_tasks.png b/docs/.vuepress/public/images/fe_page_system_tasks.png similarity index 100% rename from docs/resources/images/fe_page_system_tasks.png rename to docs/.vuepress/public/images/fe_page_system_tasks.png diff --git a/docs/resources/images/fork-repo.png b/docs/.vuepress/public/images/fork-repo.png similarity index 100% rename from docs/resources/images/fork-repo.png rename to docs/.vuepress/public/images/fork-repo.png diff --git a/docs/resources/images/graduation-timeline.png b/docs/.vuepress/public/images/graduation-timeline.png similarity index 100% rename from docs/resources/images/graduation-timeline.png rename to docs/.vuepress/public/images/graduation-timeline.png diff --git a/docs/resources/images/howtoincubateaproject-thumb.png b/docs/.vuepress/public/images/howtoincubateaproject-thumb.png similarity index 100% rename from docs/resources/images/howtoincubateaproject-thumb.png rename to docs/.vuepress/public/images/howtoincubateaproject-thumb.png diff --git a/docs/resources/images/howtoincubateaproject.png b/docs/.vuepress/public/images/howtoincubateaproject.png similarity index 100% rename from docs/resources/images/howtoincubateaproject.png rename to docs/.vuepress/public/images/howtoincubateaproject.png diff --git a/docs/resources/images/incbuator_feather_egg_logo_crop.png b/docs/.vuepress/public/images/incbuator_feather_egg_logo_crop.png similarity index 100% rename from docs/resources/images/incbuator_feather_egg_logo_crop.png rename to docs/.vuepress/public/images/incbuator_feather_egg_logo_crop.png diff --git a/docs/resources/images/incubation-process.png b/docs/.vuepress/public/images/incubation-process.png similarity index 100% rename from docs/resources/images/incubation-process.png rename to docs/.vuepress/public/images/incubation-process.png diff --git a/docs/resources/images/incubator_ring_logo.png b/docs/.vuepress/public/images/incubator_ring_logo.png similarity index 100% rename from docs/resources/images/incubator_ring_logo.png rename to docs/.vuepress/public/images/incubator_ring_logo.png diff --git a/docs/resources/images/log_replication.jpg b/docs/.vuepress/public/images/log_replication.jpg similarity index 100% rename from docs/resources/images/log_replication.jpg rename to docs/.vuepress/public/images/log_replication.jpg diff --git a/docs/resources/images/login-gitter1.png b/docs/.vuepress/public/images/login-gitter1.png similarity index 100% rename from docs/resources/images/login-gitter1.png rename to docs/.vuepress/public/images/login-gitter1.png diff --git a/docs/resources/images/login-gitter2.PNG b/docs/.vuepress/public/images/login-gitter2.PNG similarity index 100% rename from docs/resources/images/login-gitter2.PNG rename to docs/.vuepress/public/images/login-gitter2.PNG diff --git a/docs/resources/images/metadata_contents.png b/docs/.vuepress/public/images/metadata_contents.png similarity index 100% rename from docs/resources/images/metadata_contents.png rename to docs/.vuepress/public/images/metadata_contents.png diff --git a/docs/resources/images/metadata_stream.png b/docs/.vuepress/public/images/metadata_stream.png similarity index 100% rename from docs/resources/images/metadata_stream.png rename to docs/.vuepress/public/images/metadata_stream.png diff --git a/docs/resources/images/monitor_arch.png b/docs/.vuepress/public/images/monitor_arch.png similarity index 100% rename from docs/resources/images/monitor_arch.png rename to docs/.vuepress/public/images/monitor_arch.png diff --git a/docs/resources/images/multi_tenant_arch.png b/docs/.vuepress/public/images/multi_tenant_arch.png similarity index 100% rename from docs/resources/images/multi_tenant_arch.png rename to docs/.vuepress/public/images/multi_tenant_arch.png diff --git a/docs/resources/images/new-pr.png b/docs/.vuepress/public/images/new-pr.png similarity index 100% rename from docs/resources/images/new-pr.png rename to docs/.vuepress/public/images/new-pr.png diff --git a/docs/resources/images/palo_architecture.jpg b/docs/.vuepress/public/images/palo_architecture.jpg similarity index 100% rename from docs/resources/images/palo_architecture.jpg rename to docs/.vuepress/public/images/palo_architecture.jpg diff --git a/docs/resources/images/palo_meta.png b/docs/.vuepress/public/images/palo_meta.png similarity index 100% rename from docs/resources/images/palo_meta.png rename to docs/.vuepress/public/images/palo_meta.png diff --git a/docs/resources/images/perf-report-demo.png b/docs/.vuepress/public/images/perf-report-demo.png similarity index 100% rename from docs/resources/images/perf-report-demo.png rename to docs/.vuepress/public/images/perf-report-demo.png diff --git a/docs/resources/images/replica_recover.png b/docs/.vuepress/public/images/replica_recover.png similarity index 100% rename from docs/resources/images/replica_recover.png rename to docs/.vuepress/public/images/replica_recover.png diff --git a/docs/resources/images/segment_v2.png b/docs/.vuepress/public/images/segment_v2.png similarity index 100% rename from docs/resources/images/segment_v2.png rename to docs/.vuepress/public/images/segment_v2.png diff --git a/docs/resources/images/spark_doris_connector.jpg b/docs/.vuepress/public/images/spark_doris_connector.jpg similarity index 100% rename from docs/resources/images/spark_doris_connector.jpg rename to docs/.vuepress/public/images/spark_doris_connector.jpg diff --git a/docs/resources/images/subscribe-mail-list-step1.png b/docs/.vuepress/public/images/subscribe-mail-list-step1.png similarity index 100% rename from docs/resources/images/subscribe-mail-list-step1.png rename to docs/.vuepress/public/images/subscribe-mail-list-step1.png diff --git a/docs/resources/images/subscribe-mail-list-step2.png b/docs/.vuepress/public/images/subscribe-mail-list-step2.png similarity index 100% rename from docs/resources/images/subscribe-mail-list-step2.png rename to docs/.vuepress/public/images/subscribe-mail-list-step2.png diff --git a/docs/resources/images/subscribe-mail-list-step3.png b/docs/.vuepress/public/images/subscribe-mail-list-step3.png similarity index 100% rename from docs/resources/images/subscribe-mail-list-step3.png rename to docs/.vuepress/public/images/subscribe-mail-list-step3.png diff --git a/docs/resources/images/subscribe-mail-list-step4.png b/docs/.vuepress/public/images/subscribe-mail-list-step4.png similarity index 100% rename from docs/resources/images/subscribe-mail-list-step4.png rename to docs/.vuepress/public/images/subscribe-mail-list-step4.png diff --git a/docs/resources/images/user_authority.png b/docs/.vuepress/public/images/user_authority.png similarity index 100% rename from docs/resources/images/user_authority.png rename to docs/.vuepress/public/images/user_authority.png diff --git a/docs/.vuepress/sidebar/en.js b/docs/.vuepress/sidebar/en.js new file mode 100644 index 00000000000000..5c24f34952eaaa --- /dev/null +++ b/docs/.vuepress/sidebar/en.js @@ -0,0 +1,442 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +module.exports = [ + { + title: "Downloads", + directoryPath: "downloads/", + children: ["downloads"], + sidebarDepth: 1, + }, + { + title: "Compilation and Deployment", + directoryPath: "installing/", + children: ["compilation", "install-deploy", "upgrade"], + }, + { + title: "Getting Started", + directoryPath: "getting-started/", + children: [ + "basic-usage", + "advance-usage", + "best-practice", + "data-partition", + "data-model-rollup", + "hit-the-rollup", + ], + }, + { + title: "Administrator Guide", + directoryPath: "administrator-guide/", + children: [ + { + title: "Load Data", + directoryPath: "load-data/", + children: [ + "load-manual", + "broker-load-manual", + "stream-load-manual", + "routine-load-manual", + "insert-into-manual", + "delete-manual", + ], + sidebarDepth: 2, + }, + { + title: "Schema Change", + directoryPath: "alter-table/", + children: [ + "alter-table-bitmap-index", + "alter-table-rollup", + "alter-table-schema-change", + "alter-table-temp-partition", + ], + sidebarDepth: 2, + }, + { + title: "HTTP API", + directoryPath: "http-actions/", + children: [ + "cancel-label", + "compaction-action", + "fe-get-log-file", + "get-label-state", + "restore-tablet", + ], + sidebarDepth: 1, + }, + { + title: "Maintainence Operation", + directoryPath: "operation/", + children: [ + "metadata-operation", + "monitor-alert", + "multi-tenant", + "tablet-meta-tool", + "tablet-repair-and-balance", + ], + sidebarDepth: 2, + }, + { + title: "Configuration", + directoryPath: "config/", + children: ["fe_config"], + sidebarDepth: 1, + }, + "backup-restore", + "broker", + "colocation-join", + "dynamic-partition", + "export_manual", + "privilege", + "small-file-mgr", + "sql-mode", + "time-zone", + "variables", + ], + sidebarDepth: 1, + }, + { + title: "Extending Ability", + directoryPath: "extending-doris/", + children: [ + "audit-plugin", + "doris-on-es", + "plugin-development-manual", + "user-defined-function", + ], + }, + { + title: "Design Documents", + directoryPath: "internal/", + children: [ + "doris_storage_optimization", + "grouping_sets_design", + "metadata-design", + ], + }, + { + title: "SQL Manual", + directoryPath: "sql-reference/", + children: [ + { + title: "SQL Functions", + directoryPath: "sql-functions/", + children: [ + { + title: "Date Time Functions", + directoryPath: "date-time-functions/", + children: [ + "curdate", + "current_timestamp", + "date_add", + "date_format", + "date_sub", + "datediff", + "day", + "dayname", + "dayofmonth", + "dayofweek", + "dayofyear", + "from_days", + "from_unixtime", + "hour", + "minute", + "month", + "monthname", + "now", + "second", + "str_to_date", + "timediff", + "timestampadd", + "timestampdiff", + "to_days", + "unix_timestamp", + "utc_timestamp", + "workofyear", + "year", + ], + }, + { + title: "Sptial Functions", + directoryPath: "spatial-functions/", + children: [ + "st_astext", + "st_circle", + "st_contains", + "st_distance_sphere", + "st_geometryfromtext", + "st_linefromtext", + "st_point", + "st_polygon", + "st_x", + "st_y", + ], + }, + { + title: "String Functions", + directoryPath: "string-functions/", + children: [ + "ascii", + "concat", + "concat_ws", + "ends_with", + "find_in_set", + "get_json_double", + "get_json_int", + "get_json_string", + "group_concat", + "instr", + "lcase", + "left", + "length", + "locate", + "lower", + "lpad", + "ltrim", + "money_format", + "null_or_empty", + "regexp_extract", + "regexp_replace", + "repeat", + "right", + "split_part", + "starts_with", + "strleft", + "strright", + ], + }, + { + title: "Aggregate Functions", + directoryPath: "aggregate-functions/", + children: [ + "avg", + "bitmap", + "count", + "hll_union_agg", + "max", + "min", + "ndv", + "percentile_approx", + "stddev", + "stddev_samp", + "sum", + "var_samp", + "variance", + ], + }, + { + title: "bitmap functions", + directoryPath: "bitmap-functions/", + children: [ + "bitmap_and", + "bitmap_contains", + "bitmap_empty", + "bitmap_from_string", + "bitmap_has_any", + "bitmap_hash", + "bitmap_or", + "bitmap_to_string", + "to_bitmap", + ], + }, + { + title: "Hash Functions", + directoryPath: "hash-functions/", + children: ["murmur_hash3_32"], + }, + "cast", + ], + }, + { + title: "DDL Statements", + directoryPath: "sql-statements/", + children: [ + { + title: "Account Management", + directoryPath: "Account Management/", + children: [ + "CREATE ROLE", + "CREATE USER", + "DROP ROLE", + "DROP USER", + "GRANT", + "REVOKE", + "SET PASSWORD", + "SET PROPERTY", + "SHOW GRANTS", + "SHOW ROLES", + ], + }, + { + title: "Administration", + directoryPath: "Administration/", + children: [ + "ADMIN CANCEL REPAIR", + "ADMIN CHECK TABLET", + "ADMIN REPAIR", + "ADMIN SET CONFIG", + "ADMIN SET REPLICA STATUS", + "ADMIN SHOW CONFIG", + "ADMIN SHOW REPLICA DISTRIBUTION", + "ADMIN SHOW REPLICA STATUS", + "ALTER CLUSTER", + "ALTER SYSTEM", + "CANCEL DECOMMISSION", + "CREATE CLUSTER", + "CREATE FILE", + "DROP CLUSTER", + "DROP FILE", + "ENTER", + "INSTALL PLUGIN", + "LINK DATABASE", + "MIGRATE DATABASE", + "SHOW BACKENDS", + "SHOW BROKER", + "SHOW FILE", + "SHOW FRONTENDS", + "SHOW FULL COLUMNS", + "SHOW INDEX", + "SHOW MIGRATIONS", + "SHOW PLUGINS", + "SHOW TABLE STATUS", + "UNINTALL PLUGIN", + ], + }, + { + title: "Data Definition", + directoryPath: "Data Definition/", + children: [ + "ALTER DATABASE", + "ALTER TABLE", + "ALTER VIEW", + "BACKUP", + "CANCEL ALTER", + "CANCEL BACKUP", + "CANCEL RESTORE", + "Colocate Join", + "CREATE DATABASE", + "CREATE INDEX", + "CREATE MATERIALIZED VIEW", + "CREATE REPOSITORY", + "CREATE TABLE", + "CREATE VIEW", + "create-function", + "DROP DATABASE", + "DROP INDEX", + "DROP MATERIALIZED VIEW", + "DROP REPOSITORY", + "DROP TABLE", + "DROP VIEW", + "drop-function", + "HLL", + "RECOVER", + "RESTORE", + "show-functions", + "TRUNCATE TABLE", + ], + }, + { + title: "Data Manipulation", + directoryPath: "Data Manipulation/", + children: [ + "BROKER LOAD", + "CANCEL DELETE", + "CANCEL LABEL", + "CANCEL LOAD", + "DELETE", + "EXPORT", + "GET LABEL STATE", + "GROUP BY", + "insert", + "LOAD", + "MINI LOAD", + "MULTI LOAD", + "PAUSE ROUTINE LOAD", + "RESTORE TABLET", + "RESUME ROUTINE LOAD", + "ROUTINE LOAD", + "SHOW ALTER", + "SHOW BACKUP", + "SHOW DATA", + "SHOW DATABASES", + "SHOW DELETE", + "SHOW DYNAMIC PARTITION TABLES", + "SHOW EXPORT", + "SHOW LOAD", + "SHOW PARTITIONS", + "SHOW PROPERTY", + "SHOW REPOSITORIES", + "SHOW RESTORE", + "SHOW ROUTINE LOAD TASK", + "SHOW ROUTINE LOAD", + "SHOW SNAPSHOT", + "SHOW TABLES", + "SHOW TABLET", + "SHOW TRANSACTION", + "STOP ROUTINE LOAD", + "STREAM LOAD", + ], + }, + { + title: "Data Types", + directoryPath: "Data Types/", + children: [ + "BIGINT", + "BOOLEAN", + "CHAR", + "DATE", + "DATETIME", + "DECIMAL", + "DOUBLE", + "FLOAT", + "HLL(HyperLogLog)", + "INT", + "SMALLINT", + "TINYINT", + "VARCHAR", + ], + }, + { + title: "Utility", + directoryPath: "Utility/", + children: ["util_stmt"], + }, + ], + }, + ], + }, + { + title: "Developer Guide", + directoryPath: "developer-guide/", + children: ["debug-tool", "format-code"], + }, + { + title: "Apache Commnity", + directoryPath: "community/", + children: [ + "gitter", + "how-to-contribute", + "members", + "pull-request", + "release-process", + "subscribe-mail-list", + "verify-apache-release", + ], + }, +] diff --git a/docs/.vuepress/sidebar/zh-CN.js b/docs/.vuepress/sidebar/zh-CN.js new file mode 100644 index 00000000000000..23c0088b14d421 --- /dev/null +++ b/docs/.vuepress/sidebar/zh-CN.js @@ -0,0 +1,450 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +module.exports = [ + { + title: "下载", + directoryPath: "downloads/", + children: ["downloads"], + sidebarDepth: 1, + }, + { + title: "编译与部署", + directoryPath: "installing/", + children: ["compilation", "install-deploy", "upgrade"], + }, + { + title: "开始使用", + directoryPath: "getting-started/", + children: [ + "basic-usage", + "advance-usage", + "best-practice", + "data-partition", + "data-model-rollup", + "hit-the-rollup", + ], + }, + { + title: "操作手册", + directoryPath: "administrator-guide/", + children: [ + { + title: "数据导入", + directoryPath: "load-data/", + children: [ + "load-manual", + "broker-load-manual", + "stream-load-manual", + "routine-load-manual", + "insert-into-manual", + "delete-manual", + ], + sidebarDepth: 2, + }, + { + title: "表结构变更", + directoryPath: "alter-table/", + children: [ + "alter-table-bitmap-index", + "alter-table-rollup", + "alter-table-schema-change", + "alter-table-temp-partition", + ], + sidebarDepth: 2, + }, + { + title: "物化视图", + directoryPath: "materialized-view/", + children: [], + sidebarDepth: 2, + }, + { + title: "HTTP API", + directoryPath: "http-actions/", + children: [ + "cancel-label", + "compaction-action", + "fe-get-log-file", + "get-label-state", + "restore-tablet", + ], + sidebarDepth: 1, + }, + { + title: "运维操作", + directoryPath: "operation/", + children: [ + "disk-capacity", + "metadata-operation", + "monitor-alert", + "multi-tenant", + "tablet-meta-tool", + "tablet-repair-and-balance", + "tablet-restore-tool", + ], + sidebarDepth: 2, + }, + { + title: "配置文件", + directoryPath: "config/", + children: ["fe_config"], + sidebarDepth: 1, + }, + "backup-restore", + "broker", + "colocation-join", + "dynamic-partition", + "export-manual", + "privilege", + "segment-v2-usage", + "small-file-mgr", + "sql-mode", + "time-zone", + "variables", + ], + sidebarDepth: 1, + }, + { + title: "扩展功能", + directoryPath: "extending-doris/", + children: [ + "audit-plugin", + "doris-on-es", + "plugin-development-manual", + "user-defined-function", + ], + }, + { + title: "设计文档", + directoryPath: "internal/", + children: [ + "doris_storage_optimization", + "grouping_sets_design", + "metadata-design", + "spark_load", + ], + }, + { + title: "SQL 手册", + directoryPath: "sql-reference/", + children: [ + { + title: "SQL 函数", + directoryPath: "sql-functions/", + children: [ + { + title: "日期函数", + directoryPath: "date-time-functions/", + children: [ + "convert_tz", + "curdate", + "current_timestamp", + "curtime", + "date_add", + "date_format", + "date_sub", + "datediff", + "day", + "dayname", + "dayofmonth", + "dayofweek", + "dayofyear", + "from_days", + "from_unixtime", + "hour", + "minute", + "month", + "monthname", + "now", + "second", + "str_to_date", + "timediff", + "timestampadd", + "timestampdiff", + "to_days", + "unix_timestamp", + "utc_timestamp", + "workofyear", + "year", + ], + }, + { + title: "地理位置函数", + directoryPath: "spatial-functions/", + children: [ + "st_astext", + "st_circle", + "st_contains", + "st_distance_sphere", + "st_geometryfromtext", + "st_linefromtext", + "st_point", + "st_polygon", + "st_x", + "st_y", + ], + }, + { + title: "字符串函数", + directoryPath: "string-functions/", + children: [ + "ascii", + "concat", + "concat_ws", + "ends_with", + "find_in_set", + "get_json_double", + "get_json_int", + "get_json_string", + "group_concat", + "instr", + "lcase", + "left", + "length", + "locate", + "lower", + "lpad", + "ltrim", + "money_format", + "null_or_empty", + "regexp_extract", + "regexp_replace", + "repeat", + "right", + "split_part", + "starts_with", + "strleft", + "strright", + ], + }, + { + title: "聚合函数", + directoryPath: "aggregate-functions/", + children: [ + "avg", + "bitmap", + "count", + "hll_union_agg", + "max", + "min", + "ndv", + "percentile_approx", + "stddev", + "stddev_samp", + "sum", + "var_samp", + "variance", + ], + }, + { + title: "bitmap函数", + directoryPath: "bitmap-functions/", + children: [ + "bitmap_and", + "bitmap_contains", + "bitmap_empty", + "bitmap_from_string", + "bitmap_has_any", + "bitmap_hash", + "bitmap_or", + "bitmap_to_string", + "to_bitmap", + ], + }, + { + title: "Hash函数", + directoryPath: "hash-functions/", + children: ["murmur_hash3_32"], + }, + "cast", + ], + }, + { + title: "语法帮助", + directoryPath: "sql-statements/", + children: [ + { + title: "用户账户管理", + directoryPath: "Account Management/", + children: [ + "CREATE ROLE", + "CREATE USER", + "DROP ROLE", + "DROP USER", + "GRANT", + "REVOKE", + "SET PASSWORD", + "SET PROPERTY", + "SHOW GRANTS", + "SHOW ROLES", + ], + }, + { + title: "集群管理", + directoryPath: "Administration/", + children: [ + "ADMIN CANCEL REPAIR", + "ADMIN CHECK TABLET", + "ADMIN REPAIR", + "ADMIN SET CONFIG", + "ADMIN SET REPLICA STATUS", + "ADMIN SHOW CONFIG", + "ADMIN SHOW REPLICA DISTRIBUTION", + "ADMIN SHOW REPLICA STATUS", + "ALTER CLUSTER", + "ALTER SYSTEM", + "CANCEL DECOMMISSION", + "CREATE CLUSTER", + "CREATE FILE", + "DROP CLUSTER", + "DROP FILE", + "ENTER", + "INSTALL PLUGIN", + "LINK DATABASE", + "MIGRATE DATABASE", + "SHOW BACKENDS", + "SHOW BROKER", + "SHOW FILE", + "SHOW FRONTENDS", + "SHOW FULL COLUMNS", + "SHOW INDEX", + "SHOW MIGRATIONS", + "SHOW PLUGINS", + "SHOW TABLE STATUS", + "UNINSTALL PLUGIN", + ], + }, + { + title: "DDL", + directoryPath: "Data Definition/", + children: [ + "ALTER DATABASE", + "ALTER TABLE", + "ALTER VIEW", + "BACKUP", + "CANCEL ALTER", + "CANCEL BACKUP", + "CANCEL RESTORE", + "CREATE DATABASE", + "CREATE INDEX", + "CREATE MATERIALIZED VIEW", + "CREATE REPOSITORY", + "CREATE TABLE", + "CREATE VIEW", + "create-function", + "DROP DATABASE", + "DROP INDEX", + "DROP MATERIALIZED VIEW", + "DROP REPOSITORY", + "DROP TABLE", + "DROP VIEW", + "drop-function", + "HLL", + "RECOVER", + "RESTORE", + "show-functions", + "TRUNCATE TABLE", + ], + }, + { + title: "DML", + directoryPath: "Data Manipulation/", + children: [ + "BROKER LOAD", + "CANCEL LOAD", + "DELETE", + "EXPORT", + "GROUP BY", + "insert", + "LOAD", + "MINI LOAD", + "MULTI LOAD", + "PAUSE ROUTINE LOAD", + "RESUME ROUTINE LOAD", + "ROUTINE LOAD", + "SHOW ALTER", + "SHOW BACKUP", + "SHOW DATA", + "SHOW DATABASES", + "SHOW DELETE", + "SHOW DYNAMIC PARTITION TABLES", + "SHOW EXPORT", + "SHOW LOAD", + "SHOW PARTITIONS", + "SHOW PROPERTY", + "SHOW REPOSITORIES", + "SHOW RESTORE", + "SHOW ROUTINE LOAD", + "SHOW ROUTINE LOAD TASK", + "SHOW SNAPSHOT", + "SHOW TABLES", + "SHOW TABLET", + "SHOW TRANSACTION", + "STOP ROUTINE LOAD", + "STREAM LOAD", + ], + }, + { + title: "数据类型", + directoryPath: "Data Types/", + children: [ + "BIGINT", + "BOOLEAN", + "CHAR", + "DATE", + "DATETIME", + "DECIMAL", + "DOUBLE", + "FLOAT", + "HLL", + "INT", + "LARGEINT", + "SMALLINT", + "TINYINT", + "VARCHAR", + ], + }, + { + title: "辅助命令", + directoryPath: "Utility/", + children: ["DESCRIBE"], + }, + ], + }, + ], + }, + { + title: "开发者手册", + directoryPath: "developer-guide/", + children: ["debug-tool", "format-code"], + }, + { + title: "Apache 社区", + directoryPath: "community/", + children: [ + "gitter", + "how-to-contribute", + "members", + "pull-request", + "release-process", + "subscribe-mail-list", + "verify-apache-release", + ], + }, +]; diff --git a/docs/.vuepress/theme/components/Footer.vue b/docs/.vuepress/theme/components/Footer.vue new file mode 100644 index 00000000000000..607e5b1845cf88 --- /dev/null +++ b/docs/.vuepress/theme/components/Footer.vue @@ -0,0 +1,53 @@ + + + + + \ No newline at end of file diff --git a/docs/.vuepress/theme/components/Home.vue b/docs/.vuepress/theme/components/Home.vue new file mode 100644 index 00000000000000..32a391e56b464e --- /dev/null +++ b/docs/.vuepress/theme/components/Home.vue @@ -0,0 +1,38 @@ + + + + \ No newline at end of file diff --git a/docs/.vuepress/theme/components/NavLinks.vue b/docs/.vuepress/theme/components/NavLinks.vue new file mode 100644 index 00000000000000..66f1023fe48eeb --- /dev/null +++ b/docs/.vuepress/theme/components/NavLinks.vue @@ -0,0 +1,56 @@ + + + + diff --git a/docs/.vuepress/theme/index.js b/docs/.vuepress/theme/index.js new file mode 100644 index 00000000000000..d882e00623fa2b --- /dev/null +++ b/docs/.vuepress/theme/index.js @@ -0,0 +1,21 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +module.exports = { + extend: "@vuepress/theme-default" +}; diff --git a/docs/.vuepress/theme/layouts/Layout.vue b/docs/.vuepress/theme/layouts/Layout.vue new file mode 100644 index 00000000000000..34b0b570c80cc3 --- /dev/null +++ b/docs/.vuepress/theme/layouts/Layout.vue @@ -0,0 +1,38 @@ + + + + \ No newline at end of file diff --git a/docs/Makefile b/docs/Makefile deleted file mode 100644 index 6d971114bc8806..00000000000000 --- a/docs/Makefile +++ /dev/null @@ -1,43 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. - -# -# This file build all docs -# - -BUILD_DIR = ${CURDIR}/build -HELP_DIR = ${BUILD_DIR}/contents - -all: zip_help -.PHONY: all - -${BUILD_DIR}: - mkdir -p ${BUILD_DIR} -${HELP_DIR}: - mkdir -p ${HELP_DIR} - -# build help zip -HELP_OUTPUT = ${BUILD_DIR}/help-resource.zip -${HELP_OUTPUT}: documentation/cn/sql-reference ${BUILD_DIR} ${HELP_DIR} - cp -r $ + +# Doris Document + +[Vuepress](https://github.com/vuejs/vuepress.git) is used as our document site generator, configurations are in `./docs/.vuepress` folder. + +## Getting Started + +Download and install [nodejs](http://nodejs.cn/download/) + +```bash +npm config set registry https://registry.npm.taobao.org // Only if you are in Mainland China. +cd docs && npm install +npm run dev +``` + +Open your browser and navigate to `localhost:8080/en/` or `localhost:8080/zh-CN/`. + +## Docs' Directories + +```bash + . + ├─ docs/ + │ ├─ .vuepress + │ │ ├─ dist // Built site files. + │ │ ├─ public // Assets + │ │ ├─ sidebar // Side bar configurations. + │ │ │ ├─ en.js + │ │ │ └─ zh-CN.js + │ ├─ theme // Global styles and customizations. + │ └─ config.js // Vuepress configurations. + ├─ zh-CN/ + │ ├─ xxxx.md + │ └─ README.md // Will be rendered as entry page. + └─ en/ + ├─ one.md + └─ README.md // Will be rendered as entry page. +``` + +## Start Writing + +1. Write markdown files in multi languages and put them in separated folders `./en/` and `./zh-CN/`. **But they should be with the same name.** + + ```bash + . + ├─ en/ + │ ├─ one.md + │ └─ two.md + └─ zh-CN/ + │ ├─ one.md + │ └─ two.md + ``` + +2. Frontmatters like below should always be on the top of each file: + + ```markdown + --- + { + "title": "Backup and Recovery", // sidebar title + "language": "en" // writing language + } + --- + ``` + +3. Assets are in `.vuepress/public/`. + + Assuming that there exists a png `.vuepress/public/images/image_x.png`, then it can be used like: + + ```markdown + ![alter text](/images/image_x.png) + ``` + +4. Remember to update the sidebar configurations in `.vuepress/sidebar/` after adding a new file or a folder. + + Assuming that the directories are: + + ```bash + . + ├─ en/ + │ ├─ subfolder + │ │ ├─ one.md + │ │ └─ two.md + │ └─ three.md + └─ zh-CN/ + ├─ subfolder + │ ├─ one.md + │ └─ two.md + └─ three.md + ``` + + Then the sidebar configurations would be like: + + ```javascript + // .vuepress/sidebar/en.js` + module.exports = [ + { + title: "subfolder name", + directoryPath: "subfolder/", + children: ["one", "two"] + }, + "three" + ] + ``` + + ```javascript + // .vuepress/sidebar/zh-CN.js + module.exports = [ + { + title: "文件夹名称", + directoryPath: "subfolder/", + children: ["one", "two"] + }, + "three" + ] + ``` + +5. Run `npm run lint` before starting a PR. + + Surely that there will be lots of error logs if the mardown files are not following the rules, and these logs will all be printed in the console: + +```shell + +en/administrator-guide/alter-table/alter-table-bitmap-index.md:92 MD040/fenced-code-language Fenced code blocks should have a language specified [Context: " ```"] +en/administrator-guide/alter-table/alter-table-rollup.md:45 MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"] +en/administrator-guide/alter-table/alter-table-rollup.md:77 MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"] +en/administrator-guide/alter-table/alter-table-rollup.md:178 MD046/code-block-style Code block style [Expected: fenced; Actual: indented] +en/administrator-guide/alter-table/alter-table-schema-change.md:50 MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"] +en/administrator-guide/alter-table/alter-table-schema-change.md:82 MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"] +en/administrator-guide/alter-table/alter-table-schema-change.md:127 MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"] +en/administrator-guide/alter-table/alter-table-schema-change.md:144 MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"] +en/administrator-guide/alter-table/alter-table-schema-change.md:153 MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"] +en/administrator-guide/alter-table/alter-table-schema-change.md:199 MD046/code-block-style Code block style [Expected: fenced; Actual: indented] +en/administrator-guide/backup-restore.md:45:1 MD029/ol-prefix Ordered list item prefix [Expected: 1; Actual: 2; Style: 1/1/1] +en/administrator-guide/backup-restore.md:57:1 MD029/ol-prefix Ordered list item prefix [Expected: 1; Actual: 2; Style: 1/1/1] +en/administrator-guide/backup-restore.md:61:1 MD029/ol-prefix Ordered list item prefix [Expected: 1; Actual: 3; Style: 1/1/1] +npm ERR! code ELIFECYCLE +npm ERR! errno 1 +npm ERR! docs@ lint: `markdownlint '**/*.md' -f` +npm ERR! Exit status 1 +npm ERR! +npm ERR! Failed at the docs@ lint script. + +``` + +## Deployment + +Just start a PR, and all things will be done automatically. + +## What Travis Does + +Once a PR accepted, travis ci will be triggered to build and deploy the whole website within its own branch. Here is what `.travis.yml` does: + +1. Prepare nodejs and vuepress enviorment. + +2. Use current branch's name as the relative url path in `.vuepress/config.js`(which is the `base` property). + +3. Build the documents into a website all by vuepress. + +4. Fetch asf-site repo to local directory, and copy `.vupress/dist/` into `{BRANCH}/`. + +5. Push the new site to asf-site repo with `GitHub Token`(which is preset in Travis console as a variable used in .travis.yml). + +```yaml +language: node_js +# nodejs版本 +node_js: + - '8' + +# Travis-CI Caching +cache: + directories: + - docs/node_modules + + +# S: Build Lifecycle +install: + - cd docs && npm install + +before_script: + - export PR=https://api.github.com/repos/$TRAVIS_REPO_SLUG/pulls/$TRAVIS_PULL_REQUEST + - export BRANCH=$(if [ "$TRAVIS_PULL_REQUEST" == "false" ]; then echo $TRAVIS_BRANCH; else echo `curl -s $PR | jq -r .head.ref`; fi) + - echo $BRANCH + - sed -i 's/base:.*,/base:\"\/'$BRANCH'\/\",/g' .vuepress/config.js + - sed -i 's/docsBranch:.*,/docsBranch:\"'$BRANCH'\",/g' .vuepress/config.js + - rm -rf site-repo + - git config user.name "${GIT_NAME}" + - git config user.email "${GIT_EMAIL}" + - git clone https://${SITE_REPO} site-repo + +script: + - npm run build + +after_script: + - cd site-repo + - mkdir -p ${BRANCH} && rm -rf ${BRANCH}/* + - cp -r ../.vuepress/dist/* ./${BRANCH}/ + - git checkout ${SITE_BRANCH} + - git add . + - git commit -am "Auto Build" + - git push --force --quiet "https://${SITE_PUSH_TOKEN}@${SITE_REPO}" ${SITE_BRANCH}:${SITE_BRANCH} + +branches: + only: + - master + - /^branch-.*$/ +``` + +## asf-site repository + +Finally the asf-site repository will be like: + +```bash +. +├─ master/ +│ ├─ en/ +│ │ ├─ subfolder +│ │ │ ├─ one.md +│ │ └─ three.md +│ └─ zh-CN/ +│ ├─ subfolder +│ │ ├─ one.md +│ └─ three.md +├─ incubating-0.11/ +│ ├─ en/ +│ │ ├─ subfolder +│ │ │ ├─ one.md +│ │ └─ three.md +│ └─ zh-CN/ +│ ├─ subfolder +│ │ ├─ one.md +│ └─ three.md +├─ index.html // user entry, and auto redirected to master folder +└─ versions.json // all versions that can be seleted on the website are defined here +``` + +And the `versions.json` is like: + +```json +{ + "en": [ + { + "text": "Versions", // dropdown label + "items": [ + { + "text": "master", // dropdown-item label + "link": "/../master/en/installing/compilation.html", // entry page for this version + "target": "_blank" + }, + { + "text": "branch-0.11", + "link": "/../branch-0.11/en/installing/compilation.html", + "target": "_blank" + } + ] + } + ], + "zh-CN": [ + { + "text": "版本", + "items": [ + { + "text": "master", + "link": "/../master/zh-CN/installing/compilation.html", + "target": "_blank" + }, + { + "text": "branch-0.11", + "link": "/../branch-0.11/zh-CN/installing/compilation.html", + "target": "_blank" + } + ] + } + ] +} +``` diff --git a/docs/documentation/cn/administrator-guide/alter-table/index.rst b/docs/documentation/cn/administrator-guide/alter-table/index.rst deleted file mode 100644 index 208741231d8ef0..00000000000000 --- a/docs/documentation/cn/administrator-guide/alter-table/index.rst +++ /dev/null @@ -1,9 +0,0 @@ -============= -表结构变更 -============= - -.. toctree:: - :maxdepth: 2 - :glob: - - * diff --git a/docs/documentation/cn/administrator-guide/config/index.rst b/docs/documentation/cn/administrator-guide/config/index.rst deleted file mode 100644 index 15374d5cd34b9b..00000000000000 --- a/docs/documentation/cn/administrator-guide/config/index.rst +++ /dev/null @@ -1,9 +0,0 @@ -============= -配置文件 -============= - -.. toctree:: - :maxdepth: 1 - :glob: - - * diff --git a/docs/documentation/cn/administrator-guide/http-actions/index.rst b/docs/documentation/cn/administrator-guide/http-actions/index.rst deleted file mode 100644 index 268e99b5a8fd78..00000000000000 --- a/docs/documentation/cn/administrator-guide/http-actions/index.rst +++ /dev/null @@ -1,9 +0,0 @@ -============= -HTTP API -============= - -.. toctree:: - :maxdepth: 1 - :glob: - - * diff --git a/docs/documentation/cn/administrator-guide/index.rst b/docs/documentation/cn/administrator-guide/index.rst deleted file mode 100644 index 21c1bffc6012f5..00000000000000 --- a/docs/documentation/cn/administrator-guide/index.rst +++ /dev/null @@ -1,20 +0,0 @@ -============= -操作手册 -============= - -.. toctree:: - :hidden: - - load-data/index - alter-table/index - materialized-view/index - http-actions/index - operation/index - config/index - -.. toctree:: - :maxdepth: 1 - :glob: - - * - diff --git a/docs/documentation/cn/administrator-guide/load-data/index.rst b/docs/documentation/cn/administrator-guide/load-data/index.rst deleted file mode 100644 index b5aad9ff8591d4..00000000000000 --- a/docs/documentation/cn/administrator-guide/load-data/index.rst +++ /dev/null @@ -1,13 +0,0 @@ -============= -数据导入 -============= - -.. toctree:: - :maxdepth: 2 - - load-manual.md - broker-load-manual.md - stream-load-manual.md - routine-load-manual.md - insert-into-manual.md - delete-manual.md diff --git a/docs/documentation/cn/administrator-guide/materialized-view/index.rst b/docs/documentation/cn/administrator-guide/materialized-view/index.rst deleted file mode 100644 index 280d7820a1fd28..00000000000000 --- a/docs/documentation/cn/administrator-guide/materialized-view/index.rst +++ /dev/null @@ -1,9 +0,0 @@ -============= -物化视图 -============= - -.. toctree:: - :maxdepth: 2 - :glob: - - * diff --git a/docs/documentation/cn/administrator-guide/operation/index.rst b/docs/documentation/cn/administrator-guide/operation/index.rst deleted file mode 100644 index 978ac3d83f8503..00000000000000 --- a/docs/documentation/cn/administrator-guide/operation/index.rst +++ /dev/null @@ -1,9 +0,0 @@ -============= -运维操作 -============= - -.. toctree:: - :maxdepth: 2 - :glob: - - * diff --git a/docs/documentation/cn/community/index.rst b/docs/documentation/cn/community/index.rst deleted file mode 100644 index 26ae323869baf2..00000000000000 --- a/docs/documentation/cn/community/index.rst +++ /dev/null @@ -1,8 +0,0 @@ -=========== -Apache 社区 -=========== - -.. toctree:: - :glob: - - * diff --git a/docs/documentation/cn/developer-guide/index.rst b/docs/documentation/cn/developer-guide/index.rst deleted file mode 100644 index ba6bb38a48785c..00000000000000 --- a/docs/documentation/cn/developer-guide/index.rst +++ /dev/null @@ -1,8 +0,0 @@ -============= -开发者手册 -============= - -.. toctree:: - :glob: - - * diff --git a/docs/documentation/cn/downloads/index.rst b/docs/documentation/cn/downloads/index.rst deleted file mode 100644 index 0a7331c37c3b93..00000000000000 --- a/docs/documentation/cn/downloads/index.rst +++ /dev/null @@ -1,10 +0,0 @@ -============= -下载 -============= - -.. toctree:: - :maxdepth: 1 - :glob: - - * - diff --git a/docs/documentation/cn/extending-doris/index.rst b/docs/documentation/cn/extending-doris/index.rst deleted file mode 100644 index 4fda2a01dfaa58..00000000000000 --- a/docs/documentation/cn/extending-doris/index.rst +++ /dev/null @@ -1,8 +0,0 @@ -=========== -扩展功能 -=========== - -.. toctree:: - :glob: - - * diff --git a/docs/documentation/cn/getting-started/index.rst b/docs/documentation/cn/getting-started/index.rst deleted file mode 100644 index dcb7cdb916ceb9..00000000000000 --- a/docs/documentation/cn/getting-started/index.rst +++ /dev/null @@ -1,12 +0,0 @@ -============= -开始使用 -============= - -.. toctree:: - - basic-usage.md - advance-usage.md - best-practice.md - data-partition.md - data-model-rollup.md - hit-the-rollup.md diff --git a/docs/documentation/cn/index.rst b/docs/documentation/cn/index.rst deleted file mode 100644 index d94ac3d1a5b77d..00000000000000 --- a/docs/documentation/cn/index.rst +++ /dev/null @@ -1,18 +0,0 @@ -============= -中文 -============= - -欢迎帮助我们改进文档质量。 -你可以通过点击每个页面右上方的 "Edit on Github" 来直接在 Github 编辑文档,然后生成一个 Pull Request。 - -.. toctree:: - - downloads/index - installing/index - getting-started/index - administrator-guide/index - extending-doris/index - internal/index - sql-reference/index - developer-guide/index - community/index diff --git a/docs/documentation/cn/installing/index.rst b/docs/documentation/cn/installing/index.rst deleted file mode 100644 index 29e0e2f4a1d0d3..00000000000000 --- a/docs/documentation/cn/installing/index.rst +++ /dev/null @@ -1,9 +0,0 @@ -=========== -编译与部署 -=========== - -.. toctree:: - - compilation.md - install-deploy.md - upgrade.md diff --git a/docs/documentation/cn/internal/index.rst b/docs/documentation/cn/internal/index.rst deleted file mode 100644 index 2d2aee33b2665d..00000000000000 --- a/docs/documentation/cn/internal/index.rst +++ /dev/null @@ -1,8 +0,0 @@ -=========== -设计文档 -=========== - -.. toctree:: - :glob: - - * diff --git a/docs/documentation/cn/sql-reference/index.rst b/docs/documentation/cn/sql-reference/index.rst deleted file mode 100644 index c30bebbc01c5f0..00000000000000 --- a/docs/documentation/cn/sql-reference/index.rst +++ /dev/null @@ -1,9 +0,0 @@ -=========== -SQL 手册 -=========== - -.. toctree:: - :hidden: - - sql-functions/index - sql-statements/index diff --git a/docs/documentation/cn/sql-reference/sql-functions/aggregate-functions/index.rst b/docs/documentation/cn/sql-reference/sql-functions/aggregate-functions/index.rst deleted file mode 100644 index 10a1dceb92d1d7..00000000000000 --- a/docs/documentation/cn/sql-reference/sql-functions/aggregate-functions/index.rst +++ /dev/null @@ -1,8 +0,0 @@ -============= -聚合函数 -============= - -.. toctree:: - :glob: - - * diff --git a/docs/documentation/cn/sql-reference/sql-functions/bitmap-functions/index.rst b/docs/documentation/cn/sql-reference/sql-functions/bitmap-functions/index.rst deleted file mode 100644 index 0a7ce165b1ffe3..00000000000000 --- a/docs/documentation/cn/sql-reference/sql-functions/bitmap-functions/index.rst +++ /dev/null @@ -1,8 +0,0 @@ -============= -bitmap函数 -============= - -.. toctree:: - :glob: - - * diff --git a/docs/documentation/cn/sql-reference/sql-functions/date-time-functions/index.rst b/docs/documentation/cn/sql-reference/sql-functions/date-time-functions/index.rst deleted file mode 100644 index 9841d7ea1d124d..00000000000000 --- a/docs/documentation/cn/sql-reference/sql-functions/date-time-functions/index.rst +++ /dev/null @@ -1,8 +0,0 @@ -============= -日期函数 -============= - -.. toctree:: - :glob: - - * diff --git a/docs/documentation/cn/sql-reference/sql-functions/hash-functions/index.rst b/docs/documentation/cn/sql-reference/sql-functions/hash-functions/index.rst deleted file mode 100644 index b0556ff3b2a2b7..00000000000000 --- a/docs/documentation/cn/sql-reference/sql-functions/hash-functions/index.rst +++ /dev/null @@ -1,8 +0,0 @@ -============= -Hash函数 -============= - -.. toctree:: - :glob: - - * diff --git a/docs/documentation/cn/sql-reference/sql-functions/index.rst b/docs/documentation/cn/sql-reference/sql-functions/index.rst deleted file mode 100644 index 281d1a8bfdc5f1..00000000000000 --- a/docs/documentation/cn/sql-reference/sql-functions/index.rst +++ /dev/null @@ -1,18 +0,0 @@ -=========== -SQL 函数 -=========== - -.. toctree:: - :glob: - - * - -.. toctree:: - :hidden: - - date-time-functions/index - spatial-functions/index - string-functions/index - aggregate-functions/index - bitmap-functions/index - hash-functions/index diff --git a/docs/documentation/cn/sql-reference/sql-functions/spatial-functions/index.rst b/docs/documentation/cn/sql-reference/sql-functions/spatial-functions/index.rst deleted file mode 100644 index f09712d02b8b01..00000000000000 --- a/docs/documentation/cn/sql-reference/sql-functions/spatial-functions/index.rst +++ /dev/null @@ -1,8 +0,0 @@ -============= -地理位置函数 -============= - -.. toctree:: - :glob: - - * diff --git a/docs/documentation/cn/sql-reference/sql-functions/string-functions/index.rst b/docs/documentation/cn/sql-reference/sql-functions/string-functions/index.rst deleted file mode 100644 index 7d372f8a93a082..00000000000000 --- a/docs/documentation/cn/sql-reference/sql-functions/string-functions/index.rst +++ /dev/null @@ -1,8 +0,0 @@ -============= -字符串函数 -============= - -.. toctree:: - :glob: - - * diff --git a/docs/documentation/cn/sql-reference/sql-statements/Account Management/index.rst b/docs/documentation/cn/sql-reference/sql-statements/Account Management/index.rst deleted file mode 100644 index bdb0665e65760f..00000000000000 --- a/docs/documentation/cn/sql-reference/sql-statements/Account Management/index.rst +++ /dev/null @@ -1,8 +0,0 @@ -============= -用户账户管理 -============= - -.. toctree:: - :glob: - - * diff --git a/docs/documentation/cn/sql-reference/sql-statements/Administration/index.rst b/docs/documentation/cn/sql-reference/sql-statements/Administration/index.rst deleted file mode 100644 index 7695bcdccce9de..00000000000000 --- a/docs/documentation/cn/sql-reference/sql-statements/Administration/index.rst +++ /dev/null @@ -1,8 +0,0 @@ -============= -集群管理 -============= - -.. toctree:: - :glob: - - * diff --git a/docs/documentation/cn/sql-reference/sql-statements/Data Definition/index.rst b/docs/documentation/cn/sql-reference/sql-statements/Data Definition/index.rst deleted file mode 100644 index 574b4b9045ec57..00000000000000 --- a/docs/documentation/cn/sql-reference/sql-statements/Data Definition/index.rst +++ /dev/null @@ -1,8 +0,0 @@ -============= -DDL -============= - -.. toctree:: - :glob: - - * diff --git a/docs/documentation/cn/sql-reference/sql-statements/Data Manipulation/index.rst b/docs/documentation/cn/sql-reference/sql-statements/Data Manipulation/index.rst deleted file mode 100644 index e8298bdc23187c..00000000000000 --- a/docs/documentation/cn/sql-reference/sql-statements/Data Manipulation/index.rst +++ /dev/null @@ -1,8 +0,0 @@ -============= -DML -============= - -.. toctree:: - :glob: - - * diff --git a/docs/documentation/cn/sql-reference/sql-statements/Data Types/index.rst b/docs/documentation/cn/sql-reference/sql-statements/Data Types/index.rst deleted file mode 100644 index 1d5cacebd0cb73..00000000000000 --- a/docs/documentation/cn/sql-reference/sql-statements/Data Types/index.rst +++ /dev/null @@ -1,8 +0,0 @@ -============= -数据类型 -============= - -.. toctree:: - :glob: - - * diff --git a/docs/documentation/cn/sql-reference/sql-statements/Utility/index.rst b/docs/documentation/cn/sql-reference/sql-statements/Utility/index.rst deleted file mode 100644 index 9abc66d27d76a5..00000000000000 --- a/docs/documentation/cn/sql-reference/sql-statements/Utility/index.rst +++ /dev/null @@ -1,8 +0,0 @@ -============= -辅助命令 -============= - -.. toctree:: - :glob: - - * diff --git a/docs/documentation/cn/sql-reference/sql-statements/index.rst b/docs/documentation/cn/sql-reference/sql-statements/index.rst deleted file mode 100644 index 5bfe1cb21b5ca8..00000000000000 --- a/docs/documentation/cn/sql-reference/sql-statements/index.rst +++ /dev/null @@ -1,13 +0,0 @@ -============ -语法帮助 -============ - -.. toctree:: - :hidden: - - Account Management/index - Administration/index - Data Definition/index - Data Manipulation/index - Data Types/index - Utility/index diff --git a/docs/documentation/en/administrator-guide/alter-table/index.rst b/docs/documentation/en/administrator-guide/alter-table/index.rst deleted file mode 100644 index f44960b4a3e84e..00000000000000 --- a/docs/documentation/en/administrator-guide/alter-table/index.rst +++ /dev/null @@ -1,9 +0,0 @@ -============= -Schema Change -============= - -.. toctree:: - :maxdepth: 2 - :glob: - - * diff --git a/docs/documentation/en/administrator-guide/config/index.rst b/docs/documentation/en/administrator-guide/config/index.rst deleted file mode 100644 index 9681f6000ebb4d..00000000000000 --- a/docs/documentation/en/administrator-guide/config/index.rst +++ /dev/null @@ -1,9 +0,0 @@ -============== -Configuration -============== - -.. toctree:: - :maxdepth: 1 - :glob: - - * diff --git a/docs/documentation/en/administrator-guide/http-actions/index.rst b/docs/documentation/en/administrator-guide/http-actions/index.rst deleted file mode 100644 index 268e99b5a8fd78..00000000000000 --- a/docs/documentation/en/administrator-guide/http-actions/index.rst +++ /dev/null @@ -1,9 +0,0 @@ -============= -HTTP API -============= - -.. toctree:: - :maxdepth: 1 - :glob: - - * diff --git a/docs/documentation/en/administrator-guide/index.rst b/docs/documentation/en/administrator-guide/index.rst deleted file mode 100644 index bbb7493e07c5f2..00000000000000 --- a/docs/documentation/en/administrator-guide/index.rst +++ /dev/null @@ -1,19 +0,0 @@ -======================== -Administrator Guide -======================== - -.. toctree:: - :hidden: - - load-data/index - alter-table/index - http-actions/index - operation/index - config/index - -.. toctree:: - :maxdepth: 1 - :glob: - - * - diff --git a/docs/documentation/en/administrator-guide/load-data/index.rst b/docs/documentation/en/administrator-guide/load-data/index.rst deleted file mode 100644 index eb02840886873e..00000000000000 --- a/docs/documentation/en/administrator-guide/load-data/index.rst +++ /dev/null @@ -1,13 +0,0 @@ -============= -Load Data -============= - -.. toctree:: - :maxdepth: 2 - - load-manual_EN.md - broker-load-manual_EN.md - stream-load-manual_EN.md - routine-load-manual_EN.md - insert-into-manual_EN.md - delete-manual_EN.md diff --git a/docs/documentation/en/administrator-guide/operation/index.rst b/docs/documentation/en/administrator-guide/operation/index.rst deleted file mode 100644 index b961f2bc1a0287..00000000000000 --- a/docs/documentation/en/administrator-guide/operation/index.rst +++ /dev/null @@ -1,9 +0,0 @@ -========================== -Maintainence Operation -========================== - -.. toctree:: - :maxdepth: 2 - :glob: - - * diff --git a/docs/documentation/en/community/index.rst b/docs/documentation/en/community/index.rst deleted file mode 100644 index 5ff10aa4694a25..00000000000000 --- a/docs/documentation/en/community/index.rst +++ /dev/null @@ -1,8 +0,0 @@ -=================== -Apache Commnity -=================== - -.. toctree:: - :glob: - - * diff --git a/docs/documentation/en/developer-guide/index.rst b/docs/documentation/en/developer-guide/index.rst deleted file mode 100644 index 1eb091a1f379d5..00000000000000 --- a/docs/documentation/en/developer-guide/index.rst +++ /dev/null @@ -1,8 +0,0 @@ -================ -Developer Guide -================ - -.. toctree:: - :glob: - - * diff --git a/docs/documentation/en/downloads/index.rst b/docs/documentation/en/downloads/index.rst deleted file mode 100644 index 78cc4ec69142cd..00000000000000 --- a/docs/documentation/en/downloads/index.rst +++ /dev/null @@ -1,10 +0,0 @@ -============= -Downloads -============= - -.. toctree:: - :maxdepth: 1 - :glob: - - * - diff --git a/docs/documentation/en/extending-doris/index.rst b/docs/documentation/en/extending-doris/index.rst deleted file mode 100644 index 282d12575930a9..00000000000000 --- a/docs/documentation/en/extending-doris/index.rst +++ /dev/null @@ -1,8 +0,0 @@ -==================== -Extending Ability -==================== - -.. toctree:: - :glob: - - * diff --git a/docs/documentation/en/getting-started/index.rst b/docs/documentation/en/getting-started/index.rst deleted file mode 100644 index c9236f6ab35687..00000000000000 --- a/docs/documentation/en/getting-started/index.rst +++ /dev/null @@ -1,12 +0,0 @@ -==================== -Getting Started -==================== - -.. toctree:: - - basic-usage_EN.md - advance-usage_EN.md - best-practice_EN.md - data-partition_EN.md - data-model-rollup_EN.md - hit-the-rollup_EN.md diff --git a/docs/documentation/en/index.rst b/docs/documentation/en/index.rst deleted file mode 100644 index 8b6e2fc3a09363..00000000000000 --- a/docs/documentation/en/index.rst +++ /dev/null @@ -1,20 +0,0 @@ -============= -English -============= - -English version of Doris documents are mainly translated by machine, currently. -So please help us to improve the quality of English documents. -You can simply click "Edit on Github" at right top of a page, and edit the document on Github, then make a pull request directly. - -.. toctree:: - - downloads/index - installing/index - getting-started/index - administrator-guide/index - extending-doris/index - internal/index - sql-reference/index - developer-guide/index - community/index - diff --git a/docs/documentation/en/installing/index.rst b/docs/documentation/en/installing/index.rst deleted file mode 100644 index 6296287f45eb5f..00000000000000 --- a/docs/documentation/en/installing/index.rst +++ /dev/null @@ -1,9 +0,0 @@ -=============================== -Compilation and Deployment -=============================== - -.. toctree:: - - compilation_EN.md - install-deploy_EN.md - upgrade_EN.md diff --git a/docs/documentation/en/internal/index.rst b/docs/documentation/en/internal/index.rst deleted file mode 100644 index ef52e59aee3447..00000000000000 --- a/docs/documentation/en/internal/index.rst +++ /dev/null @@ -1,8 +0,0 @@ -==================== -Design Documents -==================== - -.. toctree:: - :glob: - - * diff --git a/docs/documentation/en/sql-reference/index.rst b/docs/documentation/en/sql-reference/index.rst deleted file mode 100644 index f00ee956159488..00000000000000 --- a/docs/documentation/en/sql-reference/index.rst +++ /dev/null @@ -1,9 +0,0 @@ -============= -SQL Manual -============= - -.. toctree:: - :hidden: - - sql-functions/index - sql-statements/index diff --git a/docs/documentation/en/sql-reference/sql-functions/aggregate-functions/index.rst b/docs/documentation/en/sql-reference/sql-functions/aggregate-functions/index.rst deleted file mode 100644 index 9cab40ca9f4885..00000000000000 --- a/docs/documentation/en/sql-reference/sql-functions/aggregate-functions/index.rst +++ /dev/null @@ -1,8 +0,0 @@ -======================== -Aggregate Functions -======================== - -.. toctree:: - :glob: - - * diff --git a/docs/documentation/en/sql-reference/sql-functions/bitmap-functions/index.rst b/docs/documentation/en/sql-reference/sql-functions/bitmap-functions/index.rst deleted file mode 100644 index 23bf4653632aa4..00000000000000 --- a/docs/documentation/en/sql-reference/sql-functions/bitmap-functions/index.rst +++ /dev/null @@ -1,8 +0,0 @@ -================ -bitmap functions -================ - -.. toctree:: - :glob: - - * diff --git a/docs/documentation/en/sql-reference/sql-functions/date-time-functions/index.rst b/docs/documentation/en/sql-reference/sql-functions/date-time-functions/index.rst deleted file mode 100644 index ed3e2aa86792a3..00000000000000 --- a/docs/documentation/en/sql-reference/sql-functions/date-time-functions/index.rst +++ /dev/null @@ -1,8 +0,0 @@ -========================= -Date Time Functions -========================= - -.. toctree:: - :glob: - - * diff --git a/docs/documentation/en/sql-reference/sql-functions/hash-functions/index.rst b/docs/documentation/en/sql-reference/sql-functions/hash-functions/index.rst deleted file mode 100644 index 5de92cdae4124e..00000000000000 --- a/docs/documentation/en/sql-reference/sql-functions/hash-functions/index.rst +++ /dev/null @@ -1,8 +0,0 @@ -======================= -Hash Functions -======================= - -.. toctree:: - :glob: - - * diff --git a/docs/documentation/en/sql-reference/sql-functions/index.rst b/docs/documentation/en/sql-reference/sql-functions/index.rst deleted file mode 100644 index d41a98032723f8..00000000000000 --- a/docs/documentation/en/sql-reference/sql-functions/index.rst +++ /dev/null @@ -1,18 +0,0 @@ -================== -SQL Functions -================== - -.. toctree:: - :glob: - - * - -.. toctree:: - :hidden: - - date-time-functions/index - spatial-functions/index - string-functions/index - aggregate-functions/index - bitmap-functions/index - hash-functions/index diff --git a/docs/documentation/en/sql-reference/sql-functions/spatial-functions/index.rst b/docs/documentation/en/sql-reference/sql-functions/spatial-functions/index.rst deleted file mode 100644 index f36f6cc29bbf56..00000000000000 --- a/docs/documentation/en/sql-reference/sql-functions/spatial-functions/index.rst +++ /dev/null @@ -1,8 +0,0 @@ -======================= -Sptial Functions -======================= - -.. toctree:: - :glob: - - * diff --git a/docs/documentation/en/sql-reference/sql-functions/string-functions/index.rst b/docs/documentation/en/sql-reference/sql-functions/string-functions/index.rst deleted file mode 100644 index 411341eaa1d732..00000000000000 --- a/docs/documentation/en/sql-reference/sql-functions/string-functions/index.rst +++ /dev/null @@ -1,8 +0,0 @@ -======================= -String Functions -======================= - -.. toctree:: - :glob: - - * diff --git a/docs/documentation/en/sql-reference/sql-statements/Account Management/index.rst b/docs/documentation/en/sql-reference/sql-statements/Account Management/index.rst deleted file mode 100644 index 68c44caa012cb3..00000000000000 --- a/docs/documentation/en/sql-reference/sql-statements/Account Management/index.rst +++ /dev/null @@ -1,8 +0,0 @@ -====================== -Account Management -====================== - -.. toctree:: - :glob: - - * diff --git a/docs/documentation/en/sql-reference/sql-statements/Administration/index.rst b/docs/documentation/en/sql-reference/sql-statements/Administration/index.rst deleted file mode 100644 index 29a3fe69ad79fd..00000000000000 --- a/docs/documentation/en/sql-reference/sql-statements/Administration/index.rst +++ /dev/null @@ -1,8 +0,0 @@ -================== -Administration -================== - -.. toctree:: - :glob: - - * diff --git a/docs/documentation/en/sql-reference/sql-statements/Data Definition/index.rst b/docs/documentation/en/sql-reference/sql-statements/Data Definition/index.rst deleted file mode 100644 index 0e100c8758580f..00000000000000 --- a/docs/documentation/en/sql-reference/sql-statements/Data Definition/index.rst +++ /dev/null @@ -1,8 +0,0 @@ -==================== -Data Definition -==================== - -.. toctree:: - :glob: - - * diff --git a/docs/documentation/en/sql-reference/sql-statements/Data Manipulation/index.rst b/docs/documentation/en/sql-reference/sql-statements/Data Manipulation/index.rst deleted file mode 100644 index 92dd5a72cadf92..00000000000000 --- a/docs/documentation/en/sql-reference/sql-statements/Data Manipulation/index.rst +++ /dev/null @@ -1,8 +0,0 @@ -====================== -Data Manipulation -====================== - -.. toctree:: - :glob: - - * diff --git a/docs/documentation/en/sql-reference/sql-statements/Data Types/index.rst b/docs/documentation/en/sql-reference/sql-statements/Data Types/index.rst deleted file mode 100644 index f2ead57ce5559f..00000000000000 --- a/docs/documentation/en/sql-reference/sql-statements/Data Types/index.rst +++ /dev/null @@ -1,8 +0,0 @@ -============= -Data Types -============= - -.. toctree:: - :glob: - - * diff --git a/docs/documentation/en/sql-reference/sql-statements/Utility/index.rst b/docs/documentation/en/sql-reference/sql-statements/Utility/index.rst deleted file mode 100644 index d00fb23d05ae9d..00000000000000 --- a/docs/documentation/en/sql-reference/sql-statements/Utility/index.rst +++ /dev/null @@ -1,8 +0,0 @@ -============= -Utility -============= - -.. toctree:: - :glob: - - * diff --git a/docs/documentation/en/sql-reference/sql-statements/index.rst b/docs/documentation/en/sql-reference/sql-statements/index.rst deleted file mode 100644 index b968ec022c7acf..00000000000000 --- a/docs/documentation/en/sql-reference/sql-statements/index.rst +++ /dev/null @@ -1,13 +0,0 @@ -================== -DDL Statements -================== - -.. toctree:: - :hidden: - - Account Management/index - Administration/index - Data Definition/index - Data Manipulation/index - Data Types/index - Utility/index diff --git a/docs/en/README.md b/docs/en/README.md new file mode 100644 index 00000000000000..96e654cab1f32b --- /dev/null +++ b/docs/en/README.md @@ -0,0 +1,8 @@ +--- +home: true +heroImage: /images/doris-logo.png +heroText: Apache Doris +tagline: MPP-based interactive SQL data warehousing for reporting and analysis. +actionText: Get Started → +actionLink: /en/installing/compilation +--- \ No newline at end of file diff --git a/docs/documentation/en/administrator-guide/alter-table/alter-table-bitmap-index_EN.md b/docs/en/administrator-guide/alter-table/alter-table-bitmap-index.md similarity index 97% rename from docs/documentation/en/administrator-guide/alter-table/alter-table-bitmap-index_EN.md rename to docs/en/administrator-guide/alter-table/alter-table-bitmap-index.md index 3fea165ee860a2..25d6b1f8954979 100644 --- a/docs/documentation/en/administrator-guide/alter-table/alter-table-bitmap-index_EN.md +++ b/docs/en/administrator-guide/alter-table/alter-table-bitmap-index.md @@ -1,3 +1,10 @@ +--- +{ + "title": "Bitmap Index", + "language": "en" +} +--- + +--> # Compaction Action diff --git a/docs/documentation/en/administrator-guide/http-actions/fe-get-log-file_EN.md b/docs/en/administrator-guide/http-actions/fe-get-log-file.md similarity index 96% rename from docs/documentation/en/administrator-guide/http-actions/fe-get-log-file_EN.md rename to docs/en/administrator-guide/http-actions/fe-get-log-file.md index c51aa1ad9a884b..254e2ec548f89f 100644 --- a/docs/documentation/en/administrator-guide/http-actions/fe-get-log-file_EN.md +++ b/docs/en/administrator-guide/http-actions/fe-get-log-file.md @@ -1,3 +1,10 @@ +--- +{ + "title": "get\\_log\\_file", + "language": "en" +} +--- + +--> # SHOW TRANSACTION ## description diff --git a/docs/documentation/en/sql-reference/sql-statements/Data Manipulation/STOP ROUTINE LOAD_EN.md b/docs/en/sql-reference/sql-statements/Data Manipulation/STOP ROUTINE LOAD.md similarity index 92% rename from docs/documentation/en/sql-reference/sql-statements/Data Manipulation/STOP ROUTINE LOAD_EN.md rename to docs/en/sql-reference/sql-statements/Data Manipulation/STOP ROUTINE LOAD.md index 31105827fca320..487aaaed4ccd80 100644 --- a/docs/documentation/en/sql-reference/sql-statements/Data Manipulation/STOP ROUTINE LOAD_EN.md +++ b/docs/en/sql-reference/sql-statements/Data Manipulation/STOP ROUTINE LOAD.md @@ -1,3 +1,10 @@ +--- +{ + "title": "STOP ROUTINE LOAD", + "language": "en" +} +--- + -## Philosophy +# Doris Document -**write once, use everywhere** +[Vuepress](https://github.com/vuejs/vuepress.git) is used as our document site generator, configurations are in `./docs/.vuepress` folder. -Documentations will be written once, and will be converted to other format according to different application scenarios. +## Getting Started -## Implementation +Download and install [nodejs](http://nodejs.cn/download/) +```bash +npm config set registry https://registry.npm.taobao.org // Only if you are in Mainland China. +cd docs && npm install +npm run dev ``` - +---------------+ - | Documentation | - +-------+-------+ - | - +-------+-------+ - | Doc Builder | - +-------+-------+ - | - +--------------------------------+ - | | | -+---+---+ +---+----+ +-----+----+ -| PDF | | HTML | .... | Help Doc | -+-------+ +--------+ +----------+ +Open your browser and navigate to `localhost:8080/en/` or `localhost:8080/zh-CN/`. + +## Docs' Directories + +```bash + . + ├─ docs/ + │ ├─ .vuepress + │ │ ├─ dist // Built site files. + │ │ ├─ public // Assets + │ │ ├─ sidebar // Side bar configurations. + │ │ │ ├─ en.js + │ │ │ └─ zh-CN.js + │ ├─ theme // Global styles and customizations. + │ └─ config.js // Vuepress configurations. + ├─ zh-CN/ + │ ├─ xxxx.md + │ └─ README.md // Will be rendered as entry page. + └─ en/ + ├─ one.md + └─ README.md // Will be rendered as entry page. ``` -> Documentation:Text contents which is written by human. And this is the only place for documentation. -> Doc Builder: Tools that convert documentations to other format, such as PDF, HTML. There could be many tools, and we can use different tools to convert documentation to different formats. +## Start Writing -## Organization +1. Write markdown files in multi languages and put them in separated folders `./en/` and `./zh-CN/`. **But they should be with the same name.** -> `docs/documentation`: Root directory for documentation. And for different languages, there is a root directory for it. For example, `docs/documentation/cn` is the Chinese documentation's root directory. -> `docs/scripts`: Place of `Doc Builder`. -> `docs/resources`: Resources that are referenced in documentation, such as pictures. -> `docs/website`: A website for documentations built with [Sphinx](http://www.sphinx-doc.org) using a theme provided by [Read-the-Docs](https://readthedocs.org/). + ```bash + . + ├─ en/ + │ ├─ one.md + │ └─ two.md + └─ zh-CN/ + │ ├─ one.md + │ └─ two.md + ``` -## Constraints +2. Frontmatters like below should always be on the top of each file: -1. All documents are written in Markdown format, and file name is end with ".md". -2. All documents are started with level 1 title `# Title`, and should have only one level 1 title. -3. Names of file and directory are in lowercase letters, and use dashes as separator. -4. Documentation can be constructed as a directory or a single Markdown file, these two formats equal with each other in logical. Relationship is represented by parent-child directory in directory format, and by title level in file format. It is recommended to use directory format to manage a large documentation, because it is easy to maintain. -3. A directory corresponds to a title, and readme.md in this directory is its content. Other documents in this directory is its sub-sections. -4. For manual like section, such as function description, there should be `Description`, `Syntax`, `Examples` section in documents. + ```markdown + --- + { + "title": "Backup and Recovery", // sidebar title + "language": "en" // writing language + } + --- + ``` -## Level Directories +3. Assets are in `.vuepress/public/`. -1. doris-concepts -2. installing -3. getting-started -4. administrator-guide -5. sql-references -6. best-practices -7. internals -8. community + Assuming that there exists a png `.vuepress/public/images/image_x.png`, then it can be used like: -Each directory, or its sub directories should contain a file `index.rst`, for constructing the navibar of the website. For example: + ```markdown + ![alter text](/images/image_x.png) + ``` -``` -documentation/ -└── cn - ├── administrator-guide - │   ├── index.rst - │   ├── http-actions - │   │   └── index.rst - │   ├── load-data - │   │   ├── index.rst - │   ├── operation - │   │   ├── index.rst - ├── extending-doris - │   ├── index.rst - └── sql-reference - ├── index.rst - │   ├── date-time-functions - │   │   ├── index.rst -``` +4. Remember to update the sidebar configurations in `.vuepress/sidebar/` after adding a new file or a folder. + + Assuming that the directories are: + + ```bash + . + ├─ en/ + │ ├─ subfolder + │ │ ├─ one.md + │ │ └─ two.md + │ └─ three.md + └─ zh-CN/ + ├─ subfolder + │ ├─ one.md + │ └─ two.md + └─ three.md + ``` + + Then the sidebar configurations would be like: -## Docs Styles + ```javascript + // .vuepress/sidebar/en.js` + module.exports = [ + { + title: "subfolder name", + directoryPath: "subfolder/", + children: ["one", "two"] + }, + "three" + ] + ``` -There are some styles need to be followed. + ```javascript + // .vuepress/sidebar/zh-CN.js + module.exports = [ + { + title: "文件夹名称", + directoryPath: "subfolder/", + children: ["one", "two"] + }, + "three" + ] + ``` -### SQL-Statement +5. Run `npm run lint` before starting a PR. -Docs under `documentation/cn/sql-reference/sql-statements/` must obey the following style + Surely that there will be lots of error logs if the mardown files are not following the rules, and these logs will all be printed in the console: + +```shell + +en/administrator-guide/alter-table/alter-table-bitmap-index.md:92 MD040/fenced-code-language Fenced code blocks should have a language specified [Context: " ```"] +en/administrator-guide/alter-table/alter-table-rollup.md:45 MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"] +en/administrator-guide/alter-table/alter-table-rollup.md:77 MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"] +en/administrator-guide/alter-table/alter-table-rollup.md:178 MD046/code-block-style Code block style [Expected: fenced; Actual: indented] +en/administrator-guide/alter-table/alter-table-schema-change.md:50 MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"] +en/administrator-guide/alter-table/alter-table-schema-change.md:82 MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"] +en/administrator-guide/alter-table/alter-table-schema-change.md:127 MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"] +en/administrator-guide/alter-table/alter-table-schema-change.md:144 MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"] +en/administrator-guide/alter-table/alter-table-schema-change.md:153 MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"] +en/administrator-guide/alter-table/alter-table-schema-change.md:199 MD046/code-block-style Code block style [Expected: fenced; Actual: indented] +en/administrator-guide/backup-restore.md:45:1 MD029/ol-prefix Ordered list item prefix [Expected: 1; Actual: 2; Style: 1/1/1] +en/administrator-guide/backup-restore.md:57:1 MD029/ol-prefix Ordered list item prefix [Expected: 1; Actual: 2; Style: 1/1/1] +en/administrator-guide/backup-restore.md:61:1 MD029/ol-prefix Ordered list item prefix [Expected: 1; Actual: 3; Style: 1/1/1] +npm ERR! code ELIFECYCLE +npm ERR! errno 1 +npm ERR! docs@ lint: `markdownlint '**/*.md' -f` +npm ERR! Exit status 1 +npm ERR! +npm ERR! Failed at the docs@ lint script. ``` -# TITLE(capital) -## description +## Deployment + +Just start a PR, and all things will be done automatically. + +## What Travis Does + +Once a PR accepted, travis ci will be triggered to build and deploy the whole website within its own branch. Here is what `.travis.yml` does: + +1. Prepare nodejs and vuepress enviorment. + +2. Use current branch's name as the relative url path in `.vuepress/config.js`(which is the `base` property). - The description of this doc. The "## description" must be reserved, with a following empty line. +3. Build the documents into a website all by vuepress. -## keyword +4. Fetch asf-site repo to local directory, and copy `.vupress/dist/` into `{BRANCH}/`. - The keyword of this doc. Usually, this can be the title of this doc. - The "## keyword" must be reserved, with a following empty line. +5. Push the new site to asf-site repo with `GitHub Token`(which is preset in Travis console as a variable used in .travis.yml). + +```yaml +language: node_js +# nodejs版本 +node_js: + - '8' + +# Travis-CI Caching +cache: + directories: + - docs/node_modules + + +# S: Build Lifecycle +install: + - cd docs && npm install + +before_script: + - export PR=https://api.github.com/repos/$TRAVIS_REPO_SLUG/pulls/$TRAVIS_PULL_REQUEST + - export BRANCH=$(if [ "$TRAVIS_PULL_REQUEST" == "false" ]; then echo $TRAVIS_BRANCH; else echo `curl -s $PR | jq -r .head.ref`; fi) + - echo $BRANCH + - sed -i 's/base:.*,/base:\"\/'$BRANCH'\/\",/g' .vuepress/config.js + - sed -i 's/docsBranch:.*,/docsBranch:\"'$BRANCH'\",/g' .vuepress/config.js + - rm -rf site-repo + - git config user.name "${GIT_NAME}" + - git config user.email "${GIT_EMAIL}" + - git clone https://${SITE_REPO} site-repo + +script: + - npm run build + +after_script: + - cd site-repo + - mkdir -p ${BRANCH} && rm -rf ${BRANCH}/* + - cp -r ../.vuepress/dist/* ./${BRANCH}/ + - git checkout ${SITE_BRANCH} + - git add . + - git commit -am "Auto Build" + - git push --force --quiet "https://${SITE_PUSH_TOKEN}@${SITE_REPO}" ${SITE_BRANCH}:${SITE_BRANCH} + +branches: + only: + - master + - /^branch-.*$/ ``` +## asf-site repository + +Finally the asf-site repository will be like: + +```bash +. +├─ master/ +│ ├─ en/ +│ │ ├─ subfolder +│ │ │ ├─ one.md +│ │ └─ three.md +│ └─ zh-CN/ +│ ├─ subfolder +│ │ ├─ one.md +│ └─ three.md +├─ incubating-0.11/ +│ ├─ en/ +│ │ ├─ subfolder +│ │ │ ├─ one.md +│ │ └─ three.md +│ └─ zh-CN/ +│ ├─ subfolder +│ │ ├─ one.md +│ └─ three.md +├─ index.html // user entry, and auto redirected to master folder +└─ versions.json // all versions that can be seleted on the website are defined here +``` + +And the `versions.json` is like: + +```json +{ + "en": [ + { + "text": "Versions", // dropdown label + "items": [ + { + "text": "master", // dropdown-item label + "link": "/../master/en/installing/compilation.html", // entry page for this version + "target": "_blank" + }, + { + "text": "branch-0.11", + "link": "/../branch-0.11/en/installing/compilation.html", + "target": "_blank" + } + ] + } + ], + "zh-CN": [ + { + "text": "版本", + "items": [ + { + "text": "master", + "link": "/../master/zh-CN/installing/compilation.html", + "target": "_blank" + }, + { + "text": "branch-0.11", + "link": "/../branch-0.11/zh-CN/installing/compilation.html", + "target": "_blank" + } + ] + } + ] +} +``` diff --git a/docs/resources/palo_export_mind_map.svg b/docs/resources/palo_export_mind_map.svg deleted file mode 100644 index 278973a21b4008..00000000000000 --- a/docs/resources/palo_export_mind_map.svg +++ /dev/null @@ -1 +0,0 @@ -导出导出内容全量1部分指定partition进行导出2任意sql查询结果 3导出目标存储localcloudBaidu HadoopBOSCommunity Hadoop导出后访问方式palo的外部表其它导出后数据格式csv文本压缩文件其它格式其它导出效率失败重试 \ No newline at end of file diff --git a/docs/website/Makefile b/docs/website/Makefile deleted file mode 100644 index 76d13b43b00cda..00000000000000 --- a/docs/website/Makefile +++ /dev/null @@ -1,36 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. - -# Minimal makefile for Sphinx documentation -# - -# You can set these variables from the command line. -SPHINXOPTS = -SPHINXBUILD = sphinx-build -SOURCEDIR = source -BUILDDIR = build - -# Put it first so that "make" without argument is like "make help". -help: - @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) - -.PHONY: help Makefile - -# Catch-all target: route all unknown targets to Sphinx using the new -# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). -%: Makefile - @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/docs/website/README.md b/docs/website/README.md deleted file mode 100644 index 9058cfdf00c815..00000000000000 --- a/docs/website/README.md +++ /dev/null @@ -1,61 +0,0 @@ - - - -# Build the website for Doris documentations - -## Prerequisites - -1. Install PiPy (If not installed) - - ``` - curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py - python get-pip.py - ``` - -2. Install sphinx and other dependencies - - ``` - pip install sphinx # Sphinx main program - pip install recommonmark # Sphinx markdown extension - pip install sphinx-markdown-tables # Sphinx markdown table render extension - pip install jieba # Sphinx Chinese tokenizer - pip install sphinx_rtd_theme # Sphinx Read-the-Docs theme - ``` - -## Build the website - -``` -sh build_site.sh -``` - -## Start web server - -``` -cd build/html/ -nohup python -m SimpleHTTPServer & -``` - -You can start any web server you like. - -## Browse website - -``` -http://localhost:8000/ -``` diff --git a/docs/website/build_site.sh b/docs/website/build_site.sh deleted file mode 100644 index d9936e9ff7b5e2..00000000000000 --- a/docs/website/build_site.sh +++ /dev/null @@ -1,85 +0,0 @@ -#!/usr/bin/env bash -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. - -set -eo pipefail - -CUR=`dirname "$0"` -CUR=`cd "$CUR"; pwd` - -export DORIS_HOME=${CUR}/../../ - -# Check args -usage() { - echo " -Usage: $0 - Optional options: - --cn build Chinese Documentation - --en build English Documentation - " - exit 1 -} - -OPTS=$(getopt \ - -n $0 \ - -o '' \ - -l 'cn' \ - -l 'en' \ - -l 'help' \ - -- "$@") - -if [ $? != 0 ] ; then - usage -fi - -eval set -- "$OPTS" - -BUILD_CN= -BUILD_EN= -HELP=0 -if [ $# == 1 ] ; then - # default - BUILD_CN=1 - BUILD_EN=0 -else - BUILD_CN=0 - BUILD_EN=0 - while true; do - case "$1" in - --cn) BUILD_CN=1 ; shift ;; - --en) BUILD_EN=1 ; shift ;; - --help) HELP=1; shift ;; - --) shift ; break ;; - *) ehco "Internal error" ; exit 1 ;; - esac - done -fi - -if [[ ${HELP} -eq 1 ]]; then - usage - exit -fi - - -rm -rf ${CUR}/source/documentation/ -rm -rf ${CUR}/source/resources/ -mkdir -p ${CUR}/source/documentation -mkdir -p ${CUR}/source/resources -cp -r ${DORIS_HOME}/docs/documentation/* ${CUR}/source/documentation/ -cp -r ${DORIS_HOME}/docs/resources/* ${CUR}/source/resources/ -make clean && make html - diff --git a/docs/website/source/_templates/footer.html b/docs/website/source/_templates/footer.html deleted file mode 100644 index 21beb5cd484ef4..00000000000000 --- a/docs/website/source/_templates/footer.html +++ /dev/null @@ -1,28 +0,0 @@ - - -{% extends '!footer.html' %} -{% block extrafooter %} -
-

-

- - Apache Doris(incubating) is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF. - -

-
-{% endblock %} diff --git a/docs/website/source/conf.py b/docs/website/source/conf.py deleted file mode 100644 index 72c107cd305b66..00000000000000 --- a/docs/website/source/conf.py +++ /dev/null @@ -1,199 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Configuration file for the Sphinx documentation builder. -# -# This file does only contain a selection of the most common options. For a -# full list see the documentation: -# http://www.sphinx-doc.org/en/master/config - -# -- Path setup -------------------------------------------------------------- - -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -# -# import os -# import sys -# sys.path.insert(0, os.path.abspath('.')) - -#import t3SphinxThemeRtd - -# -- Project information ----------------------------------------------------- - -project = u'Doris Documentations' -copyright = u'2019, Apache Doris(Incubating)' -author = u'Apache Doris(Incubating)' - -# The short X.Y version -version = u'0.11.0' -# The full version, including alpha/beta/rc tags -release = u'0.11.0' - - -# -- General configuration --------------------------------------------------- - -# If your documentation needs a minimal Sphinx version, state it here. -# -# needs_sphinx = '1.0' - -# Add any Sphinx extension module names here, as strings. They can be -# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom -# ones. -extensions = [ - 'sphinx.ext.autodoc', - 'recommonmark', - 'sphinx_markdown_tables' -] - -# Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] - -# The suffix(es) of source filenames. -# You can specify multiple suffix as a list of string: -# -# source_suffix = ['.rst', '.md'] -# source_suffix = '.rst' -source_suffix = { - '.rst': 'restructuredtext', - '.txt': 'markdown', - '.md': 'markdown', -} - -# The master toctree document. -master_doc = 'index' - -# The language for content autogenerated by Sphinx. Refer to documentation -# for a list of supported languages. -# -# This is also used if you do content translation via gettext catalogs. -# Usually you set "language" from the command line for these cases. -language = None - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -# This pattern also affects html_static_path and html_extra_path. -exclude_patterns = [] - -# The name of the Pygments (syntax highlighting) style to use. -pygments_style = None - -# -- Options for HTML output ------------------------------------------------- - -# The theme to use for HTML and HTML Help pages. See the documentation for -# a list of builtin themes. -# -html_theme = "sphinx_rtd_theme" -#html_theme = "t3SphinxThemeRtd" -#html_theme_path = [t3SphinxThemeRtd.get_html_theme_path()] - -# Theme options are theme-specific and customize the look and feel of a theme -# further. For a list of options available for each theme, see the -# documentation. -# -# html_theme_options = {} - -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ['_static'] - -# Custom sidebar templates, must be a dictionary that maps document names -# to template names. -# -# The default sidebars (for documents that don't match any pattern) are -# defined by theme itself. Builtin themes are using these templates by -# default: ``['localtoc.html', 'relations.html', 'sourcelink.html', -# 'searchbox.html']``. -# -# html_sidebars = {} - - -# -- Options for HTMLHelp output --------------------------------------------- - -# Output file base name for HTML help builder. -htmlhelp_basename = 'dorisdoc' - - -# -- Options for LaTeX output ------------------------------------------------ - -latex_elements = { - # The paper size ('letterpaper' or 'a4paper'). - # - # 'papersize': 'letterpaper', - - # The font size ('10pt', '11pt' or '12pt'). - # - # 'pointsize': '10pt', - - # Additional stuff for the LaTeX preamble. - # - # 'preamble': '', - - # Latex figure (float) alignment - # - # 'figure_align': 'htbp', -} - -# Grouping the document tree into LaTeX files. List of tuples -# (source start file, target name, title, -# author, documentclass [howto, manual, or own class]). -latex_documents = [ - (master_doc, 'doris.tex', u'Doris Documentation', - u'Apache Doris(Incubating)', 'manual'), -] - - -# -- Options for manual page output ------------------------------------------ - -# One entry per manual page. List of tuples -# (source start file, name, description, authors, manual section). -man_pages = [ - (master_doc, 'Doris', u'Doris Documentation', - [author], 1) -] - - -# -- Options for Texinfo output ---------------------------------------------- - -# Grouping the document tree into Texinfo files. List of tuples -# (source start file, target name, title, author, -# dir menu entry, description, category) -texinfo_documents = [ - (master_doc, 'Doris', u'Doris Documentation', - author, 'Apache Doris(Incubating)', 'An MPP-based interactive SQL data warehouse for reporting and analysis', - 'Miscellaneous'), -] - - -# -- Options for Epub output ------------------------------------------------- - -# Bibliographic Dublin Core info. -epub_title = project - -# The unique identifier of the text. This can be a ISBN number -# or the project homepage. -# -# epub_identifier = '' - -# A unique identification for the text. -# -# epub_uid = '' - -# A list of files that should not be packed into the epub file. -epub_exclude_files = ['search.html'] - -html_search_language = 'zh' - -html_context = { - # Enable the "Edit in GitHub link within the header of each page. - 'display_github': True, - # Set the following variables to generate the resulting github URL for each page. - # Format Template: https://{{ github_host|default("github.com") }}/{{ github_user }} - #/{{ github_repo }}/blob/{{ github_version }}{{ conf_py_path }}{{ pagename }}{{ suffix }} - 'github_user': 'apache', - 'github_repo': 'incubator-doris', - 'github_version': 'master' , - 'conf_py_path' : '/docs/', -} - -# -- Extension configuration ------------------------------------------------- diff --git a/docs/website/source/index.rst b/docs/website/source/index.rst deleted file mode 100644 index 16bbc299d736f1..00000000000000 --- a/docs/website/source/index.rst +++ /dev/null @@ -1,590 +0,0 @@ -Introduction to Apache Doris (incubating) -========================================= - -Apache Doris is an MPP-based interactive SQL data warehousing for -reporting and analysis. Doris mainly integrates the technology of Google -Mesa and Apache Impala. Unlike other popular SQL-on-Hadoop systems, -Doris is designed to be a simple and single tightly coupled system, not -depending on other systems. Doris not only provides high concurrent low -latency point query performance, but also provides high throughput -queries of ad-hoc analysis. Doris not only provides batch data loading, -but also provides near real-time mini-batch data loading. Doris also -provides high availability, reliability, fault tolerance, and -scalability. The simplicity (of developing, deploying and using) and -meeting many data serving requirements in single system are the main -features of Doris. - -1. Background -------------- - -In Baidu, the largest Chinese search engine, we run a two-tiered data -warehousing system for data processing, reporting and analysis. Similar -to lambda architecture, the whole data warehouse comprises data -processing and data serving. Data processing does the heavy lifting of -big data: cleaning data, merging and transforming it, analyzing it and -preparing it for use by end user queries; data serving is designed to -serve queries against that data for different use cases. Currently data -processing includes batch data processing and stream data processing -technology, like Hadoop, Spark and Storm; Doris is a SQL data warehouse -for serving online and interactive data reporting and analysis querying. - -Prior to Doris, different tools were deployed to solve diverse -requirements in many ways. For example, the advertising platform needs -to provide some detailed statistics associated with each served ad for -every advertiser. The platform must support continuous updates, both new -rows and incremental updates to existing rows within minutes. It must -support latency-sensitive users serving live customer reports with very -low latency requirements and batch ad-hoc multiple dimensions data -analysis requiring very high throughput. In the past,this platform was -built on top of sharded MySQL. But with the growth of data, MySQL cannot -meet the requirements. Then, based on our existing KV system, we -developed our own proprietary distributed statistical database. But, the -simple KV storage was not efficient on scan performance. Because the -system depends on many other systems, it is very complex to operate and -maintain. Using RPC API, more complex querying usually required code -programming, but users wants an MPP SQL engine. In addition to -advertising system, a large number of internal BI Reporting / Analysis, -also used a variety of tools. Some used the combination of SparkSQL / -Impala + HDFS / HBASE. Some used MySQL to store the results that were -prepared by distributed MapReduce computing. Some also bought commercial -databases to use. - -However, when a use case requires the simultaneous availability of -capabilities that cannot all be provided by a single tool, users were -forced to build hybrid architectures that stitch multiple tools -together. Users often choose to ingest and update data in one storage -system, but later reorganize this data to optimize for an analytical -reporting use-case served from another. Our users had been successfully -deploying and maintaining these hybrid architectures, but we believe -that they shouldn’t need to accept their inherent complexity. A storage -system built to provide great performance across a broad range of -workloads provides a more elegant solution to the problems that hybrid -architectures aim to solve. Doris is the solution. Doris is designed to -be a simple and single tightly coupled system, not depending on other -systems. Doris provides high concurrent low latency point query -performance, but also provides high throughput queries of ad-hoc -analysis. Doris provides bulk-batch data loading, but also provides near -real-time mini-batch data loading. Doris also provides high -availability, reliability, fault tolerance, and scalability. - -Generally speaking, Doris is the technology combination of Google Mesa -and Apache Impala. Mesa is a highly scalable analytic data storage -system that stores critical measurement data related to Google’s -Internet advertising business. Mesa is designed to satisfy complex and -challenging set of users’ and systems’ requirements, including near -real-time data ingestion and query ability, as well as high -availability, reliability, fault tolerance, and scalability for large -data and query volumes. Impala is a modern, open-source MPP SQL engine -architected from the ground up for the Hadoop data processing -environment. At present, by virtue of its superior performance and rich -functionality, Impala has been comparable to many commercial MPP -database query engine. Mesa can satisfy the needs of many of our storage -requirements, however Mesa itself does not provide a SQL query engine; -Impala is a very good MPP SQL query engine, but the lack of a perfect -distributed storage engine. So in the end we chose the combination of -these two technologies. - -Learning from Mesa’s data model, we developed a distributed storage -engine. Unlike Mesa, this storage engine does not rely on any -distributed file system. Then we deeply integrate this storage engine -with Impala query engine. Query compiling, query execution coordination -and catalog management of storage engine are integrated to be frontend -daemon; query execution and data storage are integrated to be backend -daemon. With this integration, we implemented a single, full-featured, -high performance state the art of MPP database, as well as maintaining -the simplicity. - -2. System Overview ------------------- - -Doris’ implementation consists of two daemons: frontend (FE) and backend -(BE). The following figures gives the overview of architecture and -usage. - -.. figure:: https://raw.githubusercontent.com/apache/incubator-doris/master/docs/resources/images/palo_architecture.jpg - :alt: Doris Architecture - - Doris Architecture - -Frontend daemon consists of query coordinator and catalog manager. Query -coordinator is responsible for receiving user’s sql queries, compiling -queries and managing queries execution. Catalog manager is responsible -for managing metadata such as databases, tables, partitions, replicas -and etc. Several frontend daemons could be deployed to guarantee -fault-tolerance, and load balancing. - -Backend daemon stores the data and executes the query fragments. Many -backend daemons could also be deployed to provide scalability and -fault-tolerance. - -A typical Doris cluster generally composes of several frontend daemons -and dozens to hundreds of backend daemons. - -Clients can use MySQL-related tools to connect any frontend daemon to -submit SQL query. The frontend receives the query and compiles it into -query plans executable by the backends. Then frontend sends the query -plan fragments to backend. Backends will build a query execution DAG. -Data is fetched and pipelined into the DAG. The final result response is -sent to client via frontend. The distribution of query fragment -execution takes minimizing data movement and maximizing scan locality as -the main goal. Because Doris is designed to provide interactive -analysis, so the average execution time of queries is short. Considering -this, we adopt query re-execution to meet the fault tolerance of query -execution. - -A table is splitted into many tablets. Tablets are managed by backends. -The backend daemon could be configured to use multiple directories. Any -directory’s IO failure doesn’t influence the normal running of backend -daemon. Doris will recover and rebalance the whole cluster automatically -when necessary. - -3. Frontend ------------ - -In-memory catalog, multiple frontends, MySQL networking protocol, -consistency guarantee, and two-level table partitioning are the main -features of Doris’ frontend design. - -3.1 In-Memory Catalog -~~~~~~~~~~~~~~~~~~~~~ - -Traditional data warehouse always uses a RDBMS database to store their -catalog metadata. In order to produce query execution plan, frontend -needs to look up the catalog metadata. This kind of catalog storage may -be enough for low concurrent ad-hoc analysis queries. But for online -high concurrent queries, its performance is very bad,resulting in -increased response latency. For example, Hive metadata query latency is -sometimes up to tens of seconds or even minutes. In order to speedup the -metadata access, we adopt the in-memory catalog storage. - -.. figure:: ./resources/images/log_replication.jpg - :alt: log replication - - log replication - -In-memory catalog storage has three functional modules: real-time memory -data structures, memory checkpoints on local disk and an operation relay -log. When modifying catalog, the mutation operation is written into the -log file firstly. Then, the mutation operation is applied into the -memory data structures. Periodically, a thread does the checkpoint that -dumps memory data structure image into local disk. Checkpoint mechanism -enables the fast startup of frontend and reduces the disk storage -occupancy. Actually, in-memory catalog also simplifies the -implementation of multiple frontends. - -3.2 Multiple Frontends -~~~~~~~~~~~~~~~~~~~~~~ - -Many data warehouses only support single frontend-like node. There are -some systems supporting master and slave deploying. But for online data -serving, high availability is an essential feature. Further, the number -of queries per seconds may be very large, so high scalability is also -needed. In Doris, we provide the feature of multiple frontends using -replicated-state-machine technology. - -Frontends can be configured to three kinds of roles: leader, follower -and observer. Through a voting protocol, follower frontends firstly -elect a leader frontend. All the write requests of metadata are -forwarded to the leader, then the leader writes the operation into the -replicated log file. If the new log entry will be replicated to at least -quorum followers successfully, the leader commits the operation into -memory, and responses the write request. Followers always replay the -replicated logs to apply them into their memory metadata. If the leader -crashes, a new leader will be elected from the leftover followers. -Leader and follower mainly solve the problem of write availability and -partly solve the problem of read scalability. - -Usually one leader frontend and several follower frontends can meet most -applications’ write availability and read scalability requirements. For -very high concurrent reading, continuing to increase the number of -followers is not a good practice. Leader replicates log stream to -followers synchronously, so adding more followers will increases write -latency. Like Zookeeper,we have introduced a new type of frontend node -called observer that helps addressing this problem and further improving -metadata read scalability. Leader replicates log stream to observers -asynchronously. Observers don’t involve leader election. - -The replicated-state-machine is implemented based on BerkeleyDB java -version (BDB-JE). BDB-JE has achieved high availability by implementing -a Paxos-like consensus algorithm. We use BDB-JE to implement Doris’ log -replication and leader election. - -3.3 Consistency Guarantee -~~~~~~~~~~~~~~~~~~~~~~~~~ - -If a client process connects to the leader, it will see up-to-date -metadata, so that strong consistency semantics is guaranteed. If the -client connects to followers or observers, it will see metadata lagging -a little behind of the leader, but the monotonic consistency is -guaranteed. In most Doris’ use cases, monotonic consistency is accepted. - -If the client always connects to the same frontend, monotonic -consistency semantics is obviously guaranteed; however if the client -connects to other frontends due to failover, the semantics may be -violated. Doris provides a SYNC command to guarantee metadata monotonic -consistency semantics during failover. When failover happens, the client -can send a SYNC command to the new connected frontend, who will get the -latest operation log number from the leader. The SYNC command will not -return to client as long as local applied log number is still less than -fetched operation log number. This mechanism can guarantee the metadata -on the connected frontend is newer than the client have seen during its -last connection. - -3.4 MySQL Networking Protocol -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -MySQL compatible networking protocol is implemented in Doris’ frontend. -Firstly, SQL interface is preferred for engineers; Secondly, -compatibility with MySQL protocol makes the integrating with current -existing BI software, such as Tableau, easier; Lastly, rich MySQL client -libraries and tools reduce our development costs, but also reduces the -user’s using cost. - -Through the SQL interface, administrator can adjust system -configuration, add and remove frontend nodes or backend nodes, and -create new database for user; user can create tables, load data, and -submit SQL query. - -Online help document and Linux Proc-like mechanism are also supported in -SQL. Users can submit queries to get the help of related SQL statements -or show Doris’ internal running state. - -In frontend, a small response buffer is allocated to every MySQL -connection. The maximum size of this buffer is limited to 1MB. The -buffer is responsible for buffering the query response data. Only if the -response is finished or the buffer size reaches the 1MB,the response -data will begin to be sent to client. Through this small trick, frontend -can re-execution most of queries if errors occurred during query -execution. - -3.5 Two-Level Partitioning -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Like most of the distributed database system, data in Doris is -horizontally partitioned. However, a single-level partitioning rule -(hash partitioning or range partitioning) may not be a good solution to -all scenarios. For example, there have a user-based fact table that -stores rows of the form (date, userid, metric). Choosing only hash -partitioning by column userid may lead to uneven distribution of data, -when one user’s data is very large. If choosing range partitioning -according to column date, it will also lead to uneven distribution of -data due to the likely data explosion in a certain period of time. - -Therefore we support the two-level partitioning rule. The first level is -range partitioning. User can specify a column (usually the time series -column) range of values for the data partition. In one partition, the -user can also specify one or more columns and a number of buckets to do -the hash partitioning. User can combine with different partitioning -rules to better divide the data. Figure 4 gives an example of two-level -partitioning. - -Three benefits are gained by using the two-level partitioning mechanism. -Firstly, old and new data could be separated, and stored on different -storage mediums; Secondly, storage engine of backend can reduce the -consumption of IO and CPU for unnecessary data merging, because the data -in some partitions is no longer be updated; Lastly,every partition’s -buckets number can be different and adjusted according to the change of -data size. - -.. code:: sql - - -- Create partitions using CREATE TABLE -- - CREATE TABLE example_tbl ( - `date` DATE, - userid BIGINT, - metric BIGINT SUM - ) PARTITION BY RANGE (`date`) ( - PARTITION p201601 VALUES LESS THAN ("2016-02-01"), - PARTITION p201602 VALUES LESS THAN ("2016-03-01"), - PARTITION p201603 VALUES LESS THAN ("2016-04-01"), - PARTITION p201604 VALUES LESS THAN ("2016-05-01") - ) DISTRIBUTED BY HASH(userid) BUCKETS 32; - - -- Add partition using ALTER TABLE -- - ALTER TABLE example_tbl ADD PARTITION p201605 VALUES LESS THAN ("2016-06-01"); - -4. Backend ----------- - -4.1 Data Storage Model -~~~~~~~~~~~~~~~~~~~~~~ - -Doris combines Google Mesa’s data model and ORCFile / Parquet storage -technology. - -Data in Mesa is inherently multi-dimensional fact table. These facts in -table typically consist of two types of attributes: dimensional -attributes (which we call keys) and measure attributes (which we call -values). The table schema also specifies the aggregation function F: V -×V → V which is used to aggregate the values corresponding to the same -key. To achieve high update throughput, Mesa loads data in batch. Each -batch of data will be converted to a delta file. Mesa uses MVCC approach -to manage these delta files, and so to enforce update atomicity. Mesa -also supports creating materialized rollups, which contain a column -subset of schema to gain better aggregation effect. - -Mesa’s data model performs well in many interactive data service, but it -also has some drawbacks: 1. Users have difficulty in understanding key -and value space, as well as aggregation function, especially when they -rarely have such aggregation demand in analysis query scenarios. - -2. In order to ensure the aggregation semantic, count operation on a - single column must read all columns in key space, resulting in a - large number of additional read overheads. There is also unable to - push down the predicates on the value column to storage engine, which - also leads to additional read overheads. - -3. Essentially, it is still a key-value model. In order to aggregate the - values corresponding to the same key, all key columns must store in - order. When a table contains hundreds of columns, sorting cost - becomes the bottleneck of ETL process. - -To solve these problems, we introduce ORCFile / Parquet technology -widely used in the open source community, such as MapReduce + ORCFile, -SparkSQL + Parquet, mainly used for ad-hoc analysis of large amounts of -data with low concurrency. These data does not distinguish between key -and value. In addition, compared with the row-oriented database, -column-oriented organization is more efficient when an aggregate needs -to be computed over many rows but only for a small subset of all columns -of data, because reading that smaller subset of data can be faster than -reading all data. And columnar storage is also space-friendly due to the -high compression ratio of each column. Further, column support -block-level storage technology such as min/max index and bloom filter -index. Query executor can filter out a lot of blocks that do not meet -the predicate, to further improve the query performance. However, due to -the underlying storage does not require data order, query time -complexity is linear corresponding to the data volume. - -Like traditional databases, Doris stores structured data represented as -tables. Each table has a well-defined schema consisting of a finite -number of columns. We combine Mesa data model and ORCFile/Parquet -technology to develop a distributed analytical database. User can create -two types of table to meet different needs in interactive query -scenarios. - -In non-aggregation type of table, columns are not distinguished between -dimensions and metrics, but should specify the sort columns in order to -sort all rows. Doris will sort the table data according to the sort -columns without any aggregation. The following figure gives an example -of creating non-aggregation table. - -.. code:: sql - - -- Create non-aggregation table -- - CREATE TABLE example_tbl ( - `date` DATE, - id BIGINT, - country VARCHAR(32), - click BIGINT, - cost BIGINT - ) DUPLICATE KEY(`date`, id, country) - DISTRIBUTED BY HASH(id) BUCKETS 32; - -In aggregation data analysis case, we reference Mesa’s data model, and -distinguish columns between key and value, and specify the value columns -with aggregation method, such as SUM, REPLACE, etc. In the following -figure, we create an aggregation table like the non-aggregation table, -including two SUM aggregation columns (clicks, cost). Different from the -non-aggregation table, data in the table needs to be sorted on all key -columns for delta compaction and value aggregation. - -.. code:: sql - - -- Create aggregation table -- - CREATE TABLE example_tbl ( - `date` DATE, - id BIGINT, - country VARCHAR(32), - click BIGINT SUM, - cost BIGINT SUM - ) DISTRIBUTED BY HASH(id) BUCKETS 32; - -Rollup is a materialized view that contains a column subset of schema in -Doris. A table may contain multiple rollups with columns in different -order. According to sort key index and column covering of the rollups, -Doris can select the best rollup for different query. Because most -rollups only contain a few columns, the size of aggregated data is -typically much smaller and query performance can greatly be improved. -All the rollups in the same table are updated atomically. Because -rollups are materialized, users should make a trade-off between query -latency and storage space when using them. - -To achieve high update throughput, Doris only applies updates in batches -at the smallest frequency of every minute. Each update batch specifies -an increased version number and generates a delta data file, commits the -version when updates of quorum replicas are complete. You can query all -committed data using the committed version, and the uncommitted version -would not be used in query. All update versions are strictly be in -increasing order. If an update contains more than one table, the -versions of these tables are committed atomically. The MVCC mechanism -allows Doris to guarantee multiple table atomic updates and query -consistency. In addition, Doris uses compaction policies to merge delta -files to reduce delta number, also reduce the cost of delta merging -during query for higher performance. - -Doris’ data file is stored by column. The rows are stored in sorted -order by the sort columns in delta data files, and are organized into -row blocks, each block is compressed by type-specific columnar -encodings, such as run-length encoding for integer columns, then stored -into separate streams. In order to improve the performance of queries -that have a specific key, we also store a sparse sort key index file -corresponding to each delta data file. An index entry contains the short -key for the row block, which is a fixed size prefix of the first sort -columns for the row block, and the block id in the data file. Index -files are usually directly loaded into memory, as they are very small. -The algorithm for querying a specific key includes two steps. First, use -a binary search on the sort key index to find blocks that may contain -the specific key, and then perform a binary search on the compressed -blocks in the data files to find the desired key. We also store -block-level min/max index into separate index streams, and queries can -use this to filter undesired blocks. In addition to those basic columnar -features, we also offers an optional block-level bloom filter index for -queries with IN or EQUAL conditions to further filter undesired blocks. -Bloom filter index is stored in a separate stream, and is loaded on -demand. - -4.2 Data Loading -~~~~~~~~~~~~~~~~ - -Doris applies updates in batches. Three types of data loading are -supported: Hadoop-batch loading, loading ,mini-batch loading. - -1. Hadoop-batch loading. When a large amount of data volume needs to be - loaded into Doris, the hadoop-batch loading is recommended to achieve - high loading throughput. The data batches themselves are produced by - an external Hadoop system, typically at a frequency of every few - minutes. Unlike traditional data warehouses that use their own - computing resource to do the heavy data preparation, Doris could use - Hadoop to prepare the data (shuffle, sort and aggregate, etc.). By - using this approach, the most time-consuming computations are handed - over to Hadoop to complete. This will not only improve computational - efficiency, but also reduce the performance pressure of Doris cluster - and ensure the stability of the query service. The stability of the - online data services is the most important point. - -2. Loading. After deploying the fs-brokers, you can use Doris’ query - engine to import data. This type of loading is recommended for - incremental data loading. - -3. Mini-batch loading. When a small amount of data needs to be loaded - into Doris, the mini-batch loading is recommended to achieve low - loading latency. By using http interface, raw data is pushed into a - backend. Then the backend does the data preparing computing and - completes the final loading. Http tools could connect frontend or - backend. If frontend is connected, it will redirect the request - randomly to a backend. - -All the loading work is handled asynchronously. When load request is -submitted, a label needs to be provided. By using the load label, users -can submit show load request to get the loading status or submit cancel -load request to cancel the loading. If the status of loading task is -successful or in progress, its load label is not allowed to reuse again. -The label of failed task is allowed to be reused. - -4.3 Resource Isolation -~~~~~~~~~~~~~~~~~~~~~~ - -1. Multi-tenancy Isolation:Multiple virtual cluster can be created in - one pysical Doris cluster. Every backend node can deploy multiple - backend processes. Every backend process only belongs to one virtual - cluster. Virtual cluster is one tenancy. - -2. User Isolation: There are many users in one virtual cluster. You can - allocate the resource among different users and ensure that all - users’ tasks are executed under limited resource quota. - -3. Priority Isolation: There are three priorities isolation group for - one user. User could control resource allocated to different tasks - submitted by themselves, for example user’s query task and loading - tasks require different resource quota. - -4.4 Multi-Medium Storage -~~~~~~~~~~~~~~~~~~~~~~~~ - -Most machines in modern datacenter are equipped with both SSDs and HDDs. -SSD has good random read capability that is the ideal medium for query -that needs a large number of random read operations. However, SSD’s -capacity is small and is very expensive, we could not deploy it at a -large scale. HDD is cheap and has huge capacity that is suitable to -store large scale data but with high read latency. In OLAP scenario, we -find user usually submit a lot of queries to query the latest data (hot -data) and expect low latency. User occasionally executes query on -historical data (cold data). This kind of query usually needs to scan -large scale of data and is high latency. Multi-Medium Storage allows -users to manage the storage medium of the data to meet different query -scenarios and reduce the latency. For example, user could put latest -data on SSD and historical data which is not used frequently on HDD, -user will get low latency when querying latest data while get high -latency when query historical data which is normal because it needs scan -large scale data. - -In the following figure, user alters partition ‘p201601’ storage_medium -to SSD and storage_cooldown_time to ‘2016-07-01 00:00:00’. The setting -means data in this partition will be put on SSD and it will start to -migrate to HDD after the time of storage_cooldown_time. - -.. code:: sql - - ALTER TABLE example_tbl MODIFY PARTITION p201601 - SET ("storage_medium" = "SSD", "storage_cooldown_time" = "2016-07-01 00:00:00"); - -4.5 Vectorized Query Execution -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Runtime code generation using LLVM is one of the techniques employed -extensively by Impala to improve query execution times. Performance -could gains of 5X or more are typical for representative workloads. - -But, runtime code generation is not suitable for low latency query, -because the generation overhead costs about 100ms. Runtime code -generation is more suitable for large-scale ad-hoc query. To accelerate -the small queries (of course, big queries will also obtain benefits), we -introduced vectorized query execution into Doris. - -Vectorized query execution is a feature that greatly reduces the CPU -usage for typical query operations like scans, filters, aggregates, and -joins. A standard query execution system processes one row at a time. -This involves long code paths and significant metadata interpretation in -the inner loop of execution. Vectorized query execution streamlines -operations by processing a block of many rows at a time. Within the -block, each column is stored as a vector (an array of a primitive data -type). Simple operations like arithmetic and comparisons are done by -quickly iterating through the vectors in a tight loop, with no or very -few function calls or conditional branches inside the loop. These loops -compile in a streamlined way that uses relatively few instructions and -finishes each instruction in fewer clock cycles, on average, by -effectively using the processor pipeline and cache memory. - -The result of benchmark shows 2x~4x speedup in our typical queries. - -5. Backup and Recovery ----------------------- - -Data backup function is provided to enhance data security. The minimum -granularity of backup and recovery is partition. Users can develop -plugins to backup data to any specified remote storage. The backup data -can always be recovered to Doris at all time, to achieve the data -rollback purpose. - -Currently we only support full data backup data rather than incremental -backups for the following reasons: - -1. Remote storage system is beyond the control of the Doris system. We - cannot guarantee whether the data has been changed between two backup - operations. And data verification operations always come at a high - price. - -2. We support data backup on partition granularity. And majority of - applications are time series applications. By dividing data using - time column, it has been able to meet the needs of the vast majority - of incremental backup in chronological order. - -In addition to improving data security, the backup function also -provides a way to export the data. Data can be exported to other -downstream systems for further processing. - -.. toctree:: - :hidden: - - documentation/cn/index - documentation/en/index diff --git a/docs/zh-CN/README.md b/docs/zh-CN/README.md new file mode 100644 index 00000000000000..4910446048731a --- /dev/null +++ b/docs/zh-CN/README.md @@ -0,0 +1,8 @@ +--- +home: true +heroImage: /images/doris-logo.png +heroText: Apache Doris +tagline: 基于 MPP 的交互式 SQL 数据仓库,主要用于解决报表和多维分析。 +actionText: 快速上手 → +actionLink: /zh-CN/installing/compilation +--- diff --git a/docs/documentation/cn/administrator-guide/alter-table/alter-table-bitmap-index.md b/docs/zh-CN/administrator-guide/alter-table/alter-table-bitmap-index.md similarity index 97% rename from docs/documentation/cn/administrator-guide/alter-table/alter-table-bitmap-index.md rename to docs/zh-CN/administrator-guide/alter-table/alter-table-bitmap-index.md index a2a1ef0579250a..0a768a99716e80 100644 --- a/docs/documentation/cn/administrator-guide/alter-table/alter-table-bitmap-index.md +++ b/docs/zh-CN/administrator-guide/alter-table/alter-table-bitmap-index.md @@ -1,3 +1,10 @@ +--- +{ + "title": "Bitmap 索引", + "language": "zh-CN" +} +--- +