【YashanDB 知识库】崖山 BIT 类型对 MYSQL 兼容问题
本文内容来自 YashanDB 官网,原文内容请见 https://www.yashandb.com/newsinfo/7901517.html?templateId=1718516
**【问题分类】**功能兼容
**【关键字】**YAS-07202、YAS_MY ERROR,bit
【问题描述】
本项目的架构是 hadoop+hive+yashandb
使用崖山数据库,将 mysql 相关的创建表语句进行初始化同步
使用崖山 23.3 版本兼容 mysql 数据库,新建表和查询表都出现问题
查询报错
mysql> SELECT DISTINCT 'org.apache.hadoop.hive.metastore.model.MTable' AS NUCLEUS_TYPE,A0.CREATE_TIME,A0.LAST_ACCESS_TIME,A0.OWNER,A0.OWNER_TYPE,A0.RETENTION,A0.IS_REWRITE_ENABLED,A0.TBL_NAME,A0.TBL_TYPE,A0.TBL_ID FROM TBLS A0 LEFT OUTER JOIN DBS B0 ON A0.DB_ID = B0.DB_ID ;
ERROR 7202 (HY000): YAS-07202 plugin execution error, YAS_MY error, unsupported datatypemysql> SELECT DISTINCT 'org.apache.hadoop.hive.metastore.model.MTable' AS NUCLEUS_TYPE,A0.CREATE_TIME,A0.LAST_ACCESS_TIME,A0.OWNER,A0.OWNER_TYPE,A0.RETENTION,A0.IS_REWRITE_ENABLED,A0.TBL_NAME,A0.TBL_TYPE,A0.TBL_ID FROM TBLS A0 LEFT OUTER JOIN DBS B0 ON A0.DB_ID = B0.DB_ID ;
ERROR 7202 (HY000): YAS-07202 plugin execution error, YAS_MY error, unsupported datatype
创建表报错
初步分析是 mysql 类型不兼容,出现相关报错
分别从 jdbc 层,表定义和字段类型等进行分析
【问题原因分析】
相关的查询表的结构如下
通过定位 mysql 创建语法,将可能出现字段类型兼容问题定位在 mediumtext -->clob 和 bit -- >bit
上面。通过修改对比和研发进行联合分析发现,崖山 bit 类型和 mysql bit 类型,看着是兼容的,实际上是不兼容的
定位到 bit 类型是不兼容之后,全部将 bit 类型替换成 boolean 之后,相关的查询和创建新表的问题都没有了
【解决/规避方法】
全部将 bit 类型替换成 boolean 之后,相关的查询和创建新表的问题都没有了
版权声明: 本文为 InfoQ 作者【YashanDB】的原创文章。
原文链接:【http://xie.infoq.cn/article/42b833bab1cb5ad7aac36e00b】。文章转载请联系作者。
评论