张辉帅
(上海众恒信息产业股份有限公司, 上海 200042)
基于列存储的公共信用档案数据管理设计与实现
张辉帅
(上海众恒信息产业股份有限公司, 上海 200042)
以各政府部门多源异构的公共信用档案数据管理为目标,分析了传统行存储模式的问题,提出了列存储模式,设计了存储结构,并分析其相较于行存储模式的优势。基于列存储的信用档案数据管理模型,实现了上海市公共信用信息服务平台信用档案信息的数据存储和管理。
信用档案; 信用信息; 数据管理; 列存储; 多源异构
所谓公共信用信息,是指由行政机关、司法机关、法律法规授权的具有管理公共事务职能的组织以及公共企事业单位、群团组织等,在其履行职责、提供服务过程中产生或者获取的,可用于识别自然人、法人和其他组织(以下统称信息主体)信用状况的数据和资料[1]。国家发改委也将行政许可、行政处罚信息作为方便社会了解市场主体信用状况的数据之一,纳入公共信用信息的范畴,并要求各行政部门自作出行政决定之日起7个工作日内上网公开,提高行政管理透明度和政府公信力[2]。
本文研究的信用档案数据,是指单个自然人、法人或其他组织的所有公共信用信息的数据集合。
公共信用档案数据具有如下主要特点:
(1) 主键编码稳定且唯一
公共信用信息都具备识别信息主体的统一社会信用代码,该代码稳定且唯一,可以作为法人或自然人信用信息数据主键。根据国家标准[3],法人和其他组织使用全国统一赋码的18位统一社会信用代码作为识别身份的编码,自然人则使用18位身份证号码。统一代码覆盖了所有法人和自然人主体。一个主体只能拥有一个统一代码,一个统一代码只能赋予一个主体。并且,统一代码一经赋予,在其主体存续期间,主体信息即使发生任何变化,统一代码均保持不变。
(2) 以结构化数据信息为主
公共信用信息数据基于各个政府部门已有的管理数据(例如工商部门的企业注册登记信息、公安部门的行驶证登记信息、民政部门的婚姻登记信息等等),通过比对清洗加工而成的。而这些管理数据是各政府部门现有的信息化系统日常行政工作(例如行政审批、行政处罚等)中产生的,通常情况下都是结构化的数据信息。另外,国家发改委也针对“双公示”信息(行政许可公示信息和行政处罚公示信息)分别制定了18个字段和20个字段的结构化数据标准[4],包括行政相对人代码、许可或处罚决定日期、许可项目名称、处罚名称等。
(3) 来源部门繁多
截止2017年1月,上海市公共信用信息服务平台依托上海政务外网,已实现全市100家部门的公共信用信息数据归集,期中包含44家市级行政机关、11家中央在沪单位、2家人民团体、2家司法机关、11家公用事业单位、14家社会组织、16家区县[5]。接入部门的数量非常多,数据交换过程中的交换节点管理、清洗比对任务的维护难度较大。
(4) 数据类别和数据结构复杂
以上海市公共信用信息服务平台数据为例,上海市公共信用信息资源目录共5198项,包括法人信息事项4072项、自然人1126项。按信息类别可以分为登记类、资质类、监管类、判决类、执行类、管理类和公益类8类。登记类包括工商登记、社会组织登记、税务登记等;资质类信息包括行政许可、资质认定,以及执业许可、职业资格等;监管类信息,包括违法违规记录、行政处罚等。执行类和判决类来自司法机关。履约类包括欠缴公积金,扰乱用电秩序,破坏公共基础设施,逃票等信息。部分资源目录事项示例,如表1所示。
表1 公共信用信息资源目录事项示例表
可以看到,元数据中除第1、第2项为“统一社会信用代码”和“企业名称”之外(对于自然人为“身份证号码”和“个人姓名”),其他各资源目录事项的元数据都不一致。这是因为各部门、各行业、各领域都具有不同的业务规范和数据标准,导致信用信息资源目录的元数据名称、格式、标准、长度、类型千差万别。以上海市公共信用信息服务平台资源目录为例,字段最多的资源目录事项有34个字段,最少的有8个字段;另外,除国家制定的行政许可信息和行政处罚信息数据标准之外,没有一个资源目录事项的字段是一致的。因此,基于信用档案数据的这些特点,需要找一套合理有效的数据存储模式来管理它们。
采用行存储模式管理信用档案数据时,一种方案是对各信用信息资源目录事项进行抽象,统一合并归纳为少数的几个信用信息资源类别(例如登记类、资质类、监管类等8大类),再统一制定这8类的数据标准和结构,形成8张表结构。另一种方案是完全按照来源部门的数据结构进行映射,目标表和原始表一一对应,不对表结构进行任何变化,以上海市信用平台为例,5198个资源目录事项形成5198张表。
第一种方案问题在于可操作性不强。目前还无法找到一个完美的分类标准能够覆盖所有的公共信用信息资源目录事项。并且,信用信息资源目录的元数据标准很难用进行统一。例如登记类信息中,工商企业注册登记信息和单用途预付卡登记备案信息的元数据完全不一致。
第二种方案问题一方面在于数据管理和开发维护的成本较大。软件系统需要对5198张表进行开发和管理,在未来新的资源目录事项加入时,需要不断地新建表,对软件代码的可扩展性和兼容性的要求较高。另一方面,在数据查询应用场景下(例如,通过统一社会信用代码查询指定单个企业的信用数据),软件系统的性能和效率低下。其工作机制流程如下:
1) 用户输入统一社会信用代码或身份证号码查询指定主体的信用档案数据;
2) 软件代码扫描每一张数据表(5198张表),逐个找到这些表中主键与输入条件匹配的信用数据记录;
3) 将这些数据记录关联起来进行展示。
为了解决上述行存储模式所面临的问题,本文采用列存储的方式,将5198项信用信息数据进行统一管理。所有公共信用档案的元数据统一在“数据名称表T_HEADER”中进行存储,所有数据记录在“数据内容表T_DATA”中进行存储,两张表的表结构如下,如表2、表3所示。
表2 数据名称表T_HEADER表结构
数据名称表T_HEADER统一管理所有资源目录事项的元数据名称信息、元数据类型、元数据字典标准、元数据长度,以及这个元数据字段在信用档案中的展示的顺序、宽度和名称等。并通过ZYMLID与数据内容表T_DATA中的具体数据进行关联。
表3 数据内容表T_DATA表结构
数据内容表T_DATA统一管理所有的数据记录,这些数据记录是严格按照T_HEADER的元数据标准进行存储的,分别用A1至A30存放每个元数据字段所对应的具体数据。法人的统一社会信用代码和单位名称、自然人的身份证号码和姓名单独用两个字段“CREDITCODE”和“NAME”单独存放。
在信用档案数据查询的应用场景下,列存储模式的工作机制流程如下:
(1) 用户输入统一社会信用代码或身份证号码;
(2) 软件系统首先在数据内容表T_DATA中进行匹配,将CREDITCODE字段中所有符合条件的数据记录全部找到;
(3) 以ZYMLID为外键,在数据名称表T_HEADER中找到这些数据记录对应的表头名称信息、类型信息、长度信息、信用档案中展示的先后顺序、展示的宽度、展示的别名等等;
(4) 将这些数据记录关联起来进行展示。
(1) 应用系统开发成本低
在列存储模式下,应用系统只需针对两张表进行开发。不需要像行存储模式下关注5198张表,为每张表单独建立实体类进行读写维护的开发。大大降低了应用系统软件的开发时间和维护成本。
(2) 数据易于扩展
随着未来新的部门不断接入,新的信用信息资源目录事项不断增加,在基于列存储的数据管理模式下,只需要在数据内容标T_DATA中新增数据记录,并把对应数据记录的元数据信息插入数据名称表T_HEADER中即可。不需要修改软件程序,也不需要新增表实体或修改表结构就可以完成扩展,并保持来源部门的原始数据结构不变。
(3) 查询应用的效率高
在此模式下,软件系统不需要扫描几千张表,只需要对两张表进行操作即可。大大提高了应用系统的查询效率。
截止2017年1月,上海市信用平台归集了包括行政机关、司法机关以及公用事业单位在内的100家单位数据,信息事项5198项,可供查询法人数据1043万条、自然人数据近3亿条。依托上海诚信网、市信用平台APP、市民信箱、法人一证通等,实现信用档案在线查询功能,远郊区县依托行政事务服务中心设立服务窗口,构建线上线下综合查询渠道。如图1所示。
图1 法人信用档案查询页面
在基于列存储的信用信息数据管理模式下,上海市信用平台的已累计提供法人信用信息查询377万次、自然人查询1194万次。在2015年,上海市信用平台圆满完成“为全市法人和市民在线免费提供一次信用查询报告”市政府实事项目,全市106万法人和531万自然人参与在线查询,如图2所示。
图2 自然人信用档案查询页面
在应用过程中,我们也发现列存储模式下的一些缺点,例如统计报表和信用数据专题分析等应用的开发实现相对行存储较为困难。下一步,可以考虑同时保留行存储和列存储的混合存储模式,并采用分布式大数据架构对行存储模式下的数据进行管理,满足统计报表和信用数据分析需求的同时,兼顾系统性能和效率。
[1] 上海市人民政府 《上海市公共信用信息归集和使用管理办法》(沪府令38号).
[2] 国家发展改革委《关于认真做好行政许可和行政处罚等信用信息公示工作的通知》(发改电〔2015〕557号).
[3] GB32100—2015《法人和其他组织统一社会信用代码编码规则》.
[4] 国家发改委 《关于规范行政许可和行政处罚等信用信息数据标准的通知》(发改电〔2015〕806号).
[5] 上海市公共信用信息目录(2016版).
ResearchonPublicCreditArchiveDataManagementBasedonColumn-basedStorageModel
Zhang Huishuai
(Shanghai Triman Information & Technology Co., Ltd,Shanghai 200042, China)
This research aims at the management of multi-source heterogeneous credit archive data from various government departments, analyzes the disadvantage of row-based storage model. It brings forward the coloumn-based storage model, designs the database structure and analyzes its advantage over the row-based model. Based on the coloumn-based model, this research implements the credit archive data storage and management of the Shanghai public credit information service platform.
Credit archive; Credit information; Data management; Column-based storage model; Multi-source heterogeneous
1007-757X(2017)12-0044-03
张辉帅(1986-),男,工程师,学士,研究方向:信用大数据。
TP311
A
2017.07.28)