---
title: 约束与限制
description: "在特性配置前，请先了解OmniOperator算子加速特性的使用限制。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/240RC2/bds/kunpengbds_omniruntime_20_0272.html
sourcePath: /source/zh/kunpengboostkithistory/240RC2/bds/kunpengbds_omniruntime_20_0272.html
indexId: e43023ffff10c3621359ce574a4e022340ce57cd59fd096b47233fcbe785d2e380
---
# 约束与限制

在特性配置前，请先了解OmniOperator算子加速特性的使用限制。

- 当前UDF插件仅支持Simple UDF，用于执行基于Hive UDF框架编写的UDF函数。
- 当前支持的Decimal数据类型规格包含64位和128位，如若超过128位的表示范围，则会抛出异常或者返回null，可能会产生和引擎原生行为不相同的场景，如SUM、AVG聚合等，若中间结果超出Decimal 128位，引擎原生正常执行，OmniOperator算子加速则根据配置抛出异常或者返回null。这里建议如果字段需要进行AVG运算且存在累加结果过大的可能，请使用Double等其他类型存储。
- 不同的负载所需内存配置不一样，例如TPC-DS 3TB数据集，SparkExtension推荐配置下，堆外内存配置不低于20GB，99条所有SQL可成功运行，运行过程中日志可能出现MEM_CAP_EXCEEDED但不影响最终功能，建议适当增大堆外内存配置。如果堆外内存配置过低，SQL执行结果可能不正确。
- 当前Sort、Window和HashAgg等算子支持Spill功能，BroadcastHashJoin、ShuffledHashJoin和SortMergeJoin等尚不支持Spill功能。
- Hive OmniOperator算子加速在成功执行TPC-DS 99条时，由于原生Hive在q14、q72和q89运行时可能存在问题，因此OmniOperator算子加速暂不支持Hive引擎运行这3条SQL。
- Hive OmniOperator算子加速在支持浮点数运算时，可能会产生和原生Hive行为不相同的场景，如除浮点数0.0等。若出现除浮点数0.0的场景，原生Hive返回null，OmniOperator算子加速则根据具体的运算行为返回Infinity、NaN或null。
- Hive引擎默认开启CBO优化，Hive OmniOperator算子加速当前仅支持开启CBO优化，不支持关闭，即不支持将hive.cbo.enable设置为false。
- Spark OmniOperator算子加速同时对超多列进行表达式Codegen时，例如500列，编译开销大于OmniOperator算子加速加速效果，建议该场景采用原生Spark执行。
  Hive OmniOperator算子加速在表声明的数据存储结构和实际存储结构不匹配，且GroupBy和分桶的参数一致时，原生Hive可能出现Group By算子分组异常的问题。因此建议在建表时不采用分桶策略或使用load data local inpath的方式导入数据，以保障表声明的存储结构和实际存储结构相匹配。 Hive OmniOperator算子加速在求和结果溢出时，可能会产生和引擎原生行为不相同的结果。OmniOperator算子加速返回NULL，使用户能够感知到运算发生溢出；原生Hive返回一个错误值，可能对用户造成误导。
