Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
a71b4d21
T
TDengine
项目概览
taosdata
/
TDengine
大约 1 年 前同步成功
通知
1184
Star
22015
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
a71b4d21
编写于
8月 18, 2022
作者:
H
Haojun Liao
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'refact/tsdb_last' of github.com:taosdata/tdengine into refact/tsdb_last
上级
1ecf660c
3276b62a
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
60 addition
and
27 deletion
+60
-27
docs/zh/14-reference/14-taosKeeper.md
docs/zh/14-reference/14-taosKeeper.md
+2
-2
docs/zh/14-reference/14-taosx.md
docs/zh/14-reference/14-taosx.md
+0
-4
docs/zh/20-third-party/01-grafana.mdx
docs/zh/20-third-party/01-grafana.mdx
+6
-2
docs/zh/20-third-party/import_dashboard.webp
docs/zh/20-third-party/import_dashboard.webp
+0
-0
include/common/tdataformat.h
include/common/tdataformat.h
+16
-16
source/dnode/vnode/src/meta/metaTable.c
source/dnode/vnode/src/meta/metaTable.c
+21
-3
tests/script/tsim/db/basic2.sim
tests/script/tsim/db/basic2.sim
+15
-0
未找到文件。
docs/zh/14-reference/1
5
-taosKeeper.md
→
docs/zh/14-reference/1
4
-taosKeeper.md
浏览文件 @
a71b4d21
...
...
@@ -25,7 +25,7 @@ taosKeeper 安装方式:
<!-- taosKeeper 需要在操作系统终端执行,该工具支持两种配置方式:[命令行参数](#命令行参数启动) 和 [配置文件](#配置文件启动)。命令行参数优先级高于配置文件参数。-->
taosKeeper 需要在操作系统终端执行,该工具支持
[
配置文件启动
](
#配置文件启动
)
。
**在运行 taosKeeper 之前要确保 TDengine 集群与 taosAdapter 已经在正确运行。**
**在运行 taosKeeper 之前要确保 TDengine 集群与 taosAdapter 已经在正确运行。**
并且 TDengine 已经开启监控服务,具体请参考:
[
TDengine 监控配置
](
../config/#监控相关
)
。
<!--
### 命令行参数启动
...
...
@@ -93,7 +93,7 @@ taosKeeper 作为 TDengine 监控指标的导出工具,可以将 TDengine 产
```
shell
$
taos
#
#
如上示例,使用 log 库作为监控日志存储位置
>
use log
;
>
select
*
from cluster_info limit 1
;
```
...
...
docs/zh/14-reference/14-taosx.md
已删除
100644 → 0
浏览文件 @
1ecf660c
---
sidebar_label
:
taosX
title
:
使用 taosX 在集群间复制数据
---
\ No newline at end of file
docs/zh/20-third-party/01-grafana.mdx
浏览文件 @
a71b4d21
...
...
@@ -193,7 +193,7 @@ docker run -d \
如上图所示,在 Query 中选中 `TDengine` 数据源,在下方查询框可输入相应 SQL 进行查询,具体说明如下:
- INPUT SQL:输入要查询的语句(该 SQL 语句的结果集应为两列多行),例如:`select
avg(mem_system) from log.dn
where ts >= $from and ts < $to interval($interval)` ,其中,from、to 和 interval 为 TDengine 插件的内置变量,表示从 Grafana 插件面板获取的查询范围和时间间隔。除了内置变量外,`也支持可以使用自定义模板变量`。
- INPUT SQL:输入要查询的语句(该 SQL 语句的结果集应为两列多行),例如:`select
_wstart, avg(mem_system) from log.dnodes_info
where ts >= $from and ts < $to interval($interval)` ,其中,from、to 和 interval 为 TDengine 插件的内置变量,表示从 Grafana 插件面板获取的查询范围和时间间隔。除了内置变量外,`也支持可以使用自定义模板变量`。
- ALIAS BY:可设置当前查询别名。
- GENERATE SQL: 点击该按钮会自动替换相应变量,并生成最终执行的语句。
...
...
@@ -205,7 +205,11 @@ docker run -d \
### 导入 Dashboard
在数据源配置页面,您可以为该数据源导入 TDinsight 面板,作为 TDengine 集群的监控可视化工具。该 Dashboard 已发布在 Grafana:[Dashboard 15167 - TDinsight](https://grafana.com/grafana/dashboards/15167)) 。其他安装方式和相关使用说明请见 [TDinsight 用户手册](/reference/tdinsight/)。
在数据源配置页面,您可以为该数据源导入 TDinsight 面板,作为 TDengine 集群的监控可视化工具。如果 TDengine 服务端为 3.0 版本请选择 `TDinsight for 3.x` 导入。
![TDengine Database Grafana plugine import dashboard](./import_dashboard.webp)
其中适配 TDengine 2.* 的 Dashboard 已发布在 Grafana:[Dashboard 15167 - TDinsight](https://grafana.com/grafana/dashboards/15167)) 。其他安装方式和相关使用说明请见 [TDinsight 用户手册](/reference/tdinsight/)。
使用 TDengine 作为数据源的其他面板,可以[在此搜索](https://grafana.com/grafana/dashboards/?dataSource=tdengine-datasource)。以下是一份不完全列表:
...
...
docs/zh/20-third-party/import_dashboard.webp
0 → 100644
浏览文件 @
a71b4d21
文件已添加
include/common/tdataformat.h
浏览文件 @
a71b4d21
...
...
@@ -38,22 +38,22 @@ typedef struct STagVal STagVal;
typedef
struct
STag
STag
;
// bitmap
#define N1(n) ((1 << (n)) - 1)
#define BIT1_SIZE(n) (((n)-1) / 8 + 1)
#define BIT2_SIZE(n) (((n)-1) / 4 + 1)
#define SET_BIT1(p, i, v) \
do { \
(p)[(i) / 8] &= N1((i) % 8); \
(p)[(i) / 8] |= (((uint8_t)(v)) << (((i) % 8))); \
} while (0)
const
static
uint8_t
BIT1_MAP
[
8
][
2
]
=
{
{
0
b00000000
,
0
b00000001
},
{
0
b00000001
,
0
b00000011
},
{
0
b00000011
,
0
b00000111
},
{
0
b00000111
,
0
b00001111
},
{
0
b00001111
,
0
b00011111
},
{
0
b00011111
,
0
b00111111
},
{
0
b00111111
,
0
b01111111
},
{
0
b01111111
,
0
b11111111
},
};
#define GET_BIT1(p, i) (((p)[(i) / 8] >> ((i) % 8)) & ((uint8_t)1))
#define SET_BIT2(p, i, v) \
do { \
p[(i) / 4] &= N1((i) % 4 * 2); \
(p)[(i) / 4] |= (((uint8_t)(v)) << (((i) % 4) * 2)); \
} while (0)
#define GET_BIT2(p, i) (((p)[(i) / 4] >> (((i) % 4) * 2)) & ((uint8_t)3))
const
static
uint8_t
BIT2_MAP
[
4
][
4
]
=
{{
0
b00000000
,
0
b00000001
,
0
b00000010
,
0
},
{
0
b00000011
,
0
b00000111
,
0
b00001011
,
2
},
{
0
b00001111
,
0
b00011111
,
0
b00101111
,
4
},
{
0
b00111111
,
0
b01111111
,
0
b10111111
,
6
}};
#define BIT1_SIZE(n) (((n)-1) >> 3 + 1)
#define BIT2_SIZE(n) (((n)-1) >> 2 + 1)
#define SET_BIT1(p, i, v) ((p)[(i) >> 3] &= BIT1_MAP[(i)&7][v])
#define GET_BIT1(p, i) (((p)[(i) >> 3] >> ((i)&7)) & ((uint8_t)1))
#define SET_BIT2(p, i, v) ((p)[(i) >> 2] &= BIT2_MAP[(i)&3][v])
#define GET_BIT2(p, i) (((p)[(i) >> 2] >> BIT2_MAP[(i)&3][3]) & ((uint8_t)3))
// STSchema
int32_t
tTSchemaCreate
(
int32_t
sver
,
SSchema
*
pSchema
,
int32_t
nCols
,
STSchema
**
ppTSchema
);
...
...
@@ -171,7 +171,7 @@ struct SColVal {
#pragma pack(push, 1)
struct
STagVal
{
// char colName[TSDB_COL_NAME_LEN]; // only used for tmq_get_meta
// char colName[TSDB_COL_NAME_LEN]; // only used for tmq_get_meta
union
{
int16_t
cid
;
char
*
pKey
;
...
...
source/dnode/vnode/src/meta/metaTable.c
浏览文件 @
a71b4d21
...
...
@@ -180,11 +180,29 @@ int metaDelJsonVarFromIdx(SMeta *pMeta, const SMetaEntry *pCtbEntry, const SSche
}
int
metaCreateSTable
(
SMeta
*
pMeta
,
int64_t
version
,
SVCreateStbReq
*
pReq
)
{
SMetaEntry
me
=
{
0
};
SMetaEntry
me
=
{
0
};
int
kLen
=
0
;
int
vLen
=
0
;
const
void
*
pKey
=
NULL
;
const
void
*
pVal
=
NULL
;
void
*
pBuf
=
NULL
;
int32_t
szBuf
=
0
;
void
*
p
=
NULL
;
// validate req
if
(
tdbTbGet
(
pMeta
->
pNameIdx
,
pReq
->
name
,
strlen
(
pReq
->
name
),
NULL
,
NULL
)
==
0
)
{
return
0
;
void
*
pData
=
NULL
;
int
nData
=
0
;
if
(
tdbTbGet
(
pMeta
->
pNameIdx
,
pReq
->
name
,
strlen
(
pReq
->
name
)
+
1
,
&
pData
,
&
nData
)
==
0
)
{
tb_uid_t
uid
=
*
(
tb_uid_t
*
)
pData
;
tdbFree
(
pData
);
SMetaInfo
info
;
metaGetInfo
(
pMeta
,
uid
,
&
info
);
if
(
info
.
uid
==
info
.
suid
)
{
return
0
;
}
else
{
terrno
=
TSDB_CODE_TDB_TABLE_ALREADY_EXIST
;
return
-
1
;
}
}
// set structs
...
...
tests/script/tsim/db/basic2.sim
浏览文件 @
a71b4d21
...
...
@@ -3,6 +3,21 @@ system sh/deploy.sh -n dnode1 -i 1
system sh/exec.sh -n dnode1 -s start
sql connect
print =============== conflict stb
sql create database db vgroups 1;
sql use db;
sql create table stb (ts timestamp, i int) tags (j int);
sql_error create table stb using stb tags (1);
sql_error create table stb (ts timestamp, i int);
sql create table ctb (ts timestamp, i int);
sql_error create table ctb (ts timestamp, i int) tags (j int);
sql create table ntb (ts timestamp, i int);
sql_error create table ntb (ts timestamp, i int) tags (j int);
sql drop database db
print =============== create database d1
sql create database d1
sql use d1
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录