数据回流、关系型数据库中的数据访问方法及系统的利记博彩app

文档序号:6488638阅读:566来源:国知局
数据回流、关系型数据库中的数据访问方法及系统的利记博彩app
【专利摘要】本申请公开了数据回流、关系型数据库中的数据访问方法及系统,所述数据回流方法包括:在关系型数据库中创建第一数据表,所述第一数据表包括名称字段及数据内容字段;确定分布式系统中需要进行数据回流的第二数据表、所述第二数据表的格式及名称;根据所述第二数据表的格式读取出所述第二数据表中的所有原始数据,并转换为字符串,在所述字符串中,根据各个原始数据在所述第二数据表中所处的行与列的不同,利用预置的分隔符进行分隔,所述分隔符包括行分隔符及列分隔符;将所述字符串作为一条记录的数据内容写入到所述第一数据表的数据内容字段中,并将所述第二数据表的名称作为该条记录的名称写入到所述第一数据表的名称字段中。
【专利说明】数据回流、关系型数据库中的数据访问方法及系统
【技术领域】
[0001]本申请涉及数据处理【技术领域】,特别是涉及数据回流、关系型数据库中的数据访问方法及系统。
【背景技术】
[0002]互联网行业产生的数据量非常大,其运算的量一般需要在Hadoop等大型的分布式系统中才能完成,例如,相关的日志数据、浏览数据、用户数据、交易数据、商品数据等等全部会通过Hadoop完成相关计算。
[0003]Hadoop充分利用集群的威力高速运算和存储,因此,对大数据量的运算非常有优势。但是,由于Hadoop处理后的可用数据往往会分散存放在不同的服务器上,并且一般只提供命令行的方式进行读取,在用户访问和数据获取方面不是很友好。因此,一般会将Hadoop上对大数据进行处理之后的可用数据进行回流,在回流到关系型数据库之后,可以方便的做成各种程序接口(API)供调用,然后可视化的方式提供给访问者。
[0004]传统的数据回流方法中,每当在Hadoop上产生一个新的数据报表,都会在对应的关系型数据库中建立同样表结构(表字段数目及含义完全一致)的表,然后通过程序将Hadoop上的数据读出并写入关系型数据库的表中,从而达到回流的目的。
[0005]但是,在这种传统的方式中,由于每产生一张Hadoop的表,都要在关系型数据库中建立同样的表,每次都需要走数据库的建表流程,相对繁琐和冗长,并且关系型数据库中每产生一个新的表,都需要编写相应的代码以便访问表中的数据,工作量比较大。

【发明内容】

