在druid中不支持更新数据的,如果要涉及到更新数据,则只能使用重新导入数据的方式进行覆盖。所以总体的思路如下:
准备一份需要更新的完整数据,例如原始数据是:
{"age":40,"birthday":"2019-08-01 14:15:01","id":91931,"loc":"shanghai","name":"张三"}
我们在导入的时候,使用了birthday作为_time,那么我们需要更新的时候,也需要对应这个_time,然后其他数据可以随便改,但是要完整。例如修改后的数据是:
{"age":41,"birthday":"2019-08-01 14:15:01","id":91932,"loc":"shanghai","name":"王五"}
这里可以看到我们修改了age,name,id,但是我们的_time基准的birthday是没变的,此时我们把要更改的数据放进一个text里面,使用load local data的方式再次进行导入(可参考《Apache Druid系列(六)Druid导入本地数据》),然后查询就可以看到是新的数据了。
注意,如果需要涉及到使用上诉方法更新数据的话,那么appendToExisting设置为false,此时才会被覆盖。
还没有评论,来说两句吧...