























1 亿左右的数据,数据来源是设备的轨迹数据(gps ,速度,温度等信息),设备端按 5s 左右一次上报
我自己尝试搭建了 3 个节点的 es ,每个节点 4g 左右内存,发现执行需求 1 时,大概需要 2-5s 左右,查询语句:
curl -X GET "http://192.168.1.210:9200/test_index/_search?pretty" \
-H 'Content-Type: application/json' \
-d '{
"query": {
"terms": {
"serialNumber": [省略 sn]
}
},
"collapse": {
"field": "serialNumber"
},
"size": 300
}'
mapping 信息:
{
"settings": {
"number_of_shards": 3,
"number_of_replicas": 1,
"index": {
"sort.field": "createTime",
"sort.order": "desc"
}
},
"mappings": {
"properties": {
"serialNumber": {
"type": "keyword"
},
"createTime": {
"type": "date",
"format": "strict_date_optional_time||epoch_millis||yyyy-MM-dd HH:mm:ss.SSS||yyyy-MM-dd HH:mm:ss"
},
"longitude": {
"type": "double"
},
"latitude": {
"type": "double"
}
}
}
}
请问可以做到需求 1 查询 3-400 台设备,耗时到 1s 左右吗?
第 1 条附言 · 8 天前
感谢大家的解答,最终还是放弃 es 的方案了,确实就如大家说的,es 强的地方不在我的这个场景,选用 es 并不是最好的选择。
数据库我们用的是 sqlserver ,阿里云买的实例,目前做不到 1s 内的查询,再考虑到未来的数据增长,还有分表以及并发的情况下,redis 的 geo 似乎符合我的需求,目前还在调研中
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。