我正在构建一个新应用程序,我希望在其中获得大量地理位置数据,例如每 5 秒发送一次地理坐标的移动物体。这些数据需要存储在某个数据库中,以便随时用于跟踪 map 上的移动物体。所以,我预计每条路线每个移动物体大约有 250 个坐标。每个对象每天可以运行大约 50 条路线。我有 900 个这样的对象要跟踪。因此,这带来了每天大约 1150 万个地理坐标的存储。我必须至少在我的数据库中存储大约一周的数据。
此数据基本上将用于简单查询,例如查找特定对象和特定路线的所有地理坐标。因此,查询不是很复杂,并且不会将此数据用于任何分析目的。
所以,我的问题是,我应该只使用分布在两个虚拟机上的 12C 等普通 Oracle 数据库,还是应该考虑一些大数据技术,如 NO SQL 或 hadoop?
关键要求之一是具有高性能。每个查询必须在 1 秒内响应。
最佳答案
因为您知道数据量(1150 万),您可以轻松地在 Oracle DB 中模拟您的所有场景并在之前对其进行测试。
我的建议是您需要进行日级分区和 2 个子分区,例如对象和路线。您所有的业务 SQL 都必须始终命中正确的分区。
您可能还需要清除过去的数据。或者您可以使用过去几天创建的某种聚合并删除您的原始数据会有所帮助。 其可行的 12C。
关于oracle - 大容量数据存储和处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36272552/