我是靠谱客的博主 虚幻康乃馨,最近开发中收集的这篇文章主要介绍Hive Web查询语句插入mysql数据库报错,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

最近用户一直抱怨Hive Web Client在提交某些查询后,不会返回结果到前端,比如join五张表的语句就不行,只有去掉一个join

先查询写入一张临时表,再和最后一张表join才行。

我后来debug了下,发现语句确实是成功执行了的,而且结果文件已经dump到hive web的本地系统文件中,这就有点奇怪了,难道是输出格式不对或者结果中

有脏字符,在逐一排除掉其他可能的问题后,最终定位到将query写回mysql db这段逻辑,由于需要保存用户提交的query,执行时间,结果文件路径等供用户二次查看下载,在语句执行完后,

会将这些信息通过ORM框架(mybatis)写入mysql中,然而之前在设计mysql中hivequery字段的时候没考虑用户会写很长的语句,就设置了varchar(1000),也就是query最多保存1000个字符,如果超过1000个字符就会发生错误,这就导致了虽然语句执行成功了,但是差在最后一口插mysql的气上,整个执行failed。


varchar是mysql字符变长类型,长度范围可指定在0到65535,不过我们也可以使用text类型(TEXT is stored off the table with the table just having a pointer to the location of the actual storage),最大长度也是65535,我在sqlyog中修改列schema 为varchar(65535)它会自动帮我切换到text类型,改完schema后,之前长query就能顺利插入db了。


参考:

http://dev.mysql.com/doc/refman/5.1/zh/column-types.html#char

http://stackoverflow.com/questions/2023481/mysql-large-varchar-vs-text


本文链接http://blog.csdn.net/lalaguozhe/article/details/9078633,转载请注明

最后

以上就是虚幻康乃馨为你收集整理的Hive Web查询语句插入mysql数据库报错的全部内容,希望文章能够帮你解决Hive Web查询语句插入mysql数据库报错所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(72)

评论列表共有 0 条评论

立即
投稿
返回
顶部