【问题标题】:Which database technology for big structured data? [closed]结构化大数据采用哪种数据库技术? [关闭]
【发布时间】:2011-04-21 06:39:28
【问题描述】:

场景:假设您在 200 个表中有 90TB 的文本。这是结构化的相关数据。与 dbpedia 相比只有更多的数据。任何真正的关系型、分布式和高性能数据库都可以完成这项工作。不要期望像社交网络那样多的更新,但大约 500read 查询/s 20updates/s 但除此之外需要的主要功能是对数据库进行高速大分析,因为数据将通过 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?你的手指一定会因为输入所有文字而受伤;-)
  • 你会在上面运行什么样的查询?请从这个开始你的问题。
  • 您可能想改为在DBA 网站上提问。
  • 200 个表是数据仓库的大量表,不知道如何准确地使用和转换数据以获取报告 - 最快的解决方案将是某种 Map/Reduce 实现(Hadoop + Cassandra 是其中之一)。您应该扩展您的问题,因为了解数据的转换方式会有所帮助(如果它像谷歌一样存储所有可能的内容,然后根据找到的文本模式进行查询,那么 Map/Reduce 平台胜过其他任何事情)。

标签: mysql mongodb cloud cassandra bigtable


【解决方案1】:

但除此之外还需要的主要功能是以最快的速度对数据库进行大型分析

所以现在您只需要 90TB 以上的 RAM 就可以了。 “最大”速度是一个非常相对的概念。

我在大约 200 个表中获得了大约 90TB 的文本。这是结构化的相关数据。任何真正的关系型分布式高性能数据库都可以胜任。

什么是“真正的关系分布式数据库”?

让我们翻转一下。假设您有 90 台服务器,每台服务器拥有 1TB 的数据。您有什么计划在 200 个表和 90 个服务器之间执行连接?

一般来说,跨服务器连接不能很好地扩展。尝试在 90 台服务器上运行连接可能会扩展得更少。对 200 个表进行分区是一项繁重的工作。

在这种情况下一般要跟踪哪些其他数据库以及从列表中删除哪些数据库

好的,所以这里有很多后续问题:

  • 你现在在做什么?
  • 您的痛点是什么?
  • 您真的打算安装一个新系统吗?
  • 是否有更小的子系统可以先进行测试?
  • 如果您有 200 个表,您正在运行多少个不同的查询?数千?
  • 您打算如何测试查询的行为是否正确?

【讨论】:

  • 您不需要 90TB 内存,除非所有 90TB 都被认为是热的,但在大多数情况下这不太可能。
  • 好吧,我会去的!但它“只有”0.3TB 和足够的 sata...
【解决方案2】:

听起来很适合 Cassandra + Hadoop。今天稍加努力就可以做到这一点。 DataStax(我工作的地方)正在引入 Brisk(也是开源的)以使其更容易:http://www.datastax.com/products/brisk

【讨论】:

  • 我之前上过你的网站,抱歉我没有提到,请随时指出cloudera在应用cassandra + hadoop时的优势
猜你喜欢
  • 1970-01-01
  • 2020-01-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-22
相关资源
最近更新 更多