1.本技术涉及数据拼装技术领域,尤其涉及一种数据拼装方法及相关设备。
背景技术:2.关系数据库管理系统(relational database management system)通过数据、关系和对数据的约束三者组成的数据模型来存放和管理数据。大规模并行处理系统(massivelyparallelprocessing)在数据库非共享集群中,每个节点都有独立的磁盘存储系统和内存系统,业务数据根据数据库模型和应用特点划分到各个节点上,每台数据节点通过专用网络或者商业通用网络互相连接,彼此协同计算,作为整体提供数据库服务。sql server(structured query language server)是网络开发公司推出的一种关系数据库管理系统,按行存储数据,而hbase是一个分布式的、面向列的开源数据库,属于一种大规模并行处理系统,适合于非结构化数据存储的数据库,并基于列的模式存储数据,目前没有比较好的办法能够将指定范围的数据从sql server直接装载进入hbase中。
3.基于上述情况,现有技术中通过ssis包(microsoft sql serverintegration services)执行sql server取出对应数据,按照固定格式写入文件,将文件通过sftp(ssh file transferprotocol,安全文件传送协议)传输至hbase集群服务器,通过对应装载程序将文件内容写入hbase,多张表则需运行多次以上步骤,使得现有少量指定数据抽取流程长,步骤多,而多个表的数据需要多次执行多次装载,费时费力。
技术实现要素:4.有鉴于此,本技术的目的在于提出一种数据拼装方法及相关设备,用以解决上述技术问题。
5.基于上述目的,本技术的第一方面提供了一种数据拼装方法,应用于数据拼装系统,所述数据拼装系统包括设置配置库的sql server数据库、多个sql server服务器、海杜普集群系统和设置在所述海杜普集群系统的hbase数据库,所述海杜普集群系统配置数据拼装程序和配置文件;
6.所述方法包括:
7.通过所述数据拼装程序对所述配置文件进行读取,得到数据范围信息;
8.根据所述数据范围信息通过所述配置库进行数据查询,得到行存储数据查询信息;
9.利用所述数据拼装程序对所述行存储数据查询信息进行处理,得到列存储数据信息;
10.通过所述hbase数据库对所述列存储数据信息进行装载。
11.本技术的第二方面提供了一种数据拼装系统,所述数据拼装系统包括设置配置库的sql server数据库、多个sql server服务器、海杜普集群系统和设置在所述海杜普集群系统的hbase数据库,所述海杜普集群系统配置数据拼装程序和配置文件;
等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
26.相关技术中一般通过ssis包执行sql server取出对应数据,按照固定格式写入文件,将文件通过sftp传输至hbase集群服务器,通过对应装载程序将文件内容写入hbase。例如,由于分省分库的机制,以抽取36个省3个系统,每个系统2张表的部分数据,需要运行ssis包36*3*2=216次,生成216个压缩数据文件进行逐步装载,这样对于指定数据的抽取流程长,步骤多,而多个表的数据需要多次执行多次装载,费时费力。
27.本技术的实施例提供一种数据拼装方法,通过数据拼装程序对配置文件进行读取,将需要进行数据拼装的数据的信息进行读取,以指定需要进行数据拼装的数据的范围,得到数据范围信息,使用配置文件存储对应存储区域的各个数据表的关联关系,所有需求可通过配置文件进行自适应自动扩展,再通过配置库基于数据范围信息进行数据查询,得到行存储数据查询信息,通过并发查询的方式,将需求的数据一次查询拼接好,仅需一次运行程序,简化需求的数据的抽取流程和步骤,再根据数据拼装程序对行存储数据查询信息进行处理,得到列存储数据信息,由hbase数据库对列存储数据信息进行装载,从而较好地实现将指定范围的需要进行数据拼装的数据从sql server数据库装载进入hbase数据库中。
28.如图1所示,本实施例的方法应用于数据拼装系统,所述数据拼装系统包括设置配置库的sql server数据库、多个sql server服务器、海杜普集群系统和设置在所述海杜普集群系统的hbase数据库,所述海杜普集群系统配置数据拼装程序和配置文件;所述方法包括:
29.步骤101,通过所述数据拼装程序对所述配置文件进行读取,得到数据范围信息。
30.在该步骤中,对数据拼装程序和配置文件进行预先的设置,并将设置完成的数据拼装程序和配置文件设置在海杜普集群系统(hadoop集群)中,使得能够通过数据拼装程序对配置文件进行读取,将需要进行数据拼装的数据的信息进行读取,以指定需要进行数据拼装的数据的范围,得到数据范围信息,基于数据范围信息通过数据拼装程序根据需求进行识别,其中,配置文件在使用的过程中可以进行自适应自动扩展来满足数据拼装的不同需求,修改配置文件即可设置每次使用需要的进行数据拼装的数据范围以及关联逻辑,实现了全配置化的使用,对于新增的信息,修改信息可以通过改变配置文件的方式进行适应。
31.步骤102,根据所述数据范围信息通过所述配置库进行数据查询,得到行存储数据查询信息。
32.在该步骤中,配置库根据数据范围信息调取所需查询的sql server数据库的服务器地址,根据所需查询的sql server数据库的服务器地址进行一次运行,发起一次并发查询,通过并发查询的方式,根据数据范围信息执行一次查询拼接,得到行存储数据查询信息,其中行存储数据查询信息指从sql server数据库中调取的全部按行存储的数据信息,大大提升了指定的数据范围信息内的批量数据的抽取效率,将时效提升至秒级。
33.步骤103,利用所述数据拼装程序对所述行存储数据查询信息进行处理,得到列存储数据信息。
34.在该步骤中,利用数据拼装程序对行存储数据查询信息进行处理,基于行存储数
据查询信息得到数据拼装程序执行时传入数据拼装程序的参数,通过传入数据拼装程序的参数与从配置文件中获取的参数名进行匹配,实现数据查询和组装需求,并将行存储数据查询信息转换为列存储数据信息,其中,列存储数据信息指按列存储的数据信息。
35.步骤104,通过所述hbase数据库对所述列存储数据信息进行装载。
36.在该步骤中,通过对生成的存储列存储数据信息的写入指令进行控制,以实现将列存储数据信息装载到hbase数据库中或者暂时不执行装载。
37.其中,hbase数据库采用列存储,行键(rowkey)表示唯一一行,hbase根据行键来进行检索,通过找到某个行键(或者某个行键范围)所在的区域(region),然后将查询数据的请求路由到该区域获取数据,实现了提供行键以及需要的表名,可以直接生成对应数据的存储列存储数据信息的写入指令,通过控制写入指令实现导入对应sql server数据库按行存储的数据至hbase数据库按列进行存储的功能,提升了指定的批量进行数据拼装的数据的装载效率。
38.例如:将sql server数据库分为多个sql server子数据库,和多个sql server子数据库的存储区域,hbase数据库的行键设计为保险单的唯一单号加sql server子数据库的机构号和存储系统的代码,使用配置文件存储对应存储区域之间的关联关系,hbase数据库和海杜普集群系统以保险单的唯一单号为关联条件将所有行存储数据信息查出并转换为列存储数据信息并存入写入指令。
39.通过上述方案,通过数据拼装程序对配置文件进行读取,得到数据范围信息,使用配置文件存储对应存储区域的各个数据表的关联关系,所有需求可通过配置文件进行自适应自动扩展,再通过配置库基于数据范围信息进行数据查询,得到行存储数据查询信息,再根据数据拼装程序对行存储数据查询信息进行处理,得到列存储数据信息,根据所需查询的sql server数据库的服务器地址进行一次运行,发起一次并发查询,通过并发查询的方式,根据数据范围信息执行一次查询拼接,得到行存储数据查询信息,大大提升了指定的数据范围信息内的批量数据的抽取效率,将时效提升至秒级,由hbase数据库对列存储数据信息进行装载,基于行存储数据查询信息得到数据拼装程序执行时传入数据拼装程序的参数,通过传入数据拼装程序的参数与从配置文件中获取的参数名进行匹配,实现数据查询和组装需求,并将行存储数据查询信息转换为列存储数据信息,从而较好地实现将指定范围的数据从sql server数据库装载进入hbase数据库中。
40.在一些实施例中,步骤101,包括:
41.步骤1011,对所述配置文件设置进行数据拼装的目标数据的数据信息。
42.步骤1012,通过所述数据拼装程序对每个所述数据信息进行读取,得到数据范围信息。
43.在上述方案中,目标数据指需要进行装载的数据,配置文件设置目标数据的参数名,数据拼装程序对每个目标数据的参数名进行读取,得到数据范围信息,以指定需要进行数据拼装的数据的范围,数据范围信息指要进行调取以进行数据拼装的全部数据的信息。
44.在一些实施例中,所述sql server数据库包括多个sql server子数据库;
45.步骤102,包括:
46.步骤1021,根据所述数据范围信息通过所述配置库进行匹配,得到查询的sql server子数据库的名称。
47.步骤1022,通过所述配置库基于所述sql server子数据库的名称调取存储的所述sql server子数据库服务器地址,并根据所述sql server子数据库服务器地址对相应的sql server子数据库进行查询,得到所述数据查询信息。
48.在上述方案中,sql server数据库划分为多个sql server子数据库,每个sql server子数据库对应一个服务器,配置库存储了各个sql server子数据库的服务器地址,根据数据范围信息得到对应的sql server子数据库的名称,再通过sql server子数据库的名称由配置库调取对应的sql server子数据库的服务器地址,根据调取的sql server子数据库的服务器地址进行查询调取,利用并发查询实现一次运行只打开一次sql server数据库名称链接即可获取数据查询信息,数据查询信息指从sql server子数据库中查询调取得到的行存储数据查询信息,实现了多个sql server子数据库的批量数据一次操作自动拼接成型,无需分sql server子数据库多次调度,无需通过文件跨服务器传输。
49.在一些实施例中,步骤103,包括:
50.利用所述数据拼装程序将每个所述行存储数据查询信息进行数据拼装处理,将所述行存储数据查询信息转换为列存储数据信息。
51.在上述方案中,利用数据拼装程序对行存储数据查询信息进行数据拼装处理,基于行存储数据查询信息得到数据拼装程序执行时传入数据拼装程序的参数,通过传入数据拼装程序的参数与从配置文件中获取的参数名进行匹配,实现数据查询和组装需求,并将行存储数据查询信息转换为列存储数据信息。
52.在一些实施例中,所述列存储数据信息存储为写入指令文件;
53.步骤104包括:
54.响应于确定执行所述写入指令文件,对所述写入指令文件进行读取,读取所述列存储数据信息,将所述列存储数据信息写入所述hbase数据库。
55.在上述方案中,通过写入指令文件控制是否写入hbase数据库,当执行写入指令文件时,将写入指令文件中的列存储数据信息装载写入hbase数据库,当不执行写入指令文件,不执行hbase数据库对列存储数据信息的装载写入。
56.在一些实施例中,所述配置库存储数据表,所述数据表存储所述sql server子数据库的服务器地址。
57.在上述方案中,通过配置库存储的sql server子数据库的服务器地址,进而能够并发查询,使得多个sql server子数据库批量数据一次操作自动拼接成型,无需执行多次调度,无需通过中间文件跨服务器传输。
58.在一些实施例中,所述sql server子数据库存储在多个存储区域中,每个所述存储区域对应不同的数据表。
59.在上述方案中,配置库中包含sql server的数据表,数据表存储sql server子数据库的服务器地址,不同存储区域中的数据表的结构设计不同,通过配置库并发查询实现一次运行只打开一次sql server数据库链接即可获取到多数据表关联的复杂数据,无需分sql server子数据库执行多次调度,无需通过文件跨服务器传输。
60.在一些实施例中,如图2所示,数据拼装程序和配置文件配置在海杜普集群系统(hadoop集群)中,通过数据拼装程序从配置文件中读取数据范围(即数据范围信息),基于数据范围传入所需链接库名(即sql server子数据库的名称),根据所需链接库名通过配置
库调取对应的数据库地址(即sql server子数据库服务器地址),根据数据库地址对server1、server2、server36等等进行查询数据,得到数据查询信息,其中server1、server2、server36均指sql server子数据库,通过数据拼装程序对数据查询信息进行处理,得到列存储数据信息,将列存储数据信息写入hbase shell命令(即写入指令文件),通过对hbase shell命令进行控制,实现hbase数据库对列存储数据信息是否进行装载,当执行hbase shell命令时,将列存储数据信息装载写入hbase数据库,当未执行hbase shell命令时,不对列存储数据信息装载写入hbase数据库。
61.需要说明的是,本技术实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本技术实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
62.需要说明的是,上述对本技术的一些实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
63.基于同一发明构思,与上述任意实施例方法相对应的,本技术还提供了一种数据拼装系统。
64.参考图3,所述数据拼装系统,包括设置配置库的sql server数据库、多个sql server服务器、海杜普集群系统和设置在所述海杜普集群系统的hbase数据库,所述海杜普集群系统配置数据拼装程序和配置文件;
65.读取模块301,被配置为通过所述数据拼装程序对所述配置文件进行读取,得到数据范围信息;
66.查询模块302,被配置为根据所述数据范围信息通过所述配置库进行数据查询,得到行存储数据查询信息;
67.转换处理模块303,被配置为利用所述数据拼装程序对所述行存储数据查询信息进行处理,得到列存储数据信息;
68.装载模块304,被配置为通过所述hbase数据库对所述列存储数据信息进行装载。
69.在一些实施例中,所述读取模块301,具体被配置为:
70.对所述配置文件设置进行数据拼装的目标数据的数据信息;
71.通过所述数据拼装程序对每个所述数据信息进行读取,得到数据范围信息。
72.在一些实施例中,所述sql server数据库包括多个sql server子数据库;
73.所述查询模块302,具体被配置为:
74.根据所述数据范围信息通过所述配置库进行匹配,得到查询的sql server子数据库的名称;
75.通过所述配置库基于所述sql server子数据库的名称调取存储的所述sql server子数据库服务器地址,并根据所述sql server子数据库服务器地址对相应的sql server子数据库进行查询,得到所述数据查询信息。
76.在一些实施例中,所述转换处理模块303,具体被配置为:
77.利用所述数据拼装程序将每个所述行存储数据查询信息进行数据拼装处理,将所述行存储数据查询信息转换为列存储数据信息。
78.在一些实施例中,所述列存储数据信息存储为写入指令文件;
79.所述装载模块304,具体被配置为:
80.响应于确定执行所述写入指令文件,对所述写入指令文件进行读取,读取所述列存储数据信息,将所述列存储数据信息写入所述hbase数据库。
81.在一些实施例中,所述配置库存储数据表,所述数据表存储所述sql server子数据库的服务器地址。
82.在一些实施例中,所述sql server子数据库存储在多个存储区域中,每个所述存储区域对应不同的数据表。
83.为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本技术时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
84.上述实施例的装置用于实现前述任一实施例中相应的数据拼装方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
85.基于同一发明构思,与上述任意实施例方法相对应的,本技术还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上任意一实施例所述的数据拼装方法。
86.图4示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器401、存储器402、输入/输出接口403通信接口404和总线405。其中处理器401、存储器402、输入/输出接口1030和通信接口404通过总线405实现彼此之间在设备内部的通信连接。
87.处理器401可以采用通用的cpu(central processing unit,中央处理器)、微处理器、应用专用集成电路(application specific integrated circuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
88.存储器402可以采用rom(read only memory,只读存储器)、ram(randomaccess memory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器402可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器402中,并由处理器401来调用执行。
89.输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
90.通信接口404用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信。
91.总线405包括一通路,在设备的各个组件(例如处理器401、存储器402、输入/输出接口1030和通信接口404)之间传输信息。
92.需要说明的是,尽管上述设备仅示出了处理器401、存储器402、输入/输出接口403通信接口404以及总线405,但是在具体实施过程中,该设备还可以包括实现正常运行所必
需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
93.上述实施例的电子设备用于实现前述任一实施例中相应的数据拼装方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
94.基于同一发明构思,与上述任意实施例方法相对应的,本技术还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的数据拼装方法。
95.本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
96.上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的数据拼装方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
97.所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本技术的范围(包括权利要求)被限于这些例子;在本技术的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本技术实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
98.另外,为简化说明和讨论,并且为了不会使本技术实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(ic)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本技术实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本技术实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本技术的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本技术实施例。因此,这些描述应被认为是说明性的而不是限制性的。
99.尽管已经结合了本技术的具体实施例对本技术进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态ram(dram))可以使用所讨论的实施例。
100.本技术实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本技术实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本技术的保护范围之内。