加快 hive 查詢的 5 種方法

2022-08-25 23:06:17 字數 1452 閱讀 1447

1. 使用 tez

set hive.execution.engine=tez;

2. 使用 orcfile。當有多個表 join 時,使用 orcfile 進行儲存,會顯著地提高速度。

create table a_orc (

customerid

int, name string, age int, address string

) stored as orc tblproperties ("orc.compress

"

3. 使用 vectorization。會提高 scans, aggregations, filters and joins 等操作的效能。它會把 1024條記錄做為一批進行處理,而不是每條記錄進行處理。

set hive.vectorized.execution.enabled = true

;set hive.vectorized.execution.reduce.enabled = true;

4. 使用 cost-based optimization (cbo) 。根據查詢代價進行優化。

set hive.cbo.enable=true

;set hive.compute.query.using.stats=true

;set hive.stats.fetch.column.stats=true

;set hive.stats.fetch.partition.stats=true;

需要執行 "analyze" 命令為 cbo 收集表的各種統計資訊。

analyze table tbl_student compute statistics;

analyze table tbl_student compute statistics

for columns birthday, race;

5. 優化 sql

select clicks.* from clicks inner join

(select

sessionid, max(timestamp) as max_ts from clicks

group by sessionid) latest

on clicks.sessionid =latest.sessionid and

clicks.timestamp = latest.max_ts;

使用下面的 sql 代替上面的

select *from

(select *, rank() over (partition by sessionid,

order by timestamp desc) as rank

from clicks) ranked_clicks

where ranked_clicks.rank=1;

匯出hive表資料的5種方法

下面介紹一下hive 匯出的幾種方式 本地檔案直接匯出 insert overwrite local directory data hive export student info select from default.student修改分隔符和換行符 insert overwrite local...

Pandas查詢資料的5種方法

按數值,列表,函式,區間,條件的查詢方法 1.df.loc 根據行列的標籤值進行查詢 2.df.iloc 根據行列的位置進行查詢 3.df.where 4.df.query 用單個lable值查詢資料 使用值列表批量查詢 使用資料區間進行範圍查詢 import pandas as pd df pd....

查詢陣列中最大值的5種方法

首先我們給陣列進行排序,可以按照從小到大的順序來排,排序之後的陣列中第乙個和最後乙個就是我們想要獲取的最小值和最大值。排序我們會用到陣列的 sort 方法。var arr 12,56,25,5,82,51,22 arr.sort function a,b 5,12,22,25,51,56 var m...