在数据存储和管理领域,存在多种不同的数据类型,它们各自具有独特的特性和适用场景,以下是对一些常见数据类型的详细解释:
1、对象存储OSS的数据类型
标准存储:提供高可靠、高可用、高性能的对象存储服务,能够支持频繁的数据访问,它有标准存储 本地冗余(LRS)和标准存储 同城冗余(ZRS)两种数据冗余存储方式。
标准存储 本地冗余(LRS):采用单可用区(AZ)内的数据冗余存储机制,将用户的数据冗余存储在同一个可用区内多个设施的多个设备上,确保硬件失效时的数据持久性和可用性,不过,如果该可用区不可用,会导致相关数据不可访问。
标准存储 同城冗余(ZRS):采用多可用区(AZ)内的数据冗余存储机制,将用户的数据冗余存储在同一地域(Region)的多个可用区,当某个可用区不可用时,仍然能够保障数据的正常访问。
低频访问存储:提供高持久性、较低存储成本的对象存储服务,有最小计量单位(64KB)和最低存储时间(30天)的要求,适用于较低访问频率的业务场景,同样有低频访问 本地冗余(LRS)和低频访问 同城冗余(ZRS)两种数据冗余存储方式。
低频访问 本地冗余(LRS):采用单可用区(AZ)内的数据冗余存储机制,将用户的数据冗余存储在同一个可用区内多个设施的多个设备上,确保硬件失效时的数据持久性和可用性。
低频访问 同城冗余(ZRS):采用多可用区(AZ)内的数据冗余存储机制,将用户的数据冗余存储在同一地域(Region)的多个可用区,当某个可用区不可用时,仍然能够保障数据的正常访问。
归档存储:提供高持久性、极低存储成本的对象存储服务,有最小计量单位(64KB)和最低存储时间(60天)要求,适用于数据长期保存的业务场景,如档案数据、医疗影像、科学资料等,也有归档存储 本地冗余(LRS)和归档存储 同城冗余(ZRS)两种数据冗余存储方式。
归档存储 本地冗余(LRS):采用单可用区(AZ)内的数据冗余存储机制,将用户的数据冗余存储在同一个可用区内多个设施的多个设备上,确保硬件失效时的数据持久性和可用性。
归档存储 同城冗余(ZRS):采用多可用区(AZ)内的数据冗余存储机制,将用户的数据冗余存储在同一地域(Region)的多个可用区,当某个可用区不可用时,仍然能够保障数据的正常访问。
冷归档存储:提供高持久性、比归档存储的存储成本更低的对象存储服务,有最小计量单位(64KB)和最低存储时间(180天)的要求,适用于需要超长时间存放的冷数据,如因合规要求需要长期留存的数据等。
深度冷归档存储:提供高持久性、比冷归档存储成本更低的对象存储服务,有最小计量单位(64KB)和最低存储时间(180天)的要求,适用于需要超长时间存放的极冷数据,如大数据及人工智能领域的原始数据的长期积累留存等。
2、达梦数据库的数据类型
字符数据类型
CHAR/CHARACTER类型:指定定长字符串,在基表中定义CHAR类型的列时,可以指定一个不超过32767的正整数作为字节长度,若未指定长度,缺省为1,CHAR类型列的最大存储长度由数据库页面大小决定,长度不足时自动填充空格,在表达式计算中,该类型的长度上限不受页面大小限制,为32767。
VARCHAR/VARCHAR2类型:指定变长字符串,用法类似CHAR数据类型,可指定一个不超过32767的正整数作为字节或字符长度,若未指定长度,缺省为8188字节,在基表中,当没有指定USING LONG ROW存储选项时,插入VARCHAR数据类型的实际最大存储长度由数据库页面大小决定;若指定了USING LONG ROW存储选项,则插入VARCHAR数据类型的长度不受数据库页面大小限制,VARCHAR类型在表达式计算中的长度上限不受页面大小限制,为32767,CHAR与VARCHAR的区别在于前者长度不足时系统自动填充空格,而后者只占用实际的字节空间。
ROWID类型:数据由18位字符组成,用来表示ROWID数据,由“4位站点号+6位分区号+8位物理行号”组成,ROWID类型数据可通过SF_BUILD_ROWID()构造而来,表中的ROWID类型列可用于排序或创建索引,但不支持作为分区列和自定义类型的属性数据类型。
数值数据类型
精确数值数据类型
NUMERIC/DECIMAL/DEC/NUMBER类型:用于存储零、正负定点数,精度是一个无符号整数,定义了总的数字数,精度范围是1至38,标度定义了小数点右边的数字位数,一个数的标度不应大于其精度,如果实际标度大于指定标度,超出标度的位数将会四舍五入省去,若不指定精度和标度,缺省精度为38,标度无限定。
INTEGER/INT类型:用于存储有符号整数,精度为10,标度为0,取值范围为:-2147483648 (-2^31)~+2147483647(2^31-1)。
以下是两个关于数据类型的问题及解答:
问题1:达梦数据库中的CHAR类型和VARCHAR类型有什么区别?
解答:CHAR类型是定长字符串,在基表中定义时需指定长度,长度不足时会自动填充空格,最大存储长度由数据库页面大小决定;而VARCHAR类型是变长字符串,长度根据实际数据而定,不会填充空格,在基表中插入时的实际最大存储长度受数据库页面大小限制(除非指定USING LONG ROW存储选项)。
问题2:对象存储OSS的标准存储和低频访问存储在适用场景上有何不同?
解答:标准存储适用于频繁的数据访问场景,能提供高可靠、高可用、高性能的服务;而低频访问存储适用于较低访问频率的业务场景,其存储成本相对较低,但有最小计量单位和最低存储时间的要求。
小编有话说:数据类型的选择对于数据存储和管理至关重要,不同的数据类型在不同的场景下有着各自的优势和局限性,无论是对象存储OSS还是数据库系统,都需要根据具体的业务需求来合理选择数据类型,以实现高效的数据管理和利用。