我如何在 arangodb 中处理带有时间戳的大量数据?
How can i handle a lot of data with timestamp in arangodb?
我是处理大量数据的新手。
我实际上每 100 毫秒向集合中的 arangodb 写入 4 json 个块。
json的内容是这样的:
{
"maintenence": {
"holder_1": 1,
"holder_2": 0,
"holder_3": 0,
"holder_4": 0,
"holder_5": 0,
"holder_6": 0
},
"error": 274,
"pos": {
"left": [
21.45, // changing every 100ms
38.36, // changing every 100ms
10.53 // changing every 100ms
],
"center": [
0.25, // changing every 100ms
0, // changing every 100ms
2.42 // changing every 100ms
],
"right": [
0, // changing every 100ms
0, // changing every 100ms
0 // changing every 100ms
]
},
"sub": [
{
"type": 23,
"name": "plate 01",
"sensors": [
{
"type": 45,
"name": "sensor 01",
"state": {
"open": 1,
"close": 0,
"middle": 0
}
},
{
"type": 34,
"name": "sensor 02",
"state": {
"on": 1
}
}
]
}
],
"timestamp": "2018-02-18 01:56:08.423",
"device": "12227225"
}
每个块都是另一个设备
仅 2 天,集合中就有约 600 万个数据集。
如果我想从"device 1 position left[0]"
获取数据来绘制折线图
与:
FOR d IN device
FILTER d.timestamp >= "2018-02-18 04:30:00.000" && d.timestamp <= "2018-02-18 04:35:00.000"
RESULT d.pos.left[0]
花了很长时间,所以在这大约 600 万个数据集中搜索。
我的问题是:这是正常的,只有机器才能解决这个问题还是我处理这组数据的方式有误?
我认为约 600 万个数据集不是大数据,但我认为如果我失败了,如果我再添加 50 台设备收集它而不是 2 天而是 30 天,我将如何处理这个问题。
将时间戳转换为 unix 时间戳(数字)有很大帮助。
我在时间戳和设备上添加了一个跳过列表索引。
现在,对于 1300 万个数据集,我的查询运行 920 毫秒。
谢谢你!
我是处理大量数据的新手。
我实际上每 100 毫秒向集合中的 arangodb 写入 4 json 个块。
json的内容是这样的:
{
"maintenence": {
"holder_1": 1,
"holder_2": 0,
"holder_3": 0,
"holder_4": 0,
"holder_5": 0,
"holder_6": 0
},
"error": 274,
"pos": {
"left": [
21.45, // changing every 100ms
38.36, // changing every 100ms
10.53 // changing every 100ms
],
"center": [
0.25, // changing every 100ms
0, // changing every 100ms
2.42 // changing every 100ms
],
"right": [
0, // changing every 100ms
0, // changing every 100ms
0 // changing every 100ms
]
},
"sub": [
{
"type": 23,
"name": "plate 01",
"sensors": [
{
"type": 45,
"name": "sensor 01",
"state": {
"open": 1,
"close": 0,
"middle": 0
}
},
{
"type": 34,
"name": "sensor 02",
"state": {
"on": 1
}
}
]
}
],
"timestamp": "2018-02-18 01:56:08.423",
"device": "12227225"
}
每个块都是另一个设备
仅 2 天,集合中就有约 600 万个数据集。
如果我想从"device 1 position left[0]"
获取数据来绘制折线图与:
FOR d IN device
FILTER d.timestamp >= "2018-02-18 04:30:00.000" && d.timestamp <= "2018-02-18 04:35:00.000"
RESULT d.pos.left[0]
花了很长时间,所以在这大约 600 万个数据集中搜索。
我的问题是:这是正常的,只有机器才能解决这个问题还是我处理这组数据的方式有误?
我认为约 600 万个数据集不是大数据,但我认为如果我失败了,如果我再添加 50 台设备收集它而不是 2 天而是 30 天,我将如何处理这个问题。
将时间戳转换为 unix 时间戳(数字)有很大帮助。
我在时间戳和设备上添加了一个跳过列表索引。
现在,对于 1300 万个数据集,我的查询运行 920 毫秒。
谢谢你!