python 往 elasticsearch 存入数据时,文档字段类型问题注意事项

python 往 elasticsearch 存入数据时,经常会报莫名其妙的解析错误,大多是因为传入的数值与字段类型不匹配有关。

经过反复摸索,总结的处理经验如下:

1、首先调整好传入数据字典的字段格式

data = {     
"region":"cn",
"env":"dev",
"product":"reliability",
"service":"devops",
"objectType":"ec2",
"endpoint":"cn-dev-reliability-devops-ec2-172.31.116.5",
"metric":"tcp_syn_sent",
"value":"1",
"timestamp":t,
"starttime":t,
"endtime":t,
"step":60,
"counterType":"COUNTER",
"tags":"{}",
"dataSource":"transfer",
"kinesis":"true"
}

#es.indices.delete(index='kinesis-2018.06.28', ignore=[400, 404]) 
es.index(index="kinesis-2018.06.28", doc_type="kinesisdata", body=data) 

2、比如data中的timestampstarttimeendtime时间类型,如果已经存入整数数值或者字符串数值,想要修改为date类型,存入时会报错。处理方法是,登录kibana界面,删除索引。

3、执行上面1步骤里面的脚本,进行数据保存

4、再一次进入kibana 重新创建索引,这时候就可以看到字段类型被修改过来了。

注释:

1、主要是修改字段前,要从kibana界面中删除索引,然后保存数据字段类型就会根据所传入的数值类型进行配置。当再次在kibana配置索引后就可以看到对应的字段类型了。

 2、本想通过命令行方式解决,鼓捣半天没有成功。

猜你喜欢

转载自www.cnblogs.com/songfucai/p/9235255.html
今日推荐