[0006]本申请提供了数据回流方法及系统,能够简化数据回流的流程。本申请还提供了关系型数据库中的数据访问方法及系统。
[0007]本申请提供了如下方案:
[0008]一种数据回流方法,包括:
[0009]在关系型数据库中创建第一数据表,所述第一数据表包括名称字段及数据内容字段;
[0010]确定分布式系统中需要进行数据回流的第二数据表、所述第二数据表的格式及名称;
[0011]根据所述第二数据表的格式读取出所述第二数据表中的所有原始数据,并转换为字符串,在所述字符串中,根据各个原始数据在所述第二数据表中所处的行与列的不同,利用预置的分隔符进行分隔,所述分隔符包括行分隔符及列分隔符;
[0012]将所述字符串作为一条记录的数据内容写入到所述第一数据表的数据内容字段中,并将所述第二数据表的名称作为该条记录的名称写入到所述第一数据表的名称字段中。
[0013]可选地,所述将所述字符串作为一条记录的数据内容写入到所述第一数据表的数据内容字段中包括:
[0014]将所述字符串按照指定的格式进行压缩后,作为一条记录的数据内容写入到所述第一数据表的数据内容字段中。
[0015]可选地,所述将所述字符串作为一条记录的数据内容写入到所述第一数据表的数据内容字段中包括:
[0016]按照指定的输出格式,将所述字符串作为一条记录的数据内容写入到所述第一数据表的数据内容字段中。
[0017]可选地,所述第一数据表还包括日期字段;所述方法还包括:
[0018]将所述字符串作为一条记录的数据内容写入到所述第一数据表的数据内容字段中的同时,将当前日期作为该条记录的日期写入到所述第一数据表的日期字段中。
[0019]可选地,还包括:
[0020]监控所述第一数据表中记录条数的变化;
[0021]当所述记录条数达到预置阈值时,为所述第一数据表添加索引字段,每一条索引对应所述预置阈值条数的记录。
[0022]一种关系型数据库中的数据访问方法,所述关系型数据库中保存有第一数据表,所述第一数据表包括名称字段及数据内容字段,所述第一数据表中每条记录的名称字段用于保存第二数据表的名称,数据内容字段用于保存第二数据表中的所有原始数据,所述原始数据在存入所述数据内容字段之前被转换为字符串,在所述字符串中,根据各个原始数据在所述第二数据表中所处的行与列的不同,利用预置的分隔符进行分隔,所述分隔符包括行分隔符及列分隔符;所述方法包括:
[0023]接收查询请求,根据所述查询请求与所述第一数据表的名称字段的匹配情况,确定目标记录条目;
[0024]提取所述目标记录条目的数据内容字段中的字符串,并按照所述行分隔符及列分隔符对所述字符串进行拆分,还原成与第二数据表对应的二维数组;
[0025]确定所述第二数据表中各字段的含义;
[0026]按照所述各字段的含义将所述二维数组输出为二维数据表文件并返回。
[0027]可选地,所述返回给所述访问者包括:
[0028]提供所述二维数据表文件的访问接口供调用;
[0029]或者,
[0030]将所述二维数据表文件输出到网页供查看或下载。
[0031]可选地,还包括:
[0032]确定所述第二数据表中各字段的输出格式;
[0033]所述按照所述各字段的含义将所述二维数组输出为二维数据表文件,返回给所述访问者包括:
[0034]按照所述各字段的含义及输出格式将所述二维数组输出为二维数据表文件并返回。
[0035]可选地,所述字符串在被存入所述第一数据表的数据内容字段之前被按照指定的格式压缩;所述提取所述目标记录条目的数据内容字段中的字符串包括:
[0036]提取所述目标记录条目的数据内容字段中的数据并根据所述指定的格式进行解压得到字符串。
[0037]可选地,将所述字符串被按照指定的输出格式写入到所述第一数据表的数据内容字段中,所述提取所述目标记录条目的数据内容字段中的字符串包括:
[0038]将所述目标记录条目的数据内容字段中的字符串按照所述输出格式输出为标准文件。
[0039]可选地,所述第一数据表还包括日期字段,所述日期字段用于保存将所述第二数据表回流到所述第一数据表时的日期;所述根据所述查询请求与所述第一数据表的名称字段的匹配情况,确定目标记录条目包括:
[0040]根据所述查询请求与所述第一数据表的名称字段及日期字段的匹配情况,确定目标记录条目。
[0041]一种数据回流系统,包括:
[0042]创建单元,用于在关系型数据库中创建第一数据表,所述第一数据表包括名称字段及数据内容字段;
[0043]信息获取单元,用于确定分布式系统中需要进行数据回流的第二数据表、所述第二数据表的格式及名称;
[0044]数据转换单元,用于根据所述第二数据表的格式读取出所述第二数据表中的所有原始数据,并转换为字符串,在所述字符串中,根据各个原始数据在所述第二数据表中所处的行与列的不同,利用预置的分隔符进行分隔,所述分隔符包括行分隔符及列分隔符;
[0045]数据写入单元,用于将所述字符串作为一条记录的数据内容写入到所述第一数据表的数据内容字段中,并将所述第二数据表的名称作为该条记录的名称写入到所述第一数据表的名称字段中。
[0046]—种关系型数据库中的数据访问系统,所述关系型数据库中保存有第一数据表,所述第一数据表包括名称字段及数据内容字段,所述第一数据表中每条记录的名称字段用于保存第二数据表的名称,数据内容字段用于保存第二数据表中的所有原始数据,所述原始数据在存入所述数据内容字段之前被转换为字符串,在所述字符串中,根据各个原始数据在所述第二数据表中所处的行与列的不同,利用预置的分隔符进行分隔,所述分隔符包括行分隔符及列分隔符;所述系统包括:
[0047]目标记录条目确定单元,用于接收查询请求,根据所述查询请求与所述第一数据表的名称字段的匹配情况,确定目标记录条目;
[0048]拆分单元,用于提取所述目标记录条目的数据内容字段中的字符串,并按照所述行分隔符及列分隔符对所述字符串进行拆分,还原成与第二数据表对应的二维数组;
[0049]字段含义确定单元,用于确定所述第二数据表中各字段的含义;
[0050]返回单元,用于按照所述各字段的含义将所述二维数组输出为二维数据表文件并返回。
[0051]根据本申请提供的具体实施例,本申请公开了以下技术效果:
[0052]通过本申请提供的数据回流方法,只需要在关系型数据库中建立一张表,可以快速的输入分布式系统(如Hadoop集群等)上的任何数据表,而不需要每次在Hadoop上产生的数据报表都在关系型数据库上建立同样的表单,节省了存储空间,减少了中间环节。
[0053]另外,在实现过程中,支持各种个性化的配置,可以根据Hadoop上的数据报表的不同来配置各种不同的输入输出规则,具有很强的灵活性。
[0054]通过本申请提供的数据访问方法,可以针对特殊结构的一个数据表形成统一的输出接口,而不需要针对数据库中的多个数据表都编写数据访问代码,简化了实现的流程。
[0055]当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。
【专利附图】

