diff --git a/dir.yaml b/dir.yaml
index 2cdf0674..ef309f61 100644
--- a/dir.yaml
+++ b/dir.yaml
@@ -393,6 +393,9 @@
- title_en: Cluster Configuration
title_cn: 集群配置
path: admin/configuration-fields/node
+ - title_en: Query Configuration
+ title_cn: 查询配置
+ path: admin/configuration-fields/query
- title_en: Scheduler Configuration
title_cn: 调度器配置
path: admin/configuration-fields/scheduler
@@ -497,6 +500,9 @@
- title_en: Audit Logs
title_cn: 审计日志
path: user-security/audit-logs
+ - title_en: Password Policy
+ title_cn: 密码策略
+ path: user-security/password-policy
- title_en: Release Notes
title_cn: 版本发布说明
collapsed: true
diff --git a/en_US/admin/configuration-fields/query.md b/en_US/admin/configuration-fields/query.md
new file mode 100644
index 00000000..e69de29b
diff --git a/en_US/user-security/password-policy.md b/en_US/user-security/password-policy.md
new file mode 100644
index 00000000..e69de29b
diff --git a/zh_CN/admin/capacity-model.md b/zh_CN/admin/capacity-model.md
index 48efad99..bab8c8e8 100644
--- a/zh_CN/admin/capacity-model.md
+++ b/zh_CN/admin/capacity-model.md
@@ -1,4 +1,5 @@
# 容量模型
+
Datalayers 存算分离架构,为了充分使用系统资源、达到最高性能,需对系统关键概念了解熟悉,结合业务场景进行合理建模。
本章节重点介绍如何建模。
diff --git a/zh_CN/admin/configuration-fields/license.md b/zh_CN/admin/configuration-fields/license.md
index 53cc81f6..9b8324a8 100644
--- a/zh_CN/admin/configuration-fields/license.md
+++ b/zh_CN/admin/configuration-fields/license.md
@@ -10,9 +10,9 @@
# when no `key` is specified, the `file` configuration will be used.
[license]
# A trial license key which may be deprecated.
-key = "eyJ2IjoxLCJ0IjoxLCJjbiI6Iua+nOWbvuacquadpe+8iOaIkOmDve+8ieaVsOaNruenkeaKgOaciemZkOWFrOWPuCIsImNlIjoieWluYm8ueWFuZ0BkYXRhbGF5ZXJzLmlvIiwic2QiOiIyMDI1MDUwOSIsInZkIjoyMzYsIm5sIjozLCJjbCI6MzAsImVsIjoxMDAwMDAsImZzIjpbXX0K.e1gDGsCpvPA1fy/j2JUDvuug/kxJQyuAan0fIn3gGmFL1JUQ3V1bsi73jVl6R3wBkxMbJ13tWdBcTYZREVCVjqy22HvcSkGYJqKiQ0qx2jP2Zq22z2oiO/3frs0xuMdF6g5IE9C6PQq5X/OeFi6eFSTze4mcJhc5DaeB176oSqkyyAf+aKS23ncybYE2Nb55tkKwEVkWao3guMVhIsySInE0PXlaRYuAwmMsA0laYt1C1ZX+ktBu4CI/+C9tH6BvmkvPEagayjoITzjqdx9YRjM7/c8cSa159thLqYzvfQlLXX48bua5DS16KETk19BBc/uaHZxYXzSE1wYXFArjKw=="
+key = "eyJ2IjoxLCJ0IjoxLCJjbiI6IkRhdGFsYXllcnMiLCJjZSI6InlpbmJvLnlhbmdAZGF0YWxheWVycy5pbyIsInNkIjoiMjAyNTEyMTUiLCJ2ZCI6MTgyLCJubCI6NSwiY2wiOjEwMDAsImVsIjoxMDAwMDAwMCwiZnMiOltdfQo=.a3GoQ3tQ2q/DyZxTaX6M5HLuNT64/IoMfgEML+dZBTwEy0SNvG0nQesJhAssw9TlTyh5FKuqfWQsBmS3JMbtub+LNB1YF51TB19dd8qv3UKT/FZg4TWql+drtFxRZPPVLg1QZA7vV11OWZWSg5Id3ZDskXOw1Fn1pWTDO8GC4hfqQQvMclYmfmLYrkkEv8+cikqTiv2DU5zzV+Oca2emKTYOJ5Ti9wYtD/2gu0niekCXgjRblDFa9Yauypqo/v2oE/6R7zqPOxre1EjqdCtmURRtMdievOwubXYpBljt/LJ079sY/3wgYq65L65rdpW+/u9PdwFIz9AIsgM1dV1lkQ=="
# The path of license file,
# Default: "/var/lib/datalayers/license/key.lic"
-file = "/var/lib/datalayers/license/key.lic"
+# file = "/var/lib/datalayers/license/key.lic"
```
diff --git a/zh_CN/admin/configuration-fields/log.md b/zh_CN/admin/configuration-fields/log.md
index 84f3a786..f2280f6e 100644
--- a/zh_CN/admin/configuration-fields/log.md
+++ b/zh_CN/admin/configuration-fields/log.md
@@ -16,17 +16,17 @@ rotation = "DAILY"
# 日志是否输出到标准输出中,在容器中,将默认输出到标准输出
# Default: true.
-enable_stdout = true
+enable_stdout = false
# Enables logging to files if set to true.
# Default: false.
-enable_file = false
+enable_file = true
# 设置错误日志是否启用单独的文件文件存储.
# Default: false.
-enable_err_file = false
+enable_err_file = true
# Makes the logging more verbose by inserting line number and file name.
# Default: true.
-verbose = true
+verbose = false
```
diff --git a/zh_CN/admin/configuration-fields/node.md b/zh_CN/admin/configuration-fields/node.md
index c04e86a1..d2b459be 100644
--- a/zh_CN/admin/configuration-fields/node.md
+++ b/zh_CN/admin/configuration-fields/node.md
@@ -1,6 +1,6 @@
# 节点配置
-`node` 部分配置 Datalayers 集群中节点的行为和属性。节点的配置确保正确的标识、角色分配、超时设置、连接管理和数据存储。以下是具体的配置项:
+`node` 配置是 Datalayers 集群中节点的行为和属性。节点的配置确保正确的标识、角色分配、超时设置、连接管理和数据存储。
## 配置示例
diff --git a/zh_CN/admin/configuration-fields/query.md b/zh_CN/admin/configuration-fields/query.md
new file mode 100644
index 00000000..279c1ddd
--- /dev/null
+++ b/zh_CN/admin/configuration-fields/query.md
@@ -0,0 +1,35 @@
+# 查询配置
+
+`query` 配置组用于管理 Datalayers 的查询行为。主要包括 `内存资源控制` 和 `慢查询日志记录`。
+
+## 配置示例
+
+```toml
+# 查询相关配置
+[query]
+
+# 内存池大小,用于限制查询操作的总内存使用量
+# 建议设置为系统可用内存的 60% ~ 80%
+# 默认值:主机可用内存的 60%
+# 示例:memory_pool_size = "8GB"
+# memory_pool_size = "8GB"
+
+# 慢查询日志配置
+[query.slow_query]
+
+# 是否启用慢查询日志记录功能
+# 默认值:false
+# enable = true
+
+# 慢查询时间阈值,执行时间超过此阈值的查询将被记录
+# 默认值:"5s"(5秒)
+# 支持的时间单位:ns(纳秒)、us(微秒)、ms(毫秒)、s(秒)、m(分钟)、h(小时)
+# 示例:threshold = "1s"、threshold = "500ms"、threshold = "2m"
+# threshold = "5s"
+
+# 慢查询采样比例,用于控制记录的慢查询数量
+# 默认值:1.0(记录所有慢查询)
+# 有效范围:(0.0, 1.0]
+# 示例:sample_ratio = 0.1(记录10%的慢查询)
+# sample_ratio = 1.0
+```
diff --git a/zh_CN/admin/configuration-fields/server.md b/zh_CN/admin/configuration-fields/server.md
index 334fa3c4..9e5ee40b 100644
--- a/zh_CN/admin/configuration-fields/server.md
+++ b/zh_CN/admin/configuration-fields/server.md
@@ -5,27 +5,24 @@
## 配置示例
```toml
-# Datalayers' configurations.
-# The root directory of all local data storage paths
-base_dir = "/var/lib/datalayers"
-
# The configurations of Datalayers server.
[server]
-# 指定服务是以 单机/集群 模式启动.
-# - true: 单机模式.
-# - false: 集群模式.
+# In which mode to start the Datalayers server.
+# - true: standalone mode.
+# - false: cluster mode.
# Default: false.
standalone = false
-# 配置 Arrow FlightSQL 的监听地址.
+# The Arrow FlightSql endpoint of the server.
+# Users are expected to connect to this endpoint for communicating with the server through the Arrow FlightSql protocol.
# Default: "0.0.0.0:8360".
addr = "0.0.0.0:8360"
-# 配置 HTTP 服务的舰艇地址.
+# The HTTP endpoint of the server.
# Default: "0.0.0.0:8361".
http = "0.0.0.0:8361"
-# 配置 session 超时时间.
+# A session is regarded timeout if it's not active in the past `session_timeout` duration.
# Default: "10s".
session_timeout = "10s"
@@ -33,7 +30,7 @@ session_timeout = "10s"
# Default is Asia/Shanghai, if timezone not exist in configuration, we will use the machine local time.
timezone = "Asia/Shanghai"
-# 配置 TLS 信息.
+# The configurations of tls certificates.
[server.tls]
# The key file for services with tls, both for https and flightsql
#key = "/etc/datalayers/certs/server.key"
@@ -56,48 +53,40 @@ username = "admin"
password = "public"
# The provided JSON Web Token.
-# Default: "87113c3d906df75e9c6389fbd457d957".
-jwt_secret = "87212c3d906df71e9c6289fbd456d917"
-
-# 密码强度,支持三种:
-# weak: 弱密码,没有特殊要求;
-# moderate: 一般密码,至少 8 位字符,至少包含大写、小写、数字和特殊字符中的三种;
-# strong: 强密码,至少 14 位字符,包含大写、小写、数字和特殊字符。
-# 默认:weak
+# Default: "871b3c2d706d875e9c6389fb2457d957".
+jwt_secret = "871b3c2d706d875e9c6389fb2457d957"
+
+# Password strength requirements.
+# weak: no requirements, simple password.
+# moderate: at least 8 characters, including at least three types of the following:
+# uppercase letters, lowercase letters, digits, and special characters.
+# strong: at least 14 characters, including all types of the following:
+# uppercase letters, lowercase letters, digits, and special characters.
+# Default: "weak"
#password_strength = "weak"
-# 防暴力破解密码
-# 形式为 "a/b/c",a,b,c 都是整数,含义是连续失败 a 次后,b 分钟内禁止该用户重复尝试登录,之后每再失败一次,禁止时间延长 c 分钟。
-# a最大值为 10,b,c 最大值为 120 分钟。
-# 默认:0/0/0 表示不开启防暴力破解
+# Password protection against brute-force attacks.
+# Form as "a/b/c", means:
+# Account locked for "b" minutes after "a" failed password attempts,
+# and locked for another "c" miniutes after the each failed attempt.
+# The maximum of a/b/c is 10/120/120 respectively, and will be set to 3/5/5 if too big.
+# 0/-/- means no lockout.
+# Default: "0/0/0"
#password_lockout = "3/5/5"
# The configurations of the unix domain socket server.
[server.uds]
-# Unix Domain Socket 的文件路径,指定相对路径则是相对 `base_dir`.
-# 不配置表示不开启此服务,默认为不开启。
-# 建议配置项: "run/datalayers.sock"
-# path = "run/datalayers.sock"
-
-# The configurations of the Prometheus server.
-[server.prometheus]
-# The Prometheus endpoint.
-# Default: "0.0.0.0:9090"
-# addr = "0.0.0.0:9090"
-
-# The default memtable size for auto-created metric tables.
-# memtable_size = "5MB"
-
-# The default TTL for auto-created metric tables.
-# ttl = "356d"
+# The path of the unix domain socket, relative to `base_dir`.
+# DONOT configure this options means do not support uds server by default.
+# Recommend: "run/datalayers.sock"
+path = "run/datalayers.sock"
# The configurations of the Redis service.
[server.redis]
-# 配置 Key-Value 服务的监听地址.
-# Key-Value 服务仅在集群模式下才能工作.
-# 默认情况下不启动 Key-Value 服务.
+# Users can start this service only when Datalayers server starts in cluster mode.
+# Do not support redis service by default.
# Default: "".
-# addr = "0.0.0.0:6379"
+# addr = "0.0.0.0:8362"
# The username.
# Default: "admin".
@@ -106,4 +95,23 @@ jwt_secret = "87212c3d906df71e9c6289fbd456d917"
# The password.
# Default: "public".
#password = "public"
+
+# The configurations of the Prometheus server.
+[server.prometheus]
+# The Prometheus endpoint.
+# Default: "0.0.0.0:9090"
+# addr = "0.0.0.0:9090"
+
+# The default memtable size for auto-created metric tables.
+memtable_size = "5MB"
+
+# The default TTL for auto-created metric tables.
+ttl = "356d"
+
+# The configurations of the Postgres sql service.
+[server.postgres]
+# The endpoint of the server.
+# Don't support postgres protocol by default.
+# Recommend: "0.0.0.0:5432".
+#addr = "0.0.0.0:5432"
```
diff --git a/zh_CN/admin/datalayers-cli.md b/zh_CN/admin/datalayers-cli.md
index a2ee7f1f..e2520fd4 100644
--- a/zh_CN/admin/datalayers-cli.md
+++ b/zh_CN/admin/datalayers-cli.md
@@ -1,10 +1,27 @@
# 交互终端概述
-Datalayers CLI 交互终端(dlsql)是与 Datalayers 数据库进行交互的命令行工具。该工具已包含在 Datalayers 的镜像和安装包中,提供 SQL 执行和系统管理功能。
+Datalayers CLI 交互终端(dlsql)是与 Datalayers 数据库进行交互的命令行工具,支持 SQL(兼容 MySQL 方言) 与 [PRQL](https://prql-lang.org/) 进行交互,默认使用 SQL。该工具已包含在 Datalayers 的镜像和安装包中,提供 SQL 执行和系统管理功能。
Datalayers CLI 支持两种连接认证方式,用户可根据实际场景选择。
-## 基于帐号密码认证
+## 交互语言
+
+dlsql 默认使用 SQL 语言(MySQL 方言)进行交互,同时支持 [PRQL](https://prql-lang.org/),可在 dlsql 交互式终端内通过 `set dialect = prql` 指定,将交互语言指定为 PRQL,如需切换回 SQL, 则执行 `set dialect = sql` 即可。
+
+```sql
+# 使用 prql 做为查询语言
+> set dialect = prql
+
+# 使用 SQL 做为查询语言
+> set dialect = sql
+
+```
+
+注:该查询语言目前为客户端行为,因此暂时仅支持 `dlsql` 中使用
+
+## 连接认证方式
+
+### 帐号密码认证
适用于远程或本地 TCP/IP 连接,提供灵活的身份验证。在终端中执行以下命令进入交互式界面:
@@ -12,7 +29,7 @@ Datalayers CLI 支持两种连接认证方式,用户可根据实际场景选
dlsql -h 127.0.0.1 -u admin -p public -P 8360
```
-## 基于 Peer 认证
+### Peer 认证
Linux 的 Peer 认证(Peer Credentials Authentication)是基于内核级别的进程身份验证机制,通过 `Unix Domain Socket` 通信为连接方提供可靠的身份验证。
@@ -44,18 +61,31 @@ sudo -u datalayers dlsql
- **权限**:通过 Peer 认证建立的连接将获得系统级最高权限
- 配置 `Unix Socket` 服务后,需重启 Datalayers,以确保服务生效
+## WEB 控制台
+
+dlsql 内置 WEB 控制台,提供可视化操作界面。
+
+启动命令如下:
+
+```shell
+dlsql --web-console 9362
+```
+
+启动后,通过 `http://<服务器地址>:9362` 即可访问 WEB 控制台,帐号与密码为数据库对应的帐号与密码。
+
## 连接参数详解
-| 参数 | 简写 | 描述 |
-| ---------- | ------- | ---------------------------------------------------------------------------------------------- |
-| --host | -h | 设置连接 Datalayers 服务器地址, 默认为本地路径通过 Unix Socket 方式连接: /var/lib/datalayers/run/datalayers.sock |
-| --username | -u | 设置连接 Datalayers 使用的用户名 |
-| --password | -p | 设置连接 Datalayers 使用的密码 |
-| --port | -P | 设置连接 Datalayers 的端口 |
-| --database | -d | 设置连接 Datalayers 时使用的数据库 |
-| --execute | -e | 运行一次 SQL STATEMENT后退出 |
-| --load-file | | 执行指定的 SQL 脚本文件 |
-| --version | -V | 显示 CLI 工具的版本 |
-| --tls | | 通过 TLS 加密方式与数据库进行交互。自签证书则需指定 root ca,如:--tls /etc/datalayers/datalayers.crt |
-| --max-display-rows | | 在使用 `dlsql` 查询数据时最多显示多少条记录,缺省值为: `40`,如需显示更多记录,则需通过该参数进行指定(`0` 表示无限制) |
-| --help | | show this help, then exit |
+| 参数 |
简写
| 描述 |
+| ---------- | ------------------------------------ | ---------------------------------------------------------------------------------------------- |
+| --host | -h | 设置连接 Datalayers 服务器地址, 默认为本地路径通过 Unix Socket 方式连接: /var/lib/datalayers/run/datalayers.sock |
+| --username | -u | 设置连接 Datalayers 使用的用户名 |
+| --password | -p | 设置连接 Datalayers 使用的密码 |
+| --port | -P | 设置连接 Datalayers 的端口 |
+| --database | -d | 设置连接 Datalayers 时使用的数据库 |
+| --execute | -e | 运行一次 SQL STATEMENT后退出 |
+| --load-file | | 执行指定的 SQL 脚本文件 |
+| --web-console | | 指定 WEB 控制台的监听端口并启动 WEB 控制台 |
+| --version | -V | 显示 CLI 工具的版本 |
+| --tls | | 通过 TLS 加密方式与数据库进行交互。自签证书则需指定 root ca,如:--tls /etc/datalayers/datalayers.crt |
+| --max-display-rows | | 在使用 `dlsql` 查询数据时最多显示多少条记录,缺省值为: `40`,如需显示更多记录,则需通过该参数进行指定(`0` 表示无限制) |
+| --help | | show this help, then exit |
diff --git a/zh_CN/admin/datalayers-configuration.md b/zh_CN/admin/datalayers-configuration.md
index b48460a4..0bdd43f6 100644
--- a/zh_CN/admin/datalayers-configuration.md
+++ b/zh_CN/admin/datalayers-configuration.md
@@ -95,14 +95,14 @@ jwt_secret = "871b3c2d706d875e9c6389fb2457d957"
# The path of the unix domain socket, relative to `base_dir`.
# DONOT configure this options means do not support uds server by default.
# Recommend: "run/datalayers.sock"
-# path = "run/datalayers.sock"
+path = "run/datalayers.sock"
# The configurations of the Redis service.
[server.redis]
# Users can start this service only when Datalayers server starts in cluster mode.
# Do not support redis service by default.
# Default: "".
-# addr = "0.0.0.0:6379"
+# addr = "0.0.0.0:8362"
# The username.
# Default: "admin".
@@ -112,6 +112,46 @@ jwt_secret = "871b3c2d706d875e9c6389fb2457d957"
# Default: "public".
#password = "public"
+# The configurations of the Prometheus server.
+[server.prometheus]
+# The Prometheus endpoint.
+# Default: "0.0.0.0:9090"
+# addr = "0.0.0.0:9090"
+
+# The default memtable size for auto-created metric tables.
+memtable_size = "5MB"
+
+# The default TTL for auto-created metric tables.
+ttl = "356d"
+
+# The configurations of the Postgres sql service.
+[server.postgres]
+# The endpoint of the server.
+# Don't support postgres protocol by default.
+# Recommend: "0.0.0.0:5432".
+#addr = "0.0.0.0:5432"
+
+# Query related configurations.
+[query]
+# The size of the memory pool which limits the total memory usage of query.
+# You're recommended to set the pool size to approximate 60% ~ 80% of your total available memory usage.
+# Default: 60% of the host machine's available memory.
+# memory_pool_size = "8GB"
+
+# The configurations of the slow query logging.
+[query.slow_query]
+# Whether to enable slow query logging.
+# Default: false
+# enable = false
+
+# Record queries that take longer than this threshold.
+# Default: "5s"
+# threshold = "5s"
+
+# Sample ratio for recording slow queries.
+# Default: 1.0, which records all slow queries. Valid range (0.0, 1.0].
+# sample_ratio = 1.0
+
# The configurations of the Time-Series engine.
[ts_engine]
# The size of the request channel for each worker.
@@ -390,7 +430,7 @@ enable_err_file = false
# Makes the logging more verbose by inserting line number and file name.
# Default: true.
-verbose = true
+verbose = false
# The configurations of audit logs.
[audit]
@@ -415,8 +455,8 @@ max_files = 30
kinds = "ddl,admin"
# Supported actions of audit logs, separated by comma.
-# Action list: "select", "insert", "update", "delete", "create", "alter", "drop", "truncate", "trim",
-# "desc", "show", "create_user", "drop_user", "set_password", "grant", "revoke",
+# Action list: "select", "insert", "update", "delete", "create", "alter", "drop", "truncate", "trim",
+# "desc", "show", "create_user", "drop_user", "set_password", "grant", "revoke",
# "flush", "cluster", "migrate", "compact", "export", "misc",
# "all" means all actions could be logged.
# Default: "all"
@@ -458,7 +498,7 @@ enable_sse_oauth = false
# when no `key` is specified, the `file` configuration will be used.
[license]
# A trial license key which may be deprecated.
-key = "eyJ2IjoxLCJ0IjoxLCJjbiI6Iua+nOWbvuacquadpe+8iOaIkOmDve+8ieaVsOaNruenkeaKgOaciemZkOWFrOWPuCIsImNlIjoieWluYm8ueWFuZ0BkYXRhbGF5ZXJzLmlvIiwic2QiOiIyMDI1MDUwOSIsInZkIjoyMzYsIm5sIjozLCJjbCI6MzAsImVsIjoxMDAwMDAsImZzIjpbXX0K.e1gDGsCpvPA1fy/j2JUDvuug/kxJQyuAan0fIn3gGmFL1JUQ3V1bsi73jVl6R3wBkxMbJ13tWdBcTYZREVCVjqy22HvcSkGYJqKiQ0qx2jP2Zq22z2oiO/3frs0xuMdF6g5IE9C6PQq5X/OeFi6eFSTze4mcJhc5DaeB176oSqkyyAf+aKS23ncybYE2Nb55tkKwEVkWao3guMVhIsySInE0PXlaRYuAwmMsA0laYt1C1ZX+ktBu4CI/+C9tH6BvmkvPEagayjoITzjqdx9YRjM7/c8cSa159thLqYzvfQlLXX48bua5DS16KETk19BBc/uaHZxYXzSE1wYXFArjKw=="
+key = "eyJ2IjoxLCJ0IjoxLCJjbiI6IkRhdGFsYXllcnMiLCJjZSI6InlpbmJvLnlhbmdAZGF0YWxheWVycy5pbyIsInNkIjoiMjAyNTEyMTUiLCJ2ZCI6MTgyLCJubCI6NSwiY2wiOjEwMDAsImVsIjoxMDAwMDAwMCwiZnMiOltdfQo=.a3GoQ3tQ2q/DyZxTaX6M5HLuNT64/IoMfgEML+dZBTwEy0SNvG0nQesJhAssw9TlTyh5FKuqfWQsBmS3JMbtub+LNB1YF51TB19dd8qv3UKT/FZg4TWql+drtFxRZPPVLg1QZA7vV11OWZWSg5Id3ZDskXOw1Fn1pWTDO8GC4hfqQQvMclYmfmLYrkkEv8+cikqTiv2DU5zzV+Oca2emKTYOJ5Ti9wYtD/2gu0niekCXgjRblDFa9Yauypqo/v2oE/6R7zqPOxre1EjqdCtmURRtMdievOwubXYpBljt/LJ079sY/3wgYq65L65rdpW+/u9PdwFIz9AIsgM1dV1lkQ=="
```
其中配置文件字段详细解释,请查看配置手册。
diff --git a/zh_CN/admin/optimize-configuration.md b/zh_CN/admin/optimize-configuration.md
index a752d488..03522443 100644
--- a/zh_CN/admin/optimize-configuration.md
+++ b/zh_CN/admin/optimize-configuration.md
@@ -1,21 +1,26 @@
# 性能优化配置指南
## 概述
+
本章节详细介绍如何根据系统资源情况对 Datalayers 进行参数调优,以提升系统性能与稳定性。合理的配置能够充分发挥硬件潜力,确保系统在高负载下仍能保持优异的性能表现。
## 前后台线程资源隔离
### 设计原理
+
在 Datalayers 的架构设计中,系统线程被明确划分为两类
+
- **前台线程**:负责处理用户实时请求,如数据插入(insert)、查询(select)等关键操作
- **后台线程**:专注于内部维护任务,如数据压缩(Compaction)、垃圾回收(GC)、数据刷盘(Flush)等
### 资源隔离优势
+
- **降低资源争抢**:避免前后台任务竞争 CPU 资源
- **保障服务稳定性**:确保用户请求即使在高负载后台任务下也能及时响应
- **提升系统可用性**:防止后台任务影响前台服务的质量和延迟
### 配置示例
+
```toml
# The configurations of runtime.
[runtime]
@@ -33,12 +38,14 @@
[runtime.background]
cpu_cores = 4
```
-以上配置表示 CPU 的最后4个 Core 用于后台任务,其余的为前台线程。详见:[runtime](../admin/configuration-fields/runtime.md)
+以上配置表示 CPU 的最后4个 Core 用于后台任务,其余的为前台线程。详见:[runtime](../admin/configuration-fields/runtime.md)
## 自动改表
+
在通过 InfluxDB 行协议写入时,Datalayers 支持根据行协议约定进行自动建表与改表,系统在高负载情况下,改表过程中可能会对写入性能产生一定影响,因此在生产环境中我们建议将自动改表功能关闭掉。
配置示例:
+
```toml
[ts_engine.schemaless]
# When using schemaless to write data, is automatic table modification allowed.
diff --git a/zh_CN/development-guide/concepts.md b/zh_CN/development-guide/concepts.md
index ac91ccf0..090ec831 100644
--- a/zh_CN/development-guide/concepts.md
+++ b/zh_CN/development-guide/concepts.md
@@ -1,15 +1,19 @@
# 核心概念解析
## 概述
+
Datalayers 是一款**分布式多模超融合数据库**,本章节将系统介绍其核心概念和术语,帮助您快速理解和使用 Datalayers 的各项功能。
## 核心概念
## 表引擎 (Table Engine)
+
表引擎是负责数据存储和查询处理的底层核心组件。不同的表引擎针对特定的工作负载和场景进行了优化,提供差异化的性能和功能特性。在创建表时需对表引擎进行申明,详见:[表引擎](../sql-reference/table-engine.md)。
## 数据库 (Database)
+
数据库是用于逻辑组织和管理相关数据表的容器,提供命名空间隔离和数据管理边界。
## 数据表 (Table)
+
数据表是数据库中的基本数据存储单元,采用行列式二维结构组织数据。
diff --git a/zh_CN/development-guide/connection.md b/zh_CN/development-guide/connection.md
index dd4eeeff..a31c3a31 100644
--- a/zh_CN/development-guide/connection.md
+++ b/zh_CN/development-guide/connection.md
@@ -30,7 +30,7 @@ Datalayers 支持多种认证机制与细粒度的权限控制。默认为静态
- **性能优势**:在数据传输场景下,相比 JDBC/ODBC 等驱动数据传输方案,性能提升可达百倍
- **适用场景**:对性能有高要求的数据写入与查询场景
-### PostgreSQL 协议(即将推出)
+### PostgreSQL 协议(Beta)
- **兼容性**:完整兼容 PostgreSQL 网络连接协议
- **工具生态**:支持 PostgreSQL 生态的命令行工具、JDBC/ODBC 驱动及各类可视化工具
@@ -62,7 +62,7 @@ Datalayers 支持多种认证机制与细粒度的权限控制。默认为静态
| 特性 | 适用场景 | 功能支持 | 备注 |
| ------------- | ----------------------- | --------------------| ------------------- |
| **Arrow Flight SQL 高速传输协议** | 高性能写入、查询与大数据量传输 | 完整读写 | 完整功能 |
-| **PostgreSQL 连接协议** | PostgreSQL 生态集成 | 完整读写 | 完整功能 |
+| **PostgreSQL 连接协议(Beta)** | PostgreSQL 生态集成 | 完整读写 | 认证与 SQL 执行 |
| **Prometheus 协议** | Prometheus 生态集成 | 完整读写 | Prometheus 为单值模型,使用上存在细微差异 |
| **REST API** | HTTP 集成、简单查询 | 完整读写 | 完整读写 |
| **InfluxDB 行协议** | 替换 InfluxDB 场景 | 仅支持写入 | 仅支持写入 |
@@ -71,7 +71,7 @@ Datalayers 支持多种认证机制与细粒度的权限控制。默认为静态
## 推荐选择
- 对于性能敏感的生产环境,建议使用 Arrow Flight SQL 协议
-- 如需使用现有 PostgreSQL 工具链,可等待 PostgreSQL 协议正式发布
+- 如需使用现有 PostgreSQL 工具链,可使用 PostgreSQL 协议(目前该协议处于 Beta 阶段)
- 如需使用现有 Prometheus 工具链,可使用 Prometheus 协议
- 如需使用现有 InfluxDB 工具链写入,可使用 InfluxDB 行协议
- 键值存储需求场景,可使用 Redis 协议接入
diff --git a/zh_CN/development-guide/object-storage.md b/zh_CN/development-guide/object-storage.md
index 19d06e1f..2975d794 100644
--- a/zh_CN/development-guide/object-storage.md
+++ b/zh_CN/development-guide/object-storage.md
@@ -2,7 +2,7 @@
## 概述
-Datalayers 采用存算分离架构,将计算层和存储层完全解耦,使得能够根据业务需求独立扩展计算和存储资源。这种架构不仅避免了资源浪费,优化了成本效益,同时显著提升了系统的整体性能、安全性和可维护性。因此,在具备对象存储服务的情况下,我们推荐用户优先选择 **存算分离** 的部署方案。
+Datalayers 采用存算分离架构,将计算层和存储层完全解耦,使得能够根据业务需求独立扩展计算和存储资源。这种架构不仅避免了资源浪费,优化了成本效益,同时显著提升了系统的整体性能、安全性和可维护性。因此,在具备对象存储服务的条件下,我们推荐用户优先选择 **存算分离** 的部署方案。
## 架构优势
diff --git a/zh_CN/development-guide/postgresql/overview.md b/zh_CN/development-guide/postgresql/overview.md
index 8fbe006d..716fe2d8 100644
--- a/zh_CN/development-guide/postgresql/overview.md
+++ b/zh_CN/development-guide/postgresql/overview.md
@@ -1,7 +1,10 @@
-# PostgreSQL 协议(开发中)
+# PostgreSQL 协议(Beta)
-Datalayers 兼容 PostgreSQL 网络连接协议,兼容 PostgreSQL 生态的命令行工具、JDBC/ODBC 和各种可视化工具。
+Datalayers 兼容 PostgreSQL 网络连接协议,兼容 PostgreSQL 生态的命令行工具、JDBC 和各种可视化工具。
## ⚠️注意
-该协议目前正在开发中,计划近期发布。
+- 使用 PostgreSQL 连接协议时,SQL 方言需使用 PostgreSQL 方言。
+- 该协议仅为兼容 PostgreSQL 连接协议与 SQL 方言,函数需使用 Datalayers 中定义的函数。
+- 支持 PostgreSQL 的连接、认证与 SQL 执行。
+- 该协议目前处于 Beta 状态。
diff --git a/zh_CN/development-guide/prometheus/overview.md b/zh_CN/development-guide/prometheus/overview.md
index e5a9e19f..bf69f923 100644
--- a/zh_CN/development-guide/prometheus/overview.md
+++ b/zh_CN/development-guide/prometheus/overview.md
@@ -7,6 +7,6 @@ Datalayers 兼容 Prometheus 的远程写入协议(Remote Write Protocol)
- 继续使用现有的 Prometheus 数据采集配置,仅需调整数据写入目标,即可将监控数据推送至 Datalayers;
- 使用 Grafana 等可视化工具直接查询 Datalayers 中的监控数据,无需重写查询语句;
-- 在不改变现有监控体系架构的前提下,可将 Datalayers 作为 Prometheus 的补充存储层,或直接作为替代方案,以满足更高性能、更大规模、更优成本等需求。
+- 在不改变现有监控体系架构的前提下,可将 Datalayers 作为 Prometheus 的补充存储层,或直接作为替代方案,以满足更高性能、更大规模、更优成本的需求。
详见 [Prometheus 兼容](../../prometheus/overview.md)
diff --git a/zh_CN/index.md b/zh_CN/index.md
index 20818d9b..4bb997cb 100644
--- a/zh_CN/index.md
+++ b/zh_CN/index.md
@@ -47,7 +47,7 @@ Datalayers 是一款面向工业物联网、车联网、具身智能、AI、能
- 使用 SQL (兼容 MySQL 方言)作为查询语言,以降低学习、使用与迁移成本
- 完整实现 `Arrow Flight SQL` 协议,实现数据高速传输
-- 即将支持 `PostgreSQL` 网络连接协议
+- 支持 `PostgreSQL` 网络连接协议
- 提供多语言的 SDK,实现快速接入
- 支持 JDBC 驱动接入
- 支持 HTTP 协议
diff --git a/zh_CN/releases/changes.md b/zh_CN/releases/changes.md
index c586d531..953e7473 100644
--- a/zh_CN/releases/changes.md
+++ b/zh_CN/releases/changes.md
@@ -1,5 +1,30 @@
# CHANGELOG
+## 2.3.15
+
+发布日期: 2025-12-18
+
+### 新功能
+
+- **PostgreSQL 协议兼容**:现支持 PostgreSQL 连接协议,用户可使用更广泛的第三方客户端、GUI 工具(如 DBeaver)和驱动程序连接至数据库,提升操作灵活性与集成便利性。
+- **PRQL 查询支持**:dlsql 命令行工具已集成 [PRQL](https://prql-lang.org/) 查询语言,为用户提供更具表达力的现代化数据查询与转换体验。具体用法请参阅 [dlsql文档](../admin/datalayers-cli.md#交互语言)。
+- **可视化 Web 控制台**:dlsql 命令行工具现已集成内置的 Web 控制台,提供数据库的可视化操作与管理界面,简化数据库管理任务。使用方法详见[dlsql文档](../admin/datalayers-cli.md#web-控制台)。
+- **慢查询日志**:新增慢日志记录功能,帮助识别和优化执行效率较低的查询,以提升系统整体性能。使用方法详见[查询配置文档](../admin/configuration-fields/query.md)。
+
+### 增强
+
+- **Binary 数据类型**:新增对 Binary 数据类型的支持,便于直接存储和处理图像、文件等二进制数据。
+- **递归 CTE**:在公共表表达式 ([CTE](../sql-reference/statements/cte.md)) 中现已支持递归查询,能够有效处理具有层次或树状结构的复杂数据。
+- **密码强度配置**:支持自定义密码强度策略,增强系统安全性。使用方法详见[密码策略](../user-security/password-policy.md)。
+
+### 优化
+
+- **PromQL 查询优化**:显著提升了 PromQL 查询的执行性能与效率,使监控指标查询响应更快,资源消耗更低。
+
+### 修复
+
+- 修复在行协议写入模式下,高并发进行自动建表可能导致异常的问题。
+
## 2.3.14
发布日期: 2025-11-25
diff --git a/zh_CN/sql-reference/data-type.md b/zh_CN/sql-reference/data-type.md
index ab750792..46041798 100644
--- a/zh_CN/sql-reference/data-type.md
+++ b/zh_CN/sql-reference/data-type.md
@@ -1,9 +1,11 @@
# 数据类型参考手册
## 概述
+
Datalayers SQL 提供丰富的数据类型系统,支持数值、时间、布尔、字符串和向量等多种数据格式。每种类型都有明确的存储格式和取值范围,可根据业务需求选择合适的数据类型。
## Numeric Types
+
| 类型名称 | 别名 | 备注 |
| ------------- |------------------------------------- |--------------------------------------------------- |
| INT8 | TINYINT | 单字节整数,范围[-128, 127] |
@@ -17,26 +19,26 @@ Datalayers SQL 提供丰富的数据类型系统,支持数值、时间、布
| REAL | FLOAT | 单精度浮点数(四字节) |
| DOUBLE | - | 双精度浮点数(八字节) |
-
## Date/Time Types
+
| Name | Description |
| ------------- |----------------------------------------------------------------------------------- |
| TIMESTAMP | Int64, Timestamp(precision), 可选值为0、3、6、9, 代表秒、毫秒、微秒、纳秒, 缺省值: 毫秒 |
## Boolean Types
+
| Name | Description |
| ------------- |---------------------------------------------------------------------------------- |
| BOOLEAN | BOOL, 逻辑布尔值(true/false) |
-
## Character Types
+
| Name | Description |
| ------------- |---------------------------------------------------------------------------------- |
| STRING | Utf8 |
## Vector Type
+
| Name | Description |
| ------------- |---------------------------------------------------------------------------------- |
| VECTOR | VECTOR(dim),`dim` 代表向量的维度,取值范围为 [1, 16383] |
-
-选择合适的数据类型不仅影响存储效率,也显著影响查询性能。建议根据实际业务需求选择最精确的数据类型。
diff --git a/zh_CN/sql-reference/statements/cte.md b/zh_CN/sql-reference/statements/cte.md
index d0cb86ea..8900ca6e 100644
--- a/zh_CN/sql-reference/statements/cte.md
+++ b/zh_CN/sql-reference/statements/cte.md
@@ -1,9 +1,12 @@
-# CTE(公共表表达式)参考指南
+# CTE(公共表表达式)参考指南
## 概述
-CTE(Common Table Expression,公共表表达式)是 SQL 中用于创建临时命名结果集的高级功能。它提高了查询的可读性、可维护性,并支持递归查询等复杂场景。
-## 示例
+CTE(Common Table Expression,公共表表达式)是 SQL 中用于创建临时命名结果集的高级功能。在特定的场景下使用 CTE 可提高了查询性能,提升查询语句的可读性、可维护性。
+
+## 使用方法
+
+### 普通查询
```sql
WITH tmp AS
@@ -12,3 +15,14 @@ WITH tmp AS
)
SELECT * FROM tmp
```
+
+### 递归查询
+
+```sql
+WITH RECURSIVE seq AS (
+ SELECT 1 AS n
+ UNION ALL
+ SELECT n + 1 FROM seq WHERE n < 5
+)
+SELECT * FROM seq;
+```
diff --git a/zh_CN/sql-reference/table-engine/timeseries.md b/zh_CN/sql-reference/table-engine/timeseries.md
index 7f56f4bc..147ee947 100644
--- a/zh_CN/sql-reference/table-engine/timeseries.md
+++ b/zh_CN/sql-reference/table-engine/timeseries.md
@@ -1,8 +1,8 @@
-# TimeSeries 时序表引擎指南
+# 时序表引擎指南
## 概述
-TimeSeries 表引擎是专为时序场景设计的高性能存储与计算引擎,具备高效写入、快速查询和优秀压缩比等特性。适用于车联网、工业物联网、能源监控、APM(应用性能监控)等时序数据密集场景。
+时序表引擎是专为时序场景设计的高性能存储与计算引擎,具备高效写入、快速查询和优秀压缩比等特性。适用于车联网、工业物联网、能源监控、APM(应用性能监控)等时序数据密集场景。
## 创建表语法
diff --git a/zh_CN/user-security/audit-logs.md b/zh_CN/user-security/audit-logs.md
index 76084f32..30a4e709 100644
--- a/zh_CN/user-security/audit-logs.md
+++ b/zh_CN/user-security/audit-logs.md
@@ -4,7 +4,7 @@ Datalayers 提供数据库操作审计能力,可记录用户对数据库的查
## 开启审计日志
-审计日志功能默认关闭,需要在配置文件中进行启用和配置,配置方法可参考 [配置审计日志](../admin/configuration-fields/audit-logs.md)
+审计日志功能默认关闭,需要在配置文件中进行启用和配置,配置方法可参考 [审计日志](../admin/configuration-fields/audit-logs.md)
## 查看审计日志
diff --git a/zh_CN/user-security/password-policy.md b/zh_CN/user-security/password-policy.md
new file mode 100644
index 00000000..5c075218
--- /dev/null
+++ b/zh_CN/user-security/password-policy.md
@@ -0,0 +1,30 @@
+# 密码策略
+
+Datalayers 的密码策略用于定义系统密码的强度要求和认证安全机制,包括密码复杂度规则和防暴力破解保护。
+
+## 配置
+
+密码策略为全局配置,通过系统配置文件进行设置。默认情况下策略未启用,如需使用需要手动配置开启。
+
+### 配置示例
+
+```toml
+# The configurations of authorization.
+[server.auth]
+# 密码强度,支持三种:
+# weak: 弱密码,没有特殊要求;
+# moderate: 一般密码,至少 8 位字符,至少包含大写、小写、数字和特殊字符中的三种;
+# strong: 强密码,至少 14 位字符,包含大写、小写、数字和特殊字符。
+# 默认:weak
+password_strength = "weak"
+
+# 防暴力破解密码
+# 形式为 "a/b/c",a,b,c 都是整数,含义是连续失败 a 次后,b 分钟内禁止该用户重复尝试登录,之后每再失败一次,禁止时间延长 c 分钟。
+# a最大值为 10,b,c 最大值为 120 分钟。
+# 默认:0/0/0 表示不开启防暴力破解
+password_lockout = "3/5/5"
+```
+
+## 注意事项
+
+- 修改密码策略配置后需要重启服务才能生效
diff --git a/zh_CN/user-security/tls.md b/zh_CN/user-security/tls.md
index 004d7b02..85a499ae 100644
--- a/zh_CN/user-security/tls.md
+++ b/zh_CN/user-security/tls.md
@@ -2,7 +2,7 @@
Datalayers 支持 TLS(Transport Layer Security)加密连接,确保客户端与服务器之间的通信安全。本文档介绍如何配置和使用 TLS 加密功能。
-## 快速配置
+## 配置
### 服务端配置