许多用户习惯于在 oracle/mysql 中使用 'select * from tables'
但我不应该让他们像在蜂巢中那样查询
有什么方法可以防止 hive 中的 full_table 扫描?
像触发器还是别的什么?
非常感谢!
许多用户习惯于在 oracle/mysql 中使用 'select * from tables'
但我不应该让他们像在蜂巢中那样查询
有什么方法可以防止 hive 中的 full_table 扫描?
像触发器还是别的什么?
非常感谢!
要防止全表扫描,请使用这些设置。
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