开发者社区 > 大数据与机器学习 > 实时数仓 Hologres > 正文

Hologres为啥这个语句加上insert就报错了?

Hologres为啥这个语句加上insert就报错了?不加就没事324cd5c90089c1a3ec49036c8aabdd99.png

展开
收起
真的很搞笑 2023-11-21 08:22:11 60 0
3 条回答
写回答
取消 提交回答
  • ea51075a56281264b1b3962423a0061c.png
    换成这个操作符吧
    json_array_elements(issue_sell_num_list)->>'issueName'
    常用json的话可以看看我们的jsonb列式存储,可以大幅提升查询性能
    https://help.aliyun.com/zh/hologres/user-guide/column-oriented-storage-for-jsonb-formatted-data,此回答整理自钉群“实时数仓Hologres交流群”

    2023-11-21 22:46:20
    赞同 展开评论 打赏
  • 这个错误提示表明在执行插入操作时,Hologres实例的分片不完整,可能是由于工作节点或分片不健康导致的。为了解决这个问题,你可以尝试以下方法:

    1. 检查Hologres实例的状态,确保所有工作节点都正常运行。
    2. 检查分片的状态,确保所有分片都处于正常状态。
    3. 如果问题仍然存在,尝试重启Hologres实例和相关服务。
    2023-11-21 15:26:15
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    Hologres在执行SQL语句时,如果在插入语句后面直接跟上了insert,那么它会认为这是一个事务操作,而insert操作在Hologres中默认是不支持事务的。所以,Hologres会将这个操作解析为一个单独的执行计划,并抛出一个错误。
    为了能够执行这个操作,我们需要在插入语句后面加上commit,表示这是一个已经提交的事务操作。这样,Hologres就会正确地将这个操作作为一个事务操作来处理。
    例如,我们可以将这个操作修改为如下形式:

    INSERT INTO public.dwd_banbo_api.sell
    SELECT get_json_object(array_elements(text), 'issue.sell_num').* FROM dwd_banbo_api.text
    

    这样,Hologres就会正确地将这个操作作为一个事务操作来处理,并将结果插入到dwd_banbo_api.sell表中。

    2023-11-21 13:58:10
    赞同 展开评论 打赏

本技术圈将为大家分析有关阿里云产品Hologres的最新产品动态、技术解读等,也欢迎大家加入钉钉群--实时数仓Hologres交流群32314975

相关产品

  • 实时数仓 Hologres
  • 相关电子书

    更多
    实时数仓Workshop(广州站)- 李佳林 立即下载
    阿里云实时数仓Hologres技术揭秘2.0 立即下载
    实时数仓Hologres技术实战一本通2.0版(下) 立即下载