□ 文/閤成国
大数据被提升为国家战略足见其在国民经济中的重要作用,各级政府部门及企事业单位也顺应国家发展的要求,投入人力、资金建设大数据基础设施,开发大数据应用,让大数据在政务和企事业经营中发挥重要的指导作用。但各单位在之前的信息化建设过程中,已建成一些重要的业务管理系统、协同系统,这些系统由于业务或者内部分工的不同,数据独立存储彼此孤立,数据价值不能最大化的发掘。大数据应用的开发流程同传统应用一样,都要经过数据接入、数据处理分析、数据应用开发等过程,不同的是,传统应用数据来源及结构较为单一,大多重应用轻数据管理,有些甚至以人工的方式管理数据,而大数据应用的数据来源更为多样化,数据类型更加复杂化,采用传统应用烟囱式的数据接入、分散式的数据管理方式已经不能适应大数据建设对数据管理的要求了,因此建立统一的大数据门户管理系统,推动数据资源的整合及互通互用,显得迫切和尤为重要,传统应用数据管理模式向大数据应用数据统一管理演变如图1所示:
数据集成环境是SEARI-TBDS解决方案的核心系统,以全息电子档案(FIDA)为核心理念,具有集中整合数据资源,服务用户业务需求的核心层地位,本文提出创建FIDA数据门户系统,实现统一的数据接入及数据开放共享机制,是数据集成环境FIDA系统的重要基础设施。
国内外已有很多成熟的开源技术或软件产品能为FIDA数据门户系统的建设提供建设思路指导及基础组件支撑,有了这些国内外先进的技术,系统能在正确的方向上专注于功能的设计和实现,在系统研发的过程中,主要借鉴了以下产品优秀的设计思想和引入相关组件作为基础组件支撑系统的研发:
Kettle:一款国外优秀的开源ETL工具,可以基于多种数据来源,完成数据的抽取、转换、加载,将结果数据存储到目标数据源。
Kafka:一款非常受国内外互联网公司热捧的分布式开源消息系统软件,基于O(1)的磁盘数据结构实现消息的持久化,在普通的硬件上可以实现每秒数百万的高吞吐量消息的发布订阅。
MongoDB:是一个可扩展高性能的分布式NOSQL数据库,面向集合且可以存储对象数据,数据结构非常自由。
ELK:包括 Elasticsearch, Logstash, Kibana三大软件,用来构建大规模日志的实时分析处理系统。
SEARI-TBDS交通大数据解决方案主要包括异构数据源接入、大数据存储、数据门户、数据分析处理、大数据应用五大组成部分,数据门户系统作为SEARI-TBDS的数据中枢纽带,向下对接异构数据源,将数据持久化存储到大数据平台,向上响应数据分析处理系统数据请求,提供统一的数据访问接口,方便数据分析处理程序的数据请求和结果回传,最后将数据分析的结果以统一接口的方式提供给大数据应用渲染,供业务方使用,数据门户系统的定位如下图2所示:
▲图2:数据门户系统在SEARI-TBDS大数据解决方案中的定位
数据门户系统FIDA.DPS是SEARI-TBDS解决方案中的重要基础设施,在功能上主要负责大数据平台对内对外的数据接入及数据提供两大功能:
数据接入:大数据平台只有汇聚足够多的数据,才能进行数据的多维度挖掘碰撞分析,这些数据来源于不同的业务系统或者外部系统,他们的格式多种多样、存储的载体也不尽相同;数据接入将这些异构数据的接入工作流程进行抽象,找出共性部分,将数据接入流程标准化,抽象为数据源管理、接入配置、接入服务、数据接入清单、接入监控五大组件。
数据提供:数据中心汇聚的各类数据,最终需要提供给上层应用或外部系统使用,才能发挥数据的应用价值,因此需要统一的数据提供接口,保障提供数据的一致性、便利性、安全性。数据提供以数据中心的数据为载体,由接入数据源管理、提供配置、提供服务、数据提供清单、服务认证、用户管理、订阅管理、服务监控八大组件组成。
FIDA.DPS数据接入功能模块主要负责将业务平台及外部系统数据接入到大数据平台中,同时完成数据转换,将结果数据存储到大数据平台。
数据标准化接入流程如图3所示:
▲图3:数据标准化接入流程
● 数据抽取
负责从数据源获取原始数据,涉及到数据源支持、数据转换、数据对象化及数据存储功能。
● 数据转换
数据转换主要包括数据变换、数据字段添加合并与拆分、缺省字段赋值、数据翻译(编码转换)、数据合并、数据聚合等。
● 数据对象化组织
按照数据分析处理的要求,以对象化的方式组织数据,数据对象化组织由FIDA.BDO软件实现,本文不扩展讨论。
● 数据存储
接入数据按照不同的使用要求,存储到文件系统、关系型数据库、大数据平台中。
▲图4:数据接入核心模型
数据接入模型借鉴了Kettle的设计思想,将接入流程进行抽象为转换和任务,其中转换是数据接入逻辑的封装,由一系列步骤组成,步骤按功能分为数据读取、数据转换、数据写入三种,这些步骤由执行链进行连接,构成一个有向无环图,数据接入能力计算公式定义为:
CFIDA.DPS = Nread * Mtansmethod * Ywrite
其中CFIDA.DPS --数据接入能力, Nread --数据读取能力,Mtansmethod --数据转换能力,Ywrite--数据写入能力。
任务封装了接入能力的调度逻辑,调度类型分为一次性、周期性、消息触发等方式,一个任务中包含一个转换;接入程序(简称ETL主机)以后台服务的形式运行,承载若干数据接入任务,当任务较多时,可以水平扩展,部署更多的ETL主机,完成平台的数据接入工作,数据接入的核心模型如图4所示:
根据数据接入的核心模型,数据的接入能力通过3个步骤体现,分别是数据读取、数据转换、数据写入,接入能力设计如图5所示,各步骤能力说明如下:
● 数据读取步骤Nread
读取步骤是指获取原始数据所支持数据源的种类,理论上可以做到无限扩展,支持的种类越多,读取能力越强,目前支持的数据源有关系型数据库表、NOSQL数据库表、文件、REST接口、TCP通讯,后续可以根据需要增加新的数据源,只需增加对应的数据源读取插件即可;
● 数据转换步骤Mtansmethod
▲图5:数据接入设计
转换步骤指的是对读取的数据进行数据变换的能力,目前支持的数据格式变换、赋缺省值、类型变换、值替换等,后续可以根据需要增加对应的转换插件,理论上可以做到无限扩展;
● 数据写入步骤Ywrite
写入步骤是指将结果数据存储所支持的目标数据源种类,目前支持的目标数据源有关系型数据库表、NOSQL库表、文件、HDFS、HIVE、HBASE,后续可以根据需要增加对应的目标数据源,只需添加对应的目标数据源写入插件即可,理论上可以做到无限扩展。
通过不同的任务调度类型和转换模式的组合,FIDA.DPS提供多种数据接入场景设计,接入场景设计说明如下:
● 实时数据接入场景:按照任务调度类型可以分为一次性写入和周期性写入,根据数据读取写入的存储类型可以分为全量覆盖、插入、更新、合并,组合可以支持8种应用场景。
● 历史数据的全量接入场景:历史数据的全量接入是指在系统中将离线的历史数据的一次性导入。
● 历史数据的增量接入场景:历史数据由于采集周期较长,通常按采集时间周期性的增量接入。
接入监控设计
接入监控是数据接入的眼睛,便于及时掌控数据接入的运行状态,通过使用Kafka的即时传输告警信息,使用ELK收集处理分析接入日志,使用MongoDB存储基础配置信息和分析结果,使用Spring Cloud构建分布式的服务,将这些技术有机的结合运用,实现ETL主机监控、接入任务监控及报警功能。
FIDA.DPS数据提供功能模块主要负责从大数据平台获取原始存储、中间结果、分析处理后的结果数据,根据数据开放和用户订阅的需求对外提供数据接口,供上层应用或外部系统使用。
数据标准化提供的整体处理流程如图6所示:
▲图6:数据标准化提供流程
● 数据查询
从大数据平台的关系型数据库或分布式文件系统中获取数据。
● 数据筛选
根据用户或业务应用订阅情况筛选数据。
● 数据组织
根据数据模型组织数据,生成对象化数据。
● 数据接口
提供应用获取数据的标准接口,主要体现为REST接口、文件等方式。
数据提供采用统一开放接口的方式对外提供数据,接口请求采用REST的方式,每一个开放的数据项在系统中以一个数据服务的形式存在,数据服务基于Spring Cloud 的分布式微服务架构实现,使用Eureka server作为服务的注册中心,使用Zuul网关组件统一微服务请求的入口,将数据请求转发到具体的数据服务上,完成数据提供功能。
数据提供服务接口调用采用认证机制,用户使用接口需先登陆,根据预分配的用户名和密码登录成功后系统分配访问令牌,服务接口调用时需将访问令牌作为参数提交,接口调用时检查令牌,判断是否有权限访问。
▲图7:FIDA数据门户界面原型
数据使用方在使用数据服务时,需在系统统一注册登记,分配账户密码及访问密钥,提交数据服务订阅请求,经审核后方可使用数据,系统会对用户的请求和数据服务的响应情况进行监控,保障数据服务正常运行。
作为大数据平台的数据中枢,FIDA系统承担数据操作系统职能,FIDA.DPS门户系统承担系统数据通道的作用,目前,该系统成功应用于公安交管行业的大数据平台建设当中。某新区交管部门的大数据智能研判平台建设中,使用FIDA数据门户系统汇聚警情、违法、事故、路网、车辆、人口、设备设施等各类数据300多项,都按照标准的流程配置完成数据接入,其中基础数据170多项,实时数据和历史数据各60多项;此外开放共享数据80多项,通过统一的接口,供大数据研判应用和业务系统使用。FIDA数据门户系统主要界面原型如图7所示:
本文主要从大数据环境下强调了统一数据管理的重要性和必要性,从功能上阐述了FIDA.DPS的体系结构,又分别从数据接入和数据提供两方面介绍了系统设计思想用以指导系统实现。FIDA.DPS数据门户系统实现了对数据接入与提供的全流通过程管理,提升了用户数据管理水平,帮助用户全面掌控数据资产,实现了数据的可监控、可运维、在线管理,提高了系统的智能性与灵活性,降低了数据在流入和流出平台的开发难度,常见数据源可以做到配置即可使用,另外预留扩展接口可以根据数据应用需求进行数据接入和提供的多维度扩展。