这是我的问题。我有 50 个城市(a,b,....),每个城市最多包含 4000 个地址(a1,a2,... 或 b1,b2,...),每个地址都包含一个包含 10.000 个的列表-40.000 个时间序列数据。
什么是存储/查询这些数据的最有效方法是我的想法:
{'a': city1,
'a1': {
'name': 'name1',
'...': ....,
....
'list': [{ here are 10.000-40.000 timeseries datasets}]
}
'a2': {
'name': 'name2',
'...': ....,
....
'list': [{ here are 10.000-40.000 timeseries datasets}]
}
....
....
}
{'b': city2,
'b1': {
'name': 'name2',
'...': ....,
....
'list': [{ here are 10.000-40.000 timeseries datasets}]
}
...
...
}
....
....
或者将城市和地址一起存储在一个地方并将所有时间序列数据集存储在另一个地方更好(使用一些密钥来识别地址和城市)。或者你还有什么好主意吗?大多数查询将关注(sry -> 英语不好?)所有地址和所有城市的 TimeSeries - 数据集(其中 500 到 1500 个)。
一点点数学:50 个城市 * 4000 个地址 *(10.000 到 40.000 个数据集)= 2.000.000.000 到 8.000.000.000 个条目 -> 所以我们可能会对数据库进行分片(在我的示例中,分片键是城市)。
我们使用 python 和 pymongo 来访问数据库。