往分布式表写数据时报 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.9k
1 个回答

使用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))
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题