哪种数据库技术适用于大型结构化数据?

5
场景: 假设你有200张表格中的90TB文本数据。这是结构化相关的数据,类似于dbpedia,但数据更多。任何真正关系型、分布式和高性能的数据库都可以胜任此工作。不要期望像社交网络那样频繁更新,但约为500个读取查询/秒20个更新/秒。但除了这些主要特征外,还需要在数据库上以高速运行大量分析,因为数据将被不断地用像Apache Mahout这样的机器学习技术重新处理和改进。
现在首先要解决的问题是,使用哪些数据库技术(或等待它们发布)来维护所有这些数据,虽然网站访问者相对较少,但对快速运行分析/机器学习有很高的需求?其次,要跟踪哪些其他数据库以满足特定目的,哪些要从列表中删除或成对出现,只应用一个(/更好的)。
Cloudera/Brisk (Cassandra,Hive)
mysql(cluster), mariadb
Berkeley DB
drizzle, nimbusdb,
scidb (http://www.theregister.co.uk/2010/09/13/michael_stonebraker_interview/)
mongodb
datadraw
neo4j

90 TB?你的手指一定因为打那么多文字而疼痛不已吧 ;-) - Johan
1
你将在上面运行什么类型的查询?请用这个问题开始。 - Vladislav Rastrusny
你可能更想在DBA网站上询问这个问题。 - Bill the Lizard
200张表对于数据仓库来说是一个巨大的数量,如果不知道数据被如何使用和转换以生成报告,最快的解决方案将是某种Map/Reduce实现(Hadoop + Cassandra是其中之一)。您应该扩展您的问题,因为了解数据如何转换是有帮助的(如果它类似于Google,您存储所有可能的内容,然后根据找到的文本模式进行查询,那么Map/Reduce平台胜过其他任何东西)。 - Michael J.V.
2个回答

2

听起来Cassandra + Hadoop是一个很好的选择。现在只需要一点努力就可以实现,DataStax(我的雇主)正在推出Brisk(也是开源的),以使其更容易:http://www.datastax.com/products/brisk


我之前访问过你的网站,很抱歉没有提到,如果在应用Cassandra + Hadoop时有任何优势,请随意指出Cloudera的优点。 - Jonas

2
除了这些之外,最重要的特性是在数据库上运行大型分析并以最大速度运行。
所以现在你只需要90TB以上的内存,就可以开始了。 "最大"速度是一个非常相对的概念。
我有大约90TB的文本数据分布在200个表中。这是结构化相关的数据。任何真正的关系型分布式和高性能数据库都可以胜任这项工作。
什么是“真正的关系型分布式数据库”?
让我们反过来看看。假设您有90台服务器,每台服务器都保存1TB的数据。您计划如何在200个表和90台服务器之间执行连接操作?
一般来说,跨服务器的连接不会很好地扩展。尝试在90个服务器之间运行连接可能会更少扩展。分区200个表是一项艰巨的工作。
在这种情况下,应该追踪哪些其他数据库,哪些数据库应该从列表中删除?
好的,所以这里有很多后续问题:
- 您现在正在运行什么? - 你的痛点是什么? - 您是否真的计划只安装新系统? - 是否有一个较小的子系统可以先进行测试? - 如果您有200个表,那么您运行多少不同的查询?成千上万? - 您计划如何测试查询的行为是否正确?

除非所有的90TB都是热数据,否则你不需要90TB的内存,但在大多数情况下这是不太可能的。 - Bryan Migliorisi
我会选择它!但是它只有0.3TB,而且足够使用SATA... - Jonas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接