我正在尝试使用下面的查询在Cassandra表中插入一行
INSERT INTO battery_time_series_by_producer JSON '{"timestamp":1514413581,"customer":"com.fetchcore-cloud.local","stream":"/sw8/sensor/battery","producer":"freight18","data":{"battery_level":1,"is_charging":true,"timestamp":1514413581}}';
我收到以下错误
Expected a long or a datestring representation of a timestamp value, but got an Integer: 1514413581
表中的字段时间戳确实是时间戳格式。但是,如果这只是JSON
,我该如何将其转换为long我的Cassandra版本是3.11.1
答案 0 :(得分:1)
Cassandra将尝试将json对象解析为最接近的数据类型,例如值1514413581将转换为Integer类型。如果你给出一个更大的数字,它将被解析为Long。
请注意,自标准基准时间epoch以来,该时间戳类型表示的数字毫秒。示例中的值表示1970年的时间。
简而言之,它要么使用字符串格式(例如“1514413581”),要么在cql语句中传递最近的时间戳值(后来自动转换为Long)。希望它有所帮助。