gpt4 book ai didi

mongodb - 如果已经在使用 Hadoop,HBase 或 Mongo 用于分析数据库?

转载 作者:可可西里 更新时间:2023-11-01 10:33:18 26 4
gpt4 key购买 nike

我目前有一个 Hadoop 集群,我在其中存储了大量日志,我在这些日志上运行 pig 脚本来计算聚合分析。我还有一个用于存储生产数据的 Mongo 集群。

我最近被安排在一个位置上,我需要做很多一次性的分析查询,或者让其他人去做。这些查询经常需要同时使用生产数据和日志数据,因此无论我使用什么,我都希望将所有内容都放在一个地方。我的日志数据在 json 中,大约是我的产品数据的 10 倍。以下是我看到的 Mongo 和 HBase 的优缺点:

Mongo 优点/HBase 缺点:

  1. 由于日志数据是 JSON 格式的,我可以很容易地将它导入 Mongo,而且当它通过 FluentD 之类的东西传入时,我可以实时执行此操作。
  2. 与我共事的大多数人都有编写 Mongo 查询的经验,因为他们需要处理生产数据,因此在 Mongo 上建立分析数据库对每个人来说都非常简单易用。
  3. 我对 Hbase 的了解比 Mongo 少得多。
  4. 不知道从 JSON 格式或从 Mongo 获取数据到 Hbase 是多么容易/困难。我想这还不错,但我没有看到太多文档。

HBase 优点/Mongo 缺点:

  1. 我的日志数据比我的产品数据大得多,因此将它同时存储在 hadoop 和 mongo 中比将我的产品数据同时存储在 hadoop 和 mongo 中要昂贵得多。
  2. 我可以在我已经运行的 Hadoop 集群之上构建 HBase,并在其中容纳我的产品数据,而无需添加许多额外的机器。如果我使用 Mongo,我需要一个全新的 Mongo 集群。
  3. 我可以在 Hbase 之上使用 Phoenix 来允许使用简单的 SQL 语法来访问我们的所有数据,但我不确定这对于基于多级文档的数据来说会有多难用。

我目前对 Hbase 知之甚少,我不认为自己是 Mongo 专家,所以我可能遗漏了很多东西。

那么,我缺少什么,哪种适合我的情况?

最佳答案

首先,你应该使用你已经可以处理的东西。因此,Mongo DB 似乎是一个不错的选择,尤其是当数据已经是 json 格式时。

另一方面,我使用 HBase 有一段时间了,虽然有很多行,但读取性能还是惊人的,我真的不知道是否有 Mongo DB 与 Hadoop 的良好和快速集成。HBase是Hadoop数据库,和Hadoop一起工作是命中注定的。

如果日志可以通过(在 HBase Rowkey 中)进行索引:

producing_program_identifier, timestamp, ...

HBase 可以很好地处理这种查询模式。但是,如果您决定使用 HBase,请使用 phoenix framwork ,它将节省您使用熟悉的接口(interface)(如 jdbc 和类似 sql 的查询)的时间。它还提供了可能足够的简单聚合函数(count、avg、max、min)。

关于mongodb - 如果已经在使用 Hadoop,HBase 或 Mongo 用于分析数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16555751/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com