dremio random 函数造成dremio crash 问题
以前没注意使用random,在看社区问题的时候测试了下发现的确有类似的问题,官方的解决方法是通过配置
禁用gandiva 优化
参考配置
- 支持key格式
exec.disabled.gandiva-functions: <function>;<function>
- 参考配置
参考禁用处理
sabot/kernel/src/main/java/com/dremio/exec/expr/ExpressionEvaluationOptions.java
public ExpressionEvaluationOptions(OptionManager options) {
this.options = options;
String disabledFunctions = options.getOption(ExecConstants.DISABLED_GANDIVA_FUNCTIONS);
// 通过; 分割,同时转换为小写,所以名称是不区分大小写的
this.disabledGandivaFunctions = Arrays.stream(disabledFunctions.split(";")).map(String::toLowerCase).map(String::trim).collect(Collectors.toSet());
}
参考资料
https://community.dremio.com/t/docker-crashes-when-using-the-random-function-in-a-sql-query/11420
sabot/kernel/src/main/java/com/dremio/exec/ExecConstants.java
sabot/kernel/src/main/java/com/dremio/exec/expr/ExpressionEvaluationOptions.java