From 432965e360fd0914bfea0e41a26f840e0c1b60b8 Mon Sep 17 00:00:00 2001 From: hffariel <527305622@qq.com> Date: Wed, 29 Apr 2020 09:14:31 +0800 Subject: [PATCH] [Enhancement] documents rebuild with Vuepress (#3408) (#3414) --- .gitignore | 4 +- .travis.yml | 58 ++ LICENSE.txt | 24 + docs/.markdownlint.yml | 19 + docs/.markdownlintignore | 2 + docs/.vuepress/config.js | 120 ++++ docs/.vuepress/public/favicon.ico | Bin 0 -> 4286 bytes .../public}/images/apache-asf-compressed.png | Bin .../public}/images/apache-incubator-logo.png | Bin .../public}/images/apache-incubator.png | Bin .../public}/images/apache_incubator_logo.png | Bin .../public}/images/architecture.png | Bin .../public}/images/asf_logo_wide_small.png | Bin .../public}/images/backend_state.png | Bin .../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 | 247 ++++++++ .../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 | 285 ++++++--- 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, 5577 insertions(+), 1767 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 72fc0c9b64..0a8837eb3c 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 0000000000..cf4b04f9bf --- /dev/null +++ b/.travis.yml @@ -0,0 +1,58 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +language: node_js +# nodejs版本 +node_js: + - '8' + +# Travis-CI Caching +cache: + directories: + - docs/node_modules + + +# S: Build Lifecycle +install: + - cd docs && npm install + +before_script: + - export PR=https://api.github.com/repos/$TRAVIS_REPO_SLUG/pulls/$TRAVIS_PULL_REQUEST + - export BRANCH=$(if [ "$TRAVIS_PULL_REQUEST" == "false" ]; then echo $TRAVIS_BRANCH; else echo `curl -s $PR | jq -r .head.ref`; fi) + - echo $BRANCH + - sed -i 's/base:.*,/base:\"\/'$BRANCH'\/\",/g' .vuepress/config.js + - sed -i 's/docsBranch:.*,/docsBranch:\"'$BRANCH'\",/g' .vuepress/config.js + - rm -rf site-repo + +script: + - npm run build + +after_script: + - if [ "$TRAVIS_EVENT_TYPE" != "push" ]; then exit 0; fi + - git config user.name "${GIT_NAME}" + - git config user.email "${GIT_EMAIL}" + - git clone https://${SITE_REPO} site-repo + - cd site-repo + - mkdir -p ${BRANCH} && rm -rf ${BRANCH}/* + - cp -r ../.vuepress/dist/* ./${BRANCH}/ + - git checkout ${SITE_BRANCH} + - git add . + - git commit -am "Auto Build" + - git push --force --quiet "https://${SITE_PUSH_TOKEN}@${SITE_REPO}" ${SITE_BRANCH}:${SITE_BRANCH} + +branches: + only: + - master + - /^branch-.*$/ diff --git a/LICENSE.txt b/LICENSE.txt index 571e94b6c8..1dabf41b65 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 0000000000..f01d39144f --- /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 0000000000..1aea57f9f2 --- /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 0000000000..d8f76a99f6 --- /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 zcmZQzU}RuqP*4ET3Jfa*7#PGD7#K7d7#I{77#JKFAmR)lAi%(&tOvm$?ohzX&O|b- zy^z7Q{$jfMsinl2gG^OHYTs zSaK@pKMXHD75sVKh18CHH`}|GD-gN1y;D<1Kk?EzULw>9}7uUV< zat_zp3n^50!_-4&46Dw?H7z+64EHy({SbEWkL70~dRCr|2dJ z6UDG8JA!FnTM66z6P^q!&&IefJr(kS6gMn78OXc%R1jHiSd$*eur4z=Wd%Q%g;oVE;}9i zllX85nYiRs2=5XS;sV`%kQ>(Lgq_<`nq+Y1<6^FjmvSa7J013$ST`&=6+CgtsbJnE zr-F$J2W<9(-H;o8ZgX+G!MXR#xi?j2m#-4|2o0?9g+Y3Ste;e^|l2 z;bK9AXC zFQmv4DyIqA4|2nX+=ycb+AGD*y<193Tzpx2I@o&YY5eJc82i^{hwk1{n=Q0^Q8~kz zM+lDu+ut%B+4 zSDQIO<-?Lw!C%nbu=G^$$K_`tf>xf5W>|3^e|rU2_^-a zD`els+-Q}%Cw;ljZ`7J_dX)s+Zjk*Te0sI?rHh*lHI`h?htcg{mlbkwV?mte{WHPb=QgNyon9sW6J#GI7X5!_jcn(fz4{Dm&L<~<>deKb zg7O!i3SuFpE?kx3%djRR2weZH%M97Q32OKGjan12`5VO@t0gX7SgR`2F!A8DqTKRLBh z6kOh&S|#@X^lGX57dGps-alJJb$=tf=iEjuhEuC$m@aJA*FU>Xsp|A6BgC zYNmPZU>M_-UCzkLhaCGq2!L8f4fX&3GuZ$C&mjN*KLh{&{|xN^e=;!t|G~ic{|5sD z2-p8$V6gwez##vFfq@^68R2Y@I0)PSVBi3${r`i3_5V)>cBpwEGeKs9?5O|$A7tnM G|NjAznN1A< 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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⪼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 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 0000000000..5c24f34952 --- /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 0000000000..23c0088b14 --- /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 0000000000..607e5b1845 --- /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 0000000000..32a391e56b --- /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 0000000000..66f1023fe4 --- /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 0000000000..d882e00623 --- /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 0000000000..34b0b570c8 --- /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 6d971114bc..0000000000 --- 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). + +## 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 208741231d..0000000000 --- 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 15374d5cd3..0000000000 --- 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 268e99b5a8..0000000000 --- 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 21c1bffc60..0000000000 --- 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 b5aad9ff85..0000000000 --- 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 280d7820a1..0000000000 --- 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 978ac3d83f..0000000000 --- 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 26ae323869..0000000000 --- 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 ba6bb38a48..0000000000 --- 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 0a7331c37c..0000000000 --- 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 4fda2a01df..0000000000 --- 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 dcb7cdb916..0000000000 --- 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 d94ac3d1a5..0000000000 --- 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 29e0e2f4a1..0000000000 --- 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 2d2aee33b2..0000000000 --- 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 c30bebbc01..0000000000 --- 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 10a1dceb92..0000000000 --- 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 0a7ce165b1..0000000000 --- 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 9841d7ea1d..0000000000 --- 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 b0556ff3b2..0000000000 --- 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 281d1a8bfd..0000000000 --- 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 f09712d02b..0000000000 --- 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 7d372f8a93..0000000000 --- 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 bdb0665e65..0000000000 --- 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 7695bcdccc..0000000000 --- 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 574b4b9045..0000000000 --- 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 e8298bdc23..0000000000 --- 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 1d5cacebd0..0000000000 --- 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 9abc66d27d..0000000000 --- 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 5bfe1cb21b..0000000000 --- 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 f44960b4a3..0000000000 --- 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 9681f6000e..0000000000 --- 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 268e99b5a8..0000000000 --- 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 bbb7493e07..0000000000 --- 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 eb02840886..0000000000 --- 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 b961f2bc1a..0000000000 --- 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 5ff10aa469..0000000000 --- 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 1eb091a1f3..0000000000 --- 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 78cc4ec691..0000000000 --- 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 282d125759..0000000000 --- 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 c9236f6ab3..0000000000 --- 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 8b6e2fc3a0..0000000000 --- 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 6296287f45..0000000000 --- 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 ef52e59aee..0000000000 --- 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 f00ee95615..0000000000 --- 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 9cab40ca9f..0000000000 --- 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 23bf465363..0000000000 --- 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 ed3e2aa867..0000000000 --- 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 5de92cdae4..0000000000 --- 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 d41a980327..0000000000 --- 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 f36f6cc29b..0000000000 --- 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 411341eaa1..0000000000 --- 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 68c44caa01..0000000000 --- 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 29a3fe69ad..0000000000 --- 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 0e100c8758..0000000000 --- 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 92dd5a72ca..0000000000 --- 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 f2ead57ce5..0000000000 --- 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 d00fb23d05..0000000000 --- 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 b968ec022c..0000000000 --- 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 0000000000..96e654cab1 --- /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 3fea165ee8..25d6b1f895 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 c51aa1ad9a..254e2ec548 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 31105827fc..487aaaed4c 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. +``` + +## 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. ``` -> 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. +## Deployment -## Organization +Just start a PR, and all things will be done automatically. -> `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/). +## What Travis Does -## Constraints +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. 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. +1. Prepare nodejs and vuepress enviorment. -## Level Directories +2. Use current branch's name as the relative url path in `.vuepress/config.js`(which is the `base` property). -1. doris-concepts -2. installing -3. getting-started -4. administrator-guide -5. sql-references -6. best-practices -7. internals -8. community +3. Build the documents into a website all by vuepress. -Each directory, or its sub directories should contain a file `index.rst`, for constructing the navibar of the website. For example: +4. Fetch asf-site repo to local directory, and copy `.vupress/dist/` into `{BRANCH}/`. -``` -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 +5. Push the new site to asf-site repo with `GitHub Token`(which is preset in Travis console as a variable used in .travis.yml). + +## asf-site repository + +Finally the asf-site repository will be like: + +```bash +. +├─ master/ +│ ├─ en/ +│ │ ├─ subfolder +│ │ │ ├─ one.md +│ │ └─ three.md +│ └─ zh-CN/ +│ ├─ subfolder +│ │ ├─ one.md +│ └─ three.md +├─ incubating-0.11/ +│ ├─ en/ +│ │ ├─ subfolder +│ │ │ ├─ one.md +│ │ └─ three.md +│ └─ zh-CN/ +│ ├─ subfolder +│ │ ├─ one.md +│ └─ three.md +├─ index.html // user entry, and auto redirected to master folder +└─ versions.json // all versions that can be seleted on the website are defined here ``` -## Docs Styles - -There are some styles need to be followed. - -### SQL-Statement - -Docs under `documentation/cn/sql-reference/sql-statements/` must obey the following style +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" + } + ] + } + ] +} ``` -# TITLE(capital) - -## description - - The description of this doc. The "## description" must be reserved, with a following empty line. - -## keyword - - The keyword of this doc. Usually, this can be the title of this doc. - The "## keyword" must be reserved, with a following empty line. -``` - diff --git a/docs/resources/palo_export_mind_map.svg b/docs/resources/palo_export_mind_map.svg deleted file mode 100644 index 278973a21b..0000000000 --- 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 76d13b43b0..0000000000 --- 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 9058cfdf00..0000000000 --- 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 d9936e9ff7..0000000000 --- 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 21beb5cd48..0000000000 --- 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 72c107cd30..0000000000 --- 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 16bbc299d7..0000000000 --- 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 0000000000..4910446048 --- /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 a2a1ef0579..0a768a9971 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" +} +--- +