gpt4 book ai didi

mysql - 使用 Hive 进行实时查询

转载 作者:可可西里 更新时间:2023-11-01 07:28:23 25 4
gpt4 key购买 nike

首先,我想澄清一下,我正在学习 Hive 和 Hadoop(以及一般的大数据),所以请原谅我缺乏适当的词汇。

我正着手进行一个巨大的(至少对我而言)项目,该项目需要处理大量数据,而我过去通常不会处理这些数据,因为我一直主要使用 MySQL。

对于这个项目,一系列传感器将每小时产生 5 次大约 125.000.000 个数据点(每天 15.000.000.000),这是我插入到每个 MySQL 表中的所有数据的总和的几倍。

我知道一种方法是使用 Hadoop MapReduce 和 Hive 来查询和分析数据。

我面临的问题是,就我所能学到的知识而言,我理解 Hive 主要像“cron 作业”一样运行,而不是实时查询,这可能需要很长时间并且需要不同的基础架构。

我想根据 Hive 查询的结果创建 MySQL 表,因为最多需要实时查询的数据大约为 1.000.000.000 行,但我想知道这是否是正确的方法或者我应该研究一些其他技术。

有没有专门为大数据实时查询而创建的技术我应该学习?

任何提示将不胜感激!

最佳答案

这是一个复杂的问题。让我们从解决您在问题中提到的技术开始,然后从那里开始:

  1. MySQL:对于任何使用过 MySQL(或任何其他关系数据库)的人来说,传统的开箱即用的 MySQL 安装永远不会支持您正在谈论的卷。粗略的计算足以告诉我们——假设您的传感器插入只有 100 个字节,那么您说的是 150 亿 x 100 个字节 = 1.5 万亿字节或每天 1.396 太字节。这是真正的大数据,尤其是如果您计划将其存储一两天以上。

  2. Hive:Hive 当然可以处理那种数据量(我和许多其他人已经做到了),但正如您所指出的,您无法获得实时查询。每个查询都将成批进行,如果您需要快速查询,则需要预先聚合数据。

现在我们要面对真正的问题了——您需要运行什么样的查询?如果您需要运行任意实时查询并且永远无法预测这些查询可能是什么,那么您可能需要寻找相对昂贵的专有数据存储,如 Vertica、Greenplum、Microsoft PDW 等。这些将花费很多钱,但他们和其他人可以处理您所说的负载。

另一方面,如果您可以在某种程度上准确地预测将要运行的查询类型,那么 Hive 之类的东西可能就有意义了。将原始数据存储在那里,并使用批量查询功能来完成繁重的工作,并定期在 MySQL 或其他关系数据库中创建聚合数据表,以支持您对低延迟查询的需求。

另一种选择是 HBase。 HBase 为您提供了对分布式数据的低延迟访问,但您失去了两个您可能已经习惯的关键项目——查询语言(HBase 没有 SQL)和聚合数据的能力。要在 HBase 中进行聚合,您需要运行 MapReduce 作业,尽管该作业随后可以将其结果存储回 HBase 以再次进行低延迟访问。

关于mysql - 使用 Hive 进行实时查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12700582/

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