【问题标题】:Querying big data [closed]查询大数据 [关闭]
【发布时间】:2014-01-13 07:38:26
【问题描述】:

我正在使用一个接收 50/s 10kb 写入流的系统,该写入流每天 24 小时运行。数据通过消息系统摄取到 sql 数据库中,然后用于一夜之间的聚合,这需要大约 15 小时才能为应用程序生成可查询的数据。

目前这一切都在 sql 中,但我们正在转向新的架构。

计划是将摄取的写入移动到分布式数据库(如 Cassandra 或 dynamodb)中,然后在 hadoop 中执行聚合。这使得系统的这些部分具有可扩展性。

我的问题是,当人们拥有这种架构时,在执行写入和聚合之后,他们将数据放在哪里以便可以查询。

更详细的:

我们的应用程序使用的查询模型相当复杂,为了使数据在 cassandra 中可查询,我们必须对所有查询进行非规范化处理,这是可能的,但这意味着数据量的巨大增长。这是正常的做法吗?还是您更愿意将数据移回 sql?

我们可以将数据移入 redshift,但这似乎更多用于临时数据分析,其目的不是作为数据分析应用程序的后端。我还认为当前形式的查询过于复杂,无法以 redshift 所需的 orm 形式编写。

这是否意味着我仍然需要将数据放入sql server?

我正在寻找人们目前正在做什么的例子。

对不起,这个问题有点抽象,请不要关闭它,我会补充更多细节。我读过很多关于大数据的文章,但大多数文章都是关于使用消息传递/工作人员和分布式数据库来摄取数据的,但我还没有发现任何文章显示他们如何处理这些摄取的数据以及如何从应用程序中查询这些数据。

*回答 JosefN 的评论: 是的,我们不打算将非规范化到 sql 数据库中。选择是,对所有客户端和查询进行非规范化到 cassandra,这可能意味着当前数据大小的 100 倍,因为在非规范化模型中会有很多重复。另一种选择是按现在的方式存储它,以便它可以查询,但是,我唯一的选择是 sql db 吗?

*经过更多研究,我得到了更多信息。目前最好的选择似乎是:

  • 存回sql
  • cassandra 中的非规范化
  • 在 hadoop / hdfs 上使用实时 sql 引擎之一,例如 impala
  • drpc 与风暴

我没有任何使用暴风雨的 Impala 或 DRPC 的经验,所以如果有人有任何关于延迟和可以使用这些执行的查询类型的信息,那就太好了。

请不要参考文档或博客文章,我知道这些技术是如何工作的,我只想知道是否有人在生产中使用过它们并且在这个主题上有自己的信息。谢谢

【问题讨论】:

  • 在 SQL db 中存储大的非规范化数据绝对不是一个好主意。可以准备几个针对不同查询优化的查询模型。我不会太担心数据大小。 Cassandara 或 HBase 可以很好地扩展。期待更多规格

标签: cassandra bigdata amazon-dynamodb


【解决方案1】:

我建议将聚合数据移至 HDFS。使用 Hive,它为存储在 HDFS 中的数据提供关系视图,您可以很好地使用 adhoc sql 之类的查询。同时,您将受益于使用 Hive 时调用的 MapReduce 作业的并行性。这将帮助您减少使用 RDBMS 时的查询延迟。还要考虑在 Hadoop 本身中进行聚合作业。

【讨论】:

  • 谢谢侯赛因。我们将在 Hadoop 中进行聚合。我在问,在我上面提到的架构(消息/工作者/分布式数据库/hadoop)中,类似于其他大数据解决方案,一旦执行了聚合,有哪些选项,或者人们使用什么进行即时查询(响应时间低于 1 秒)支持应用程序。在 cassandra 中进行非规范化,还是将数据放回 sql db?还是有其他我不知道的选项?
【解决方案2】:

由于聚合后的数据很小,并且您正在寻找良好的延迟将其保存在 hdfs 中并使用 hive 查询它是不可取的。 我见过人们使用 hbase 来存储聚合数据并对其进行查询,但正如您之前提到的,您必须对数据进行非规范化。对于这种情况,如果聚合数据不大,我建议将聚合数据写回 mysql 并在那里查询。

【讨论】:

  • 谢谢,聚合后的数据不小,如果给了我这样的印象,请见谅。它仍然是大约 3-5TB 的数据。
【解决方案3】:

我认为一种传统方法是运行 Hadoop/Hive 作业以聚合所有可能的维度,然后存储在 HBase 之类的键/值存储中,并在运行时使用基于聚合完成的键(即. /state=NJ/dt=20131225/ ) 这可能会导致大小爆炸,尤其是在要汇总的维度很多时

如果您还想要/需要更实时的解决方案,请查看 Twitter 的 summingbird。

【讨论】:

  • 谢谢,是的,我正在考虑对 cassandra 进行非规范化,并且知道问题中提到的数据大小的爆炸式增长。感谢 summingbird 的提示,虽然我正在寻找有关使用它进行实时查询的信息,但我并不知道。
猜你喜欢
  • 1970-01-01
  • 2016-07-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-25
  • 1970-01-01
  • 2021-03-25
相关资源
最近更新 更多