MAPREDUCE服务 MRS-Flink SQL逻辑开发建议:使用char数据类型时指定精度或者改用string类型
使用char数据类型时指定精度或者改用string类型
使用“cast(id as char)”数据类型转换时,结果只截取第一位,导致数据错误。如果转换字段正好是主键字段则会丢失大量数据。
配置“table.exec.legacy-cast-behaviour=ENABLED”也可以解决转换发生错误的问题,但是不建议使用。
在Flink 1.15之前,可以通过将“table.exec.legacy-cast-behaviour”设置为“enabled”来启用旧版本的类型转换行为。但在Flink 1.15及之后版本中,默认情况下该标志被禁用,将导致以下行为:
- 转换为CHAR/VARCHAR/BINARY/VARBINARY时禁用修剪/填充操作。
- CAST操作永远不会失败,而是返回NULL,类似于TRY_CAST,但不会推断正确的类型。
- 对于某些转换为CHAR/VARCHAR/STRING的格式化操作,结果可能略有不同。
我们不建议使用此标志,并强烈建议新项目保持禁用该标志并使用新的类型转换行为。该标志将在未来的Flink版本中被移除。
- 优化前SQL:
select cast(id as char) as id, ... from t1
- 优化后SQL:
select cast(id as string) as id, ... from t1
- GaussDB开发_GaussDB数据库开发_高斯数据库开发_华为云
- GaussDB下载_GaussDB数据库下载_高斯数据库下载_华为云
- GaussDB数据库搭建_GaussDB怎么样_高斯数据库搭建
- GaussDB设置默认值_GaussDB存储过程_高斯数据库设置默认值-华为云
- 免费时序数据库_时序数据库influxdb场景_数据库资源免费领取_实时数据库
- GaussDB数据库函数_GaussDB函数和操作符_高斯数据库函数-华为云
- GaussDB索引_华为数据库GaussDB_高斯数据库索引_华为云
- GaussDB工具_gaussdb数据库_高斯数据库工具_华为云
- TaurusDB并行查询_TaurusDB内核_TaurusDB并行执行_PQ
- GaussDB工具_gaussdb怎么读_高斯数据库工具_华为云