From b84b9f1d668b9e9d09f197541768838b061e7c1c Mon Sep 17 00:00:00 2001 From: kailixu Date: Mon, 23 Sep 2024 14:36:51 +0800 Subject: [PATCH 1/4] enh: return value process --- source/common/src/tcol.c | 6 +++--- source/common/src/trow.c | 39 +++++++++++++++++++++------------------ 2 files changed, 24 insertions(+), 21 deletions(-) diff --git a/source/common/src/tcol.c b/source/common/src/tcol.c index 17972c6777..84027c25b6 100644 --- a/source/common/src/tcol.c +++ b/source/common/src/tcol.c @@ -238,7 +238,7 @@ const char* columnLevelStr(uint8_t type) { bool checkColumnEncode(char encode[TSDB_CL_COMPRESS_OPTION_LEN]) { if (0 == strlen(encode)) return true; - (void)strtolower(encode, encode); + TAOS_UNUSED(strtolower(encode, encode)); for (int i = 0; i < supportedEncodeNum; ++i) { if (0 == strcmp((const char*)encode, supportedEncode[i])) { return true; @@ -255,7 +255,7 @@ bool checkColumnEncodeOrSetDefault(uint8_t type, char encode[TSDB_CL_COMPRESS_OP } bool checkColumnCompress(char compress[TSDB_CL_COMPRESS_OPTION_LEN]) { if (0 == strlen(compress)) return true; - (void)strtolower(compress, compress); + TAOS_UNUSED(strtolower(compress, compress)); for (int i = 0; i < supportedCompressNum; ++i) { if (0 == strcmp((const char*)compress, supportedCompress[i])) { return true; @@ -273,7 +273,7 @@ bool checkColumnCompressOrSetDefault(uint8_t type, char compress[TSDB_CL_COMPRES } bool checkColumnLevel(char level[TSDB_CL_COMPRESS_OPTION_LEN]) { if (0 == strlen(level)) return true; - (void)strtolower(level, level); + TAOS_UNUSED(strtolower(level, level)); if (1 == strlen(level)) { if ('h' == level[0] || 'm' == level[0] || 'l' == level[0]) return true; } else { diff --git a/source/common/src/trow.c b/source/common/src/trow.c index 40b4f863cb..626d1141e0 100644 --- a/source/common/src/trow.c +++ b/source/common/src/trow.c @@ -54,6 +54,7 @@ bool tdSTSRowIterFetch(STSRowIter *pIter, col_id_t colId, col_type_t colType, SC return true; } + bool ret = true; if (TD_IS_TP_ROW(pIter->pRow)) { STColumn *pCol = NULL; STSchema *pSchema = pIter->pSchema; @@ -68,16 +69,16 @@ bool tdSTSRowIterFetch(STSRowIter *pIter, col_id_t colId, col_type_t colType, SC return false; } } - (void)tdSTSRowIterGetTpVal(pIter, pCol->type, pCol->offset, pVal); + ret = tdSTSRowIterGetTpVal(pIter, pCol->type, pCol->offset, pVal); ++pIter->colIdx; } else if (TD_IS_KV_ROW(pIter->pRow)) { - return tdSTSRowIterGetKvVal(pIter, colId, &pIter->kvIdx, pVal); + ret = tdSTSRowIterGetKvVal(pIter, colId, &pIter->kvIdx, pVal); } else { pVal->valType = TD_VTYPE_NONE; terrno = TSDB_CODE_INVALID_PARA; - if (COL_REACH_END(colId, pIter->maxColId)) return false; + if (COL_REACH_END(colId, pIter->maxColId)) ret = false; } - return true; + return ret; } bool tdSTSRowIterGetTpVal(STSRowIter *pIter, col_type_t colType, int32_t offset, SCellVal *pVal) { @@ -138,7 +139,7 @@ int32_t tdGetBitmapValTypeII(const void *pBitmap, int16_t colIdx, TDRowValT *pVa int32_t tdGetBitmapValType(const void *pBitmap, int16_t colIdx, TDRowValT *pValType, int8_t bitmapMode) { switch (bitmapMode) { case 0: - (void)tdGetBitmapValTypeII(pBitmap, colIdx, pValType); + return tdGetBitmapValTypeII(pBitmap, colIdx, pValType); break; #if 0 case -1: @@ -365,7 +366,7 @@ bool tdSTpRowGetVal(STSRow *pRow, col_id_t colId, col_type_t colType, int32_t fl return true; } void *pBitmap = tdGetBitmapAddrTp(pRow, flen); - (void)tdGetTpRowValOfCol(pVal, pRow, pBitmap, colType, offset, colIdx); + if (tdGetTpRowValOfCol(pVal, pRow, pBitmap, colType, offset, colIdx)) return false; return true; } @@ -383,16 +384,17 @@ bool tdSTSRowIterNext(STSRowIter *pIter, SCellVal *pVal) { return true; } + bool ret = true; if (TD_IS_TP_ROW(pIter->pRow)) { - (void)tdSTSRowIterGetTpVal(pIter, pCol->type, pCol->offset, pVal); + ret = tdSTSRowIterGetTpVal(pIter, pCol->type, pCol->offset, pVal); } else if (TD_IS_KV_ROW(pIter->pRow)) { - (void)tdSTSRowIterGetKvVal(pIter, pCol->colId, &pIter->kvIdx, pVal); + ret = tdSTSRowIterGetKvVal(pIter, pCol->colId, &pIter->kvIdx, pVal); } else { return false; } ++pIter->colIdx; - return true; + return ret; } int32_t tdSTSRowNew(SArray *pArray, STSchema *pTSchema, STSRow **ppRow, int8_t rowType) { @@ -488,8 +490,8 @@ int32_t tdSTSRowNew(SArray *pArray, STSchema *pTSchema, STSRow **ppRow, int8_t r SRowBuilder rb = {.rowType = rowType}; tdSRowInit(&rb, pTSchema->version); - (void)tdSRowSetInfo(&rb, pTSchema->numOfCols, nBound, pTSchema->flen); - (void)tdSRowResetBuf(&rb, *ppRow); + TAOS_CHECK_GOTO(tdSRowSetInfo(&rb, pTSchema->numOfCols, nBound, pTSchema->flen), NULL, _exit); + TAOS_CHECK_GOTO(tdSRowResetBuf(&rb, *ppRow), NULL, _exit); int32_t iBound = 0; iColVal = 0; @@ -566,6 +568,7 @@ bool tdSTSRowGetVal(STSRowIter *pIter, col_id_t colId, col_type_t colType, SCell return true; } + bool ret = true; STSRow *pRow = pIter->pRow; int16_t colIdx = -1; if (TD_IS_TP_ROW(pRow)) { @@ -580,7 +583,7 @@ bool tdSTSRowGetVal(STSRowIter *pIter, col_id_t colId, col_type_t colType, SCell #ifdef TD_SUPPORT_BITMAP colIdx = POINTER_DISTANCE(pCol, pSchema->columns) / sizeof(STColumn); #endif - (void)tdGetTpRowValOfCol(pVal, pRow, pIter->pBitmap, pCol->type, pCol->offset, colIdx - 1); + if (tdGetTpRowValOfCol(pVal, pRow, pIter->pBitmap, pCol->type, pCol->offset, colIdx - 1)) ret = false; } else if (TD_IS_KV_ROW(pRow)) { SKvRowIdx *pIdx = (SKvRowIdx *)taosbsearch(&colId, TD_ROW_COL_IDX(pRow), tdRowGetNCols(pRow), sizeof(SKvRowIdx), compareKvRowColId, TD_EQ); @@ -589,13 +592,13 @@ bool tdSTSRowGetVal(STSRowIter *pIter, col_id_t colId, col_type_t colType, SCell colIdx = POINTER_DISTANCE(pIdx, TD_ROW_COL_IDX(pRow)) / sizeof(SKvRowIdx); } #endif - (void)tdGetKvRowValOfCol(pVal, pRow, pIter->pBitmap, pIdx ? pIdx->offset : -1, colIdx); + if (tdGetKvRowValOfCol(pVal, pRow, pIter->pBitmap, pIdx ? pIdx->offset : -1, colIdx)) ret = false; } else { if (COL_REACH_END(colId, pIter->maxColId)) return false; pVal->valType = TD_VTYPE_NONE; } - return true; + return ret; } int32_t tdGetKvRowValOfCol(SCellVal *output, STSRow *pRow, void *pBitmap, int32_t offset, int16_t colIdx) { @@ -694,9 +697,9 @@ int32_t tdAppendColValToRow(SRowBuilder *pBuilder, col_id_t colId, int8_t colTyp } if (TD_IS_TP_ROW(pRow)) { - (void)tdAppendColValToTpRow(pBuilder, valType, val, isCopyVarData, colType, colIdx, offset); + TAOS_CHECK_RETURN(tdAppendColValToTpRow(pBuilder, valType, val, isCopyVarData, colType, colIdx, offset)); } else { - (void)tdAppendColValToKvRow(pBuilder, valType, val, isCopyVarData, colType, colIdx, offset, colId); + TAOS_CHECK_RETURN(tdAppendColValToKvRow(pBuilder, valType, val, isCopyVarData, colType, colIdx, offset, colId)); } TAOS_RETURN(TSDB_CODE_SUCCESS); } @@ -947,9 +950,9 @@ int32_t tTSRowGetVal(STSRow *pRow, STSchema *pTSchema, int16_t iCol, SColVal *pC } if (TD_IS_TP_ROW(pRow)) { - (void)tdSTpRowGetVal(pRow, pTColumn->colId, pTColumn->type, pTSchema->flen, pTColumn->offset, iCol - 1, &cv); + TAOS_UNUSED(tdSTpRowGetVal(pRow, pTColumn->colId, pTColumn->type, pTSchema->flen, pTColumn->offset, iCol - 1, &cv)); } else if (TD_IS_KV_ROW(pRow)) { - (void)tdSKvRowGetVal(pRow, pTColumn->colId, iCol - 1, &cv); + TAOS_UNUSED(tdSKvRowGetVal(pRow, pTColumn->colId, iCol - 1, &cv)); } else { TAOS_RETURN(TSDB_CODE_INVALID_PARA); } From 4d26e8e40af9488b5235b6df53e5ef6c34ccec13 Mon Sep 17 00:00:00 2001 From: gccgdb1234 Date: Tue, 24 Sep 2024 08:32:24 +0800 Subject: [PATCH 2/4] docs: change according to Jeff's comments --- .../01-collection/02-prometheus.md | 0 .../01-collection/03-telegraf.md | 0 .../01-collection/05-collectd.md | 0 .../01-collection/06-statsd.md | 0 .../01-collection/07-icinga2.md | 0 .../01-collection/08-tcollector.md | 0 .../01-collection/09-emq-broker.md | 0 .../01-collection/10-hive-mq-broker.md | 0 .../01-collection/11-kafka.md | 0 .../emqx/add-action-handler.webp | Bin .../emqx/check-result-in-taos.webp | Bin .../emqx/check-rule-matched.webp | Bin .../01-collection/emqx/client-num.webp | Bin .../01-collection/emqx/create-resource.webp | Bin .../01-collection/emqx/create-rule.webp | Bin .../01-collection/emqx/edit-action.webp | Bin .../01-collection/emqx/edit-resource.webp | Bin .../01-collection/emqx/login-dashboard.webp | Bin .../01-collection/emqx/rule-engine.webp | Bin .../emqx/rule-header-key-value.webp | Bin .../01-collection/emqx/run-mock.webp | Bin .../01-collection/index.md | 0 .../01-collection/kafka/Kafka_Connect.webp | Bin .../kafka/confluentPlatform.webp | Bin ...eaming-integration-with-kafka-connect.webp | Bin .../03-visual/01-grafana.mdx | 0 .../03-visual/add_datasource1.webp | Bin .../03-visual/add_datasource2.webp | Bin .../03-visual/add_datasource3.webp | Bin .../03-visual/add_datasource4.webp | Bin .../03-visual/alert-annotations.webp | Bin .../03-visual/alert-email.webp | Bin .../03-visual/alert-evaluation.webp | Bin .../03-visual/alert-feishu1.webp | Bin .../03-visual/alert-feishu2.webp | Bin .../03-visual/alert-labels.webp | Bin .../03-visual/alert-notification1.webp | Bin .../03-visual/alert-notification2.webp | Bin .../03-visual/alert-rules1.webp | Bin .../03-visual/create_dashboard1.webp | Bin .../03-visual/create_dashboard2.webp | Bin .../03-visual/create_dashboard3.webp | Bin .../03-visual/dashboard-15146.webp | Bin .../03-visual/grafana-data-source.png | Bin .../03-visual/grafana-install-and-config.png | Bin .../grafana-plugin-search-tdengine.png | Bin .../03-visual/import_dashboard.webp | Bin .../03-visual/import_dashboard1.webp | Bin .../03-visual/import_dashboard2.webp | Bin .../03-visual/index.md | 0 .../05-bi/01-looker.md | 0 .../05-bi/03-powerbi.md | 0 .../05-bi/05-yhbi.md | 0 .../05-bi/09-seeq.md | 0 .../05-bi/gds/gds-01.webp | Bin .../05-bi/gds/gds-02.png.webp | Bin .../05-bi/gds/gds-03.png.webp | Bin .../05-bi/gds/gds-04.png.webp | Bin .../05-bi/gds/gds-05.png.webp | Bin .../05-bi/gds/gds-06.png.webp | Bin .../05-bi/gds/gds-07.png.webp | Bin .../05-bi/gds/gds-08.png.webp | Bin .../05-bi/gds/gds-09.png.webp | Bin .../05-bi/gds/gds-10.png.webp | Bin .../05-bi/gds/gds-11.png.webp | Bin .../05-bi/index.md | 0 .../05-bi/seeq/seeq-demo-schema.webp | Bin .../05-bi/seeq/seeq-demo-workbench.webp | Bin .../05-bi/seeq/seeq-forecast-result.webp | Bin .../seeq-workbench-with-tdengine-cloud.webp | Bin .../07-tool/01-dbeaver.md | 0 .../07-tool/03-qstudio.md | 0 .../dbeaver/dbeaver-browse-cloud-data-zh.webp | Bin .../dbeaver/dbeaver-browse-data-zh.webp | Bin .../dbeaver/dbeaver-config-tdengine-zh.webp | Bin ...beaver-connect-tdengine-cloud-test-zh.webp | Bin .../dbeaver-connect-tdengine-cloud-zh.webp | Bin .../dbeaver-connect-tdengine-test-zh.webp | Bin .../dbeaver/dbeaver-connect-tdengine-zh.webp | Bin .../dbeaver-sql-execution-cloud-zh.webp | Bin .../dbeaver/dbeaver-sql-execution-zh.webp | Bin .../dbeaver/tdengine-cloud-jdbc-dsn-zh.webp | Bin .../07-tool/index.md | 4 +- .../07-tool/qstudio/qstudio-browse-data.webp | Bin .../07-tool/qstudio/qstudio-chart.webp | Bin .../qstudio-connect-tdengine-test.webp | Bin .../qstudio/qstudio-connect-tdengine.webp | Bin .../qstudio-jdbc-connector-download.webp | Bin .../qstudio/qstudio-sql-execution.webp | Bin .../_75-powerbi.md | 0 .../_76-yonghongbi.md | 0 .../_deploytaosadapter.mdx | 0 .../index.md | 0 .../powerbi-step-zh.png | Bin .../yonghongbi-step-zh.png | Bin .../14-reference/01-components/08-taos-cli.md | 102 ---- .../14-reference/01-components/09-taosdump.md | 127 ----- .../01-components/10-taosbenchmark.md | 485 ------------------ 98 files changed, 2 insertions(+), 716 deletions(-) rename docs/zh/{20-third-party => 10-third-party}/01-collection/02-prometheus.md (100%) rename docs/zh/{20-third-party => 10-third-party}/01-collection/03-telegraf.md (100%) rename docs/zh/{20-third-party => 10-third-party}/01-collection/05-collectd.md (100%) rename docs/zh/{20-third-party => 10-third-party}/01-collection/06-statsd.md (100%) rename docs/zh/{20-third-party => 10-third-party}/01-collection/07-icinga2.md (100%) rename docs/zh/{20-third-party => 10-third-party}/01-collection/08-tcollector.md (100%) rename docs/zh/{20-third-party => 10-third-party}/01-collection/09-emq-broker.md (100%) rename docs/zh/{20-third-party => 10-third-party}/01-collection/10-hive-mq-broker.md (100%) rename docs/zh/{20-third-party => 10-third-party}/01-collection/11-kafka.md (100%) rename docs/zh/{20-third-party => 10-third-party}/01-collection/emqx/add-action-handler.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/01-collection/emqx/check-result-in-taos.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/01-collection/emqx/check-rule-matched.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/01-collection/emqx/client-num.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/01-collection/emqx/create-resource.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/01-collection/emqx/create-rule.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/01-collection/emqx/edit-action.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/01-collection/emqx/edit-resource.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/01-collection/emqx/login-dashboard.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/01-collection/emqx/rule-engine.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/01-collection/emqx/rule-header-key-value.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/01-collection/emqx/run-mock.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/01-collection/index.md (100%) rename docs/zh/{20-third-party => 10-third-party}/01-collection/kafka/Kafka_Connect.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/01-collection/kafka/confluentPlatform.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/01-collection/kafka/streaming-integration-with-kafka-connect.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/03-visual/01-grafana.mdx (100%) rename docs/zh/{20-third-party => 10-third-party}/03-visual/add_datasource1.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/03-visual/add_datasource2.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/03-visual/add_datasource3.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/03-visual/add_datasource4.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/03-visual/alert-annotations.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/03-visual/alert-email.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/03-visual/alert-evaluation.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/03-visual/alert-feishu1.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/03-visual/alert-feishu2.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/03-visual/alert-labels.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/03-visual/alert-notification1.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/03-visual/alert-notification2.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/03-visual/alert-rules1.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/03-visual/create_dashboard1.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/03-visual/create_dashboard2.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/03-visual/create_dashboard3.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/03-visual/dashboard-15146.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/03-visual/grafana-data-source.png (100%) rename docs/zh/{20-third-party => 10-third-party}/03-visual/grafana-install-and-config.png (100%) rename docs/zh/{20-third-party => 10-third-party}/03-visual/grafana-plugin-search-tdengine.png (100%) rename docs/zh/{20-third-party => 10-third-party}/03-visual/import_dashboard.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/03-visual/import_dashboard1.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/03-visual/import_dashboard2.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/03-visual/index.md (100%) rename docs/zh/{20-third-party => 10-third-party}/05-bi/01-looker.md (100%) rename docs/zh/{20-third-party => 10-third-party}/05-bi/03-powerbi.md (100%) rename docs/zh/{20-third-party => 10-third-party}/05-bi/05-yhbi.md (100%) rename docs/zh/{20-third-party => 10-third-party}/05-bi/09-seeq.md (100%) rename docs/zh/{20-third-party => 10-third-party}/05-bi/gds/gds-01.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/05-bi/gds/gds-02.png.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/05-bi/gds/gds-03.png.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/05-bi/gds/gds-04.png.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/05-bi/gds/gds-05.png.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/05-bi/gds/gds-06.png.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/05-bi/gds/gds-07.png.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/05-bi/gds/gds-08.png.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/05-bi/gds/gds-09.png.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/05-bi/gds/gds-10.png.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/05-bi/gds/gds-11.png.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/05-bi/index.md (100%) rename docs/zh/{20-third-party => 10-third-party}/05-bi/seeq/seeq-demo-schema.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/05-bi/seeq/seeq-demo-workbench.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/05-bi/seeq/seeq-forecast-result.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/05-bi/seeq/seeq-workbench-with-tdengine-cloud.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/07-tool/01-dbeaver.md (100%) rename docs/zh/{20-third-party => 10-third-party}/07-tool/03-qstudio.md (100%) rename docs/zh/{20-third-party => 10-third-party}/07-tool/dbeaver/dbeaver-browse-cloud-data-zh.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/07-tool/dbeaver/dbeaver-browse-data-zh.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/07-tool/dbeaver/dbeaver-config-tdengine-zh.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/07-tool/dbeaver/dbeaver-connect-tdengine-cloud-test-zh.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/07-tool/dbeaver/dbeaver-connect-tdengine-cloud-zh.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/07-tool/dbeaver/dbeaver-connect-tdengine-test-zh.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/07-tool/dbeaver/dbeaver-connect-tdengine-zh.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/07-tool/dbeaver/dbeaver-sql-execution-cloud-zh.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/07-tool/dbeaver/dbeaver-sql-execution-zh.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/07-tool/dbeaver/tdengine-cloud-jdbc-dsn-zh.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/07-tool/index.md (72%) rename docs/zh/{20-third-party => 10-third-party}/07-tool/qstudio/qstudio-browse-data.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/07-tool/qstudio/qstudio-chart.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/07-tool/qstudio/qstudio-connect-tdengine-test.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/07-tool/qstudio/qstudio-connect-tdengine.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/07-tool/qstudio/qstudio-jdbc-connector-download.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/07-tool/qstudio/qstudio-sql-execution.webp (100%) rename docs/zh/{20-third-party => 10-third-party}/_75-powerbi.md (100%) rename docs/zh/{20-third-party => 10-third-party}/_76-yonghongbi.md (100%) rename docs/zh/{20-third-party => 10-third-party}/_deploytaosadapter.mdx (100%) rename docs/zh/{20-third-party => 10-third-party}/index.md (100%) rename docs/zh/{20-third-party => 10-third-party}/powerbi-step-zh.png (100%) rename docs/zh/{20-third-party => 10-third-party}/yonghongbi-step-zh.png (100%) delete mode 100644 docs/zh/14-reference/01-components/08-taos-cli.md delete mode 100644 docs/zh/14-reference/01-components/09-taosdump.md delete mode 100644 docs/zh/14-reference/01-components/10-taosbenchmark.md diff --git a/docs/zh/20-third-party/01-collection/02-prometheus.md b/docs/zh/10-third-party/01-collection/02-prometheus.md similarity index 100% rename from docs/zh/20-third-party/01-collection/02-prometheus.md rename to docs/zh/10-third-party/01-collection/02-prometheus.md diff --git a/docs/zh/20-third-party/01-collection/03-telegraf.md b/docs/zh/10-third-party/01-collection/03-telegraf.md similarity index 100% rename from docs/zh/20-third-party/01-collection/03-telegraf.md rename to docs/zh/10-third-party/01-collection/03-telegraf.md diff --git a/docs/zh/20-third-party/01-collection/05-collectd.md b/docs/zh/10-third-party/01-collection/05-collectd.md similarity index 100% rename from docs/zh/20-third-party/01-collection/05-collectd.md rename to docs/zh/10-third-party/01-collection/05-collectd.md diff --git a/docs/zh/20-third-party/01-collection/06-statsd.md b/docs/zh/10-third-party/01-collection/06-statsd.md similarity index 100% rename from docs/zh/20-third-party/01-collection/06-statsd.md rename to docs/zh/10-third-party/01-collection/06-statsd.md diff --git a/docs/zh/20-third-party/01-collection/07-icinga2.md b/docs/zh/10-third-party/01-collection/07-icinga2.md similarity index 100% rename from docs/zh/20-third-party/01-collection/07-icinga2.md rename to docs/zh/10-third-party/01-collection/07-icinga2.md diff --git a/docs/zh/20-third-party/01-collection/08-tcollector.md b/docs/zh/10-third-party/01-collection/08-tcollector.md similarity index 100% rename from docs/zh/20-third-party/01-collection/08-tcollector.md rename to docs/zh/10-third-party/01-collection/08-tcollector.md diff --git a/docs/zh/20-third-party/01-collection/09-emq-broker.md b/docs/zh/10-third-party/01-collection/09-emq-broker.md similarity index 100% rename from docs/zh/20-third-party/01-collection/09-emq-broker.md rename to docs/zh/10-third-party/01-collection/09-emq-broker.md diff --git a/docs/zh/20-third-party/01-collection/10-hive-mq-broker.md b/docs/zh/10-third-party/01-collection/10-hive-mq-broker.md similarity index 100% rename from docs/zh/20-third-party/01-collection/10-hive-mq-broker.md rename to docs/zh/10-third-party/01-collection/10-hive-mq-broker.md diff --git a/docs/zh/20-third-party/01-collection/11-kafka.md b/docs/zh/10-third-party/01-collection/11-kafka.md similarity index 100% rename from docs/zh/20-third-party/01-collection/11-kafka.md rename to docs/zh/10-third-party/01-collection/11-kafka.md diff --git a/docs/zh/20-third-party/01-collection/emqx/add-action-handler.webp b/docs/zh/10-third-party/01-collection/emqx/add-action-handler.webp similarity index 100% rename from docs/zh/20-third-party/01-collection/emqx/add-action-handler.webp rename to docs/zh/10-third-party/01-collection/emqx/add-action-handler.webp diff --git a/docs/zh/20-third-party/01-collection/emqx/check-result-in-taos.webp b/docs/zh/10-third-party/01-collection/emqx/check-result-in-taos.webp similarity index 100% rename from docs/zh/20-third-party/01-collection/emqx/check-result-in-taos.webp rename to docs/zh/10-third-party/01-collection/emqx/check-result-in-taos.webp diff --git a/docs/zh/20-third-party/01-collection/emqx/check-rule-matched.webp b/docs/zh/10-third-party/01-collection/emqx/check-rule-matched.webp similarity index 100% rename from docs/zh/20-third-party/01-collection/emqx/check-rule-matched.webp rename to docs/zh/10-third-party/01-collection/emqx/check-rule-matched.webp diff --git a/docs/zh/20-third-party/01-collection/emqx/client-num.webp b/docs/zh/10-third-party/01-collection/emqx/client-num.webp similarity index 100% rename from docs/zh/20-third-party/01-collection/emqx/client-num.webp rename to docs/zh/10-third-party/01-collection/emqx/client-num.webp diff --git a/docs/zh/20-third-party/01-collection/emqx/create-resource.webp b/docs/zh/10-third-party/01-collection/emqx/create-resource.webp similarity index 100% rename from docs/zh/20-third-party/01-collection/emqx/create-resource.webp rename to docs/zh/10-third-party/01-collection/emqx/create-resource.webp diff --git a/docs/zh/20-third-party/01-collection/emqx/create-rule.webp b/docs/zh/10-third-party/01-collection/emqx/create-rule.webp similarity index 100% rename from docs/zh/20-third-party/01-collection/emqx/create-rule.webp rename to docs/zh/10-third-party/01-collection/emqx/create-rule.webp diff --git a/docs/zh/20-third-party/01-collection/emqx/edit-action.webp b/docs/zh/10-third-party/01-collection/emqx/edit-action.webp similarity index 100% rename from docs/zh/20-third-party/01-collection/emqx/edit-action.webp rename to docs/zh/10-third-party/01-collection/emqx/edit-action.webp diff --git a/docs/zh/20-third-party/01-collection/emqx/edit-resource.webp b/docs/zh/10-third-party/01-collection/emqx/edit-resource.webp similarity index 100% rename from docs/zh/20-third-party/01-collection/emqx/edit-resource.webp rename to docs/zh/10-third-party/01-collection/emqx/edit-resource.webp diff --git a/docs/zh/20-third-party/01-collection/emqx/login-dashboard.webp b/docs/zh/10-third-party/01-collection/emqx/login-dashboard.webp similarity index 100% rename from docs/zh/20-third-party/01-collection/emqx/login-dashboard.webp rename to docs/zh/10-third-party/01-collection/emqx/login-dashboard.webp diff --git a/docs/zh/20-third-party/01-collection/emqx/rule-engine.webp b/docs/zh/10-third-party/01-collection/emqx/rule-engine.webp similarity index 100% rename from docs/zh/20-third-party/01-collection/emqx/rule-engine.webp rename to docs/zh/10-third-party/01-collection/emqx/rule-engine.webp diff --git a/docs/zh/20-third-party/01-collection/emqx/rule-header-key-value.webp b/docs/zh/10-third-party/01-collection/emqx/rule-header-key-value.webp similarity index 100% rename from docs/zh/20-third-party/01-collection/emqx/rule-header-key-value.webp rename to docs/zh/10-third-party/01-collection/emqx/rule-header-key-value.webp diff --git a/docs/zh/20-third-party/01-collection/emqx/run-mock.webp b/docs/zh/10-third-party/01-collection/emqx/run-mock.webp similarity index 100% rename from docs/zh/20-third-party/01-collection/emqx/run-mock.webp rename to docs/zh/10-third-party/01-collection/emqx/run-mock.webp diff --git a/docs/zh/20-third-party/01-collection/index.md b/docs/zh/10-third-party/01-collection/index.md similarity index 100% rename from docs/zh/20-third-party/01-collection/index.md rename to docs/zh/10-third-party/01-collection/index.md diff --git a/docs/zh/20-third-party/01-collection/kafka/Kafka_Connect.webp b/docs/zh/10-third-party/01-collection/kafka/Kafka_Connect.webp similarity index 100% rename from docs/zh/20-third-party/01-collection/kafka/Kafka_Connect.webp rename to docs/zh/10-third-party/01-collection/kafka/Kafka_Connect.webp diff --git a/docs/zh/20-third-party/01-collection/kafka/confluentPlatform.webp b/docs/zh/10-third-party/01-collection/kafka/confluentPlatform.webp similarity index 100% rename from docs/zh/20-third-party/01-collection/kafka/confluentPlatform.webp rename to docs/zh/10-third-party/01-collection/kafka/confluentPlatform.webp diff --git a/docs/zh/20-third-party/01-collection/kafka/streaming-integration-with-kafka-connect.webp b/docs/zh/10-third-party/01-collection/kafka/streaming-integration-with-kafka-connect.webp similarity index 100% rename from docs/zh/20-third-party/01-collection/kafka/streaming-integration-with-kafka-connect.webp rename to docs/zh/10-third-party/01-collection/kafka/streaming-integration-with-kafka-connect.webp diff --git a/docs/zh/20-third-party/03-visual/01-grafana.mdx b/docs/zh/10-third-party/03-visual/01-grafana.mdx similarity index 100% rename from docs/zh/20-third-party/03-visual/01-grafana.mdx rename to docs/zh/10-third-party/03-visual/01-grafana.mdx diff --git a/docs/zh/20-third-party/03-visual/add_datasource1.webp b/docs/zh/10-third-party/03-visual/add_datasource1.webp similarity index 100% rename from docs/zh/20-third-party/03-visual/add_datasource1.webp rename to docs/zh/10-third-party/03-visual/add_datasource1.webp diff --git a/docs/zh/20-third-party/03-visual/add_datasource2.webp b/docs/zh/10-third-party/03-visual/add_datasource2.webp similarity index 100% rename from docs/zh/20-third-party/03-visual/add_datasource2.webp rename to docs/zh/10-third-party/03-visual/add_datasource2.webp diff --git a/docs/zh/20-third-party/03-visual/add_datasource3.webp b/docs/zh/10-third-party/03-visual/add_datasource3.webp similarity index 100% rename from docs/zh/20-third-party/03-visual/add_datasource3.webp rename to docs/zh/10-third-party/03-visual/add_datasource3.webp diff --git a/docs/zh/20-third-party/03-visual/add_datasource4.webp b/docs/zh/10-third-party/03-visual/add_datasource4.webp similarity index 100% rename from docs/zh/20-third-party/03-visual/add_datasource4.webp rename to docs/zh/10-third-party/03-visual/add_datasource4.webp diff --git a/docs/zh/20-third-party/03-visual/alert-annotations.webp b/docs/zh/10-third-party/03-visual/alert-annotations.webp similarity index 100% rename from docs/zh/20-third-party/03-visual/alert-annotations.webp rename to docs/zh/10-third-party/03-visual/alert-annotations.webp diff --git a/docs/zh/20-third-party/03-visual/alert-email.webp b/docs/zh/10-third-party/03-visual/alert-email.webp similarity index 100% rename from docs/zh/20-third-party/03-visual/alert-email.webp rename to docs/zh/10-third-party/03-visual/alert-email.webp diff --git a/docs/zh/20-third-party/03-visual/alert-evaluation.webp b/docs/zh/10-third-party/03-visual/alert-evaluation.webp similarity index 100% rename from docs/zh/20-third-party/03-visual/alert-evaluation.webp rename to docs/zh/10-third-party/03-visual/alert-evaluation.webp diff --git a/docs/zh/20-third-party/03-visual/alert-feishu1.webp b/docs/zh/10-third-party/03-visual/alert-feishu1.webp similarity index 100% rename from docs/zh/20-third-party/03-visual/alert-feishu1.webp rename to docs/zh/10-third-party/03-visual/alert-feishu1.webp diff --git a/docs/zh/20-third-party/03-visual/alert-feishu2.webp b/docs/zh/10-third-party/03-visual/alert-feishu2.webp similarity index 100% rename from docs/zh/20-third-party/03-visual/alert-feishu2.webp rename to docs/zh/10-third-party/03-visual/alert-feishu2.webp diff --git a/docs/zh/20-third-party/03-visual/alert-labels.webp b/docs/zh/10-third-party/03-visual/alert-labels.webp similarity index 100% rename from docs/zh/20-third-party/03-visual/alert-labels.webp rename to docs/zh/10-third-party/03-visual/alert-labels.webp diff --git a/docs/zh/20-third-party/03-visual/alert-notification1.webp b/docs/zh/10-third-party/03-visual/alert-notification1.webp similarity index 100% rename from docs/zh/20-third-party/03-visual/alert-notification1.webp rename to docs/zh/10-third-party/03-visual/alert-notification1.webp diff --git a/docs/zh/20-third-party/03-visual/alert-notification2.webp b/docs/zh/10-third-party/03-visual/alert-notification2.webp similarity index 100% rename from docs/zh/20-third-party/03-visual/alert-notification2.webp rename to docs/zh/10-third-party/03-visual/alert-notification2.webp diff --git a/docs/zh/20-third-party/03-visual/alert-rules1.webp b/docs/zh/10-third-party/03-visual/alert-rules1.webp similarity index 100% rename from docs/zh/20-third-party/03-visual/alert-rules1.webp rename to docs/zh/10-third-party/03-visual/alert-rules1.webp diff --git a/docs/zh/20-third-party/03-visual/create_dashboard1.webp b/docs/zh/10-third-party/03-visual/create_dashboard1.webp similarity index 100% rename from docs/zh/20-third-party/03-visual/create_dashboard1.webp rename to docs/zh/10-third-party/03-visual/create_dashboard1.webp diff --git a/docs/zh/20-third-party/03-visual/create_dashboard2.webp b/docs/zh/10-third-party/03-visual/create_dashboard2.webp similarity index 100% rename from docs/zh/20-third-party/03-visual/create_dashboard2.webp rename to docs/zh/10-third-party/03-visual/create_dashboard2.webp diff --git a/docs/zh/20-third-party/03-visual/create_dashboard3.webp b/docs/zh/10-third-party/03-visual/create_dashboard3.webp similarity index 100% rename from docs/zh/20-third-party/03-visual/create_dashboard3.webp rename to docs/zh/10-third-party/03-visual/create_dashboard3.webp diff --git a/docs/zh/20-third-party/03-visual/dashboard-15146.webp b/docs/zh/10-third-party/03-visual/dashboard-15146.webp similarity index 100% rename from docs/zh/20-third-party/03-visual/dashboard-15146.webp rename to docs/zh/10-third-party/03-visual/dashboard-15146.webp diff --git a/docs/zh/20-third-party/03-visual/grafana-data-source.png b/docs/zh/10-third-party/03-visual/grafana-data-source.png similarity index 100% rename from docs/zh/20-third-party/03-visual/grafana-data-source.png rename to docs/zh/10-third-party/03-visual/grafana-data-source.png diff --git a/docs/zh/20-third-party/03-visual/grafana-install-and-config.png b/docs/zh/10-third-party/03-visual/grafana-install-and-config.png similarity index 100% rename from docs/zh/20-third-party/03-visual/grafana-install-and-config.png rename to docs/zh/10-third-party/03-visual/grafana-install-and-config.png diff --git a/docs/zh/20-third-party/03-visual/grafana-plugin-search-tdengine.png b/docs/zh/10-third-party/03-visual/grafana-plugin-search-tdengine.png similarity index 100% rename from docs/zh/20-third-party/03-visual/grafana-plugin-search-tdengine.png rename to docs/zh/10-third-party/03-visual/grafana-plugin-search-tdengine.png diff --git a/docs/zh/20-third-party/03-visual/import_dashboard.webp b/docs/zh/10-third-party/03-visual/import_dashboard.webp similarity index 100% rename from docs/zh/20-third-party/03-visual/import_dashboard.webp rename to docs/zh/10-third-party/03-visual/import_dashboard.webp diff --git a/docs/zh/20-third-party/03-visual/import_dashboard1.webp b/docs/zh/10-third-party/03-visual/import_dashboard1.webp similarity index 100% rename from docs/zh/20-third-party/03-visual/import_dashboard1.webp rename to docs/zh/10-third-party/03-visual/import_dashboard1.webp diff --git a/docs/zh/20-third-party/03-visual/import_dashboard2.webp b/docs/zh/10-third-party/03-visual/import_dashboard2.webp similarity index 100% rename from docs/zh/20-third-party/03-visual/import_dashboard2.webp rename to docs/zh/10-third-party/03-visual/import_dashboard2.webp diff --git a/docs/zh/20-third-party/03-visual/index.md b/docs/zh/10-third-party/03-visual/index.md similarity index 100% rename from docs/zh/20-third-party/03-visual/index.md rename to docs/zh/10-third-party/03-visual/index.md diff --git a/docs/zh/20-third-party/05-bi/01-looker.md b/docs/zh/10-third-party/05-bi/01-looker.md similarity index 100% rename from docs/zh/20-third-party/05-bi/01-looker.md rename to docs/zh/10-third-party/05-bi/01-looker.md diff --git a/docs/zh/20-third-party/05-bi/03-powerbi.md b/docs/zh/10-third-party/05-bi/03-powerbi.md similarity index 100% rename from docs/zh/20-third-party/05-bi/03-powerbi.md rename to docs/zh/10-third-party/05-bi/03-powerbi.md diff --git a/docs/zh/20-third-party/05-bi/05-yhbi.md b/docs/zh/10-third-party/05-bi/05-yhbi.md similarity index 100% rename from docs/zh/20-third-party/05-bi/05-yhbi.md rename to docs/zh/10-third-party/05-bi/05-yhbi.md diff --git a/docs/zh/20-third-party/05-bi/09-seeq.md b/docs/zh/10-third-party/05-bi/09-seeq.md similarity index 100% rename from docs/zh/20-third-party/05-bi/09-seeq.md rename to docs/zh/10-third-party/05-bi/09-seeq.md diff --git a/docs/zh/20-third-party/05-bi/gds/gds-01.webp b/docs/zh/10-third-party/05-bi/gds/gds-01.webp similarity index 100% rename from docs/zh/20-third-party/05-bi/gds/gds-01.webp rename to docs/zh/10-third-party/05-bi/gds/gds-01.webp diff --git a/docs/zh/20-third-party/05-bi/gds/gds-02.png.webp b/docs/zh/10-third-party/05-bi/gds/gds-02.png.webp similarity index 100% rename from docs/zh/20-third-party/05-bi/gds/gds-02.png.webp rename to docs/zh/10-third-party/05-bi/gds/gds-02.png.webp diff --git a/docs/zh/20-third-party/05-bi/gds/gds-03.png.webp b/docs/zh/10-third-party/05-bi/gds/gds-03.png.webp similarity index 100% rename from docs/zh/20-third-party/05-bi/gds/gds-03.png.webp rename to docs/zh/10-third-party/05-bi/gds/gds-03.png.webp diff --git a/docs/zh/20-third-party/05-bi/gds/gds-04.png.webp b/docs/zh/10-third-party/05-bi/gds/gds-04.png.webp similarity index 100% rename from docs/zh/20-third-party/05-bi/gds/gds-04.png.webp rename to docs/zh/10-third-party/05-bi/gds/gds-04.png.webp diff --git a/docs/zh/20-third-party/05-bi/gds/gds-05.png.webp b/docs/zh/10-third-party/05-bi/gds/gds-05.png.webp similarity index 100% rename from docs/zh/20-third-party/05-bi/gds/gds-05.png.webp rename to docs/zh/10-third-party/05-bi/gds/gds-05.png.webp diff --git a/docs/zh/20-third-party/05-bi/gds/gds-06.png.webp b/docs/zh/10-third-party/05-bi/gds/gds-06.png.webp similarity index 100% rename from docs/zh/20-third-party/05-bi/gds/gds-06.png.webp rename to docs/zh/10-third-party/05-bi/gds/gds-06.png.webp diff --git a/docs/zh/20-third-party/05-bi/gds/gds-07.png.webp b/docs/zh/10-third-party/05-bi/gds/gds-07.png.webp similarity index 100% rename from docs/zh/20-third-party/05-bi/gds/gds-07.png.webp rename to docs/zh/10-third-party/05-bi/gds/gds-07.png.webp diff --git a/docs/zh/20-third-party/05-bi/gds/gds-08.png.webp b/docs/zh/10-third-party/05-bi/gds/gds-08.png.webp similarity index 100% rename from docs/zh/20-third-party/05-bi/gds/gds-08.png.webp rename to docs/zh/10-third-party/05-bi/gds/gds-08.png.webp diff --git a/docs/zh/20-third-party/05-bi/gds/gds-09.png.webp b/docs/zh/10-third-party/05-bi/gds/gds-09.png.webp similarity index 100% rename from docs/zh/20-third-party/05-bi/gds/gds-09.png.webp rename to docs/zh/10-third-party/05-bi/gds/gds-09.png.webp diff --git a/docs/zh/20-third-party/05-bi/gds/gds-10.png.webp b/docs/zh/10-third-party/05-bi/gds/gds-10.png.webp similarity index 100% rename from docs/zh/20-third-party/05-bi/gds/gds-10.png.webp rename to docs/zh/10-third-party/05-bi/gds/gds-10.png.webp diff --git a/docs/zh/20-third-party/05-bi/gds/gds-11.png.webp b/docs/zh/10-third-party/05-bi/gds/gds-11.png.webp similarity index 100% rename from docs/zh/20-third-party/05-bi/gds/gds-11.png.webp rename to docs/zh/10-third-party/05-bi/gds/gds-11.png.webp diff --git a/docs/zh/20-third-party/05-bi/index.md b/docs/zh/10-third-party/05-bi/index.md similarity index 100% rename from docs/zh/20-third-party/05-bi/index.md rename to docs/zh/10-third-party/05-bi/index.md diff --git a/docs/zh/20-third-party/05-bi/seeq/seeq-demo-schema.webp b/docs/zh/10-third-party/05-bi/seeq/seeq-demo-schema.webp similarity index 100% rename from docs/zh/20-third-party/05-bi/seeq/seeq-demo-schema.webp rename to docs/zh/10-third-party/05-bi/seeq/seeq-demo-schema.webp diff --git a/docs/zh/20-third-party/05-bi/seeq/seeq-demo-workbench.webp b/docs/zh/10-third-party/05-bi/seeq/seeq-demo-workbench.webp similarity index 100% rename from docs/zh/20-third-party/05-bi/seeq/seeq-demo-workbench.webp rename to docs/zh/10-third-party/05-bi/seeq/seeq-demo-workbench.webp diff --git a/docs/zh/20-third-party/05-bi/seeq/seeq-forecast-result.webp b/docs/zh/10-third-party/05-bi/seeq/seeq-forecast-result.webp similarity index 100% rename from docs/zh/20-third-party/05-bi/seeq/seeq-forecast-result.webp rename to docs/zh/10-third-party/05-bi/seeq/seeq-forecast-result.webp diff --git a/docs/zh/20-third-party/05-bi/seeq/seeq-workbench-with-tdengine-cloud.webp b/docs/zh/10-third-party/05-bi/seeq/seeq-workbench-with-tdengine-cloud.webp similarity index 100% rename from docs/zh/20-third-party/05-bi/seeq/seeq-workbench-with-tdengine-cloud.webp rename to docs/zh/10-third-party/05-bi/seeq/seeq-workbench-with-tdengine-cloud.webp diff --git a/docs/zh/20-third-party/07-tool/01-dbeaver.md b/docs/zh/10-third-party/07-tool/01-dbeaver.md similarity index 100% rename from docs/zh/20-third-party/07-tool/01-dbeaver.md rename to docs/zh/10-third-party/07-tool/01-dbeaver.md diff --git a/docs/zh/20-third-party/07-tool/03-qstudio.md b/docs/zh/10-third-party/07-tool/03-qstudio.md similarity index 100% rename from docs/zh/20-third-party/07-tool/03-qstudio.md rename to docs/zh/10-third-party/07-tool/03-qstudio.md diff --git a/docs/zh/20-third-party/07-tool/dbeaver/dbeaver-browse-cloud-data-zh.webp b/docs/zh/10-third-party/07-tool/dbeaver/dbeaver-browse-cloud-data-zh.webp similarity index 100% rename from docs/zh/20-third-party/07-tool/dbeaver/dbeaver-browse-cloud-data-zh.webp rename to docs/zh/10-third-party/07-tool/dbeaver/dbeaver-browse-cloud-data-zh.webp diff --git a/docs/zh/20-third-party/07-tool/dbeaver/dbeaver-browse-data-zh.webp b/docs/zh/10-third-party/07-tool/dbeaver/dbeaver-browse-data-zh.webp similarity index 100% rename from docs/zh/20-third-party/07-tool/dbeaver/dbeaver-browse-data-zh.webp rename to docs/zh/10-third-party/07-tool/dbeaver/dbeaver-browse-data-zh.webp diff --git a/docs/zh/20-third-party/07-tool/dbeaver/dbeaver-config-tdengine-zh.webp b/docs/zh/10-third-party/07-tool/dbeaver/dbeaver-config-tdengine-zh.webp similarity index 100% rename from docs/zh/20-third-party/07-tool/dbeaver/dbeaver-config-tdengine-zh.webp rename to docs/zh/10-third-party/07-tool/dbeaver/dbeaver-config-tdengine-zh.webp diff --git a/docs/zh/20-third-party/07-tool/dbeaver/dbeaver-connect-tdengine-cloud-test-zh.webp b/docs/zh/10-third-party/07-tool/dbeaver/dbeaver-connect-tdengine-cloud-test-zh.webp similarity index 100% rename from docs/zh/20-third-party/07-tool/dbeaver/dbeaver-connect-tdengine-cloud-test-zh.webp rename to docs/zh/10-third-party/07-tool/dbeaver/dbeaver-connect-tdengine-cloud-test-zh.webp diff --git a/docs/zh/20-third-party/07-tool/dbeaver/dbeaver-connect-tdengine-cloud-zh.webp b/docs/zh/10-third-party/07-tool/dbeaver/dbeaver-connect-tdengine-cloud-zh.webp similarity index 100% rename from docs/zh/20-third-party/07-tool/dbeaver/dbeaver-connect-tdengine-cloud-zh.webp rename to docs/zh/10-third-party/07-tool/dbeaver/dbeaver-connect-tdengine-cloud-zh.webp diff --git a/docs/zh/20-third-party/07-tool/dbeaver/dbeaver-connect-tdengine-test-zh.webp b/docs/zh/10-third-party/07-tool/dbeaver/dbeaver-connect-tdengine-test-zh.webp similarity index 100% rename from docs/zh/20-third-party/07-tool/dbeaver/dbeaver-connect-tdengine-test-zh.webp rename to docs/zh/10-third-party/07-tool/dbeaver/dbeaver-connect-tdengine-test-zh.webp diff --git a/docs/zh/20-third-party/07-tool/dbeaver/dbeaver-connect-tdengine-zh.webp b/docs/zh/10-third-party/07-tool/dbeaver/dbeaver-connect-tdengine-zh.webp similarity index 100% rename from docs/zh/20-third-party/07-tool/dbeaver/dbeaver-connect-tdengine-zh.webp rename to docs/zh/10-third-party/07-tool/dbeaver/dbeaver-connect-tdengine-zh.webp diff --git a/docs/zh/20-third-party/07-tool/dbeaver/dbeaver-sql-execution-cloud-zh.webp b/docs/zh/10-third-party/07-tool/dbeaver/dbeaver-sql-execution-cloud-zh.webp similarity index 100% rename from docs/zh/20-third-party/07-tool/dbeaver/dbeaver-sql-execution-cloud-zh.webp rename to docs/zh/10-third-party/07-tool/dbeaver/dbeaver-sql-execution-cloud-zh.webp diff --git a/docs/zh/20-third-party/07-tool/dbeaver/dbeaver-sql-execution-zh.webp b/docs/zh/10-third-party/07-tool/dbeaver/dbeaver-sql-execution-zh.webp similarity index 100% rename from docs/zh/20-third-party/07-tool/dbeaver/dbeaver-sql-execution-zh.webp rename to docs/zh/10-third-party/07-tool/dbeaver/dbeaver-sql-execution-zh.webp diff --git a/docs/zh/20-third-party/07-tool/dbeaver/tdengine-cloud-jdbc-dsn-zh.webp b/docs/zh/10-third-party/07-tool/dbeaver/tdengine-cloud-jdbc-dsn-zh.webp similarity index 100% rename from docs/zh/20-third-party/07-tool/dbeaver/tdengine-cloud-jdbc-dsn-zh.webp rename to docs/zh/10-third-party/07-tool/dbeaver/tdengine-cloud-jdbc-dsn-zh.webp diff --git a/docs/zh/20-third-party/07-tool/index.md b/docs/zh/10-third-party/07-tool/index.md similarity index 72% rename from docs/zh/20-third-party/07-tool/index.md rename to docs/zh/10-third-party/07-tool/index.md index 7142e7d425..d7959d48ab 100644 --- a/docs/zh/20-third-party/07-tool/index.md +++ b/docs/zh/10-third-party/07-tool/index.md @@ -1,6 +1,6 @@ --- -sidebar_label: 管理开发 -title: 与各种管理开发工具的集成 +sidebar_label: 数据库管理 +title: 与各种数据库管理开发工具的集成 toc_max_heading_level: 4 --- diff --git a/docs/zh/20-third-party/07-tool/qstudio/qstudio-browse-data.webp b/docs/zh/10-third-party/07-tool/qstudio/qstudio-browse-data.webp similarity index 100% rename from docs/zh/20-third-party/07-tool/qstudio/qstudio-browse-data.webp rename to docs/zh/10-third-party/07-tool/qstudio/qstudio-browse-data.webp diff --git a/docs/zh/20-third-party/07-tool/qstudio/qstudio-chart.webp b/docs/zh/10-third-party/07-tool/qstudio/qstudio-chart.webp similarity index 100% rename from docs/zh/20-third-party/07-tool/qstudio/qstudio-chart.webp rename to docs/zh/10-third-party/07-tool/qstudio/qstudio-chart.webp diff --git a/docs/zh/20-third-party/07-tool/qstudio/qstudio-connect-tdengine-test.webp b/docs/zh/10-third-party/07-tool/qstudio/qstudio-connect-tdengine-test.webp similarity index 100% rename from docs/zh/20-third-party/07-tool/qstudio/qstudio-connect-tdengine-test.webp rename to docs/zh/10-third-party/07-tool/qstudio/qstudio-connect-tdengine-test.webp diff --git a/docs/zh/20-third-party/07-tool/qstudio/qstudio-connect-tdengine.webp b/docs/zh/10-third-party/07-tool/qstudio/qstudio-connect-tdengine.webp similarity index 100% rename from docs/zh/20-third-party/07-tool/qstudio/qstudio-connect-tdengine.webp rename to docs/zh/10-third-party/07-tool/qstudio/qstudio-connect-tdengine.webp diff --git a/docs/zh/20-third-party/07-tool/qstudio/qstudio-jdbc-connector-download.webp b/docs/zh/10-third-party/07-tool/qstudio/qstudio-jdbc-connector-download.webp similarity index 100% rename from docs/zh/20-third-party/07-tool/qstudio/qstudio-jdbc-connector-download.webp rename to docs/zh/10-third-party/07-tool/qstudio/qstudio-jdbc-connector-download.webp diff --git a/docs/zh/20-third-party/07-tool/qstudio/qstudio-sql-execution.webp b/docs/zh/10-third-party/07-tool/qstudio/qstudio-sql-execution.webp similarity index 100% rename from docs/zh/20-third-party/07-tool/qstudio/qstudio-sql-execution.webp rename to docs/zh/10-third-party/07-tool/qstudio/qstudio-sql-execution.webp diff --git a/docs/zh/20-third-party/_75-powerbi.md b/docs/zh/10-third-party/_75-powerbi.md similarity index 100% rename from docs/zh/20-third-party/_75-powerbi.md rename to docs/zh/10-third-party/_75-powerbi.md diff --git a/docs/zh/20-third-party/_76-yonghongbi.md b/docs/zh/10-third-party/_76-yonghongbi.md similarity index 100% rename from docs/zh/20-third-party/_76-yonghongbi.md rename to docs/zh/10-third-party/_76-yonghongbi.md diff --git a/docs/zh/20-third-party/_deploytaosadapter.mdx b/docs/zh/10-third-party/_deploytaosadapter.mdx similarity index 100% rename from docs/zh/20-third-party/_deploytaosadapter.mdx rename to docs/zh/10-third-party/_deploytaosadapter.mdx diff --git a/docs/zh/20-third-party/index.md b/docs/zh/10-third-party/index.md similarity index 100% rename from docs/zh/20-third-party/index.md rename to docs/zh/10-third-party/index.md diff --git a/docs/zh/20-third-party/powerbi-step-zh.png b/docs/zh/10-third-party/powerbi-step-zh.png similarity index 100% rename from docs/zh/20-third-party/powerbi-step-zh.png rename to docs/zh/10-third-party/powerbi-step-zh.png diff --git a/docs/zh/20-third-party/yonghongbi-step-zh.png b/docs/zh/10-third-party/yonghongbi-step-zh.png similarity index 100% rename from docs/zh/20-third-party/yonghongbi-step-zh.png rename to docs/zh/10-third-party/yonghongbi-step-zh.png diff --git a/docs/zh/14-reference/01-components/08-taos-cli.md b/docs/zh/14-reference/01-components/08-taos-cli.md deleted file mode 100644 index c388e7edda..0000000000 --- a/docs/zh/14-reference/01-components/08-taos-cli.md +++ /dev/null @@ -1,102 +0,0 @@ ---- -title: TDengine CLI 参考手册 -sidebar_label: taos -toc_max_heading_level: 4 ---- - -TDengine 命令行程序(以下简称 TDengine CLI)是用户操作 TDengine 实例并与之交互的最简洁最常用的方式。 使用前需要安装 TDengine Server 安装包或 TDengine Client 安装包。 - -## 启动 - -要进入 TDengine CLI,您只要在终端执行 `taos` 即可。 - -```bash -taos -``` - -如果连接服务成功,将会打印出欢迎消息和版本信息。如果失败,则会打印错误消息。 - -TDengine CLI 的提示符号如下: - -```shell -taos> -``` - -进入 TDengine CLI 后,你可执行各种 SQL 语句,包括插入、查询以及各种管理命令。 - -## 执行 SQL 脚本 - -在 TDengine CLI 里可以通过 `source` 命令来运行脚本文件中的多条 SQL 命令。 - -```sql -taos> source ; -``` - -## 在线修改显示字符宽度 - -可以在 TDengine CLI 里使用如下命令调整字符显示宽度 - -```sql -taos> SET MAX_BINARY_DISPLAY_WIDTH ; -``` - -如显示的内容后面以 ... 结尾时,表示该内容已被截断,可通过本命令修改显示字符宽度以显示完整的内容。 - -## 命令行参数 - -您可通过配置命令行参数来改变 TDengine CLI 的行为。以下为常用的几个命令行参数: - -- -h HOST: 要连接的 TDengine 服务端所在服务器的 FQDN, 默认为连接本地服务 -- -P PORT: 指定服务端所用端口号 -- -u USER: 连接时使用的用户名 -- -p PASSWORD: 连接服务端时使用的密码 -- -?, --help: 打印出所有命令行参数 - -还有更多其他参数: - -- -a AUTHSTR: 连接服务端的授权信息 -- -A: 通过用户名和密码计算授权信息 -- -B: 设置 BI 工具显示模式,设置后所有输出都遵循 BI 工具的格式进行输出 -- -c CONFIGDIR: 指定配置文件目录,Linux 环境下默认为 `/etc/taos`,该目录下的配置文件默认名称为 `taos.cfg` -- -C: 打印 -c 指定的目录中 `taos.cfg` 的配置参数 -- -d DATABASE: 指定连接到服务端时使用的数据库 -- -E dsn: 使用 WebSocket DSN 连接云服务或者提供 WebSocket 连接的服务端 -- -f FILE: 以非交互模式执行 SQL 脚本文件。文件中一个 SQL 语句只能占一行 -- -k: 测试服务端运行状态,0: unavailable,1: network ok,2: service ok,3: service degraded,4: exiting -- -l PKTLEN: 网络测试时使用的测试包大小 -- -n NETROLE: 网络连接测试时的测试范围,默认为 `client`, 可选值为 `client`、`server` -- -N PKTNUM: 网络测试时使用的测试包数量 -- -r: 将时间输出出无符号 64 位整数类型(即 C 语音中 uint64_t) -- -R: 使用 RESTful 模式连接服务端 -- -s COMMAND: 以非交互模式执行的 SQL 命令 -- -t: 测试服务端启动状态,状态同-k -- -w DISPLAYWIDTH: 客户端列显示宽度 -- -z TIMEZONE: 指定时区,默认为本地时区 -- -V: 打印出当前版本号 - -示例: - -```bash -taos -h h1.taos.com -s "use db; show tables;" -``` - -## 配置文件 - -也可以通过配置文件中的参数设置来控制 TDengine CLI 的行为。可用配置参数请参考[客户端配置](../../components/taosc) - -## TDengine CLI 小技巧 - -- 可以使用上下光标键查看历史输入的指令 -- 在 TDengine CLI 中使用 `alter user` 命令可以修改用户密码,缺省密码为 `taosdata` -- Ctrl+C 中止正在进行中的查询 -- 执行 `RESET QUERY CACHE` 可清除本地表 Schema 的缓存 -- 批量执行 SQL 语句。可以将一系列的 TDengine CLI 命令(以英文 ; 结尾,每个 SQL 语句为一行)按行存放在文件里,在 TDengine CLI 里执行命令 `source ` 自动执行该文件里所有的 SQL 语句 -- 输入 `q` 或 `quit` 或 `exit` 回车,可以退出 TDengine CLI - -## TDengine CLI 导出查询结果到文件中 - -- 可以使用符号 “>>” 导出查询结果到某个文件中,语法为: sql 查询语句 >> ‘输出文件名’; 输出文件如果不写路径的话,将输出至当前目录下。如 select * from d0 >> ‘/root/d0.csv’; 将把查询结果输出到 /root/d0.csv 中。 - -## TDengine CLI 导入文件中的数据到表中 - -- 可以使用 insert into table_name file '输入文件名',把上一步中导出的数据文件再导入到指定表中。如 insert into d0 file '/root/d0.csv'; 表示把上面导出的数据全部再导致至 d0 表中。 diff --git a/docs/zh/14-reference/01-components/09-taosdump.md b/docs/zh/14-reference/01-components/09-taosdump.md deleted file mode 100644 index 7afe8721ee..0000000000 --- a/docs/zh/14-reference/01-components/09-taosdump.md +++ /dev/null @@ -1,127 +0,0 @@ ---- -title: taosdump 参考手册 -sidebar_label: taosdump -toc_max_heading_level: 4 ---- - -taosdump 是一个支持从运行中的 TDengine 集群备份数据并将备份的数据恢复到相同或另一个运行中的 TDengine 集群中的工具应用程序。 - -taosdump 可以用数据库、超级表或普通表作为逻辑数据单元进行备份,也可以对数据库、超级 -表和普通表中指定时间段内的数据记录进行备份。使用时可以指定数据备份的目录路径,如果 -不指定位置,taosdump 默认会将数据备份到当前目录。 - -如果指定的位置已经有数据文件,taosdump 会提示用户并立即退出,避免数据被覆盖。这意味着同一路径只能被用于一次备份。 -如果看到相关提示,请小心操作。 - -taosdump 是一个逻辑备份工具,它不应被用于备份任何原始数据、环境设置、 -硬件信息、服务端配置或集群的拓扑结构。taosdump 使用 -[ Apache AVRO ](https://avro.apache.org/)作为数据文件格式来存储备份数据。 - -## 安装 - -taosdump 有两种安装方式: - -- 安装 taosTools 官方安装包, 请从[发布历史页面](https://docs.taosdata.com/releases/tools/)页面找到 taosTools 并下载安装。 - -- 单独编译 taos-tools 并安装, 详情请参考 [taos-tools](https://github.com/taosdata/taos-tools) 仓库。 - -## 常用使用场景 - -### taosdump 备份数据 - -1. 备份所有数据库:指定 `-A` 或 `--all-databases` 参数; -2. 备份多个指定数据库:使用 `-D db1,db2,...` 参数; -3. 备份指定数据库中的某些超级表或普通表:使用 `dbname stbname1 stbname2 tbname1 tbname2 ...` 参数,注意这种输入序列第一个参数为数据库名称,且只支持一个数据库,第二个和之后的参数为该数据库中的超级表或普通表名称,中间以空格分隔; -4. 备份系统 log 库:TDengine 集群通常会包含一个系统数据库,名为 `log`,这个数据库内的数据为 TDengine 自我运行的数据,taosdump 默认不会对 log 库进行备份。如果有特定需求对 log 库进行备份,可以使用 `-a` 或 `--allow-sys` 命令行参数。 -5. “宽容”模式备份:taosdump 1.4.1 之后的版本提供 `-n` 参数和 `-L` 参数,用于备份数据时不使用转义字符和“宽容”模式,可以在表名、列名、标签名没使用转义字符的情况下减少备份数据时间和备份数据占用空间。如果不确定符合使用 `-n` 和 `-L` 条件时请使用默认参数进行“严格”模式进行备份。转义字符的说明请参考[官方文档](../../taos-sql/escape)。 - -:::tip -- taosdump 1.4.1 之后的版本提供 `-I` 参数,用于解析 avro 文件 schema 和数据,如果指定 `-s` 参数将只解析 schema。 -- taosdump 1.4.2 之后的备份使用 `-B` 参数指定的批次数,默认值为 16384,如果在某些环境下由于网络速度或磁盘性能不足导致 "Error actual dump .. batch .." 可以通过 `-B` 参数调整为更小的值进行尝试。 -- taosdump 的导出不支持中断恢复,所以当进程意外终止后,正确的处理方式是删除当前已导出或生成的所有相关文件。 -- taosdump 的导入支持中断恢复,但是当进程重新启动时,会收到一些“表已经存在”的提示,可以忽视。 - -::: - -### taosdump 恢复数据 - -恢复指定路径下的数据文件:使用 `-i` 参数加上数据文件所在路径。如前面提及,不应该使用同一个目录备份不同数据集合,也不应该在同一路径多次备份同一数据集,否则备份数据会造成覆盖或多次备份。 - -:::tip -taosdump 内部使用 TDengine stmt binding API 进行恢复数据的写入,为提高数据恢复性能,目前使用 16384 为一次写入批次。如果备份数据中有比较多列数据,可能会导致产生 "WAL size exceeds limit" 错误,此时可以通过使用 `-B` 参数调整为一个更小的值进行尝试。 - -::: - -## 详细命令行参数列表 - -以下为 taosdump 详细命令行参数列表: - -``` -Usage: taosdump [OPTION...] dbname [tbname ...] - or: taosdump [OPTION...] --databases db1,db2,... - or: taosdump [OPTION...] --all-databases - or: taosdump [OPTION...] -i inpath - or: taosdump [OPTION...] -o outpath - - -h, --host=HOST Server host dumping data from. Default is - localhost. - -p, --password User password to connect to server. Default is - taosdata. - -P, --port=PORT Port to connect - -u, --user=USER User name used to connect to server. Default is - root. - -c, --config-dir=CONFIG_DIR Configure directory. Default is /etc/taos - -i, --inpath=INPATH Input file path. - -o, --outpath=OUTPATH Output file path. - -r, --resultFile=RESULTFILE DumpOut/In Result file path and name. - -a, --allow-sys Allow to dump system database - -A, --all-databases Dump all databases. - -D, --databases=DATABASES Dump inputted databases. Use comma to separate - databases' name. - -e, --escape-character Use escaped character for database name - -N, --without-property Dump database without its properties. - -s, --schemaonly Only dump tables' schema. - -d, --avro-codec=snappy Choose an avro codec among null, deflate, snappy, - and lzma. - -S, --start-time=START_TIME Start time to dump. Either epoch or - ISO8601/RFC3339 format is acceptable. ISO8601 - format example: 2017-10-01T00:00:00.000+0800 or - 2017-10-0100:00:00:000+0800 or '2017-10-01 - 00:00:00.000+0800' - -E, --end-time=END_TIME End time to dump. Either epoch or ISO8601/RFC3339 - format is acceptable. ISO8601 format example: - 2017-10-01T00:00:00.000+0800 or - 2017-10-0100:00:00.000+0800 or '2017-10-01 - 00:00:00.000+0800' - -B, --data-batch=DATA_BATCH Number of data per query/insert statement when - backup/restore. Default value is 16384. If you see - 'error actual dump .. batch ..' when backup or if - you see 'WAL size exceeds limit' error when - restore, please adjust the value to a smaller one - and try. The workable value is related to the - length of the row and type of table schema. - -I, --inspect inspect avro file content and print on screen - -L, --loose-mode Using loose mode if the table name and column name - use letter and number only. Default is NOT. - -n, --no-escape No escape char '`'. Default is using it. - -Q, --dot-replace Repalce dot character with underline character in - the table name.(Version 2.5.3) - -T, --thread-num=THREAD_NUM Number of thread for dump in file. Default is - 8. - -C, --cloud=CLOUD_DSN specify a DSN to access TDengine cloud service - -R, --restful Use RESTful interface to connect TDengine - -t, --timeout=SECONDS The timeout seconds for websocket to interact. - -g, --debug Print debug info. - -?, --help Give this help list - --usage Give a short usage message - -V, --version Print program version - -W, --rename=RENAME-LIST Rename database name with new name during - importing data. RENAME-LIST: - "db1=newDB1|db2=newDB2" means rename db1 to newDB1 - and rename db2 to newDB2 (Version 2.5.4) - -Mandatory or optional arguments to long options are also mandatory or optional -for any corresponding short options. - -Report bugs to . -``` diff --git a/docs/zh/14-reference/01-components/10-taosbenchmark.md b/docs/zh/14-reference/01-components/10-taosbenchmark.md deleted file mode 100644 index 3f15d6b8e3..0000000000 --- a/docs/zh/14-reference/01-components/10-taosbenchmark.md +++ /dev/null @@ -1,485 +0,0 @@ ---- -title: taosBenchmark 参考手册 -sidebar_label: taosBenchmark -toc_max_heading_level: 4 ---- - -taosBenchmark (曾用名 taosdemo ) 是一个用于测试 TDengine 产品性能的工具。taosBenchmark 可以测试 TDengine 的插入、查询和订阅等功能的性能,它可以模拟由大量设备产生的大量数据,还可以灵活地控制数据库、超级表、标签列的数量和类型、数据列的数量和类型、子表的数量、每张子表的数据量、插入数据的时间间隔、taosBenchmark 的工作线程数量、是否以及如何插入乱序数据等。为了兼容过往用户的使用习惯,安装包提供 了 taosdemo 作为 taosBenchmark 的软链接。 - -## 安装 - -taosBenchmark 有两种安装方式: - -- 安装 TDengine 官方安装包的同时会自动安装 taosBenchmark, 详情请参考[ TDengine 安装](../../../get-started/)。 - -- 单独编译 taos-tools 并安装, 详情请参考 [taos-tools](https://github.com/taosdata/taos-tools) 仓库。 - -## 运行 - -### 配置和运行方式 - -taosBenchmark 需要在操作系统的终端执行,该工具支持两种配置方式:[命令行参数](#命令行参数详解) 和 [JSON 配置文件](#配置文件参数详解)。这两种方式是互斥的,在使用配置文件时只能使用一个命令行参数 `-f ` 指定配置文件。在使用命令行参数运行 taosBenchmark 并控制其行为时则不能使用 `-f` 参数而要用其它参数来进行配置。除此之外,taosBenchmark 还提供了一种特殊的运行方式,即无参数运行。 - -taosBenchmark 支持对 TDengine 做完备的性能测试,其所支持的 TDengine 功能分为三大类:写入、查询和订阅。这三种功能之间是互斥的,每次运行 taosBenchmark 只能选择其中之一。值得注意的是,所要测试的功能类型在使用命令行配置方式时是不可配置的,命令行配置方式只能测试写入性能。若要测试 TDengine 的查询和订阅性能,必须使用配置文件的方式,通过配置文件中的参数 `filetype` 指定所要测试的功能类型。 - -**在运行 taosBenchmark 之前要确保 TDengine 集群已经在正确运行。** - -### 无命令行参数运行 - -执行下列命令即可快速体验 taosBenchmark 对 TDengine 进行基于默认配置的写入性能测试。 - -```bash -taosBenchmark -``` - -在无参数运行时,taosBenchmark 默认连接 `/etc/taos` 下指定的 TDengine 集群,并在 TDengine 中创建一个名为 test 的数据库,test 数据库下创建名为 meters 的一张超级表,超级表下创建 10000 张表,每张表中写入 10000 条记录。注意,如果已有 test 数据库,这个命令会先删除该数据库后建立一个全新的 test 数据库。 - -### 使用命令行配置参数运行 - -在使用命令行参数运行 taosBenchmark 并控制其行为时,`-f ` 参数不能使用。所有配置参数都必须通过命令行指定。以下是使用命令行方式测试 taosBenchmark 写入性能的一个示例。 - -```bash -taosBenchmark -I stmt -n 200 -t 100 -``` - -上面的命令 `taosBenchmark` 将创建一个名为`test`的数据库,在其中建立一张超级表`meters`,在该超级表中建立 100 张子表并使用参数绑定的方式为每张子表插入 200 条记录。 - -### 使用配置文件运行 - -taosBenchmark 安装包中提供了配置文件的示例,位于 `/examples/taosbenchmark-json` 下 - -使用如下命令行即可运行 taosBenchmark 并通过配置文件控制其行为。 - -```bash -taosBenchmark -f -``` - -**下面是几个配置文件的示例:** - -#### 插入场景 JSON 配置文件示例 - -
-insert.json - -```json -{{#include /taos-tools/example/insert.json}} -``` - -
- -#### 查询场景 JSON 配置文件示例 - -
-query.json - -```json -{{#include /taos-tools/example/query.json}} -``` - -
- -#### 订阅场景 JSON 配置文件示例 - -
-tmq.json - -```json -{{#include /taos-tools/example/tmq.json}} -``` - -
- -## 命令行参数详解 - -- **-f/--file \** : - 要使用的 JSON 配置文件,由该文件指定所有参数,本参数与命令行其他参数不能同时使用。没有默认值。 - -- **-c/--config-dir \** : - TDengine 集群配置文件所在的目录,默认路径是 /etc/taos 。 - -- **-h/--host \** : - 指定要连接的 TDengine 服务端的 FQDN,默认值为 localhost 。 - -- **-P/--port \** : - 要连接的 TDengine 服务器的端口号,默认值为 6030 。 - -- **-I/--interface \** : - 插入模式,可选项有 taosc, rest, stmt, sml, sml-rest, 分别对应普通写入、restful 接口写入、参数绑定接口写入、schemaless 接口写入、restful schemaless 接口写入 (由 taosAdapter 提供)。默认值为 taosc。 - -- **-u/--user \** : - 用于连接 TDengine 服务端的用户名,默认为 root 。 - -- **-U/--supplement-insert ** : - 写入数据而不提前建数据库和表,默认关闭。 - -- **-p/--password \** : - 用于连接 TDengine 服务端的密码,默认值为 taosdata。 - -- **-o/--output \** : - 结果输出文件的路径,默认值为 ./output.txt。 - -- **-T/--thread \** : - 插入数据的线程数量,默认为 8 。 - -- **-B/--interlace-rows \** : - 启用交错插入模式并同时指定向每个子表每次插入的数据行数。交错插入模式是指依次向每张子表插入由本参数所指定的行数并重复这个过程,直到所有子表的数据都插入完成。默认值为 0, 即向一张子表完成数据插入后才会向下一张子表进行数据插入。 - -- **-i/--insert-interval \** : - 指定交错插入模式的插入间隔,单位为 ms,默认值为 0。 只有当 `-B/--interlace-rows` 大于 0 时才起作用。意味着数据插入线程在为每个子表插入隔行扫描记录后,会等待该值指定的时间间隔后再进行下一轮写入。 - -- **-r/--rec-per-req \** : - 每次向 TDengine 请求写入的数据行数,默认值为 30000 。 - -- **-t/--tables \** : - 指定子表的数量,默认为 10000 。 - -- **-S/--timestampstep \** : - 每个子表中插入数据的时间戳步长,单位是 ms,默认值是 1。 - -- **-n/--records \** : - 每个子表插入的记录数,默认值为 10000 。 - -- **-d/--database \** : - 所使用的数据库的名称,默认值为 test 。 - -- **-b/--data-type \** : - 超级表的数据列的类型。如果不使用则默认为有三个数据列,其类型分别为 FLOAT, INT, FLOAT 。 - -- **-l/--columns \** : - 超级表的数据列的总数量。如果同时设置了该参数和 `-b/--data-type`,则最后的结果列数为两者取大。如果本参数指定的数量大于 `-b/--data-type` 指定的列数,则未指定的列类型默认为 INT, 例如: `-l 5 -b float,double`, 那么最后的列为 `FLOAT,DOUBLE,INT,INT,INT`。如果 columns 指定的数量小于或等于 `-b/--data-type` 指定的列数,则结果为 `-b/--data-type` 指定的列和类型,例如: `-l 3 -b float,double,float,bigint`,那么最后的列为 `FLOAT,DOUBLE,FLOAT,BIGINT` 。 - -- **-L/--partial-col-num \ **: - 指定某些列写入数据,其他列数据为 NULL。默认所有列都写入数据。 - -- **-A/--tag-type \** : - 超级表的标签列类型。nchar 和 binary 类型可以同时设置长度,例如: - -``` -taosBenchmark -A INT,DOUBLE,NCHAR,BINARY(16) -``` - -如果没有设置标签类型,默认是两个标签,其类型分别为 INT 和 BINARY(16)。 -注意:在有的 shell 比如 bash 命令里面 “()” 需要转义,则上述指令应为: - -``` -taosBenchmark -A INT,DOUBLE,NCHAR,BINARY\(16\) -``` - -- **-w/--binwidth \**: - nchar 和 binary 类型的默认长度,默认值为 64。 - -- **-m/--table-prefix \** : - 子表名称的前缀,默认值为 "d"。 - -- **-E/--escape-character** : - 开关参数,指定在超级表和子表名称中是否使用转义字符。默认值为不使用。 - -- **-C/--chinese** : - 开关参数,指定 nchar 和 binary 是否使用 Unicode 中文字符。默认值为不使用。 - -- **-N/--normal-table** : - 开关参数,指定只创建普通表,不创建超级表。默认值为 false。仅当插入模式为 taosc, stmt, rest 模式下可以使用。 - -- **-M/--random** : - 开关参数,插入数据为生成的随机值。默认值为 false。若配置此参数,则随机生成要插入的数据。对于数值类型的 标签列/数据列,其值为该类型取值范围内的随机值。对于 NCHAR 和 BINARY 类型的 标签列/数据列,其值为指定长度范围内的随机字符串。 - -- **-x/--aggr-func** : - 开关参数,指示插入后查询聚合函数。默认值为 false。 - -- **-y/--answer-yes** : - 开关参数,要求用户在提示后确认才能继续。默认值为 false 。 - -- **-O/--disorder \** : - 指定乱序数据的百分比概率,其值域为 [0,50]。默认为 0,即没有乱序数据。 - -- **-R/--disorder-range \** : - 指定乱序数据的时间戳回退范围。所生成的乱序时间戳为非乱序情况下应该使用的时间戳减去这个范围内的一个随机值。仅在 `-O/--disorder` 指定的乱序数据百分比大于 0 时有效。 - -- **-F/--prepare_rand \** : - 生成的随机数据中唯一值的数量。若为 1 则表示所有数据都相同。默认值为 10000 。 - -- **-a/--replica \** : - 创建数据库时指定其副本数,默认值为 1 。 - -- ** -k/--keep-trying \** : 失败后进行重试的次数,默认不重试。需使用 v3.0.9 以上版本。 - -- ** -z/--trying-interval \** : 失败重试间隔时间,单位为毫秒,仅在 -k 指定重试后有效。需使用 v3.0.9 以上版本。 - -- **-v/--vgroups \** : - 创建数据库时指定 vgroups 数,仅对 TDengine v3.0+ 有效。 - -- **-V/--version** : - 显示版本信息并退出。不能与其它参数混用。 - -- **-?/--help** : - 显示帮助信息并退出。不能与其它参数混用。 - -## 配置文件参数详解 - -### 通用配置参数 - -本节所列参数适用于所有功能模式。 - -- **filetype** : 要测试的功能,可选值为 `insert`, `query` 和 `subscribe`。分别对应插入、查询和订阅功能。每个配置文件中只能指定其中之一。 -- **cfgdir** : TDengine 客户端配置文件所在的目录,默认路径是 /etc/taos 。 - -- **host** : 指定要连接的 TDengine 服务端的 FQDN,默认值为 localhost。 - -- **port** : 要连接的 TDengine 服务器的端口号,默认值为 6030。 - -- **user** : 用于连接 TDengine 服务端的用户名,默认为 root。 - -- **password** : 用于连接 TDengine 服务端的密码,默认值为 taosdata。 - -### 插入场景配置参数 - -插入场景下 `filetype` 必须设置为 `insert`,该参数及其它通用参数详见[通用配置参数](#通用配置参数) - -- ** keep_trying ** : 失败后进行重试的次数,默认不重试。需使用 v3.0.9 以上版本。 - -- ** trying_interval ** : 失败重试间隔时间,单位为毫秒,仅在 keep_trying 指定重试后有效。需使用 v3.0.9 以上版本。 -- ** childtable_from 和 childtable_to ** : 指定写入子表范围,开闭区间为 [childtable_from, childtable_to). -  -- ** continue_if_fail ** : 允许用户定义失败后行为 - - “continue_if_fail”:  “no”, 失败 taosBenchmark 自动退出,默认行为 - “continue_if_fail”: “yes”, 失败 taosBenchmark 警告用户,并继续写入 - “continue_if_fail”: “smart”, 如果子表不存在失败,taosBenchmark 会建立子表并继续写入 - -#### 数据库相关配置参数 - -创建数据库时的相关参数在 json 配置文件中的 `dbinfo` 中配置,个别具体参数如下。其余参数均与 TDengine 中 `create database` 时所指定的数据库参数相对应,详见[../../taos-sql/database] - -- **name** : 数据库名。 - -- **drop** : 插入前是否删除数据库,可选项为 "yes" 或者 "no", 为 "no" 时不创建。默认删除。 - -#### 流式计算相关配置参数 - -创建流式计算的相关参数在 json 配置文件中的 `stream` 中配置,具体参数如下。 - -- **stream_name** : 流式计算的名称,必填项。 - -- **stream_stb** : 流式计算对应的超级表名称,必填项。 - -- **stream_sql** : 流式计算的sql语句,必填项。 - -- **trigger_mode** : 流式计算的触发模式,可选项。 - -- **watermark** : 流式计算的水印,可选项。 - -- **drop** : 是否创建流式计算,可选项为 "yes" 或者 "no", 为 "no" 时不创建。 - -#### 超级表相关配置参数 - -创建超级表时的相关参数在 json 配置文件中的 `super_tables` 中配置,具体参数如下。 - -- **name**: 超级表名,必须配置,没有默认值。 - -- **child_table_exists** : 子表是否已经存在,默认值为 "no",可选值为 "yes" 或 "no"。 - -- **child_table_count** : 子表的数量,默认值为 10。 - -- **child_table_prefix** : 子表名称的前缀,必选配置项,没有默认值。 - -- **escape_character** : 超级表和子表名称中是否包含转义字符,默认值为 "no",可选值为 "yes" 或 "no"。 - -- **auto_create_table** : 仅当 insert_mode 为 taosc, rest, stmt 并且 child_table_exists 为 "no" 时生效,该参数为 "yes" 表示 taosBenchmark 在插入数据时会自动创建不存在的表;为 "no" 则表示先提前建好所有表再进行插入。 - -- **batch_create_tbl_num** : 创建子表时每批次的建表数量,默认为 10。注:实际的批数不一定与该值相同,当执行的 SQL 语句大于支持的最大长度时,会自动截断再执行,继续创建。 - -- **data_source** : 数据的来源,默认为 taosBenchmark 随机产生,可以配置为 "rand" 和 "sample"。为 "sample" 时使用 sample_file 参数指定的文件内的数据。 - -- **insert_mode** : 插入模式,可选项有 taosc, rest, stmt, sml, sml-rest, 分别对应普通写入、restful 接口写入、参数绑定接口写入、schemaless 接口写入、restful schemaless 接口写入 (由 taosAdapter 提供)。默认值为 taosc 。 - -- **non_stop_mode** : 指定是否持续写入,若为 "yes" 则 insert_rows 失效,直到 Ctrl + C 停止程序,写入才会停止。默认值为 "no",即写入指定数量的记录后停止。注:即使在持续写入模式下 insert_rows 失效,但其也必须被配置为一个非零正整数。 - -- **line_protocol** : 使用行协议插入数据,仅当 insert_mode 为 sml 或 sml-rest 时生效,可选项为 line, telnet, json。 - -- **tcp_transfer** : telnet 模式下的通信协议,仅当 insert_mode 为 sml-rest 并且 line_protocol 为 telnet 时生效。如果不配置,则默认为 http 协议。 - -- **insert_rows** : 每个子表插入的记录数,默认为 0 。 - -- **childtable_offset** : 仅当 child_table_exists 为 yes 时生效,指定从超级表获取子表列表时的偏移量,即从第几个子表开始。 - -- **childtable_limit** : 仅当 child_table_exists 为 yes 时生效,指定从超级表获取子表列表的上限。 - -- **interlace_rows** : 启用交错插入模式并同时指定向每个子表每次插入的数据行数。交错插入模式是指依次向每张子表插入由本参数所指定的行数并重复这个过程,直到所有子表的数据都插入完成。默认值为 0, 即向一张子表完成数据插入后才会向下一张子表进行数据插入。 - -- **insert_interval** : 指定交错插入模式的插入间隔,单位为 ms,默认值为 0。 只有当 `-B/--interlace-rows` 大于 0 时才起作用。意味着数据插入线程在为每个子表插入隔行扫描记录后,会等待该值指定的时间间隔后再进行下一轮写入。 - -- **partial_col_num** : 若该值为正数 n 时, 则仅向前 n 列写入,仅当 insert_mode 为 taosc 和 rest 时生效,如果 n 为 0 则是向全部列写入。 - -- **disorder_ratio** : 指定乱序数据的百分比概率,其值域为 [0,50]。默认为 0,即没有乱序数据。 - -- **disorder_range** : 指定乱序数据的时间戳回退范围。所生成的乱序时间戳为非乱序情况下应该使用的时间戳减去这个范围内的一个随机值。仅在 `-O/--disorder` 指定的乱序数据百分比大于 0 时有效。 - -- **timestamp_step** : 每个子表中插入数据的时间戳步长,单位与数据库的 `precision` 一致,默认值是 1。 - -- **start_timestamp** : 每个子表的时间戳起始值,默认值是 now。 - -- **sample_format** : 样本数据文件的类型,现在只支持 "csv" 。 - -- **sample_file** : 指定 csv 格式的文件作为数据源,仅当 data_source 为 sample 时生效。若 csv 文件内的数据行数小于等于 prepared_rand,那么会循环读取 csv 文件数据直到与 prepared_rand 相同;否则则会只读取 prepared_rand 个数的行的数据。也即最终生成的数据行数为二者取小。 - -- **use_sample_ts** : 仅当 data_source 为 sample 时生效,表示 sample_file 指定的 csv 文件内是否包含第一列时间戳,默认为 no。 若设置为 yes, 则使用 csv 文件第一列作为时间戳,由于同一子表时间戳不能重复,生成的数据量取决于 csv 文件内的数据行数相同,此时 insert_rows 失效。 - -- **tags_file** : 仅当 insert_mode 为 taosc, rest 的模式下生效。 最终的 tag 的数值与 childtable_count 有关,如果 csv 文件内的 tag 数据行小于给定的子表数量,那么会循环读取 csv 文件数据直到生成 childtable_count 指定的子表数量;否则则只会读取 childtable_count 行 tag 数据。也即最终生成的子表数量为二者取小。 - -- **primary_key** : 指定超级表是否有复合主键,取值 1 和 0, 复合主键列只能是超级表的第二列,指定生成复合主键后要确保第二列符合复合主键的数据类型,否则会报错 -- **repeat_ts_min** : 数值类型,复合主键开启情况下指定生成相同时间戳记录的最小个数,生成相同时间戳记录的个数是在范围[repeat_ts_min, repeat_ts_max] 内的随机值, 最小值等于最大值时为固定个数 -- **repeat_ts_max** : 数值类型,复合主键开启情况下指定生成相同时间戳记录的最大个数 -- **sqls** : 字符串数组类型,指定超级表创建成功后要执行的 sql 数组,sql 中指定表名前面要带数据库名,否则会报未指定数据库错误 - -#### tsma配置参数 - -指定tsma的配置参数在 `super_tables` 中的 `tsmas` 中,具体参数如下。 - -- **name** : 指定 tsma 的名字,必选项。 - -- **function** : 指定 tsma 的函数,必选项。 - -- **interval** : 指定 tsma 的时间间隔,必选项。 - -- **sliding** : 指定 tsma 的窗口时间位移,必选项。 - -- **custom** : 指定 tsma 的创建语句结尾追加的自定义配置,可选项。 - -- **start_when_inserted** : 指定当插入多少行时创建 tsma,可选项,默认为 0。 - -#### 标签列与数据列配置参数 - -指定超级表标签列与数据列的配置参数分别在 `super_tables` 中的 `columns` 和 `tag` 中。 - -- **type** : 指定列类型,可选值请参考 TDengine 支持的数据类型。 - 注:JSON 数据类型比较特殊,只能用于标签,当使用 JSON 类型作为 tag 时有且只能有这一个标签,此时 count 和 len 代表的意义分别是 JSON tag 内的 key-value pair 的个数和每个 KV pair 的 value 的值的长度,value 默认为 string。 - -- **len** : 指定该数据类型的长度,对 NCHAR,BINARY 和 JSON 数据类型有效。如果对其他数据类型配置了该参数,若为 0 , 则代表该列始终都是以 null 值写入;如果不为 0 则被忽略。 - -- **count** : 指定该类型列连续出现的数量,例如 "count": 4096 即可生成 4096 个指定类型的列。 - -- **name** : 列的名字,若与 count 同时使用,比如 "name":"current", "count":3, 则 3 个列的名字分别为 current, current_2. current_3。 - -- **min** : 数据类型的 列/标签 的最小值。生成的值将大于或等于最小值。 - -- **max** : 数据类型的 列/标签 的最大值。生成的值将小于最小值。 - -- **fun** : 此列数据以函数填充,目前只支持 sin 和 cos 两函数,输入参数为时间戳换算成角度值,换算公式: 角度 x = 输入的时间列ts值 % 360。同时支持系数调节,随机波动因子调节,以固定格式的表达式展现,如 fun=“10\*sin(x)+100\*random(5)” , x 表示角度,取值 0 ~ 360度,增长步长与时间列步长一致。10 表示乘的系数,100 表示加或减的系数,5 表示波动幅度在 5% 的随机范围内。目前支持的数据类型为 int, bigint, float, double 四种数据类型。注意:表达式为固定模式,不可前后颠倒。 - -- **values** : nchar/binary 列/标签的值域,将从值中随机选择。 - -- **sma**: 将该列加入 SMA 中,值为 "yes" 或者 "no",默认为 "no"。 - -- **encode**: 字符串类型,指定此列两级压缩中的第一级编码算法,详细参见创建超级表 - -- **compress**: 字符串类型,指定此列两级压缩中的第二级加密算法,详细参见创建超级表 - -- **level**: 字符串类型,指定此列两级压缩中的第二级加密算法的压缩率高低,详细参见创建超级表 - -- **gen**: 字符串类型,指定此列生成数据的方式,不指定为随机,若指定为 “order”, 会按自然数顺序增长 - -- **fillNull**: 字符串类型,指定此列是否随机插入 NULL 值,可指定为 “true” 或 "false", 只有当 generate_row_rule 为 2 时有效 - -#### 插入行为配置参数 - -- **thread_count** : 插入数据的线程数量,默认为 8。 - -- **thread_bind_vgroup** : 写入时 vgroup 是否和写入线程绑定,绑定后可提升写入速度, 取值为 "yes" 或 "no",默认值为 “no”, 设置为 “no” 后与原来行为一致。 当设为 “yes” 时,如果 thread_count 数量大小写入数据库的 vgroups 数量, thread_count 自动调整为 vgroups 数量;如果 thread_count 数量小于 vgroups 数量,写入线程数量不做调整,一个线程写完一个 vgroup 数据后再写下一个,同时保持一个 vgroup 同时只能由一个线程写入的规则。 - -- **create_table_thread_count** : 建表的线程数量,默认为 8。 - -- **connection_pool_size** : 预先建立的与 TDengine 服务端之间的连接的数量。若不配置,则与所指定的线程数相同。 - -- **result_file** : 结果输出文件的路径,默认值为 ./output.txt。 - -- **confirm_parameter_prompt** : 开关参数,要求用户在提示后确认才能继续。默认值为 false 。 - -- **interlace_rows** : 启用交错插入模式并同时指定向每个子表每次插入的数据行数。交错插入模式是指依次向每张子表插入由本参数所指定的行数并重复这个过程,直到所有子表的数据都插入完成。默认值为 0, 即向一张子表完成数据插入后才会向下一张子表进行数据插入。 - 在 `super_tables` 中也可以配置该参数,若配置则以 `super_tables` 中的配置为高优先级,覆盖全局设置。 - -- **insert_interval** : - 指定交错插入模式的插入间隔,单位为 ms,默认值为 0。 只有当 `-B/--interlace-rows` 大于 0 时才起作用。意味着数据插入线程在为每个子表插入隔行扫描记录后,会等待该值指定的时间间隔后再进行下一轮写入。 - 在 `super_tables` 中也可以配置该参数,若配置则以 `super_tables` 中的配置为高优先级,覆盖全局设置。 - -- **num_of_records_per_req** : - 每次向 TDengine 请求写入的数据行数,默认值为 30000 。当其设置过大时,TDengine 客户端驱动会返回相应的错误信息,此时需要调低这个参数的设置以满足写入要求。 - -- **prepare_rand** : 生成的随机数据中唯一值的数量。若为 1 则表示所有数据都相同。默认值为 10000 。 - -- **pre_load_tb_meta** :是否提前加载子表的 meta 数据,取值为 “yes” or "no"。当子表数量非常多时,打开此选项可提高写入速度。 - -### 查询场景配置参数 - -查询场景下 `filetype` 必须设置为 `query`。 -`query_times` 指定运行查询的次数,数值类型 - -查询场景可以通过设置 `kill_slow_query_threshold` 和 `kill_slow_query_interval` 参数来控制杀掉慢查询语句的执行,threshold 控制如果 exec_usec 超过指定时间的查询将被 taosBenchmark 杀掉,单位为秒;interval 控制休眠时间,避免持续查询慢查询消耗 CPU ,单位为秒。 - -其它通用参数详见[通用配置参数](#通用配置参数)。 - -#### 执行指定查询语句的配置参数 - -查询指定表(可以指定超级表、子表或普通表)的配置参数在 `specified_table_query` 中设置。 - -- **query_interval** : 查询时间间隔,单位是秒,默认值为 0。 - -- **threads** : 执行查询 SQL 的线程数,默认值为 1。 - -- **sqls**: - - **sql**: 执行的 SQL 命令,必填。 - - **result**: 保存查询结果的文件,未指定则不保存。 - -#### 查询超级表的配置参数 - -查询超级表的配置参数在 `super_table_query` 中设置。 - -- **stblname** : 指定要查询的超级表的名称,必填。 - -- **query_interval** : 查询时间间隔,单位是秒,默认值为 0。 - -- **threads** : 执行查询 SQL 的线程数,默认值为 1。 - -- **sqls** : - - **sql** : 执行的 SQL 命令,必填;对于超级表的查询 SQL,在 SQL 命令中保留 "xxxx",程序会自动将其替换为超级表的所有子表名。 - 替换为超级表中所有的子表名。 - - **result** : 保存查询结果的文件,未指定则不保存。 - -### 订阅场景配置参数 - -订阅场景下 `filetype` 必须设置为 `subscribe`,该参数及其它通用参数详见[通用配置参数](#通用配置参数) - -#### 执行指定订阅语句的配置参数 - -订阅指定表(可以指定超级表、子表或者普通表)的配置参数在 `specified_table_query` 中设置。 - -- **threads/concurrent** : 执行 SQL 的线程数,默认为 1。 - -- **sqls** : - - **sql** : 执行的 SQL 命令,必填。 - - -#### 配置文件中数据类型书写对照表 - -| # | **引擎** | **taosBenchmark** -| --- | :----------------: | :---------------: -| 1 | TIMESTAMP | timestamp -| 2 | INT | int -| 3 | INT UNSIGNED | uint -| 4 | BIGINT | bigint -| 5 | BIGINT UNSIGNED | ubigint -| 6 | FLOAT | float -| 7 | DOUBLE | double -| 8 | BINARY | binary -| 9 | SMALLINT | smallint -| 10 | SMALLINT UNSIGNED | usmallint -| 11 | TINYINT | tinyint -| 12 | TINYINT UNSIGNED | utinyint -| 13 | BOOL | bool -| 14 | NCHAR | nchar -| 15 | VARCHAR | varchar -| 15 | JSON | json - -注意:taosBenchmark 配置文件中数据类型必须小写方可识别 - - - From f6a75b5539d36763d5acc140d9c9e38e462dcce1 Mon Sep 17 00:00:00 2001 From: Jeff Tao Date: Mon, 23 Sep 2024 09:13:56 -0700 Subject: [PATCH 3/4] Update 03-intro.md Remove the redundant section about TDengine product. --- docs/zh/03-intro.md | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/docs/zh/03-intro.md b/docs/zh/03-intro.md index 0167f9323b..4207ab4eb6 100644 --- a/docs/zh/03-intro.md +++ b/docs/zh/03-intro.md @@ -14,9 +14,9 @@ TDengine 是一个高性能、分布式的时序数据库。通过集成的缓 TDengine OSS 是一个开源的高性能时序数据库,与其他时序数据库相比,它的核心优势在于其集群开源、高性能和云原生架构。而且除了基础的写入、查询和存储功能外,TDengine OSS 还集成了缓存、流式计算和数据订阅等高级功能,这些功能显著简化了系统设计,降低了企业的研发和运营成本。 -在 TDengine OSS 的基础上,企业版 TDengine Enterprise 提供了增强的辅助功能,包括数据的备份恢复、异地容灾、多级存储、视图、权限控制、安全加密、IP 白名单、支持 MQTT、OPC-UA、OPC-DA、PI、Wonderware、Kafka 等各种数据源。这些功能为企业提供了更为全面、安全、可靠和高效的时序数据管理解决方案。 +在 TDengine OSS 的基础上,企业版 TDengine Enterprise 提供了增强的辅助功能,包括数据的备份恢复、异地容灾、多级存储、视图、权限控制、安全加密、IP 白名单、支持 MQTT、OPC-UA、OPC-DA、PI、Wonderware、Kafka 等各种数据源。这些功能为企业提供了更为全面、安全、可靠和高效的时序数据管理解决方案。更多的细节请看 [TDengine Enterprise](https://www.taosdata.com/tdengine-pro) -此外,TDengine Cloud 作为一种全托管的云服务,存储与计算分离,分开计费,为企业提供了企业级的工具和服务,彻底解决了运维难题,尤其适合中小规模的用户使用。 +此外,TDengine Cloud 作为一种全托管的云服务,存储与计算分离,分开计费,为企业提供了企业级的工具和服务,彻底解决了运维难题,尤其适合中小规模的用户使用。更多的细节请看[TDengine 云服务](https://cloud.taosdata.com/?utm_source=menu&utm_medium=webcn) ## TDengine 主要功能与特性 @@ -135,9 +135,3 @@ TDengine 经过特别优化,以适应时间序列数据的独特需求,引 - [TDengine 与 InfluxDB、OpenTSDB、Cassandra、MySQL、ClickHouse 等数据库的对比测试报告](https://www.taosdata.com/downloads/TDengine_Testing_Report_cn.pdf) -## 主要产品 - -TDengine 有两个主要产品:TDengine Enterprise (即 TDengine 企业版)和 TDengine Cloud,关于它们的具体定义请参考 -- [TDengine 企业版](https://www.taosdata.com/tdengine-pro) -- [TDengine 云服务](https://cloud.taosdata.com/?utm_source=menu&utm_medium=webcn) - From 89ba3d153c62f90ef07214fcb6fee45f3449bbd6 Mon Sep 17 00:00:00 2001 From: gccgdb1234 Date: Tue, 24 Sep 2024 08:44:05 +0800 Subject: [PATCH 4/4] doc: resolve broken links for tools --- docs/zh/04-get-started/01-docker.md | 2 +- docs/zh/04-get-started/03-package.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/zh/04-get-started/01-docker.md b/docs/zh/04-get-started/01-docker.md index 1d425fed6b..cadde10e0c 100644 --- a/docs/zh/04-get-started/01-docker.md +++ b/docs/zh/04-get-started/01-docker.md @@ -90,7 +90,7 @@ taosBenchmark 提供了丰富的选项,允许用户自定义测试参数,如 taosBenchmark --help ``` -有关taosBenchmark 的详细使用方法,请参考[taosBenchmark 参考手册](../../reference/components/taosbenchmark) +有关taosBenchmark 的详细使用方法,请参考[taosBenchmark 参考手册](../../reference/tools/taosbenchmark) ### 体验查询 diff --git a/docs/zh/04-get-started/03-package.md b/docs/zh/04-get-started/03-package.md index de479fb06e..2a1f594b4f 100644 --- a/docs/zh/04-get-started/03-package.md +++ b/docs/zh/04-get-started/03-package.md @@ -263,7 +263,7 @@ SELECT * FROM t; Query OK, 2 row(s) in set (0.003128s) ``` -除执行 SQL 语句外,系统管理员还可以从 TDengine CLI 进行检查系统运行状态、添加删除用户账号等操作。TDengine CLI 连同应用驱动也可以独立安装在机器上运行,更多细节请参考 [TDengine 命令行](../../reference/components/taos-cli/)。 +除执行 SQL 语句外,系统管理员还可以从 TDengine CLI 进行检查系统运行状态、添加删除用户账号等操作。TDengine CLI 连同应用驱动也可以独立安装在机器上运行,更多细节请参考 [TDengine 命令行](../../reference/tools/taos-cli/)。 ## 快速体验 @@ -286,7 +286,7 @@ taosBenchmark 提供了丰富的选项,允许用户自定义测试参数,如 taosBenchmark --help ``` -有关taosBenchmark 的详细使用方法,请参考[taosBenchmark 参考手册](../../reference/components/taosbenchmark) +有关taosBenchmark 的详细使用方法,请参考[taosBenchmark 参考手册](../../reference/tools/taosbenchmark) ### 体验查询