Doris为2.1版本,但json_each不可以用解决方法

Doris 2.1 版本(原生支持json_each函数),但该函数无法使用,核心原因是FE 节点的功能开关未开启(Doris 2.x 部分 JSON 高级函数默认关闭,需手动配置启用),而非版本不兼容。

一、先排查:确认json_each函数是否可见

先执行 SQL 查看 Doris 是否加载了json_each函数,判断是配置问题还是语法问题:

sql

复制代码
-- 查看所有JSON相关函数,确认json_each是否存在
SHOW FUNCTIONS LIKE '%json_each%';
  • 若查询结果为空:说明功能未启用,需按下面步骤配置。
  • 若查询到json_each函数:说明是语法问题,直接跳至 "三、语法修正:2.1 版本 json_each 正确用法"。

二、启用json_each:配置 FE 功能开关

json_each属于 Doris 的高级 JSON 函数 ,需在 FE 节点开启enable_vectorized_engine和enable_json_function配置(2.1 版本默认可能关闭),步骤如下:

步骤 1:登录 FE 节点服务器
复制代码
# 进入FE安装目录的conf文件夹(替换为你的实际路径)
cd /opt/apache-doris/fe/conf
步骤 2:修改 fe.conf 配置文件

编辑fe.conf,添加或修改以下配置项:

复制代码
# 启用向量化引擎(json_each依赖该引擎)
enable_vectorized_engine = true

# 启用高级JSON函数(显式开启json_each等功能)
enable_json_function = true

# 可选:若仍无法使用,添加该配置(兼容部分2.1版本)
enable_experimental_json_function = true
步骤 3:重启 FE 节点(使配置生效)
复制代码
# 进入FE的bin目录
cd /opt/apache-doris/fe/bin

# 停止FE(若为集群部署,先停止其他FE,最后停止leader节点)
./stop_fe.sh

# 启动FE
./start_fe.sh --daemon
步骤 4:验证配置是否生效

重启 FE 后,重新连接 Doris,执行以下 SQL:

复制代码
-- 再次查看json_each函数
SHOW FUNCTIONS LIKE '%json_each%';

-- 测试基础json_each功能
SELECT * FROM dual
LATERAL VIEW json_each('{"a":1, "b":2}') j;

若能查询到json_each函数,且测试 SQL 正常返回结果,说明功能已启用。

Doris 2.1 版本中,json_each依赖向量化引擎 和JSON 高级功能开关,默认可能关闭,需手动配置启用。

相关推荐
程序员梅雨11 小时前
【从零开始学习数据仓库 | 第二篇】: 拉链表 & 数仓分层
大数据·数据仓库·学习
程序员大阳11 小时前
副队长JavaScript教程(65)-详解JSON:轻量级数据交换格式
javascript·json·序列化·反序列化·stringify·parse
roman_日积跬步-终至千里14 小时前
数仓开发的三层责任:业务定义、模型设计与 SQL 实现
数据库·数据仓库·sql·数据建模
光影6271 天前
Unittest单元测试基础速记
测试工具·单元测试·json·测试覆盖率
ZLongTeng1 天前
EIDE的launch.json文件
json
梦想不只是梦与想1 天前
Python 中的 json 模块
python·json·对象转字符串
步行cgn1 天前
JSON.stringify 详解:把 JavaScript 对象变成 JSON 字符串
开发语言·javascript·json
阿正的梦工坊1 天前
深入理解 JSON-RPC 2.0:轻量级远程调用协议详解
rpc·json
腾讯数据架构师2 天前
任务跑完怎么直接出图表?CubeStudio 任务可视化 ECharts 数据格式实操(CSV/JSON + metric.json,11 种图表一键渲染)
前端·json·echarts·数据可视化
救救孩子把2 天前
结构化输出为何“格式正确、答案错误”?JSON Schema 的能力边界
android·java·json·agent·agent服务