1

许多用户习惯于在 oracle/mysql 中使用 'select * from tables'

但我不应该让他们像在蜂巢中那样查询

有什么方法可以防止 hive 中的 full_table 扫描?

像触发器还是别的什么?

非常感谢!

4

1 回答 1

1

要防止全表扫描,请使用这些设置。

set hive.mapred.mode=strict;  --prevent full scan
SET hive.limit.query.max.table.partition=10; --limit partitions to 10

如果未指定分区谓词,Hive 将生成异常:

FAILED: SemanticException [Error 10041]: No partition predicate found

以及超出分区数的异常示例:

SemanticException Number of partitions scanned (=37) on table
于 2018-02-08T11:13:56.680 回答