Merge branch 'fix/TD-30837' of https://github.com/taosdata/TDengine into fix/TD-30837
This commit is contained in:
commit
5df76d9bd5
|
@ -0,0 +1,10 @@
|
|||
---
|
||||
title: "ARIMA"
|
||||
sidebar_label: "ARIMA"
|
||||
---
|
||||
|
||||
本节讲述如何 ARIMA 算法的使用方法。
|
||||
|
||||
## 功能概述
|
||||
|
||||
……
|
|
@ -0,0 +1,13 @@
|
|||
---
|
||||
sidebar_label: 数据分析
|
||||
title: 数据分析功能
|
||||
---
|
||||
|
||||
## 概述
|
||||
|
||||
TDengine 提供数据分析功能的扩展组件,通过引入 ANode,TDengine 能够支持时间序列的机器学习分析
|
||||
|
||||
下图展示了数据分析的技术架构。
|
||||
|
||||

|
||||
|
Binary file not shown.
After Width: | Height: | Size: 62 KiB |
|
@ -76,7 +76,7 @@ dataDir /mnt/data6 2 0
|
|||
|s3UploadDelaySec | data 文件持续多长时间不再变动后上传至 s3,单位:秒。最小值:1;最大值:2592000 (30天),默认值 60 秒 |
|
||||
|s3PageCacheSize |s3 page cache 缓存页数目,单位:页。最小值:4;最大值:1024*1024\*1024。 ,默认值 4096|
|
||||
|s3MigrateIntervalSec | 本地数据文件自动上传 S3 的触发周期,单位为秒。最小值:600;最大值:100000。默认值 3600 |
|
||||
|s3MigrateEnabled | 是否自动进行 S3 迁移,默认值为 1,表示开启自动 S3 迁移,可配置为 0。 |
|
||||
|s3MigrateEnabled | 是否自动进行 S3 迁移,默认值为 0,表示关闭自动 S3 迁移,可配置为 1。 |
|
||||
|
||||
### 检查配置参数可用性
|
||||
|
||||
|
@ -108,9 +108,9 @@ s3migrate database <db_name>;
|
|||
|
||||
| # | 参数 | 默认值 | 最小值 | 最大值 | 描述 |
|
||||
| :--- | :----------- | :----- | :----- | :------ | :----------------------------------------------------------- |
|
||||
| 1 | s3_keeplocal | 3650 | 1 | 365000 | 数据在本地保留的天数,即 data 文件在本地磁盘保留多长时间后可以上传到 S3。默认单位:天,支持 m(分钟)、h(小时)和 d(天)三个单位 |
|
||||
| 1 | s3_keeplocal | 365 | 1 | 365000 | 数据在本地保留的天数,即 data 文件在本地磁盘保留多长时间后可以上传到 S3。默认单位:天,支持 m(分钟)、h(小时)和 d(天)三个单位 |
|
||||
| 2 | s3_chunksize | 262144 | 131072 | 1048576 | 上传对象的大小阈值,与 TSDB_PAGESIZE 参数一样,不可修改,单位为 TSDB 页 |
|
||||
| 3 | s3_compact | 0 | 0 | 1 | TSDB 文件组首次上传 S3 时,是否自动进行 compact 操作。 |
|
||||
| 3 | s3_compact | 1 | 0 | 1 | TSDB 文件组首次上传 S3 时,是否自动进行 compact 操作。 |
|
||||
|
||||
## Azure Blob 存储
|
||||
本节介绍在 TDengine Enterprise 如何使用微软 Azure Blob 对象存储。本功能是上一小节‘对象存储’功能的扩展,需额外依赖 Flexify 服务提供的 S3 网关。通过适当的参数配置,可以把大部分较冷的时序数据存储到 Azure Blob 服务中。
|
||||
|
|
|
@ -240,7 +240,7 @@ int32_t initCheckpointReadyMsg(SStreamTask* pTask, int32_t upstreamNodeId, int32
|
|||
int32_t flushStateDataInExecutor(SStreamTask* pTask, SStreamQueueItem* pCheckpointBlock);
|
||||
int32_t streamCreateSinkResTrigger(SStreamTrigger** pTrigger);
|
||||
int32_t streamCreateForcewindowTrigger(SStreamTrigger** pTrigger, int32_t trigger, SInterval* pInterval,
|
||||
STimeWindow* pLatestWindow);
|
||||
STimeWindow* pLatestWindow, const char* id);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
|
|
@ -307,7 +307,7 @@ void streamFreeQitem(SStreamQueueItem* data) {
|
|||
}
|
||||
}
|
||||
|
||||
int32_t streamCreateForcewindowTrigger(SStreamTrigger** pTrigger, int32_t trigger, SInterval* pInterval, STimeWindow* pLatestWindow) {
|
||||
int32_t streamCreateForcewindowTrigger(SStreamTrigger** pTrigger, int32_t trigger, SInterval* pInterval, STimeWindow* pLatestWindow, const char* id) {
|
||||
QRY_PARAM_CHECK(pTrigger);
|
||||
int64_t ts = INT64_MIN;
|
||||
SStreamTrigger* p = NULL;
|
||||
|
@ -333,7 +333,7 @@ int32_t streamCreateForcewindowTrigger(SStreamTrigger** pTrigger, int32_t trigge
|
|||
ts = taosGetTimestampMs();
|
||||
|
||||
if (pLatestWindow->skey == INT64_MIN) {
|
||||
STimeWindow window = getAlignQueryTimeWindow(&interval, ts);
|
||||
STimeWindow window = getAlignQueryTimeWindow(&interval, ts - trigger);
|
||||
|
||||
p->pBlock->info.window.skey = window.skey;
|
||||
p->pBlock->info.window.ekey = TMAX(ts, window.ekey);
|
||||
|
@ -344,8 +344,8 @@ int32_t streamCreateForcewindowTrigger(SStreamTrigger** pTrigger, int32_t trigge
|
|||
}
|
||||
|
||||
p->pBlock->info.type = STREAM_GET_RESULT;
|
||||
stDebug("force_window_close trigger block generated, window range:%" PRId64 "-%" PRId64, p->pBlock->info.window.skey,
|
||||
p->pBlock->info.window.ekey);
|
||||
stDebug("s-task:%s force_window_close trigger block generated, window range:%" PRId64 "-%" PRId64, id,
|
||||
p->pBlock->info.window.skey, p->pBlock->info.window.ekey);
|
||||
|
||||
*pTrigger = p;
|
||||
return code;
|
||||
|
|
|
@ -181,7 +181,7 @@ void streamTaskSchedHelper(void* param, void* tmrId) {
|
|||
|
||||
while (1) {
|
||||
code = streamCreateForcewindowTrigger(&pTrigger, pTask->info.delaySchedParam, &pTask->info.interval,
|
||||
&pTask->status.latestForceWindow);
|
||||
&pTask->status.latestForceWindow, id);
|
||||
if (code != 0) {
|
||||
stError("s-task:%s failed to prepare force window close trigger, code:%s, try again in %dms", id,
|
||||
tstrerror(code), nextTrigger);
|
||||
|
|
|
@ -0,0 +1,50 @@
|
|||
system sh/stop_dnodes.sh
|
||||
system sh/deploy.sh -n dnode1 -i 1
|
||||
system sh/exec.sh -n dnode1 -s start
|
||||
sleep 50
|
||||
sql connect
|
||||
|
||||
print =============== create database
|
||||
sql create database test vgroups 2;
|
||||
sql select * from information_schema.ins_databases
|
||||
if $rows != 3 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
print $data00 $data01 $data02
|
||||
|
||||
sql use test
|
||||
sql create stable st(ts timestamp, a int) tags(t int);
|
||||
sql create table tu1 using st tags(1);
|
||||
|
||||
sql create stream stream1 trigger force_window_close into str_dst as select _wstart, count(*) from st partition by tbname interval(5s);
|
||||
|
||||
run tsim/stream/checkTaskStatus.sim
|
||||
|
||||
sql insert into tu1 values(now, 1);
|
||||
sleep 5500
|
||||
|
||||
sql pause stream stream1
|
||||
|
||||
$loop_count = 0
|
||||
|
||||
loop0:
|
||||
sleep 500
|
||||
$loop_count = $loop_count + 1
|
||||
if $loop_count == 20 then
|
||||
goto end_loop
|
||||
endi
|
||||
|
||||
sql insert into tu1 values(now, 1);
|
||||
goto loop0
|
||||
|
||||
end_loop:
|
||||
|
||||
sql resume stream stream1
|
||||
sql select * from str_dst
|
||||
|
||||
if $rows != 3 then
|
||||
print expect 3, actual: $rows
|
||||
endi
|
||||
|
||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
Loading…
Reference in New Issue