转载本文需注明出处:微信公众号EAWorld,违者必究。
企业大量的IT投资建立了众多的信息系统,但是随着信息系统的增加,各自孤立工作的信息系统将会造成大量的冗余数据和业务人员的重复劳动。企业急需通过建立底层数据集成平台来联系横贯整个企业的异构系统、应用、数据源等,完成在企业内部的ERP、CRM、SCM、数据库、数据仓库,以及其它重要的内部系统之间无缝的共享和交换数据。
如何建立一种可靠、高效、动化的数据交换平台,已成为企业间资源共享,价值创新,实现优势互补重要课题。那么,在国家大力支持信创产业、推进国产化进程的浪潮下,实现数据交换都用到了那些技术?
本文主要介绍数据交换平台中所采用的技术和方案,使大家快速理解并掌握数据交换平台;以信创建设为切入点,着重探讨信创数据交换过程,成体系的对数据交换技术的难点与步骤进行详细说明与分析,为数据交换项目建设打下基础。
目 录
01 数据交换发展
02 数据交换架构
03 数据交换技术
04 总结
01
数据交换发展
1.1数据交换技术发展的趋势
信息技术应用创新发展是目前的一项国家战略,也是当今形势下国家经济发展的新动能。发展信创是为了近年来保障核心技术自主可控解决安全的本质问题,目前,国家在全国范围内各省、自治区、直辖市均建有大型或超大型数据中心。数据中心虽然用电量占全社会用电量的比例接近1%,却拉动了36.2%的国内生产总值,数据中心建设成为经济发展的新支点。
数据中心中存放有海量的数据,数据敏感性突出,之前的数据中心建设中对数据安全管控的意识还不强。数据交换系统采用国外厂商的产品套件及技术架构,存在极大的数据安全隐患。IT底层标准、架构、技术、接口、产品生态,均由国外IT商业公司制定,存在诸多的底层技术被限制的风险,技术方面无法自主定义和自主可控。国外的软件不支持国产的数据库和系统,面对定制化需求如适配生态、新增协议、熔断、限流、预警等功能时,定制困难,成本高昂。数据交换系统作为各业务数据交换的中枢系统,牵一发而动全身,由数据交换系统导致的安全问题,会直接影响到企业整个核心业务的信息安全。
基于以上的一些问题国产的数据交换系统逐渐发展起来,实现了新老交换系统的替换和平滑过渡,拥有自主可控的知识产权,能够适配国产的操作系统以及数据库。不仅能实现数据高效的交换更能够实现数据共享,推动业务创新。
1.2传统数据交换技术架构存在的问题
数据交换技术一共有三个阶段,分别是Extraction 抽取,Transformation 转换,Loading 装载。从不同数据源抽取数据 EXTRACTION ,按照一定的数据处理规则对数据进行加工和格式转换 TRASFORMATION,最后处理完成的输出到目标数据表中也有可能是文件等等。
传统的数据交换技术比较死板只能从一个数据源中抽取数据到目标数据源,中间只能做简单的过滤清洗和转换流程单一,在需要结合多个异构数据源同时进行数据同步的场景下无能为力,另外在许多情况下要做整库的迁移需要根据标的个数编写每一张表的迁移流程进行数据迁移,并且不能自动将目标数据源的表创建出来,造成大量冗余的工作,常常使开发人员望而却步。在传统的数据交换中面对实时同步数据的场景,许多数据交换系统不能提供实时抽取数据的组件或功能,不能应对新形势下数据发展的趋势。随着互联网以及大数据等诸多新技术的发展,传统的数据交换面临着许多挑战,如:
1.传统方式一般是以单表数据交换作为单位进行作业开发,随着企业中数据库以及表的增多这种方式的开发效率低下、容易出错。整库数据交换时工作量巨大
2.传统方式下开发交换模型只能手工一个一个进行,任务多、易出错。需要一种能够在同一种业务下批量进行开发的模式
3.在进行实时数据同步时需要许多额外的操作配合才能完成,过程复杂,对人员技术要求高,
4.在进行PB级数据交换时传统交换方式效率较低,需要很长时间才能完成。
5.传统的数据交换工具不具备业务化的开发能力,遇到相同的数据交换需求需要重头开发。
6.在安全保障上传统的方式是手工编写加密、脱敏的脚本来实现
02
数据交换架构
2.1基于元数据的新一代数据交换架构
数据交换平台不仅仅只是进行数据的交换,更是提供一种基于数据资源目录进行数据交换、数据共享和管理的一体化解决方案。通过目录化能够对企业内部现有的数据资源一目了然,平台内部集成了元数据引擎能够自动的获取资源的元数据信息形成资源目录,通过资源目录进行数据交换规避了以前传统模式下数据交换所带来的技术问题,实现传统模式下难以完成的多个异构数据源相结合同时进行数据同步以及整库数据迁移的场景,并能够支持实时数据交换,将数据交换到数据中心,通过资源目录能够创建出各个业务主题域将数据共享发布到主题域中实现数据的共享服务,并对共享服务进行监控管理。
元数据是关于数据、操纵数据的数据和数据库系统的结构和意义的描述信息,重要目标就是提供数据资源的全面指南。元数据不仅定义了数据交换中的数据模式、来源以及抽取转换规则等,而且整个数据交换系统的运行都应该是基于元数据的,是元数据把数据交换系统中各个松散的组件联系起来,组成了一个有机的整体。
通过自动化的元数据采集完成部门核心职能的业务梳理及其对应的信息资源梳理,编制部门信息资源目录,摸清信息资源有什么、在哪里,提高信息资源共享程度,建立信息资源共享机制和管理制度。结合企业内部信息系统中的数据现状和企业业务属性、技术属性的要求形成企业的数据标准的业务属性和技术属性,制定有效合理的指标数据规范要求。
2.2元数据自动采集
数据交换依托于元数据,数据交换的本质是基于元数据的交换,对半结构化和结构化数据自动采集。
数据交换平台内部的元数据引擎更是能够根据源库的元数据信息,自动将源库的元数据转换成目标数据源的元数据生成DDL语句。用于目标数据源的表结构自动生成,为整库自动全量迁移打下技术基础。
2.3数据交换功能
数据交换平台的功能主要有以下几部分组成:
资源目录管理:基于资源目录管理规范,采用分级、分域的方式对需要交换的数据元数据进行管理,向数据交换开发人员、数据管理人员以目录的形式提供元数据的展示。数据服务目录管理主要功能包含:元数据管理、分类管理、目录编目、目录管理和目录服务。
服务接口管理:数据交换平台中提供了服务接口管理功能,通过分层的方法进行可视化的服务管理,像服务操作注释,服务操作参数,服务操作返回值等都提供相应的用户界面。服务接口管理主要功能包含:接口注册、接口管理、接口构建、服务监控、调用关系管理和服务接口统计。
数据交换管理:支持服务接口开发、etl数据抽取以及文件传输数据交换的开发、运行和管理,主要功能包含:交换桥接、前置交换、数据处理、文件传输和数据统计。
系统支撑功能:支持按照分类、主题、应用等多个层次对数据进行分类管理、识别、定位和共享,开发完成的数据服务消费方可以平台中浏览查看,如果消费方需要使用数据服务能够在平台中发起申请,审批通过后根据平台中提供的服务信息使用数据。主要功能包含:主题管理、信息订阅、数据审批和申请记录。
系统管理与监控:支持按照角色、菜单划分系统功能权限,能够监控服务接口、etl数据抽取以及文件传输交换的运行进行统计和监控。主要功能包含组织管理、用户管理、角色管理、安全管理和平台监控。
2.4资源目录
资源目录体系与交换体系两者密不可分。事实上,资源目录的构建过程是对信息资源进行编目和分类的一体化过程,同时也是依托技术构建信息资源管理体系的过程。建成目录体系和交换体系的同时,将形成内部信息资源的管理架构。资源目录是数据交换的基础,能够为数据交换提供所需要的元数据信息。同时还是一套为信息资源检索、定位和共享的应用服务体系。
根据相关标准定义,资源目录可以分为部门资源目录、基础资源目录和主题资源目录,从实践中来看,梳理部门的资源目录是数据交换平台的切入点。但由于下级部门众多,各自对数据中心的期望和要求不一致,短期内数据中心的建设也不能支撑下级部门的业务,因此上报数据不积极,再加上每个下级部门都建设了数套业务系统,作为数据交换平台的实施方,也难以对委办局提出清晰、明确的数据需求。需要由数据交换管理组牵头进行资源目录梳理,也就是将要求各下级部门或单位、按照职责梳理其应该有的数据目录和数据项,后续再通过资源目录来接入各部门的数据,形成部门库,进而建设基础库和主题库,形成主题数据,去支撑各类上层应用,包括大屏分析、主题分析,甚至政务服务事项、一网通办等。
利用资源目录管理系统,可以通过在线录入资源目录,以信息化手段减轻资源目录梳理的工作,通过技术手段提高梳理的效率。整个过程就像是开一个数据超市需要联系各种供货渠道,管理各个供货渠道的供货关系,最终形成一个货物目录放到货架上。
2.5服务与接口
近些年来,随着数据服务化的意识加强越来越多新上线的系统已经提供了相关数据服务的接口,这时服务接口的数据交换管理采用SOA松耦合的思想来进行数据交换,通过灵活的服务接口和Adapter,方便SOA应用和遗留应用的集成,这种松耦合、有效灵活的架构提供了更好的扩展性。
要点说明:
调用/推送:将服务注册到数据交换平台,可以主动调用接口拉取数据。下级部门如有服务集成需求,可以直接使用交换平台提供的接口访问服务。
数据写入方式:根据数据交换逻辑的不同,可以直接写入利用资源目录管理系统,可以通过在线录入资源目录,以信息化手段减轻资源目录梳理的工作,通过技术手段提高梳理的效率。数据中心再共享给各个系统,也可以直接把数据传递给业务系统。
松耦合的服务配置:服务配置过程中会对ip和端口、服务的URI、服务逻辑编排、响应报文处理等环节进行单独配置,所以对于调用方来说,服务是透明的是非侵入的。
2.6交换管理
这里将交换管理分为两部分一部分是ETL的交换,另一部分是文件传输。
ETL的交换用于大批量非实时低频度的数据交换。不只是数据文件,包括ETL抽取上来的结构化数据、数据库抽取上来的增量日志,都先生成文件放在文件缓存区,再通过批量数据管道进行传输。
要点说明:
三种类型数据的采集:各类数据文件、ETL抽取并经过加工的结构化数据、数据库获取的增量日志。
数据传输链路:实现应用单位前置交换信息库与交换中心之间的信息处理及稳定可靠、不间断地信息传递。
ETL逻辑一次性配置:ETL文件在传输的前后都有处理逻辑,这些逻辑可以在交换中心单点配置,并自动同步到相关前置节点。
三种触发方式:可以通过定时任务调度、数据侦测、任务监控。数据库新生的日志可以通过数据侦测感知并准实时传送。
文件传输交换用于实现文件形式的数据传输。实现集团总部与成员单位之间的文件数据传输,对于大的文件,会自动对文件进行智能分割传输,支持断点续传、加密压缩传输、文件并发传输以及传输流量控制。
要点说明:
文件传输:采用一对一、一对多的方式进行文件传输,用户通过配置发送节点及发送目录、接收节点及接收目录,并配以调度策略,FTA发送节点会自动定期检测发送目录。
断点续传:在不稳定网络状态下保证数据的可靠高效传输。
加密压缩传输:系统可对发送数据进行加密,目的节点接收到加密的数据后,会对接收数据自动进行解密。提供的压缩机制,以便用户进行大容量文件传送时提高效率。
并发传输:支持并发传输,每个传输节点可以同时并发传输多个文件。
03
数据交换技术
3.1数据流程编排
数据交换平台基于元数据配置形成数据管道,每一个流程节点都会作为一个单独的线程运行,负责对数据进行抽取、转换或者装载。每一个管道会实例化为一个队列形成数据的高速通道。类似工厂的流水线处理,每一个组件只会负责自己特定的业务,在处理完成自己的业务后就将数据放入下一个步骤的通道中,下一个步骤会从上一个步骤的通道中获取到数据进行业务处理。形成流水线的数据处理方式。
基于流水线处理方式,普元的数据交换平台能够实现多个异构数据源同时进行混合的数据抽取。这个在复杂的数据处理场景下非常有用。例如:在进行流程数据迁移的时候数据是保存在业务系统的数据库中,但流程确保存在流程引擎所对应的数据库中,并且流程数据一般会采用xml或json的形式进行存储。那么在这个时候普元的数据交换平台能够将业务系统中的数据去和流程引擎的流程相结合进行数据的抽取,中间经过排序、过滤、转换的步骤并能够对数据进行判断根据判断的结果将数据放入到不同的异构数据源中。这种灵活的数据编排方式在传统单一的ETL流程中是不能完成的。
3.2实时数据处理
变化数据捕获简称CDC,这种方式主要应用于增量数据同步并且实时性要求较高的场景。这种架构下数据写入主存储后会由主存储再向辅存储进行同步,对应用层是最友好的,只需要与主存储打交道。主存储到辅存储的数据同步,则可以再利用异步队列复制技术来做。不过这种方案对主存储的能力有很高的要求,必须要求主存储能支持CDC技术。而目前每种数据库实现CDC的方式和方法各不相同,于是就需要根据数据库类型定制化的进行CDC的开发。
CDC的数据同步具有低影响、低延迟、高性能等特点。这里以mysql为例采用Canal来实现CDC数据同步。canal利用了mysql的slave协议将自己伪装为mysql的一个子服务器,向mysql master发送dump协议mysql master收到dump请求,就会将记录的日志信息给slave(也就是canal),canal解析日志信息获取需要同步的数据,数据交换平台通过Canal组件监听Canal服务获取到变化数据交给之后的增量数据输出组件根据CDC所捕获的操作类型(类型有:insert,update,delete)对目标数据库进行相同的操作来完成数据同步。
3.3整库批量数据迁移
数据交换平台中通过元数据引擎实现了在迁移过程中自动判断表是否存在,如果不存在则自动根据原表的信息自动在目标库中创建相应的表(这里是可以生成异构数据库的表),如果表存在,则能够直接进行数据同步。形成了特有的整库批量迁移方案。
在这里在同一环境下采用mysql数据库和目标比较流行的Datax进行了传输效率的比较,从比较中可以看出,同步的性能差别并不大。但同步的过程是有许多不同的。
1.Datax不支持表结构不同的多表批量迁移,如果要支持需要生成多个json,目前也不能自动创建表
2.DI能够支持多表不同表结构的批量迁移,在执行过程中能够判断表是否存在自动创建表结构
3.根据测试结果表明并发数为1时传输效率最高
普元数据交换平台结合资源目录能够通过简单地可视化操作批量数据源,对数据源进行批量的数据交换处理。批量数据交换有以下特性:
1.基于作业模板实现业务能力定义
2.可批量进行整库的数据交换
3.自动控制数据交换中的各种数据转换
4.自动进行数据分批次交换传输
5.通过批量数据交换加强了大数据量的交换能力。配置、部署、运维简单,能够有效提升开发人员的开发效率和质量。
3.4标识位数据同步
数据交换平台具有标识位数据同步的能力,再抽取数据时会根据查询游标自动增加并生成一个标识位的列,在传输到目标表中时如果提交成功就会将成功的标识位记录到本地的存储中,如果提交失败则会记录失败之前已提交成功的标识。在数据交换重新执行时判断是否有标识位的存在,如果存在则将查询游标根据标识位进行定位,从定位处进行数据的抽取。通过这种方式实现数据库两表之间的断点续传,同时提供了标识位增量数据同步的能力。
3.5指定周期的数据交换
数据交换平台作为一个批量数据处理系统,每天都会进行大量的数据处理作业,这些作业之间可能存在复杂的时序关联,因此必须有一个具备一定自动化程度的调度层,来实现作业有序、高效的执行。
作业在运行前都需要在统一调度系统中注册,注册成功后再由调度系统自身的调度管理根据配置的任务计划决定作业的执行次序进行资源调配。
调度包含以下内容:
触发方式:在调度管理中定期根据日历、频度进行作业触发。
作业次序:触发后作业会根据之前设定好的数据性进行作业排序调整作业次序。
任务计划:任务计划会按照配置好的任务执行周期来进行任务调度。
资源调配:在执行调度的时候会根据注册的作业服务器的状况进行资源分配执行传输任务。
3.6负载均衡
负载均衡是解决单台作业服务器在进行多作业并发时数据ETL过程压力过大的一种多节点负载方案。通过负载均衡将多个作业服务器节点组合,将作业通过负载算法分摊到这些节点上进行ETL过程。使这些作业服务器能以最好的状态对外提供服务,这样系统吞吐量最大,性能更高,对于用户而言处理数据的时间也更小。而且,负载均衡增强了系统的可靠性,最大化降低了单个节点过载、甚至宕机的概率。
数据交换平台会监控数据交换引擎所在机器的网络、cpu、内存和硬盘的信息根据系统设置中的阈值判断数据交换执行引擎所在的机器所分配的资源压力是否过大或者隔离有故障的数据交换执行引擎,动态的将索要执行的引擎分配到资源压力较小的数据交换执行引擎上去运行,如果所有数据交换引擎的资源压力都比较大,那么数据交换管理平台会将任务设置为等待状态,在数据交换引擎资源压力变到阈值以下后再重新执行。保证生产系统安全稳定运行。
3.7与大数据的结合
传统 ETL 主要以 SQL 为主要技术手段,把数据经抽取、清洗转换之后加载到数据仓库。但是在如今移动互联网大力发展的场景下,产生大量碎片化和不规则的数据。这中间的数据导入和 SQL ETL 的提取的过程,大量消耗 IO 性能和计算资源,在很多场景下已经是数据处理的瓶颈所在。
Spark通过在数据处理过程中成本更低的洗牌(Shuffle)方式,将MapReduce提升到一个更高的层次。利用内存数据存储和接近实时的处理能力,Spark比其他的大数据处理技术的性能要快很多倍。
新的数据交换中我们开发了 FlumeOnYarn 的架构,基于 XML 描述的可编程的函数 ETL 转换方法。这种方式充分利用了Spark对大数据的处理能力,通过XML文件描述源和目标以及中间的转换过程就能够控制Spark对数据进行ETL过程处理,在应对Hadoop、Hive以及Hbase等任务处理时能够充分体现出大数据处理的优势。
04
总结
4.1数据使用
以前的数据交换平台是有什么数据就只能给什么数据,现在新一代的数据交换平台是想要什么数据就能获取到想要的数据。而能够做到这些需求的背后是数据交换技术的发展和进步。通过建立共享目录服务等共享数据库,以手工录入或导入导出等方式,将数据、文档等存入共享库中,数据交换平台实现对所需信息的快速服务发布以及便捷检索和查询。
发布后的服务能够提供给用户进行申请或订阅,数据信息订阅分为申请资源和订阅资源两种方式:
申请资源:提供消费方通过资源申请方式申请主题分类资源树中的数据实体资源,相对平台而言“拉”的方式,消费方申请资源后,向消费方开放Web服务信息、表格下载方式,由消费方主动获取数据资源。
订阅资源:提供消费方通过资源订阅方式申请主题分类资源树中的数据实体资源,相对平台而言“推”的方式,消费方订阅资源后,向平台提供数据库、文件目录地址与连接方式,由平台向消费方推送数据资源。
用户的申请或订阅是需要通过审批才能获取到数据资源的,数据管理方能够在数据交换平台中对用户所使用数据的情况进行监控。通过数据交换平台来实现数据共享和路由。这种连接方式实现了数据的无缝交换和共享访问,保证了各业务系统的有效协同,同时又能保证各应用系统的相互独立性和低耦合性,从整体上提高了系统运作效率和安全性。
用户在使用数据时就像进入了数据超市一样,数据共享平台里共享出来的各种主题就像是数据的货架,货架上摆满了各种数据,用户可以随意挑选。在找到自己想要的数据后,只要发出申请或订阅,通过审批后就能够拿到所需的数据。
4.2系统管理与监控
在系统管理和监控中数据管理方能够分配资源的使用权限,监控消费方对数据交换和数据共享的使用情况。
数据交换平台支持告警监控,在平台数据交换服务执行异常时,能够触发相关的告警服务,用户可自定义服务监控指标与告警范围,支持邮件、短信等告警方式。前面我们说了,提供的共享服务就像是开一个数据超市,那么数据交换平台的监控就像是超市中装的监控摄像头,能够监控数据交换的一举一动,保障数据资产的安全。
普元数据交换平台DI结合了信创对国产化以及自主可控的要求,能够适配国产化操作系统和数据库的环境,通过资源目录对数据进行共享,创建了在各个业务系统之间的数据高速公路使原先的数据孤岛,变成数据仓库、数据集市有效的对数据进行管理和应用。
未经允许不得转载:木盒主机 » 数据交换实践:创建业务系统间高速公路