Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions zh_CN/admin/configuration-fields/ts-engine.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,12 @@
# 缓存 SST 文件的结构化元信息,用于条件过滤以加速查询。
# 缓存配置过小,在文件较多时,可能导致缓存频繁换入换出,影响性能,可通过监控面板观察缓存的使用情况。
# 关于如何配置该缓存大小,可参考[高性能查询](https://docs.datalayers.cn/datalayers/latest/development-guide/high-performance-reading.html)
# Default: 512M
meta_cache_size = "512M"
# Default: 2GB
meta_cache_size = "2GB"

# 配置 LAST CACHE 最大可使用内存,设置为 0 表示禁用 LAST CACHE.
# Default: 2GB
last_cache_size = "2GB"

# 服务启动时,预加载最近生成的文件的元信息。
# 在`meta_cache_size` 配置的缓存容量足够的情况下,系统将加载所有 SST 文件的结构化元信息
Expand Down
40 changes: 39 additions & 1 deletion zh_CN/development-guide/high-performance-reading.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ path = "/var/lib/datalayers/cache/file"

注:当内存、磁盘设置较小、且查询场景无热点数据,导致缓存数据被高频换入、换出影响查询性能。

## Hints
## SQL Hints

SQL Hints 是一种在 SQL 查询中嵌入的特殊指令,用于指导数据库优化器选择特定的执行计划,从而提升查询性能或解决优化器的决策偏差。Datalayers 在 v2.3.9 开始支持该特性。

Expand All @@ -63,4 +63,42 @@ SELECT /*+ SET_VAR(parallel_degree=1) */ * FROM table;

在查询时,Datalayers 默认策略会尝试调度更多的 CPU 资源,通过并行化将任务拆分为多个子任务(如数据分片、并行扫描、聚合)来加速查询。这种逻辑对于数据量较大时有显著优势,但对于小查询则会带来一定的副作用。因此在小查询时通过指定并行度,可极大提升查询 QPS 与性能。在时序场景,一般来说查询某设备一小段时间范围内的数据,建议设置 `parallel_degree=1`,可显著提升系统查询的 QPS。

## LAST CACHE
在时序场景中,经常需要查询 点/设备 最新一行的数据记录,用于追踪设备最新状态。Datalayers 在 `v2.3.12` 版本中,引入 LAST CACHE,用于缓存设备、点位最新一行数据,以加速查询。

如需启用 LAST CACHE,需通过以下两个步骤:

### 配置 LAST CACHE

```toml
# Cache size for last value. Setting it to 0 to disable the cache.
# Default: 2GB
last_cache_size = "2GB"
```
该配置表示当前节点,LAST CACHE 最多使用 2GB 内存。

### 启用 LAST CACHE

```sql
CREATE TABLE `t` (
`ts` TIMESTAMP(9) NOT NULL DEFAULT CURRENT_TIMESTAMP,
`sid` INT32 NOT NULL,
`value` REAL,
`flag` INT8,
TIMESTAMP KEY(`ts`)
)
PARTITION BY HASH (`sid`) PARTITIONS 2
ENGINE=TimeSeries
WITH (
ENABLE_LAST_CACHE=TRUE,
UPDATE_MODE=APPEND
)
```
在 table options 中,将ENABLE_LAST_CACHE设置为 true,即为该 table 启动了 LAST CACHE。

通过上述配置后,即可对下面相关 SQL 进行加速查询。

- select * from t where sid = 1 order by ts desc limit 1
- select value from t where sid = 1 or sid = 2 order by ts desc limit 1
- select last_value(value order by ts) from t where sid in (1,2,3)
- select first_value(value order by ts desc) from t where sid = 1 or sid in (2,3)
23 changes: 23 additions & 0 deletions zh_CN/releases/changes.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,28 @@
# CHANGELOG

## 2.3.12

发布日期: 2025-09-24

## 🚀 新功能
### LAST CACHE(时序引擎最新值缓存)
- **核心功能**:为时序引擎新增点位最新值缓存机制,显著提升最新数据查询速度
- **性能提升**:查询性能提升数十倍,特别适用于高频访问最新数据的场景(如实时监控大屏)

## ⚡ 性能提升
### 查询优化
- 优化查询路径逻辑,在 **高并发场景下** 查询 QPS 提升 **10%+**

### 内存优化
- 调整元数据缓存策略,降低服务运行内存占用

## 🔍 其它
- 提供更多维度的运行指标,便于实时观测系统健康状态
- 基础镜像从 **Ubuntu 22.04** 升级至 **Ubuntu 24.04**
- 调整日志格式,关键信息更清晰易读,便于快速定位问题
- 优化进程退出逻辑
- 关系引擎的基础框架代码合入

## 2.3.11

发布日期: 2025-09-08
Expand Down
1 change: 1 addition & 0 deletions zh_CN/sql-reference/table-engine/timeseries.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ PARTITION BY HASH(column_list) PARTITIONS 2
| COMPACT_MAX_FILE_SIZE | 可合并文件的最大尺寸,缺省值为:`300MiB`,支持单位:B、KiB、MiB、GiB、TiB、PiB。 此设置表示当待合并文件大小超过时,不再合并这个文件,注意这个值不是对目标文件的强制大小限制,允许出现合并结果文件大小大于此设置。 |
| COMPACT_TIME | 非活跃窗口合并的工作时间,缺省值为当前系统设置时区的 `02:00~06:00`。支持 UTC 时区设置形式如: UTC,02:00\~06:00 支持多时间窗口设置形式如: UTC,02:00\~04:00,13:00\~15:00,不允许多个时间窗口重叠,允许时间跨凌晨如:23:00\~02:00 |
| COMPACT_MODE | Compaction 支持的模式,缺省值为:`[COMPACT,TTL]`,支持选项:COMPACT,TTL,Delta,可以组合使用。当组合多个选项时,需以'[]'括起来,中间以英文逗号分隔,例如: `[COMPACT,TTL,Delta]`。如需关闭 Compaction,则指定为 Disable |
| ENABLE_LAST_CACHE | 是否缓存点位最新的数据,缺少值为:`false`。启用该功能后,对于查询点位最新值的场景,性能将会有巨大的提升 |

### 示例1

Expand Down