一、基本概念
通用数据类型 是指面向一般业务用户的、不依赖具体数据库的标识数据内容类型的,例如 字符型、数值型、布尔型等。
数据库中数据类型 是指具体数据库下的数据类型,例如Oracle数据库下的 varchar2、number等。
在数据产品的设计过程中,往往需要支持跨数据库的业务能力,如 【1】编制资源目录时,应按照通用数据类型进行编制,以交通行业为例,《JT/T 747.3-2020 交通运输信息资源目录体系 第3部分:核心元数据》就对数据类型的填写要求做出了要求。【2】做质量管理时,能够按通用类型做一套通用的质量规则,而不是不同类型数据库各搞一套质量规则。而被管理的数据可能存储在Oracle、Hbase、MPP类数据库等。
二、为什么会有两套(通用数据类型、数据库中数据类型)?
【1】编制目录等数据管理业务针对的数据(可以认为是业务层),是不完全受限于数据库(技术层)的。
【2】不同业务系统完全可能采用不同的数据存储方式,难以统一要求,比如,业务系统A后台数据库是Oracle, 业务系统B后台数据存储在hbase。如果直接将数据库层的数据类型用到数据管理层中,数据类型种类多,很是杂乱,不利于管理与使用。所以在数据管理层做统一,采用一套普通业务人员能接受,不受限于具体数据库的数据类型。
【3】数据库中数据类型,是业务系统做数据库选型时,就确定下的,对于数据管理业务来说可以认为预先存在的。
三、两套数据类型如何对应转换
既然存在两套,并且是相互关联的,那就存在如何转换的问题。可以参考《JT/T 1058-2016 交通运输信息系统数据库字段命名及属性定义》,这个部颁规范只规定了几类常见的数据库类型,后续可以再拓展下。
此外,通用数据类型可以参考《JT/T697.1-2013 交通信息基础数据元 第1部分:总则》中“5.14类型”章节。