sql-server – 哪个数据库可以处理数十亿/数万亿条记录的存储?
我们正在研究开发一种捕获和分析netflow数据的工具,我们收集了大量的数据.每天我们捕获大约14亿个流记录,这些记录在json格式中看起来像这样: { "tcp_flags": "0","src_as": "54321","nexthop": "1.2.3.4","unix_secs": "1352234521","src_mask": "23","tos": "0","prot": "6","input": "105","doctets": "186","engine_type": "0","exaddr": "2.3.4.5","engine_id": "2","srcaddr": "9.8.7.6","dst_as": "12345","unix_nsecs": "752265174","sysuptime": "2943529544","dst_mask": "24","dstport": "80","last": "2943523241","srcport": "52672","dpkts": "4","output": "111","dstaddr": "6.5.4.3","first": "2943517993" } 我们希望能够对数据集进行快速搜索(少于10秒),最有可能在很短的时间内(10 – 30分钟间隔).我们还希望索引大部分数据点,以便我们可以快速搜索每个数据点.我们还希望在执行搜索时获得最新的数据视图.留在开源世界会很棒,但我们并不反对为这个项目寻找专有解决方案. 这个想法是保留大约一个月的数据,这将是约432亿条记录.粗略估计每条记录将包含大约480字节的数据,相当于一个月内大约18.7太字节的数据,可能是索引的三倍.最终,我们希望增加此系统的容量来存储数万亿条记录. 我们(非常基本上)已经对这个项目的候选人进行了评估,但是每个人都提出了自己的挑战.使用couchbase时,索引是按时间间隔完成的,而不是在插入数据期间,因此视图不是最新的,cassandra的二级索引在返回结果时效率不高,因为它们通常需要扫描整个集群以获得结果,而mongodb看起来很有希望但是由于它是主/从/分片,因此看起来更难以扩展.我们计划评估的其他一些候选者是elasticsearch,mysql(不确定这是否适用),以及一些面向列的关系数据库.任何建议或现实世界的经验将不胜感激. 解决方法在我工作的公司,我们正在处理类似数量的数据(大约10 TB的实时可搜索数据).我们用Cassandra解决了这个问题,我想提一下能让你在多TB数据库上进行O(1)搜索的想法.这不是Cassandra db特有的,你可以将它与其他数据库一起使用.理论 >分类您的数据.单个服务器无法可靠且真实地保存这样的数据量. 实践 >不要花时间在物理机器上构建操作系统映像或安装服务器.使用基于云的提供程序进行快速原型设计.我曾与Amazon EC2合作,因其简单性,可靠性和原型制作速度而备受推崇. 我不为亚马逊工作,与HAProxy和Ubuntu团队没有任何关系.这是一种个人观点,而不是任何形式的宣传. (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |