CDH5.13.x文檔翻譯SQL Differences Between Impala and Hive

https://www.cloudera.com/documentation/enterprise/5-13-x/topics/impala_langref_unsupported.html#langref_hiveql_delta
Impala的SQL語法遵循SQL-92標準,還包括了很多業(yè)界擴展比如內(nèi)置函數(shù)蟆沫。查看Porting SQL from Other Database Systems to Impala從多種數(shù)據(jù)庫系統(tǒng)的SQL適配到Impala的討論歉秫。

因為Impala和Hive共享metastore數(shù)據(jù)庫蛾洛,他們的表也共享,接下來幾節(jié)會說明Impala和Hive細節(jié)上的不同雁芙。

擴展閱讀:

Impala不支持的HiveQL特性

當前Impala的release不支持以下你可能已經(jīng)熟悉的HiveQL:

  • 擴展機制比如 TRANSFORM轧膘,定制的文件格式,或者定制的SerDes
  • DATE數(shù)據(jù)類型
  • XML和JSON函數(shù)
  • HiveQL中特定的聚合函數(shù):covar_pop, covar_samp, corr, percentile, percentile_approx, histogram_numeric, collect_set;
    Impala支持這些聚合函數(shù):Impala Aggregate Functions
    以及這些分析函數(shù): Impala Analytic Functions
  • 采樣
  • Lateral views.在CDH5.5/Impala2.3以及更高版本兔甘,Impala支持對復(fù)雜類型(STRUCT谎碍,MAP,ARRAY)的查詢洞焙,使用join而非EXPLODE()關(guān)鍵字蟆淀。 查看Complex Types (CDH 5.5 or higher only) 獲得Impala對復(fù)雜類型查詢支持的細節(jié)。
  • 單查詢中存在多個DISTINCT語句澡匪,盡管Impala對這個局限采取了一些補救措施熔任。

Note:
默認情況下Impala只允許在每個查詢中包含一個COUNT(DISTINGCT columns)表達式。
如果不需要完全精準唁情,可以使用NDV(colum)得到一個列的distinct的估計值疑苔。一個查詢可以包含多個NDV(colum)。讓Impala自動重寫COUNT(DISTINCT)NDV()甸鸟,需要設(shè)置APPX_COUNT_DISTINCT選項惦费。
要讓結(jié)果與COUNT(DISTINCT)一致,可以使用下面的查詢例子:
select v1.c1 result1, v2.c1 result2 from
(select count(distinct col1) as c1 from t1) v1
cross join
(select count(distinct col2) as c1 from t1) v2;
由于CROSS JOIN是一個代價很高的操作抢韭,還是建議盡量使用NDV()趁餐。

Impala在1.2之后支持UDFs。查看Impala UDFs的細節(jié):User-Defined Functions (UDFs)篮绰。

  • Impala支持C++編寫的高性能UDFs后雷,也支持重用一些Java-based Hive UDFs。
  • Impala支持標量UDF與UDAFs吠各。Impala目前不支持UDTFs臀突。
  • 在JavaUDF中出現(xiàn)的Hive的current_user()語句不能被Impala調(diào)用。

Impala目前不支持這些HiveQL語句:

  • ANALYZE TABLE (Impala中等價的是 COMPUTE STATS)
  • DESCRIBE COLUMN
  • DESCRIBE DATABASE
  • EXPORT TABLE
  • IMPORT TABLE
  • SHOW TABLE EXTENDED
  • SHOW TBLPROPERTIES
  • SHOW INDEXES
  • SHOW COLUMNS
  • INSERT OVERWRITE DIRECTORY; use INSERT OVERWRITE table_name or CREATE TABLE AS SELECT 基于Impala表物化查詢結(jié)果至hdfs中贾漏。

Impala只在TEXT格式的表中支持serialization.null.format候学,忽略Parquet的屬性以及其他格式。Hive支持Parquet和其他格式中的serialization.null.format屬性并在掃描過程中將匹配到的值轉(zhuǎn)為NULL纵散。
查看 Data Files for Text Tables 獲取Impala中使用表屬性的細節(jié)梳码。

Impala與HiveQL特性中語義上的不同

這部分闡述Impala和Hive具有相似功能隐圾、有時是相同語法,但運行時有不同語義的特性掰茶。

安全

SQL語句

