gpt4 book ai didi

sql - 我可以使用 hadoop 而不是其他数据库来进行快速 SQL 操作吗?

转载 作者:可可西里 更新时间:2023-11-01 17:00:48 27 4
gpt4 key购买 nike

我对Hadoop不是很熟悉,也不是数据库专家,我只是想知道通过使用Hadoop、HBase或Pig、Hive(一起或单独)是否可以提高“select”的SQL查询的执行速度"或 "插入"。

问题是,本来数据是存储在Microsoft SQL等工具上进行密集聚合的东西,但是速度很慢,对于数据集,可能GB大小,需要几分钟才能返回结果(例如select)。

我在想,如果我可以将数据放在 Hadoop HDFS 上,并使用 Apache 提供的一些工具和 MR,我可以重写 SQL(选择、插入 No_SQL 模式中的函数,但更像是函数式或更面向编程的模式) 我可以提高处理速度吗?

有关如何执行此操作或我的方向是否正确的建议?

谢谢!

最佳答案

整个 Hadoop 生态系统(包括 HDFS、Hive 和 HBase)并不是为响应时间少于几分钟的快速交互/实时查询而设计的。相反,Hadoop 非常适合具有非常大的数据集(考虑 TB 或 PB 级)的批处理编程(超过几分钟的响应)。

如果您只有几千兆字节的数据集(在 Hadoop 世界中被认为是一个小数据集),您最好提高 SQL 世界中保留的查询的性能。例如,如果您要连接两个或多个表,您可以对数据进行反规范化,以避免连接。

也就是说,有一个名为 Stinger 的倡议来自 Microsoft 和 Hortonworks,它们试图提高 Hive 的性能以使查询具有交互性。引入了一个名为 Tez 的工具这使 Hive 快 10 到 100 倍。

我的建议是使用 Hortonworks sandbox VM 来尝试 hadoop 的性能并在笔记本电脑上测试配置单元的性能。如果您使用 2.1 版,它已经包含在 Tez 和最新版本的 Hive 中。

您必须记住,对于 Hortonworks 沙箱,您使用的是仅由一个节点组成的集群。如果您想提高 Hive 查询的性能,您可以将数据集分发到多个节点上进行处理。

只有使用 sql 数据库和 hadoop 进行实际测试,您才能看到哪个解决方案的性能更好。我的猜测是,使用如此小的数据集并在一个节点上将您的 SQL 数据库与 Hive 进行比较,您仍然可以使用 SQL 数据库执行得更好。但是对于更大的数据集和使用更多的节点,SQL 数据库的性能开始下降,有利于 hadoop 解决方案。

P.S:我是 Hortonworks 认证的开发人员和讲师。

关于sql - 我可以使用 hadoop 而不是其他数据库来进行快速 SQL 操作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24271723/

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