类型映射
GaussDB 100支持数据类型映射功能。类型映射主要应用于当业务无法修改表定义的情况下,数据库根据用户定义的规则,将NUMBER类型替换为需要的数据类型。
注意事项
- 类型映射功能仅作用于执行建表或者修改表定义,执行DDL语句的阶段。
- 仅在USE_NATIVE_DATATYPE参数设置为TRUE时,类型映射功能生效。
- 新增、修改映射文件,数据库重启生效。
操作步骤
- 在配置文件zengine.ini中增加配置项TYPE_MAP_FILE=<filename>。
<filename>为类型映射文件,默认读取路径为${GSDB_DATA}/cfg,也支持指定为绝对路径。
- 在类型映射文件中,按照用户添加类型映射规则。
用户名支持简易*模糊匹配。类型映射文件格式如下所示。
[username] old_datatype=map_datatype
- 整型的数据类型,支持自动类型映射。边界值需要根据实际应用场景,在映射规则文件中显式配置以启用“指定类型映射”能力。
- NUMBER(p,s)(s>0)数据类型,由于涉及精度,均需要通过显式指定类型映射的方式配置。
详细规则如下表所示。
表1 数据映射表 映射方式
原有数据类型
映射的数据类型
自动类型映射
NUMBER(p),p的取值范围为[1,2]
TINYINT
NUMBER(p),p=4
SMALLINT
NUMBER(p),p的取值范围为[6,9]
INTEGER
NUMBER(p),p的取值范围为[12,18]
BIGINT
指定类型映射
NUMBER(p),p=3
TINYINT
NUMBER(p),p=5
SMALLINT
NUMBER(p),p=10
INTEGER
NUMBER(p),p=19
BIGINT
示例
- 在zengine.ini文件所在目录下新建文件type_map_file.ini,在zengine.ini文件中新增配置项TYPE_MAP_FILE,配置映射文件路径为“type_map_file.ini”。
vim zengine.ini
TYPE_MAP_FILE = type_map_file.ini
- 修改映射文件type_map_file.ini,指定映射类型。
为用户user1设置映射规划,NUMBER(3)映射为INTEGER类型,NUMBER(11)映射为BIGINT类型。
为用户user2设置映射规划,NUMBER(5)映射为INTEGER类型,NUMBER(25,5)映射为DOUBLE类型。vim type_map_file.ini
[user1] number(3)=integer number(11)=bigint [user2] number(5)=integer number(25,5)=double
- 重启数据库,映射规则生效。
「喜欢文章,快来给作者赞赏墨值吧」【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。评论
- 修改映射文件type_map_file.ini,指定映射类型。