Merge branch '3.0' of https://github.com/taosdata/TDengine into refact/tsdb_last
This commit is contained in:
commit
208b179726
|
@ -11,14 +11,11 @@ import PkgListV3 from "/components/PkgListV3";
|
||||||
|
|
||||||
## 安装
|
## 安装
|
||||||
|
|
||||||
:::info
|
|
||||||
下载其他组件、最新 Beta 版及之前版本的安装包,请点击[发布历史页面](../../releases)
|
|
||||||
:::
|
|
||||||
|
|
||||||
<Tabs>
|
<Tabs>
|
||||||
<TabItem label="Deb 安装" value="debinst">
|
<TabItem label="Deb 安装" value="debinst">
|
||||||
|
|
||||||
1. 从 [发布历史页面](../../releases) 下载获得 deb 安装包,例如 TDengine-server-3.0.0.0-Linux-x64.deb;
|
1. 从列表中下载获得 deb 安装包,例如 TDengine-server-3.0.0.0-Linux-x64.deb;
|
||||||
|
<PkgListV3 type={6}/>
|
||||||
2. 进入到 TDengine-server-3.0.0.0-Linux-x64.deb 安装包所在目录,执行如下的安装命令:
|
2. 进入到 TDengine-server-3.0.0.0-Linux-x64.deb 安装包所在目录,执行如下的安装命令:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
@ -29,7 +26,8 @@ sudo dpkg -i TDengine-server-3.0.0.0-Linux-x64.deb
|
||||||
|
|
||||||
<TabItem label="RPM 安装" value="rpminst">
|
<TabItem label="RPM 安装" value="rpminst">
|
||||||
|
|
||||||
1. 从 [发布历史页面](../../releases) 下载获得 rpm 安装包,例如 TDengine-server-3.0.0.0-Linux-x64.rpm;
|
1. 从列表中下载获得 rpm 安装包,例如 TDengine-server-3.0.0.0-Linux-x64.rpm;
|
||||||
|
<PkgListV3 type={5}/>
|
||||||
2. 进入到 TDengine-server-3.0.0.0-Linux-x64.rpm 安装包所在目录,执行如下的安装命令:
|
2. 进入到 TDengine-server-3.0.0.0-Linux-x64.rpm 安装包所在目录,执行如下的安装命令:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
@ -60,11 +58,10 @@ install.sh 安装脚本在执行过程中,会通过命令行交互界面询问
|
||||||
|
|
||||||
</TabItem>
|
</TabItem>
|
||||||
|
|
||||||
<TabItem label="Windows 安装" value="windows">
|
<TabItem label="Windows 安装" value="windows">
|
||||||
|
|
||||||
<PkgListV3 type={3}/>
|
|
||||||
|
|
||||||
1. 从 [发布历史页面](../../releases) 下载获得 exe 安装程序,例如 TDengine-server-3.0.0.0-Windows-x64.exe;
|
1. 从列表中下载获得 exe 安装程序,例如 TDengine-server-3.0.0.0-Windows-x64.exe;
|
||||||
|
<PkgListV3 type={3}/>
|
||||||
2. 运行 TDengine-server-3.0.0.0-Windows-x64.exe 来安装 TDengine。
|
2. 运行 TDengine-server-3.0.0.0-Windows-x64.exe 来安装 TDengine。
|
||||||
|
|
||||||
</TabItem>
|
</TabItem>
|
||||||
|
@ -99,6 +96,10 @@ apt-get 方式只适用于 Debian 或 Ubuntu 系统
|
||||||
</TabItem>
|
</TabItem>
|
||||||
</Tabs>
|
</Tabs>
|
||||||
|
|
||||||
|
:::info
|
||||||
|
下载其他组件、最新 Beta 版及之前版本的安装包,请点击[发布历史页面](../../releases)
|
||||||
|
:::
|
||||||
|
|
||||||
:::note
|
:::note
|
||||||
当安装第一个节点时,出现 Enter FQDN:提示的时候,不需要输入任何内容。只有当安装第二个或以后更多的节点时,才需要输入已有集群中任何一个可用节点的 FQDN,支持该新节点加入集群。当然也可以不输入,而是在新节点启动前,配置到新节点的配置文件中。
|
当安装第一个节点时,出现 Enter FQDN:提示的时候,不需要输入任何内容。只有当安装第二个或以后更多的节点时,才需要输入已有集群中任何一个可用节点的 FQDN,支持该新节点加入集群。当然也可以不输入,而是在新节点启动前,配置到新节点的配置文件中。
|
||||||
|
|
||||||
|
|
|
@ -90,6 +90,7 @@ void close() throws SQLException;
|
||||||
</TabItem>
|
</TabItem>
|
||||||
|
|
||||||
<TabItem value="Python" label="Python">
|
<TabItem value="Python" label="Python">
|
||||||
|
|
||||||
```python
|
```python
|
||||||
class TaosConsumer():
|
class TaosConsumer():
|
||||||
def __init__(self, *topics, **configs)
|
def __init__(self, *topics, **configs)
|
||||||
|
@ -108,7 +109,9 @@ class TaosConsumer():
|
||||||
|
|
||||||
def __del__(self)
|
def __del__(self)
|
||||||
```
|
```
|
||||||
|
|
||||||
</TabItem>
|
</TabItem>
|
||||||
|
|
||||||
<TabItem label="Go" value="Go">
|
<TabItem label="Go" value="Go">
|
||||||
|
|
||||||
```go
|
```go
|
||||||
|
@ -126,6 +129,7 @@ func (c *Consumer) Subscribe(topics []string) error
|
||||||
|
|
||||||
func (c *Consumer) Unsubscribe() error
|
func (c *Consumer) Unsubscribe() error
|
||||||
```
|
```
|
||||||
|
|
||||||
</TabItem>
|
</TabItem>
|
||||||
|
|
||||||
<TabItem value="C#" label="C#">
|
<TabItem value="C#" label="C#">
|
||||||
|
@ -150,8 +154,8 @@ void Unsubscribe()
|
||||||
void Commit(ConsumeResult consumerResult)
|
void Commit(ConsumeResult consumerResult)
|
||||||
|
|
||||||
void Close()
|
void Close()
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
</TabItem>
|
</TabItem>
|
||||||
|
|
||||||
</Tabs>
|
</Tabs>
|
||||||
|
@ -393,6 +397,7 @@ var cfg = new ConsumerConfig
|
||||||
var consumer = new ConsumerBuilder(cfg).Build();
|
var consumer = new ConsumerBuilder(cfg).Build();
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
</TabItem>
|
</TabItem>
|
||||||
|
|
||||||
</Tabs>
|
</Tabs>
|
||||||
|
@ -441,7 +446,6 @@ if err != nil {
|
||||||
|
|
||||||
</TabItem>
|
</TabItem>
|
||||||
|
|
||||||
|
|
||||||
<TabItem value="C#" label="C#">
|
<TabItem value="C#" label="C#">
|
||||||
|
|
||||||
```C#
|
```C#
|
||||||
|
@ -454,15 +458,12 @@ consumer.Subscribe(topics);
|
||||||
|
|
||||||
</TabItem>
|
</TabItem>
|
||||||
|
|
||||||
|
|
||||||
<TabItem value="Python" label="Python">
|
<TabItem value="Python" label="Python">
|
||||||
```python
|
```python
|
||||||
consumer = TaosConsumer('topic_ctb_column', group_id='vg2')
|
consumer = TaosConsumer('topic_ctb_column', group_id='vg2')
|
||||||
```
|
```
|
||||||
</TabItem>
|
</TabItem>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</Tabs>
|
</Tabs>
|
||||||
|
|
||||||
## 消费
|
## 消费
|
||||||
|
@ -504,7 +505,6 @@ for msg in consumer:
|
||||||
```
|
```
|
||||||
</TabItem>
|
</TabItem>
|
||||||
|
|
||||||
|
|
||||||
<TabItem value="Go" label="Go">
|
<TabItem value="Go" label="Go">
|
||||||
|
|
||||||
```go
|
```go
|
||||||
|
@ -520,7 +520,6 @@ for {
|
||||||
```
|
```
|
||||||
|
|
||||||
</TabItem>
|
</TabItem>
|
||||||
</Tabs>
|
|
||||||
|
|
||||||
<TabItem value="C#" label="C#">
|
<TabItem value="C#" label="C#">
|
||||||
|
|
||||||
|
@ -538,7 +537,6 @@ while (true)
|
||||||
</TabItem>
|
</TabItem>
|
||||||
</Tabs>
|
</Tabs>
|
||||||
|
|
||||||
|
|
||||||
## 结束消费
|
## 结束消费
|
||||||
|
|
||||||
消费结束后,应当取消订阅。
|
消费结束后,应当取消订阅。
|
||||||
|
@ -575,6 +573,9 @@ consumer.unsubscribe();
|
||||||
|
|
||||||
/* 关闭消费 */
|
/* 关闭消费 */
|
||||||
consumer.close();
|
consumer.close();
|
||||||
|
|
||||||
|
</TabItem>
|
||||||
|
|
||||||
<TabItem value="Go" label="Go">
|
<TabItem value="Go" label="Go">
|
||||||
|
|
||||||
```go
|
```go
|
||||||
|
@ -590,6 +591,7 @@ consumer.Unsubscribe();
|
||||||
|
|
||||||
// 关闭消费
|
// 关闭消费
|
||||||
consumer.Close();
|
consumer.Close();
|
||||||
|
```
|
||||||
</TabItem>
|
</TabItem>
|
||||||
|
|
||||||
</Tabs>
|
</Tabs>
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
#include "tmsg.h"
|
#include "tmsg.h"
|
||||||
#include "tq.h"
|
#include "tq.h"
|
||||||
|
|
||||||
int32_t tdBuildDeleteReq(SVnode* pVnode, const char* stbFullName, const SSDataBlock* pDataBlock,
|
int32_t tqBuildDeleteReq(SVnode* pVnode, const char* stbFullName, const SSDataBlock* pDataBlock,
|
||||||
SBatchDeleteReq* deleteReq) {
|
SBatchDeleteReq* deleteReq) {
|
||||||
ASSERT(pDataBlock->info.type == STREAM_DELETE_RESULT);
|
ASSERT(pDataBlock->info.type == STREAM_DELETE_RESULT);
|
||||||
int32_t totRow = pDataBlock->info.rows;
|
int32_t totRow = pDataBlock->info.rows;
|
||||||
|
@ -68,9 +68,10 @@ SSubmitReq* tqBlockToSubmit(SVnode* pVnode, const SArray* pBlocks, const STSchem
|
||||||
SSDataBlock* pDataBlock = taosArrayGet(pBlocks, i);
|
SSDataBlock* pDataBlock = taosArrayGet(pBlocks, i);
|
||||||
if (pDataBlock->info.type == STREAM_DELETE_RESULT) {
|
if (pDataBlock->info.type == STREAM_DELETE_RESULT) {
|
||||||
int32_t padding1 = 0;
|
int32_t padding1 = 0;
|
||||||
void* padding2 = taosMemoryMalloc(1);
|
void* padding2 = NULL;
|
||||||
taosArrayPush(schemaReqSz, &padding1);
|
taosArrayPush(schemaReqSz, &padding1);
|
||||||
taosArrayPush(schemaReqs, &padding2);
|
taosArrayPush(schemaReqs, &padding2);
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
STagVal tagVal = {
|
STagVal tagVal = {
|
||||||
|
@ -138,8 +139,7 @@ SSubmitReq* tqBlockToSubmit(SVnode* pVnode, const SArray* pBlocks, const STSchem
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
int32_t rows = pDataBlock->info.rows;
|
int32_t rows = pDataBlock->info.rows;
|
||||||
// TODO min
|
/*int32_t rowSize = pDataBlock->info.rowSize;*/
|
||||||
int32_t rowSize = pDataBlock->info.rowSize;
|
|
||||||
int32_t maxLen = TD_ROW_MAX_BYTES_FROM_SCHEMA(pTSchema);
|
int32_t maxLen = TD_ROW_MAX_BYTES_FROM_SCHEMA(pTSchema);
|
||||||
|
|
||||||
int32_t schemaLen = 0;
|
int32_t schemaLen = 0;
|
||||||
|
@ -150,7 +150,6 @@ SSubmitReq* tqBlockToSubmit(SVnode* pVnode, const SArray* pBlocks, const STSchem
|
||||||
}
|
}
|
||||||
|
|
||||||
// assign data
|
// assign data
|
||||||
// TODO
|
|
||||||
ret = rpcMallocCont(cap);
|
ret = rpcMallocCont(cap);
|
||||||
ret->header.vgId = pVnode->config.vgId;
|
ret->header.vgId = pVnode->config.vgId;
|
||||||
ret->length = sizeof(SSubmitReq);
|
ret->length = sizeof(SSubmitReq);
|
||||||
|
@ -161,13 +160,12 @@ SSubmitReq* tqBlockToSubmit(SVnode* pVnode, const SArray* pBlocks, const STSchem
|
||||||
SSDataBlock* pDataBlock = taosArrayGet(pBlocks, i);
|
SSDataBlock* pDataBlock = taosArrayGet(pBlocks, i);
|
||||||
if (pDataBlock->info.type == STREAM_DELETE_RESULT) {
|
if (pDataBlock->info.type == STREAM_DELETE_RESULT) {
|
||||||
pDeleteReq->suid = suid;
|
pDeleteReq->suid = suid;
|
||||||
tdBuildDeleteReq(pVnode, stbFullName, pDataBlock, pDeleteReq);
|
tqBuildDeleteReq(pVnode, stbFullName, pDataBlock, pDeleteReq);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
blkHead->numOfRows = htonl(pDataBlock->info.rows);
|
blkHead->numOfRows = htonl(pDataBlock->info.rows);
|
||||||
blkHead->sversion = htonl(pTSchema->version);
|
blkHead->sversion = htonl(pTSchema->version);
|
||||||
// TODO
|
|
||||||
blkHead->suid = htobe64(suid);
|
blkHead->suid = htobe64(suid);
|
||||||
// uid is assigned by vnode
|
// uid is assigned by vnode
|
||||||
blkHead->uid = 0;
|
blkHead->uid = 0;
|
||||||
|
|
|
@ -192,9 +192,9 @@ int32_t tsdbDeleteTableData(STsdb *pTsdb, int64_t version, tb_uid_t suid, tb_uid
|
||||||
tsdbCacheDeleteLast(pTsdb->lruCache, pTbData->uid, eKey);
|
tsdbCacheDeleteLast(pTsdb->lruCache, pTbData->uid, eKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
tsdbError("vgId:%d, delete data from table suid:%" PRId64 " uid:%" PRId64 " skey:%" PRId64 " eKey:%" PRId64
|
tsdbInfo("vgId:%d, delete data from table suid:%" PRId64 " uid:%" PRId64 " skey:%" PRId64 " eKey:%" PRId64
|
||||||
" since %s",
|
" since %s",
|
||||||
TD_VID(pTsdb->pVnode), suid, uid, sKey, eKey, tstrerror(code));
|
TD_VID(pTsdb->pVnode), suid, uid, sKey, eKey, tstrerror(code));
|
||||||
return code;
|
return code;
|
||||||
|
|
||||||
_err:
|
_err:
|
||||||
|
|
|
@ -237,8 +237,8 @@
|
||||||
./test.sh -f tsim/stream/distributeInterval0.sim
|
./test.sh -f tsim/stream/distributeInterval0.sim
|
||||||
./test.sh -f tsim/stream/distributeIntervalRetrive0.sim
|
./test.sh -f tsim/stream/distributeIntervalRetrive0.sim
|
||||||
./test.sh -f tsim/stream/distributeSession0.sim
|
./test.sh -f tsim/stream/distributeSession0.sim
|
||||||
#./test.sh -f tsim/stream/session0.sim
|
./test.sh -f tsim/stream/session0.sim
|
||||||
#./test.sh -f tsim/stream/session1.sim
|
./test.sh -f tsim/stream/session1.sim
|
||||||
./test.sh -f tsim/stream/state0.sim
|
./test.sh -f tsim/stream/state0.sim
|
||||||
./test.sh -f tsim/stream/triggerInterval0.sim
|
./test.sh -f tsim/stream/triggerInterval0.sim
|
||||||
./test.sh -f tsim/stream/triggerSession0.sim
|
./test.sh -f tsim/stream/triggerSession0.sim
|
||||||
|
|
|
@ -83,22 +83,22 @@ if $data11 != 3 then
|
||||||
goto loop0
|
goto loop0
|
||||||
endi
|
endi
|
||||||
|
|
||||||
if $data12 != NULL then
|
if $data12 != 10 then
|
||||||
print ======data12=$data12
|
print ======data12=$data12
|
||||||
goto loop0
|
goto loop0
|
||||||
endi
|
endi
|
||||||
|
|
||||||
if $data13 != NULL then
|
if $data13 != 10 then
|
||||||
print ======data13=$data13
|
print ======data13=$data13
|
||||||
goto loop0
|
goto loop0
|
||||||
endi
|
endi
|
||||||
|
|
||||||
if $data14 != NULL then
|
if $data14 != 1.100000000 then
|
||||||
print ======data14=$data14
|
print ======data14=$data14
|
||||||
return -1
|
return -1
|
||||||
endi
|
endi
|
||||||
|
|
||||||
if $data15 != NULL then
|
if $data15 != 0.000000000 then
|
||||||
print ======data15=$data15
|
print ======data15=$data15
|
||||||
return -1
|
return -1
|
||||||
endi
|
endi
|
||||||
|
@ -141,38 +141,38 @@ if $data01 != 7 then
|
||||||
goto loop1
|
goto loop1
|
||||||
endi
|
endi
|
||||||
|
|
||||||
if $data02 != NULL then
|
if $data02 != 18 then
|
||||||
print =====data02=$data02
|
print =====data02=$data02
|
||||||
goto loop1
|
goto loop1
|
||||||
endi
|
endi
|
||||||
|
|
||||||
if $data03 != NULL then
|
if $data03 != 4 then
|
||||||
print =====data03=$data03
|
print =====data03=$data03
|
||||||
goto loop1
|
goto loop1
|
||||||
endi
|
endi
|
||||||
|
|
||||||
if $data04 != NULL then
|
if $data04 != 1.000000000 then
|
||||||
print ======$data04
|
print ======data04=$data04
|
||||||
return -1
|
return -1
|
||||||
endi
|
endi
|
||||||
|
|
||||||
if $data05 != NULL then
|
if $data05 != 1.154700538 then
|
||||||
print ======$data05
|
print ======data05=$data05
|
||||||
return -1
|
return -1
|
||||||
endi
|
endi
|
||||||
|
|
||||||
if $data06 != 4 then
|
if $data06 != 4 then
|
||||||
print ======$data06
|
print ======data06=$data06
|
||||||
return -1
|
return -1
|
||||||
endi
|
endi
|
||||||
|
|
||||||
if $data07 != 1.000000000 then
|
if $data07 != 1.000000000 then
|
||||||
print ======$data07
|
print ======data07=$data07
|
||||||
return -1
|
return -1
|
||||||
endi
|
endi
|
||||||
|
|
||||||
if $data08 != 13 then
|
if $data08 != 13 then
|
||||||
print ======$data08
|
print ======data08=$data08
|
||||||
return -1
|
return -1
|
||||||
endi
|
endi
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue