对 DynamoDB 表运行 Hive 查询时,我的查询需要花费很长时间才能完成

上次更新时间:2019 年 6 月 19 日

我正在使用 Amazon EMR 对 Amazon DynamoDB 表运行 Apache Hive 查询。查询已运行了几个小时,仍未完成。如何加快查询速度?

简短描述

这通常发生在您没有为 DynamoDB 表预配置足够的读取容量单位时。所需的读取容量单位的数量取决于表中的数据量以及您希望查询的运行速度有多快。有关更多信息,请参阅预配置的读取容量单位

解决方法

要减少查询运行时,向源 DynamoDB 表添加更多读取容量单位:

1.    打开 DynamoDB 控制台

2.    选择您的表,然后选择指标选项卡。

3.    找到受限的读取事件图表,它对应于 ReadThrottleEvents Amazon CloudWatch 指标。如果图表上有尖峰值,则可能是因为您没有为表预配置足够的读取容量单位。

4.    选择容量选项卡。

5.    增加读取容量单位的数量,然后选择保存。您可以使用容量计算器来估算您选择的读取容量单位数量的每月费用。

注意:根据您添加的读取容量单位数量,您可能需要向您的 Amazon EMR 集群添加更多映射器守护程序。每个映射器守护程序每秒可以处理 250 个读取容量单位。

6.    开始您的 Hive 查询。

7.    检查受限的读取事件图表。如果没有尖峰,但查询仍花费很长时间才能完成,则您的 Amazon EMR 集群可能存在问题。有关更多信息,请参阅如何使用日志来排除 Amazon EMR 中的 Hive 查询问题?


这篇文章对您有帮助吗?

您觉得我们哪些地方需要改进?


需要更多帮助?