diff --git a/docs/en/14-reference/03-taos-sql/22-meta.md b/docs/en/14-reference/03-taos-sql/22-meta.md index f3d1017788..d62edefa72 100644 --- a/docs/en/14-reference/03-taos-sql/22-meta.md +++ b/docs/en/14-reference/03-taos-sql/22-meta.md @@ -316,10 +316,17 @@ Provides dnode configuration information. Users whose SYSINFO attribute is 0 can Users whose SYSINFO attribute is 0 can't view this table. -| # | **Column** | **Data Type** | **Description** |** | -| --- | :----------: | ------------ | -------------------------------------------| -| 1 | user_name | VARCHAR(24) | Username | -| 2 | privilege | VARCHAR(10) | Privilege description | -| 3 | db_name | VARCHAR(65) | Database name | -| 4 | table_name | VARCHAR(193) | Table name | -| 5 | condition | VARCHAR(49152) | The privilege filter for child tables | +## INS_FILESETS + +Provides information about file sets. + +| # | **Column** | **Data Type** | **Description** | ** | +| --- | :-----------: | ------------- | ---------------------------------------------------- | +| 1 | db_name | VARCHAR(65) | Database name | +| 2 | vgroup_id | INT | Vgroup ID | +| 3 | fileset_id | INT | File set ID | +| 4 | start_time | TIMESTAMP | Start time of the time range covered by the file set | +| 5 | end_time | TIMESTAMP | End time of the time range covered by the file set | +| 6 | total_size | BIGINT | Total size of the file set | +| 7 | last_compact | TIMESTAMP | Time of the last compaction | +| 8 | shold_compact | bool | Whether the file set should be compacted | diff --git a/docs/zh/08-operation/04-maintenance.md b/docs/zh/08-operation/04-maintenance.md index 88122fed69..9ef165179d 100644 --- a/docs/zh/08-operation/04-maintenance.md +++ b/docs/zh/08-operation/04-maintenance.md @@ -18,6 +18,7 @@ TDengine 面向多种写入场景,而很多写入场景下,TDengine 的存 ```SQL COMPACT DATABASE db_name [start with 'XXXX'] [end with 'YYYY']; +COMPACT [db_name.]VGROUPS IN (vgroup_id1, vgroup_id2, ...) [start with 'XXXX'] [end with 'YYYY']; SHOW COMPACTS [compact_id]; KILL COMPACT compact_id; ``` @@ -25,6 +26,7 @@ KILL COMPACT compact_id; ### 效果 - 扫描并压缩指定的 DB 中所有 VGROUP 中 VNODE 的所有数据文件 +- 扫描并压缩 DB 中指定的 VGROUP 列表中 VNODE 的所有数据文件, 若 db_name 为空,则默认为当前数据库 - COMPCAT 会删除被删除数据以及被删除的表的数据 - COMPACT 会合并多个 STT 文件 - 可通过 start with 关键字指定 COMPACT 数据的起始时间 diff --git a/docs/zh/14-reference/03-taos-sql/22-meta.md b/docs/zh/14-reference/03-taos-sql/22-meta.md index b61e06f759..df921a9bb1 100644 --- a/docs/zh/14-reference/03-taos-sql/22-meta.md +++ b/docs/zh/14-reference/03-taos-sql/22-meta.md @@ -319,10 +319,18 @@ TDengine 内置了一个名为 `INFORMATION_SCHEMA` 的数据库,提供对数 注:SYSINFO 属性为 0 的用户不能查看此表。 -| # | **列名** | **数据类型** | **说明** | -| --- | :----------: | ------------ | -------------------------------------------------------------------------------------------------------------------- | -| 1 | user_name | VARCHAR(24) | 用户名 -| 2 | privilege | VARCHAR(10) | 权限描述 -| 3 | db_name | VARCHAR(65) | 数据库名称 -| 4 | table_name | VARCHAR(193) | 表名称 -| 5 | condition | VARCHAR(49152) | 子表权限过滤条件 +## INS_FILESETS + +提供当前数据存储的文件组的相关信息。 + + +| # | **列名** | **数据类型** | **说明** | +| --- | :-----------: | ------------ | --------------------------------------- | +| 1 | db_name | VARCHAR(65) | 数据库名 | +| 2 | vgroup_id | INT | vgroup id | +| 3 | fileset_id | INT | 文件组 id | +| 4 | start_time | TIMESTAMP | 文件组的覆盖数据的开始时间 | +| 5 | end_time | TIMESTAMP | 文件组的覆盖数据的结束时间 | +| 6 | total_size | BIGINT | 文件组的总大小 | +| 7 | last_compact | TIMESTAMP | 最后一次压缩的时间 | +| 8 | shold_compact | bool | 是否需要压缩,true:需要,false:不需要 | \ No newline at end of file diff --git a/source/common/src/systable.c b/source/common/src/systable.c index f2778042bf..cac5fec8e5 100644 --- a/source/common/src/systable.c +++ b/source/common/src/systable.c @@ -417,7 +417,6 @@ static const SSysDbTableSchema anodesFullSchema[] = { }; static const SSysDbTableSchema filesetsFullSchema[] = { - {.name = "dnode_id", .bytes = 4, .type = TSDB_DATA_TYPE_INT, .sysInfo = false}, {.name = "db_name", .bytes = SYSTABLE_SCH_DB_NAME_LEN, .type = TSDB_DATA_TYPE_VARCHAR, .sysInfo = false}, {.name = "vgroup_id", .bytes = 4, .type = TSDB_DATA_TYPE_INT, .sysInfo = false}, {.name = "fileset_id", .bytes = 4, .type = TSDB_DATA_TYPE_INT, .sysInfo = false}, diff --git a/source/libs/executor/src/sysscanoperator.c b/source/libs/executor/src/sysscanoperator.c index 7b79d25f96..bd90e1796c 100644 --- a/source/libs/executor/src/sysscanoperator.c +++ b/source/libs/executor/src/sysscanoperator.c @@ -2058,22 +2058,16 @@ static SSDataBlock* sysTableBuildUserFileSets(SOperatorInfo* pOperator) { // fill the data block { SColumnInfoData* pColInfoData; - - // dnode_id - int32_t dnodeId = 0; // TODO - pColInfoData = taosArrayGet(p->pDataBlock, 0); - QUERY_CHECK_NULL(pColInfoData, code, lino, _end, terrno); - code = colDataSetVal(pColInfoData, numOfRows, (char*)&dnodeId, false); - QUERY_CHECK_CODE(code, lino, _end); + int32_t index = 0; // db_name - pColInfoData = taosArrayGet(p->pDataBlock, 1); + pColInfoData = taosArrayGet(p->pDataBlock, index++); QUERY_CHECK_NULL(pColInfoData, code, lino, _end, terrno); code = colDataSetVal(pColInfoData, numOfRows, db, false); QUERY_CHECK_CODE(code, lino, _end); // vgroup_id - pColInfoData = taosArrayGet(p->pDataBlock, 2); + pColInfoData = taosArrayGet(p->pDataBlock, index++); QUERY_CHECK_NULL(pColInfoData, code, lino, _end, terrno); code = colDataSetVal(pColInfoData, numOfRows, (char*)&vgId, false); QUERY_CHECK_CODE(code, lino, _end); @@ -2082,7 +2076,7 @@ static SSDataBlock* sysTableBuildUserFileSets(SOperatorInfo* pOperator) { int32_t filesetId = 0; code = pAPI->tsdReader.fileSetGetEntryField(pInfo->pFileSetReader, "fileset_id", &filesetId); QUERY_CHECK_CODE(code, lino, _end); - pColInfoData = taosArrayGet(p->pDataBlock, 3); + pColInfoData = taosArrayGet(p->pDataBlock, index++); QUERY_CHECK_NULL(pColInfoData, code, lino, _end, terrno); code = colDataSetVal(pColInfoData, numOfRows, (char*)&filesetId, false); QUERY_CHECK_CODE(code, lino, _end); @@ -2091,7 +2085,7 @@ static SSDataBlock* sysTableBuildUserFileSets(SOperatorInfo* pOperator) { int64_t startTime = 0; code = pAPI->tsdReader.fileSetGetEntryField(pInfo->pFileSetReader, "start_time", &startTime); QUERY_CHECK_CODE(code, lino, _end); - pColInfoData = taosArrayGet(p->pDataBlock, 4); + pColInfoData = taosArrayGet(p->pDataBlock, index++); QUERY_CHECK_NULL(pColInfoData, code, lino, _end, terrno); code = colDataSetVal(pColInfoData, numOfRows, (char*)&startTime, false); QUERY_CHECK_CODE(code, lino, _end); @@ -2100,7 +2094,7 @@ static SSDataBlock* sysTableBuildUserFileSets(SOperatorInfo* pOperator) { int64_t endTime = 0; code = pAPI->tsdReader.fileSetGetEntryField(pInfo->pFileSetReader, "end_time", &endTime); QUERY_CHECK_CODE(code, lino, _end); - pColInfoData = taosArrayGet(p->pDataBlock, 5); + pColInfoData = taosArrayGet(p->pDataBlock, index++); QUERY_CHECK_NULL(pColInfoData, code, lino, _end, terrno); code = colDataSetVal(pColInfoData, numOfRows, (char*)&endTime, false); QUERY_CHECK_CODE(code, lino, _end); @@ -2109,7 +2103,7 @@ static SSDataBlock* sysTableBuildUserFileSets(SOperatorInfo* pOperator) { int64_t totalSize = 0; code = pAPI->tsdReader.fileSetGetEntryField(pInfo->pFileSetReader, "total_size", &totalSize); QUERY_CHECK_CODE(code, lino, _end); - pColInfoData = taosArrayGet(p->pDataBlock, 6); + pColInfoData = taosArrayGet(p->pDataBlock, index++); QUERY_CHECK_NULL(pColInfoData, code, lino, _end, terrno); code = colDataSetVal(pColInfoData, numOfRows, (char*)&totalSize, false); QUERY_CHECK_CODE(code, lino, _end); @@ -2118,7 +2112,7 @@ static SSDataBlock* sysTableBuildUserFileSets(SOperatorInfo* pOperator) { int64_t lastCompacat = 0; code = pAPI->tsdReader.fileSetGetEntryField(pInfo->pFileSetReader, "last_compact_time", &lastCompacat); QUERY_CHECK_CODE(code, lino, _end); - pColInfoData = taosArrayGet(p->pDataBlock, 7); + pColInfoData = taosArrayGet(p->pDataBlock, index++); QUERY_CHECK_NULL(pColInfoData, code, lino, _end, terrno); code = colDataSetVal(pColInfoData, numOfRows, (char*)&lastCompacat, false); QUERY_CHECK_CODE(code, lino, _end); @@ -2127,7 +2121,7 @@ static SSDataBlock* sysTableBuildUserFileSets(SOperatorInfo* pOperator) { bool shouldCompact = false; code = pAPI->tsdReader.fileSetGetEntryField(pInfo->pFileSetReader, "should_compact", &shouldCompact); QUERY_CHECK_CODE(code, lino, _end); - pColInfoData = taosArrayGet(p->pDataBlock, 8); + pColInfoData = taosArrayGet(p->pDataBlock, index++); QUERY_CHECK_NULL(pColInfoData, code, lino, _end, terrno); code = colDataSetVal(pColInfoData, numOfRows, (char*)&shouldCompact, false); QUERY_CHECK_CODE(code, lino, _end); @@ -2136,7 +2130,7 @@ static SSDataBlock* sysTableBuildUserFileSets(SOperatorInfo* pOperator) { // const char* details = NULL; // code = pAPI->tsdReader.fileSetGetEntryField(pInfo->pFileSetReader, "details", &details); // QUERY_CHECK_CODE(code, lino, _end); - // pColInfoData = taosArrayGet(p->pDataBlock, 9); + // pColInfoData = taosArrayGet(p->pDataBlock, index++); // QUERY_CHECK_NULL(pColInfoData, code, lino, _end, terrno); // code = colDataSetVal(pColInfoData, numOfRows, (char*)&vgId, false); // QUERY_CHECK_CODE(code, lino, _end);