干货|多模存储,轻松实现数据库“一库多用”
随着互联网的发展,越来越多的APP在丰富着人们的生活。为了满足这些海量数据的存储、利用、计算与分析,传统的做法是平台提供十几个不同的数据库产品分别满足相应的需求。但随着数据量的不断增多、数据类型的不断丰富以及应用系统的逐渐增加后,整体维护性和数据一致性管理成本大大增加,进而影响到整个系统的使用,因此多样性的数据存储管理成为了数据库平台面临的一大挑战。
数据多模发展需求
数据库系统的演进经历了从最早的关系型数据库OLTP到半结构化,再到分析型数据库OLAP等非结构化的数据库,现在又催生出一种新的主流方向——多模数据库。数据库多模(Multi-Model)是指在同一个数据库中,可以同时满足应用程序对于结构化、半结构化、非结构化数据的统一管理需求。
为了实现业务数据的统一管理和数据融合,新型数据库需要具备多模式数据存储和管理能力。一般来说,结构化数据特指由二维表结构来逻辑表达和实现的数据,典型应用是含有用户信息的交易型业务;而半结构化数据则在用户画像、物联网设备日志采集、应用点击流分析等场景中得到大规模使用;非结构化数据则对应着海量的GIS地理信息、图片、视频、和文档处理等业务。
例如最新兴起的智慧交通的安防行业,需要存储车牌号、人名等普通的结构化数据,也需要存储存储人脸或车辆特征值等半结构化数据,还需要存储记录人或车的位置的地理数据、图片、视频等非结构化数据,采用一套系统处理不同类型数据会更高效,因为相对多个系统存储数据,可以避免大量传输开销。
KADB数据多模解决方案
多模数据库的多模式数据管理能力,使得数据库能够进行跨部门、跨业务的数据统一存储与管理,实现多业务数据融合,支撑多样化的应用服务。在架构上,使得数据库使用一套数据管理体系可以支撑多种数据类型,因为可以支持多种业务模式,大大降低使用和运维的成本。
那么,如何利用KADB实现多模存储呢?
01
KADB产品介绍
KingbaseAnalyticsDB(以下简称为KADB)是人大金仓应大数据时代海量数据分析处理的需求,而推出的具有高性能、高扩展能力的分布式MPP数据库处理平台,它具有分布式集群部署,数据分片无共享存储、大规模并行处理技术(MPP)、数据分区、行存和列存混合存储、数据库内压缩、MapReduce、在线扩容、内嵌高级分析函数和数十种AI算法等特点。
KADB产品主要定位于数据分析类应用市场,具备强大、高效、安全的PB级结构化、半结构化和非结构化数据存储、处理和实时分析能力,以及集成多种异构数据源进行数据挖掘和分析能力。
02
KADB多模存储方案
针对多模数据库的需求,KADB通过基于关系数据库的数据类型扩展多种模型存储和计算能力,来支持多模型数据统一管理。KADB使用标准的SQL接口进行访问,无论是结构化(关系数据)、半结构化(XML、JSON)还是非结构化数据,包括文本数据、GIS数据(矢量、栅格、拓扑)、图数据都可以支持,并且提供了统一的操作语言和多模型数据融合计算的能力,计算能力包括传统的关系运算,JSON、XML操作,空间计算,图计算,机器学习能力,并提供可扩展的并行计算能力。
KADB数据库实现了数据模型和并行计算能力扩展的开放框架、多种模型数据的并行融合分析技术、受限资源情况下(例如单台服务器)的轻量化部署和在线扩展到大规模硬件环境下的集群技术,解决了开发运维复杂度和数据的一致性存储问题,基于成熟产品的高性能分析方案稳定可靠度更高。
图1:KADB支持的多模数据存储
图2:KADB的多模数据访问
下面,将根据不同数据类型进行详细介绍。
(1)结构化数据
结构化数据的特点是结构固定,每一行的属性是相同的。如传统关系型数据库表中的数据,比如int、float、varchar。KADB支持所有关系型数据类型,存储上不但支持行存而且支持列存,可以行列混合存储以及查询,并且支持数据压缩,提供多个压缩算法,压缩比可高达10比1甚至更高,满足不同场景下的查询性能需求,例如下图分区表T的混合存储:
图3:分区表T的混合存储
(2)半结构化数据
半结构化数据是一种自描述结构,它包含相关标记用来分隔语义元素及对记录和字段进行分层,如JSON、XML等。
JSON作为半结构化的数据,是比较常见的一种储存数据类型。KADB提供了JSON和JSONB数据类型来存储JSON数据,其中JSON类型以文本形式存储,JSONB将输入文本存储成二进制编码数据格式,并支持索引实现了高性能的JSON数据查询,也提供丰富的JSON操作函数。
KADB数据库提供了 XML数据类型,用来存储结构良好(按照XML标准的定义)的“文档”,以及“内容”片段(按照XML标准中生产XMLDecl?内容定义),并提供了一系列函数允许用户在这种数据上执行各类查询操作。
(3)非结构化数据
非结构化数据即没有固定结构的数据,如GIS,文档、图、图片、音频/视频,时序数据等,这种类型的数据在现在的很多业务中所占的比重越来越大。
在KADB中,使用大对象(LOB,Large Object)来对文档、图片、音频/视频类型的数据进行管理,也支持采用提取特征值方式对特征值进行存储,比如图片中人脸的特征值和车辆的特征值等可以存储到json或者数组中,可以加快查询效率。
KADB提供Geometry(几何对象类型)对象来对GIS(地理信息系统)数据进行管理(包括空间数据存储、输出、访问、编辑、处理、关系判 断和测量、拓扑实现),提供了数据类型包括点、线、面、多点、多线、多面、几何集合等来存储各类空间数据,并提供多维度空间索引(R-tree)用于进行空间操作的高效处理,以及提供一序列的空间函数(数据格式转换,管理,检索,比较,生成新图形函数)构建于SQL语言中,用于空间属性和空间关系的查询。
KADB数据库也支持图数据存储和查询,通过把图数据的顶点和边信息存储成关系型数据类型中,然后通过内置的图算法进行计算得到结果,例如内置Centrality(中心性)类型的图算法pagerank可以得到PR值;算法In-Degree可以得到顶点为终点的边的条数;算法Out-Degree可以得到顶点为起点的边的条数;算法Closeness可以得到图的某个顶点与图的中心的接近程度;还提供图的Group(分组),Structure(结构),Path(路径)等类型的算法。
KADB数据库也支持时序数据存储和查询,通过把时序数据存储到关系型数据类型中,然后通过内置的时序算法来计算得到结果,例如内置了ARIMA模型(自回归移动平均模型)算法可以对有规律的场景进行预测。
结语
以更安全为核心保障,打造符合市场需求的更可靠、更智能的产品,因需结合,打造面向市场需求的实用性产品是人大金仓一贯宗旨。一库多用,多模存储,KADB说它可以。
往期精选
你的好友金小仓拍了拍你
并请你帮ta“一键三连”