【附图说明】
[0056]为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0057]图1是本申请实施例提供的数据回流方法的流程图;
[0058]图2是本申请实施例提供的数据访问方法的流程图;
[0059]图3是本申请实施例提供的数据回流系统的示意图;
[0060]图4是本申请实施例提供的数据访问系统的示意图。
【具体实施方式】
[0061]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本申请保护的范围。
[0062]首先,本申请实施例提供了一种数据回流方法,参见图1,该方法可以包括以下步骤:
[0063]SlOl:在关系型数据库中创建第一数据表,所述第一数据表包括名称字段及数据内容字段;
[0064]关系型数据库可以是MySql、0racle、DB2等。在本申请实施例中,在关系型数据库中创建第一数据表的操作是在进行具体的数据回流之前进行的。也就是说,与现有技术不同,在数据库中创建数据表时,不需要考虑Hadoop上的数据表的结构、字段含义等,而是直接按照预先定义好的结构进行创建即可,并且,不需要针对每个需要回流的数据表都在关系型数据库中重新创建与之对应的数据表,本申请实施例在关系型数据库中创建第一数据表的操作只需进行一次即可,Hadoop上产生的所有第二数据表中的数据都可以统一回流到这一张数据库表中。
[0065]具体在创建该第一数据表时,可以包括名称(name)字段及数据内容(content)字段,其中,名称字段用于保存Hadoop中每个第二数据表的名称,数据内容字段用于保存Hadoop中每个第二数据表的全部数据。当然,在实际应用中,该第一数据表中还可以有其他的字段,后续会有相应的介绍。
[0066]S102:确定分布式系统中需要进行数据回流的第二数据表、所述第二数据表的格式及名称;
[0067]在关系型数据库中创建了第一数据表之后,就可以针对Hadoop上具体的第二数据表进行数据回流操作。在实际应用中,这里的第二数据表可以是通过编写Map/Reduce程序或者HIVE SQL脚本在Hadoop集群上运行(主要进行数据的清洗、运算、统计等,比如说要查看昨天访问某网站的用户有多少、成交额是多少等等,需要用交易表、用户表、日志表等进行汇总、过滤、计算)产生的数据表(二维表),也可以是Hadoop集群上已经生成好的各种格式的数据表。在实际应用中,Hadoop上的第二数据表一般是有很多个,需要对哪个或者哪些具体的第二数据表进行数据回流需要指定。具体实现时,可以提供一配置界面,由配置人员在配置界面上填写需要回流的第二数据表的名称,这样就可以确定出需要对哪个第二数据表中的数据进行数据回流。
[0068]在确定了需要进行数据回流的第二数据表之后,由于后续的步骤中需要从第二数据表中进行数据读取,而不同的表格式对应着第二数据表中不同的文件内容格式(例如,有的是用“\n”对文件内容进行分隔,还有的是用“,”,还有的是用空格等等),只有在获知了一个数据表的表格式,才能正确地从读取出数据,因此,从第二数据表中读取数据之前需要获知第二数据表的表格式。具体的,如果Hadoop上的所有第二数据表都采用相同的表格式,则关于第二数据表的表格式信息可以是预先获知的,统一按照该表格式从第二数据表中进行数据读取即可。但实际应用中,Hadoop上的各个第二数据表可能会具有不同的表格式,具体是何种表格式,配置人员是可以知晓的,因此,还可以在前述配置界面中提供第二数据表的表格式配置入口,由配置人员在输入第二数据表的名称的同时,输入第二数据表的表格式,这样就可以获知第二数据表的表格式,然后按照该表格式从第二数据表中提取数据即可。
[0069]当然,在前述配置界面中,还可以提供其他的配置入口。例如,输出格式配置入口,如果配置人员需要指定第二数据表中的数据输出到第二数据表时采用的输出格式,则可以通过该入口进行配置,例如,配置为json格式、文本格式、xml格式等等;当然如果配置人员没有指定输出格式,则可以采用默认的输出格式进行输出,例如,json格式。又如,还可以包括压缩方式配置入口,为了节省存储空间,在将第二数据表中的数据保存到第一数据表的数据内容字段之前,还可以进行压缩,配置人员可以通过该入口指定具体的压缩格式,例如zip等。当然,如果配置人员没有指定,则可以不进行压缩,或者按照默认的格式进行压缩7等等。
[0070]S103:根据所述第二数据表的格式读取出所述第二数据表中的所有原始数据,并转换为字符串,在所述字符串中,根据各个原始数据在所述第二数据表中所处的行与列的不同,利用预置的分隔符进行分隔,所述分隔符包括行分隔符及列分隔符;
[0071]由于步骤S102中已经获知了第二数据表的表格式,因此,就可以按照该表格式从该第二数据表中一次性读取出所有的原始数据。然后,在本申请实施例中,可以将这些原始数据转换成一个大的字符串。由于第二数据表中也存在行、列的概念,原始数据分布在第二数据表的各行各列中,因此,在转换的过程中,可以采用逐条逐字段地追加写入的方式,同时,根据各个原始数据在第二数据表中所处的行与列的不同,利用预置的分隔符进行分隔,这里的分隔符包括行分隔符及列分隔符。例如,列分隔符采用“,”,行分隔符用“[]”,如,某第二数据表中的原始数据如表I所示:
[0072]表I
[0073]
【权利要求】
1.一种数据回流方法,包括:在关系型数据库中创建第一数据表,所述第一数据表包括名称字段及数据内容字段;确定分布式系统中需要进行数据回流的第二数据表、所述第二数据表的格式及名称;根据所述第二数据表的格式读取出所述第二数据表中的所有原始数据,并转换为字符串,在所述字符串中,根据各个原始数据在所述第二数据表中所处的行与列的不同,利用预置的分隔符进行分隔,所述分隔符包括行分隔符及列分隔符; 将所述字符串作为一条记录的数据内容写入到所述第一数据表的数据内容字段中,并将所述第二数据表的名称作为该条记录的名称写入到所述第一数据表的名称字段中。
2.根据权利要求1所述的方法,所述将所述字符串作为一条记录的数据内容写入到所述第一数据表的数据内容字段中包括: 将所述字符串按照指定的格式进行压缩后,作为一条记录的数据内容写入到所述第一数据表的数据内容字段中。
3.根据权利要求1所述的方法,所述将所述字符串作为一条记录的数据内容写入到所述第一数据表的数据内容字段中包括: 按照指定的输出格式,将所述字符串作为一条记录的数据内容写入到所述第一数据表的数据内容字段中。
4.根据权利要求1所述的方法,所述第一数据表还包括日期字段;所述方法还包括: 将所述字符串作为一条记录的数据内容写入到所述第一数据表的数据内容字段中的同时,将当前日期作为该条记录的日期写入到所述第一数据表的日期字段中。
5.根据权利要求1所述的方法,还包括: 监控所述第一数据表中记录条数的变化; 当所述记录条数达到预置阈值时,为所述第一数据表添加索引字段,每一条索引对应所述预置阈值条数的记录。
6.一种关系型数据库中的数据访问方法,所述关系型数据库中保存有第一数据表,所述第一数据表包括名称字段及数据内容字段,所述第一数据表中每条记录的名称字段用于保存第二数据表的名称,数据内容字段用于保存第二数据表中的所有原始数据,所述原始数据在存入所述数据内容字段之前被转换为字符串,在所述字符串中,根据各个原始数据在所述第二数据表中所处的行与列的不同,利用预置的分隔符进行分隔,所述分隔符包括行分隔符及列分隔符;所述方法包括: 接收查询请求,根据所述查询请求与所述第一数据表的名称字段的匹配情况,确定目标记录条目; 提取所述目标记录条目的数据内容字段中的字符串,并按照所述行分隔符及列分隔符对所述字符串进行拆分,还原成与第二数据表对应的二维数组; 确定所述第二数据表中各字段的含义; 按照所述各字段的含义将所述二维数组输出为二维数据表文件并返回。
7.根据权利要求6所述的方法,所述返回给所述访问者包括: 提供所述二维数据表文件的访问接口供调用; 或者, 将所述二维数据表文件输出到网页供查看或下载。
8.根据权利要求6所述的方法,还包括: 确定所述第二数据表中各字段的输出格式; 所述按照所述各字段的含义将所述二维数组输出为二维数据表文件,返回给所述访问者包括: 按照所述各字段的含义及输出格式将所述二维数组输出为二维数据表文件并返回。
9.根据权利要求6所述的方法,所述字符串在被存入所述第一数据表的数据内容字段之前被按照指定的格式压缩;所述提取所述目标记录条目的数据内容字段中的字符串包括: 提取所述目标记录条目的数据内容字段中的数据并根据所述指定的格式进行解压得到字符串。
10.根据权利要求6所述的方法,将所述字符串被按照指定的输出格式写入到所述第一数据表的数据内容字段中,所述提取所述目标记录条目的数据内容字段中的字符串包括: 将所述目标记录条目的数据内容字段中的字符串按照所述输出格式输出为标准文件。
11.根据权利要求6所述的方法,所述第一数据表还包括日期字段,所述日期字段用于保存将所述第二数据表回流到所述第一数据表时的日期;所述根据所述查询请求与所述第一数据表的名称字段的匹配情况,确定目标记录条目包括: 根据所述查询请求与所述第一数据表的名称字段及日期字段的匹配情况,确定目标记录条目。
12.—种数据回流系统,包括: 创建单元,用于在关系型数据库中创建第一数据表,所述第一数据表包括名称字段及数据内容字段; 信息获取单元,用于确定分布式系统中需要进行数据回流的第二数据表、所述第二数据表的格式及名称; 数据转换单元,用于根据所述第二数据表的格式读取出所述第二数据表中的所有原始数据,并转换为字符串,在所述字符串中,根据各个原始数据在所述第二数据表中所处的行与列的不同,利用预置的分隔符进行分隔,所述分隔符包括行分隔符及列分隔符; 数据写入单元,用于将所述字符串作为一条记录的数据内容写入到所述第一数据表的数据内容字段中,并将所述第二数据表的名称作为该条记录的名称写入到所述第一数据表的名称字段中。
13.一种关系型数据库中的数据访问系统,所述关系型数据库中保存有第一数据表,所述第一数据表包括名称字段及数据内容字段,所述第一数据表中每条记录的名称字段用于保存第二数据表的名称,数据内容字段用于保存第二数据表中的所有原始数据,所述原始数据在存入所述数据内容字段之前被转换为字符串,在所述字符串中,根据各个原始数据在所述第二数据表中所处的行与列的不同,利用预置的分隔符进行分隔,所述分隔符包括行分隔符及列分隔符;所述系统包括: 目标记录条目确定单元,用于接收查询请求,根据所述查询请求与所述第一数据表的名称字段的匹配情况,确定目标记录条目; 拆分单元,用于提取所述目标记录条目的数据内容字段中的字符串,并按照所述行分隔符及列分隔符对所述字符串进行拆分,还原成与第二数据表对应的二维数组; 字段含义确定单元,用于确定所述第二数据表中各字段的含义; 返回单元,用于按照所述各字段的含义将所述二维数组输出为二维数据表文件并返回。`
【文档编号】G06F17/30GK103678339SQ201210328490
【公开日】2014年3月26日 申请日期:2012年9月6日 优先权日:2012年9月6日
【发明者】李庆丰 申请人:阿里巴巴集团控股有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1