Hive 查询示例:您需要了解的内容

如果您在 Hadoop 上使用 Hive,了解 Hive 查询并熟悉一两个 Hive 查询示例是实现有效集群管理的关键。 Hive 查询消耗时间和资源,因此必须通过 Hive 查询调优来提高效率。在本文中,您将了解什么是 Hive 查询、它们如何影响您的集群(正面和负面)、有用的 Hive 查询方法,以及一个好的 Hive 查询示例是什么样的。让我们开始吧。

Hive 查询是来自 Hadoop 数据库的特定信息请求。这些信息请求由 Apache Hive 执行,Apache Hive 是一个在 Hadoop 之上开发的开源数据仓库平台。 Facebook 在编写 Java MapReduce 平台方面创建了 Hive 来执行数据分析、分布式处理和减少工作。

Hive 查询使用一组预定义的代码,这些代码是您的数据库语言的本机代码。然后数据库接收指令,一旦它理解了该指令,就收集并发布所请求的信息。

Hive 是为提高效率而设计的,这就是为什么它的查询需要完美调整和编写良好的原因。您还可以设置依赖项以启用查询的自动计划。这将保证一旦一个动作完成,下一个动作立即开始。

与增加网络带宽相比,提高系统的 RAM 容量和 CPU 能力可以加快 Hive 响应时间。

调优不当的查询会给组织带来重大挫折。其中最大的是错过了 SLA(服务水平协议)。

这些协议表示企业及其客户同意的服务水平,包括性能保证、数据安全、正常运行时间和客户服务标准。因此,如果低效查询导致错过 SLA,结果可能是罚款、退款,或者在某些情况下终止合同。

调整不当的 Hive 查询也会消耗资源。这些会在两个方面影响您的 Hadoop 集群。一:调优不佳的查询会耗尽集群中其他用户或功能的资源。这会导致性能下降和响应时间变慢。二:使用的资源产生成本。由于 Hive 查询调优不佳而造成的资源浪费会增加您的 AWS 账单,让您非常头疼。

低效查询的其他一些影响可能会破坏集群性能、减慢数据库速度和停机时间。

由于低效查询会产生许多负面影响,因此优化查询至关重要。

有一些非常方便的 Hive 查询调优方法,具体取决于您是针对时间还是资源使用进行优化:

适当的 Hive 调整允许您操作尽可能少的数据。一种方法是通过分区,将“键”分配给数据被隔离的子目录。当您的查询需要信息时,您可以定位数据所在的特定子集,这样可以节省您扫描不需要的数据的时间。

分桶类似于分区,尽管它有助于通过扫描更少的数据来提高连接性能。

这有助于最大限度地减少遍历查询过程中各个步骤的数据量,以及在查询状态之间移动所需的时间。

在执行方面,利用执行引擎(如 Tez、Hive on Spark 和 LLAP)可以帮助提高查询性能,而无需低级调优方法。在不需要顺序操作时利用并行执行也是明智的。您的系统可以执行的并行度取决于可用资源和整体数据结构。

此外,它有助于在所有任务之间保持工作的均匀分布,以避免出现偏差。请记住:您的整体查询速度只能与最慢的任务一样快。

最后,当您查看测试时,采样(也称为单元测试)是最好的 Hive 查询调优技术之一。通过获取数据的一个子集并一次运行一千行查询,您可以更快地找到失败、奇怪的结果和错误。这有助于您微调查询以获得更高的准确性和效率。

每个查询还应该自动进行审查和性能测量。这确保他们在晋升到更高级别的环境之前满足最低要求。将不良查询排除在生产之外。

关注公众号“大模型全栈程序员”回复“大数据面试”获取800页左右大数据面试宝典 ,回复“大数据”获取多本大数据电子书

关注公众号“大模型全栈程序员”回复“小程序”获取1000个小程序打包源码。更多免费资源在http://www.gitweixin.com/?p=2627