HIVE SQL:从庞大的数据库中仅选择一个值的最快方法是啥
Posted
技术标签:
【中文标题】HIVE SQL:从庞大的数据库中仅选择一个值的最快方法是啥【英文标题】:HIVE SQL: what is the fastest way to select only one value from a huge databaseHIVE SQL:从庞大的数据库中仅选择一个值的最快方法是什么 【发布时间】:2020-01-19 12:37:30 【问题描述】:背景:有一个基于HIVE的定制SQL数据库,很多SQL函数不能在那里工作,例如SELECT *
/current_date
/'datetime'/'relativedelta'等,我能找到的唯一解决方案是下面列出:
我想得到last_year_today的日期,一行就够了。
SELECT
(time - 10000) AS this_day_of last year
FROM
table
WHERE
<a customized funciton works like datetime.now() in INT 'YYYYMMDD' format>
LIMIT 1
-- i've tried "SELECT TOP 1...", failed.
太慢了,1 多分钟。我想知道是否有一种更快的方法来只选择一个值?谢谢!
【问题讨论】:
【参考方案1】:我有点困惑。为什么不简单地运行这样的查询?
select add_months(current_date, -12)
如果您需要 yyyymmdd 格式,请使用您的函数或直接计算:
select (year(current_date) - 1) * 10000 + month(current_date) * 100 + day(current_date)
【讨论】:
因为数据库是自定义的,很多SQL函数,比如current_date
,都不能在那里工作。 :( 。唯一的解决方案是尽可能快地运行我的 SELECT 。以上是关于HIVE SQL:从庞大的数据库中仅选择一个值的最快方法是啥的主要内容,如果未能解决你的问题,请参考以下文章