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 加密功能。 -## 快速配置 +## 配置 ### 服务端配置