往分布式表写数据时报 contains external partitions.

我创建数据库和分布式表的代码如下:

db=database(dbName, VALUE, 1..10)
t = table(10000:0,`deviceID`send_time`temperature`humidity`voltage ,[INT, TIMESTAMP, DOUBLE, DOUBLE,DOUBLE])
db.createPartitionedTable(t, `pt, `deviceID)

写入分布表的代码如下:

msg="1,2020.08.27T15:57:36.985,45.551123,34.339214,0"
val=split(msg,",")
loadTable(dbName, `pt).tableInsert((int(val[0]), timestamp(val[1]), double(val[2]),double(val[3]),double(val[4])))

执行后报错:

Can't append data to a segmented table that contains external partitions.

但如下所示写入内存表是可以的:

t = table(10000:0,`deviceID`send_time`temperature`humidity`voltage ,[INT, TIMESTAMP, DOUBLE, DOUBLE,DOUBLE])
t.tableInsert((int(val[0]), timestamp(val[1]), double(val[2]),double(val[3]),double(val[4])))

请问是什么原因?

请先 登录 后评论

1 个回答

Juntao Wang

使用append!tableInsert函数往分布式数据表中插入数据。即使只插入一条数据,也要用表的形式来表示新增的数据。上面代码可改为如下:

loadTable(dbName, `pt).tableInsert(table(int(val[0]) as col1, timestamp(val[1]as col2, double(val[2]as col3,double(val[3]as col4,double(val[4]as col5))
请先 登录 后评论