ImpalaSQL語句在有時盡管和HiveQL在語法和聲明上相似但語義不同暇藏。

  • Impala使用不同的語法和名字做查詢提示,[SHUFFLE]和[NOSHUFFLE]而非MapJoinStreamJoin濒蒋。 Impala具體查看 Joins in Impala SELECT Statements盐碱。
  • Impala不暴露MapReduce的某些特性:SORT BY,DISTRIBUTE BY, CLUSTER BY
  • Impala不要求查詢包含FROM語句

數(shù)據(jù)類型

  • Impala支持有限的隱式轉(zhuǎn)換沪伙。這有助于避免預(yù)料外的行為瓮顽。
    1. 不會隱式地在string/numeric/boolean類型間轉(zhuǎn)換∥穑總是需要CAST()暖混。
    2. 當往更大、更精確的類型轉(zhuǎn)換時翁授,Impala不會在numeric的類型間隱式轉(zhuǎn)換拣播。比如,SMALLINT到BIGINT會隱式轉(zhuǎn)換黔漂,但DOUBLEFLOATINTTINYINT就不會,而需要CAST()禀酱。
    3. Impala不會對string到timestamp做隱式轉(zhuǎn)換炬守,Impala對TIMESTAMP類型以及from_unixtime()的字符串格式有限制;詳細信息 TIMESTAMP Data Type .
  • Impala不會使用本地時區(qū)保存或解釋timestamps剂跟。
  • Impala TIMESTAMP 數(shù)據(jù)類型 可以表示1400-01-01 到 9999-12-31范圍內(nèi)的日期减途。這和Hive的不同(0000-01-01 到 9999-12-31)。
  • Impala不會將列值溢出處理為NULL曹洽,而是返回該類型最大或最小值鳍置。比如tinyint合法取值范圍為-128到127,如果賦值-200則返回-128送淆,賦值200則返回127税产。

其他

  • 不提供virtual columns
  • 不暴露鎖
  • 不暴露某些配置屬性
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市偷崩,隨后出現(xiàn)的幾起案子辟拷,更是在濱河造成了極大的恐慌,老刑警劉巖阐斜,帶你破解...
    沈念sama閱讀 216,692評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件衫冻,死亡現(xiàn)場離奇詭異,居然都是意外死亡谒出,警方通過查閱死者的電腦和手機隅俘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評論 3 392
  • 文/潘曉璐 我一進店門邻奠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人为居,你說我怎么就攤上這事十饥∨杉蹋” “怎么了?”我有些...
    開封第一講書人閱讀 162,995評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長鼎文。 經(jīng)常有香客問我,道長汉嗽,這世上最難降的妖魔是什么插掂? 我笑而不...
    開封第一講書人閱讀 58,223評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮鸠项,結(jié)果婚禮上干跛,老公的妹妹穿的比我還像新娘。我一直安慰自己祟绊,他們只是感情好楼入,可當我...
    茶點故事閱讀 67,245評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著牧抽,像睡著了一般嘉熊。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上扬舒,一...
    開封第一講書人閱讀 51,208評論 1 299
  • 那天阐肤,我揣著相機與錄音,去河邊找鬼讲坎。 笑死孕惜,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的晨炕。 我是一名探鬼主播衫画,決...
    沈念sama閱讀 40,091評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼瓮栗!你這毒婦竟也來了削罩?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,929評論 0 274
  • 序言:老撾萬榮一對情侶失蹤费奸,失蹤者是張志新(化名)和其女友劉穎鲸郊,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體货邓,經(jīng)...
    沈念sama閱讀 45,346評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡秆撮,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,570評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了换况。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片职辨。...
    茶點故事閱讀 39,739評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡盗蟆,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出舒裤,到底是詐尸還是另有隱情喳资,我是刑警寧澤,帶...
    沈念sama閱讀 35,437評論 5 344
  • 正文 年R本政府宣布腾供,位于F島的核電站仆邓,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏伴鳖。R本人自食惡果不足惜节值,卻給世界環(huán)境...
    茶點故事閱讀 41,037評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望榜聂。 院中可真熱鬧搞疗,春花似錦、人聲如沸须肆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽豌汇。三九已至幢炸,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間拒贱,已是汗流浹背宛徊。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留柜思,地道東北人岩调。 一個月前我還...
    沈念sama閱讀 47,760評論 2 369
  • 正文 我出身青樓巷燥,卻偏偏與公主長得像赡盘,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子缰揪,可洞房花燭夜當晚...
    茶點故事閱讀 44,647評論 2 354

推薦閱讀更多精彩內(nèi)容