gpt4 book ai didi

Hadoop Hive 查询优化

转载 作者:可可西里 更新时间:2023-11-01 14:53:48 24 4
gpt4 key购买 nike

我有一个按日期分区的表,格式为 yyyyMMdd。如果我做这样一个简单的查询:

SELECT COUNT(*) FROM MyTable WHERE Date >= '20140924'

然后会扫描3天的数据(今天是26号)。但是我希望我的查询始终查看最近 3 天,所以我这样写

SELECT COUNT(*) FROM MyTable
WHERE date >= from_unixtime(unix_timestamp() - 259200, 'yyyyMMdd')

问题是现在它扫描每个分区。有没有办法让它预先计算大于号之后的查询部分?

最佳答案

不幸的是 Hive 不支持。我过去遇到过类似的问题,我的配置单元表在过去 2 年里有分区。

但是,您可以采取的一种解决方法是,您可以在 shell 脚本中运行此 hive 查询,您将在另一个变量中计算此日期并将其用作 hive 查询中的变量。一个示例脚本是:

#!/bin/bash

date=`date +"%Y%m%d" -d "-3 days"`
hive -e "select count(*) from MyTable where date >= '$date'"

关于Hadoop Hive 查询优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26051736/

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