数据接收分为http接收和mqtt接收,二者对于接收方来说本质差距不大。但是在业务层面,mqtt更合理许多。本次主要记录一些数据处理的用法。
1.Map<>在数据接收中的使用
public static class MappingInfo {
private String ownSensorId;
// key: 索引值 value: 我们自己的具体监测内容 ID
private Map<String, String> monitorTypeMapping = new HashMap<>();
public String getOwnSensorId() {
return ownSensorId;
}
public void setOwnSensorId(String ownSensorId) {
this.ownSensorId = ownSensorId;
}
public Map<String, String> getMonitorTypeMapping() {
return monitorTypeMapping;
}
public void addMonitorTypeMappingFactor(String other, String own) {
this.monitorTypeMapping.put(other, own);
}
}
在这里主要用到了一个Map<String,String>,HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。
在 Java 中,<>
符号表示泛型,用于指定集合或类的类型参数。在上述代码片段中,Set<String>
表示一个泛型集合,其中 <String>
指定集合中的元素类型为字符串。这样的语法允许我们在编译时对集合的元素类型进行类型检查和约束,以提高代码的类型安全性。
2.keySet的使用
java中HashMap常用的方法
方法 | 描述 |
---|---|
clear() | 删除 hashMap 中的所有键/值对 |
clone() | 复制一份 hashMap |
isEmpty() | 判断 hashMap 是否为空 |
size() | 计算 hashMap 中键/值对的数量 |
put() | 将键/值对添加到 hashMap 中 |
putAll() | 将所有键/值对添加到 hashMap 中 |
putIfAbsent() | 如果 hashMap 中不存在指定的键,则将指定的键/值对插入到 hashMap 中。 |
remove() | 删除 hashMap 中指定键 key 的映射关系 |
containsKey() | 检查 hashMap 中是否存在指定的 key 对应的映射关系。 |
containsValue() | 检查 hashMap 中是否存在指定的 value 对应的映射关系。 |
replace() | 替换 hashMap 中是指定的 key 对应的 value。 |
replaceAll() | 将 hashMap 中的所有映射关系替换成给定的函数所执行的结果。 |
get() | 获取指定 key 对应对 value |
getOrDefault() | 获取指定 key 对应对 value,如果找不到 key ,则返回设置的默认值 |
forEach() | 对 hashMap 中的每个映射执行指定的操作。 |
entrySet() | 返回 hashMap 中所有映射项的集合集合视图。 |
keySet() | 返回 hashMap 中所有 key 组成的集合视图。 |
values() | 返回 hashMap 中存在的所有 value 值。 |
merge() | 添加键值对到 hashMap 中 |
compute() | 对 hashMap 中指定 key 的值进行重新计算 |
computeIfAbsent() | 对 hashMap 中指定 key 的值进行重新计算,如果不存在这个 key,则添加到 hasMap 中 |
computeIfPresent() | 对 hashMap 中指定 key 的值进行重新计算,前提是该 key 存在于 hashMap 中。 |
//这里的values存储了传感器检测的数据集合,
JSONObject valueJObj = rawData.getJSONObject("payload");
// 获取所有的检测值的 第三方 key
Set<String> valueKeys = valueJObj.keySet();
3.如何再Linux系统中使用Taos
1.打开taos:taos;
2.打开数据库:show databases;
3.打开数据库:use commondatadb
4.列出所有的表格:show tables;
5.show tables >> /software/文件路径
5.1.use information_schema
5.2.select * from ins_table;
5.3.select * from ins_table >> /software/文件路径/路径
6.select * from table order by ts desc;