使用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))
我创建数据库和分布式表的代码如下:
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])))
请问是什么原因?
使用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))