上一篇文章中把Docker DB2 sample导入到MaxCompute的问题3、关于数据类型的问题,通过查阅Ali官网,找到了合适的说明,试着据此学习和记录。
# #错误:
failed : odps-0130071: [ 10,9 ] semanticanalysisexception-Smallinttypeisnotenabledincurrentmode.Pleasesetodps.
odps-0130071: [ 13,8 ] semanticanalysisexception-precisionandscaleisnotcurrentlysupportedincurrrentmode,' setOdps.
odps-0130071: [ 14,7 ] semanticanalysisexception-precisionandscaleisnotcurrentlysupportedincurrrentmode,' seto dps.
odps-0130071: [ 15,6 ] semanticanalysisexception-precisionandscaleisnotcurrentlysupportedincurrrentmode,' seto dps. 每个版本的默认设置如下:
1.0数据类型版本
setprojectodps.SQL.type.system.od PS2=假;
关闭MaxCompute 2.0数据类型。
setprojectodps.SQL.decimal.od PS2=假;
关闭Decimal 2.0数据类型。 setprojectodps.SQL.hive.com patible=假;
关闭Hive兼容模式。 适用于以前使用的MaxCompute项目,该项目所依赖的产品组件不支持2.0版的数据类型。 2.0数据类型版本
setprojectodps.SQL.type.system.od PS2=真;
打开MaxCompute 2.0数据类型。
setprojectodps.SQL.decimal.od PS2=真;
打开Decimal 2.0数据类型。
setprojectodps.SQL.hive.com patible=假;
关闭Hive兼容模式。 适用于2020年04月之前没有库存数据的MaxCompute项目,项目所依赖的产品组件支持2.0数据型版本。 3. Hive兼容数据类型
setprojectodps.SQL.type.system.od PS2=真;
打开MaxCompute 2.0数据类型。
setprojectodps.SQL.decimal.od PS2=真;
打开Decimal 2.0数据类型。
setprojectodps.SQL.hive.com patible=真;
打开Hive兼容模式。 适合从Hadoop迁移的MaxCompute项目。 此项目所依赖的产品组件支持2.0的数量,以显示当前的数据类型。
设定项目; 如果需要更改数据类型,更改建议如下:
如果项目当前使用的是2.0数据类型版本,并且发现需要使用的组件不支持2.0数据类型。 要解决与不支持2.0数据类型组件的坞站问题,请将项目更改为1.0数据类型版本。 如果要将不支持2.0数据类型的组件和任务对接,请将Session设置为1.0数据类型版本。 说明通过提交带有Session命令的以下语句,可以将Session设置为1.0数据类型版本。 这个命令只支持小写字母。 seto dps.SQL.type.system.od PS2=假; 项目需要使用2.0数据类型版本,有些SQL需要使用1.0数据类型,但有些功能依赖于2.0数据类型。 例如,current_timestamp函数。 解决方法是将SQL分割为不同的Session,将Session设置为1.0数据类型版本。 将SQL改写为可替代的功能。 如果项目最初使用的是2.0数据类型版本,稍后将更改为1.0数据类型版本。 需要注意以下两点。 1 .对于已经使用2.0数据类型的表,导入数据时,TINYINT、SMALLINT、INT为BIGINT型、CHAR、VARCHAR为STRING型。
创建2.1.0数据类型的表,用CAST函数将2.0数据类型的表中的数据导入1.0数据类型的表中,即可将2.0数据类型的数据转换为1.0数据类型。 内容参考:
359帮助. a liyun.com /文档_详细信息/27821.html? SPM=a2c4g.11186623.2.17.26135 DB9CZ2 H4 K #概念- JHP-4 B-5DB