开发者社区> 问答> 正文

mysql中json_table

druid不支持mysql的json_table吗?怎么试都没有用。修改了permit-fuction也没用

原提问者GitHub用户yuchengqian

展开
收起
山海行 2023-07-05 19:19:24 153 0
3 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    ruid实际上支持MySQL的JSON相关函数,包括json_table()。
    需要注意以下几点:
    1.Druid需要使用1.1.10或更高版本
    低于1.1.10版本的Druid,其内置的SQL解析器JsqlParser不支持JSON函数。
    2.需要配置permit-function-literals启用函数名称字符串的支持。默认是禁用的。

    1. 需要配置userdata
      在事先声明JSON文本的字符串,给SQL解析器使用。
      格式如: SET @json_text='{......}'
      4.DruidPool需要支持statementPoolSize > 0
      否则JSON相关函数会失败。
    2023-07-30 19:25:24
    赞同 展开评论 打赏
  • 1.2.2可行,最低版本

    低于这个直接报错

    uncategorized SQLException; SQL state [null]; error code [0]; sql injection violation, dbType mysql, , druid-version 1.2.1, syntax error: syntax error, expect ), actual IDENTIFIER pos 480, line 24, column 16, token IDENTIFIER COLUMNS

    原回答者GitHub用户xb12369

    2023-07-06 10:51:49
    赞同 展开评论 打赏
  • Druid不直接支持MySQL的JSON_TABLE函数,因为Druid是一个分布式列存储数据库,它的查询语言和功能与传统的关系型数据库有所不同。Druid主要用于实时数据分析和可扩展的OLAP(联机分析处理)工作负载。

    如果你想在Druid中使用JSON_TABLE的功能,你需要考虑其他方法来实现相似的数据处理。以下是一些可能的解决方案:

    1. 预处理数据:在将数据导入Druid之前,可以使用ETL工具或编程语言(如Python)预处理数据,将JSON数据转换为适合Druid的表格格式。这样你就可以利用Druid的强大查询能力进行分析。

    2. 自定义UDF(用户定义函数):Druid允许你自定义函数,通过实现自定义UDF,在Druid查询过程中对JSON数据进行提取、转换和聚合。你可以使用Java来编写UDF,并将其部署到Druid集群中。

    请注意,修改Druid的配置文件(如permit-function)可能不会影响Druid对MySQL特定函数的支持,因为Druid没有直接内置这些函数。

    综上所述,要在Druid中处理类似于JSON_TABLE的任务,你需要采用其他方法,如预处理数据或自定义UDF。

    2023-07-05 19:34:16
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
One Box: 解读事务与分析一体化数据库 HybridDB for MySQL 立即下载
One Box:解读事务与分析一体化数据库HybridDB for MySQL 立即下载
如何支撑HTAP场景-HybridDB for MySQL系统架构和技术演进 立即下载

相关镜像