Apache蜂巢的兼容性

適用於:檢查標記是的磚運行時

Apache火花SQL數據磚被設計成與Apache蜂巢兼容,包括metastore連接,並行轉換器和udf。

並行轉換器和udf

蜂巢並行轉換器和udf是基於蜂巢1.2.1。

Metastore連接

看到外部Apache蜂巢metastore(遺留)信息如何連接外部托管蜂巢metastore磚。

支持蜂巢特性

火花SQL支持絕大多數的蜂巢的特性,如:

  • 蜂巢查詢語句,包括:

    • 選擇

    • 集團

    • 命令

    • 集群的

    • 排序

  • 所有的蜂巢表達式,包括:

    • 關係表達式(=,,= =,< >,<,>,> =,< =等)

    • 算術表達式(+,- - - - - -,*,/,%等)

    • 邏輯表達式(& &,| |,等等)

    • 複雜類型構造函數

    • 數學表達式(簽名、ln cos等等)

    • 字符串表達式(instr、長度、printf等)

  • 用戶定義函數(UDF)

  • 用戶定義的聚合函數(UDAF)

  • 用戶定義的序列化格式(並行轉換器)

  • 窗口函數

  • 連接

    • 加入

    • {左| |全}外連接

    • 左半連接

    • 交叉連接

  • 工會

  • 子查詢

    • 從(選擇一個+ b選擇坳坳從t1) t2

  • 抽樣

  • 解釋

  • 分區表包括動態分區插入

  • 視圖

  • 絕大多數的DDL語句,包括:

    • 創建表

    • 創建表選擇

    • ALTER TABLE

  • 大多數蜂窩數據類型,包括:

    • 非常小的整數

    • 短整型

    • INT

    • 長整型數字

    • 布爾

    • 浮動

    • 字符串

    • 二進製

    • 時間戳

    • 日期

    • 數組< >

    • 地圖< >

    • STRUCT < >

不支持的蜂巢功能

以下部分包含一係列蜂巢火花SQL不支持的功能。大部分的這些特性在蜂巢中很少使用部署。

主要蜂巢特性

  • 寫信給桶表由蜂巢

  • 酸細粒度更新

深奧的蜂巢的特性

  • 聯合類型

  • 獨特的加入

  • 列統計信息收集:火花SQL不捎帶掃描收集列統計,僅支持填充sizeInBytes蜂巢metastore領域

蜂巢的輸入和輸出格式

  • CLI文件格式:結果顯示回CLI, SQL隻支持TextOutputFormat火花

  • Hadoop存檔

蜂群優化

少量的蜂群優化並不包含在火花。其中的一些(如索引)更重要是由於火花SQL的內存計算模型。

  • 塊水平位圖索引和虛擬列(用於構建索引)。

  • 自動確定數量的連接和groupbys還原劑:火花SQL,你需要控製並行post-shuffle使用的程度spark.sql.shuffle.partitions = [num_tasks];

  • 斜數據標誌:火花SQL不遵循斜數據標誌在蜂巢。

  • STREAMTABLE在加入提示:火花SQL不遵循STREAMTABLE提示。

  • 查詢結果合並多個小文件:如果結果輸出包含多個小文件,蜂巢可以選擇小文件合並到更少的大文件,以避免溢HDFS元數據。引發SQL不支持。