---
title: 约束与限制
description: "- 数值类型进行计算时如果发生越界，OmniData算子下推会抛出数值越界异常。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/230RC5/bds/kunpengbds_omniruntime_20_0009.html
sourcePath: /source/zh/kunpengboostkithistory/230RC5/bds/kunpengbds_omniruntime_20_0009.html
indexId: e5a43083eb06918b5a79bee52a495987da79600af87ca4b8984fabffa90fc59980
---
# 约束与限制

#### OmniData约束与限制

- 数值类型进行计算时如果发生越界，OmniData算子下推会抛出数值越界异常。
- 字符串类型比较时，常量必须被英文单引号包含。例如：select * from table where char = '123'。
- 不支持DECIMAL(38,38)数据类型。
- 不支持TIMESTAMP数据类型，走原生计算流程。
- 不支持对事务表的算子下推，走原生计算流程。
- 不支持对分桶表的算子下推，走原生计算流程。
- 必须保证数据表的ANALYZE为最新，否则下推选择率判断不准确。


#### OmniOperator算子加速约束与限制

1. 当前UDF插件仅支持Simple UDF，用于执行基于Hive UDF框架编写的UDF函数。
2. 当前支持的Decimal数据类型规格包含64位和128位，如若超过128位的表示范围，则会抛出异常或者返回null，可能会产生和引擎原生行为不相同的场景，如SUM、AVG聚合等，若中间结果超出Decimal 128位，引擎原生正常执行，OmniOperator算子加速则根据配置抛出异常或者返回null。这里建议如果字段需要进行AVG运算且存在累加结果过大的可能，请使用Double等其他类型存储。
3. 不同的负载所需内存配置不一样，例如TPC-DS 3TB数据集，SparkExtension推荐配置下，堆外内存配置不低于30GB，99条所有SQL可成功运行，运行过程中日志可能出现MEM_CAP_EXCEEDED但不影响最终功能，建议适当增大堆外内存配置。如果堆外内存配置过低，SQL执行结果可能不正确。
4. 安全集群模式下，不支持ORC格式数据Native化读取。
5. 当配置spark.omni.sql.columnar.nativefilescan=true，即启用OmniOperator的tablescan算子时，ORC或者Parquet数据格式均不支持partition字段为中文或者中文特殊字符。
