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不支持。