一种离线数据处理方法及装置与流程

文档序号:11829804阅读:343来源:国知局
一种离线数据处理方法及装置与流程

本申请涉及数据库的数据处理技术,特别涉及一种离线数据处理方法及装置。



背景技术:

随着大数据应用的发展,基于离线数据的业务应用已经得到越来越多的使用。

由于数据仓库底层提供的结构数据通常无法直接被用户使用,现有技术中通常采用的方案是,在获取用户的具体业务需求后,由相应的工程师在离线数据平台根据该业务需求对离线数据进行ETL(Extract-Transform-Load,萃取、转置、加载)加工;然后将加工后的数据提供给用户使用。

采用现有技术中的离线数据的处理方案,从用户提交业务需求到获得对应的目标数据的时间较长,导致用户体验较差。



技术实现要素:

本申请实施例中提供了一种离线数据处理方法及装置,用于解决现有技术中用户提交业务需求至获得对应的目标数据的时间较长导致的用户体验较差的问题。

根据本申请实施例的第一个方面,提供了一种离线数据处理方法,包括:根据用户提交的业务需求设置配置参数,配置参数包括一个或多个筛选条件;将配置参数转换为DSL(Domain-Specific Languages,领域模型语言)表达式;将DSL表达式转换为SQL(Structured Query Language,结构化查询语言)语 句;触发离线数据平台针对第一离线数据执行SQL语句以得到第二离线数据;将第二离线数据提供给用户。

根据本实施例的另一个方面,提供了一种离线数据处理装置,包括:配置模块,用于根据用户提交的业务需求设置配置参数,配置参数包括一个或多个筛选条件;DSL解析模块,用于将配置参数转换为领域模型语言DSL表达式;SQL解析模块,用于将DSL表达式转换为结构化查询语言SQL语句;执行模块,用于触发离线数据平台针对第一离线数据执行SQL语句,得到第二离线数据;数据提供模块,用于将第二离线数据提供给用户。

采用本申请实施例中的离线数据处理方法及装置,在接收到用户提交的业务需求后,根据该业务需求设置相应的配置参数,然后将配置参数转换为DSL表达式;再将DSL表达式转换为SQL语句;触发离线数据平台针对第一离线数据执行SQL语句以得到第二离线数据;将第二离线数据提供给用户;能够根据业务需求快速将离线数据提供给用户使用,从而能够在接收到用户的业务需求之后,很快的向用户返回符合需求的离线数据;缩短了从用户提交业务需求到获得对应的数据的时间,提升了用户体验。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1为根据本申请实施例一的离线数据处理方法的流程图;

图2为根据本申请实施例一的DSL表达式转换的AST的示意图;

图3为根据本申请实施例二的离线数据处理装置的结构示意图;

图4为根据本申请实施例三所示的独立于ODPS的离线数据处理装置结构示意图;

图5为根据本申请实施例四的离线数据处理方法的流程图。

具体实施方式

为了使本申请实施例中的技术方案及优点更加清楚明白,以下结合附图对本申请的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

图1为根据本申请实施例一的离线数据处理方法的流程图。

如图1所示,根据本申请实施例一的离线数据处理方法包括以下步骤:

S102,根据用户提交的业务需求设置配置参数,配置参数包括一个或多个筛选条件;

S104,将配置参数转换为领域模型语言DSL表达式;

S106,将DSL表达式转换为结构化查询语言SQL语句;

S108,触发离线数据平台针对第一离线数据执行SQL语句以得到第二离线数据;

S110,将第二离线数据提供给用户。

通常结合常见的业务需求进行配置参数的设置,在具体实施时,可以采用以下常见方式设置该配置参数,例如,可以由系统根据用户提交的业务需求自动生成,也可以由业务工程师根据用户提交的业务需求自定义,或者由系统管理员预先设置,提供给业务工程师选择的形式等方式,该配置参数中可以包括一个或多个筛选条件;本领域技术人员也应当理解,上述配置参数的设置形式仅是为示意的目的示出,并不用于限制本申请。

在具体实施时,通常向工程师提供可易用的操作界面以设置可视化的表达式。

DSL是针对某个特定领域而开发的计算机语言,与DSL相对的是如C/C++,Java,Python/Ruby等的通用语言,这些通用语言可以用于各个领域编程,通用性有余,但针对性不够强。而DSL的风格更面向客户,语法也更加友好,DSL与上述通用语言相比,能够更加快速的描述问题,解决问题。简言之,DSL是 一种可视化、便于理解的表达式,在本申请中,我们通过DSL表达式来针对底层的数据源生成自适应的数据提取语句。

在设置配置参数之后,会将该配置参数转换为DSL表达式,并保存在数据库中。例如:“$a>10&&$b=”string”其中,$a和$b是根据业务需求定义的变量。

在具体实施时,该第一离线数据是未经加工的原始数据,例如,小微企业的交易数据、全淘宝的商业数据、某一网站的访问日志等。

在具体实施时,该离线数据平台可以是多种离线数据平台,例如RDS(Relational Database Service,关系型数据服务)平台、OTS(Open Table Service,开放结构化数据服务)平台,ODPS数据平台等。

在具体实施时,该用户可以是多个在线平台的用户,例如阿里金融的信用评估系统的用户、淘宝共享数据平台的用户、淘宝在云端的用户或其他等能够向用户提供多样性的数据产品的多种在线平台的用户。

在实施本申请实施例中的离线数据处理方案时,以阿里金融的信用评估系统为例,当用户登录阿里金融的信用评估系统后,提交针对多个店铺的信用评估需求,此时阿里金融的信用评估系统将针对该多个店铺的信用评估需求发送至后台;在接收到用户的业务需求后,首先将设置用于对该多个店铺进行信用评估的配置参数,在该配置参数中包括一个或多个筛选条件,例如,筛选范围是用户指定的店铺的数据、用户索赔率、买家通过支付宝付款的比率等;然后将该配置参数转换为DSL表达式;在转换为DSL表达式后,再将该DSL表达式转换为SQL语句;然后触发离线数据平台执行该SQL语句对全淘宝的所有店铺的商业数据进行筛选,得到指定的这些店铺的用户索赔率、买家通过支付宝付款的比率等数据,然后将这些数据提供给用户。当然,阿里金融的信用评估系统也可以根据这些数据进行分析和评估,在提供数据的同时,向用户提供参考的评估结果。

采用本申请实施例中的离线数据处理方法,在接收到用户提交的业务需求 后,根据该业务需求设置相应的配置参数,然后将配置参数通过DSL表达式转换为SQL语句;使得离线数据平台能够执行SQL语句以得到第二离线数据;并将离线数据提供给用户使用,缩短了从用户提交业务需求到获得对应的数据的时间,提升了用户体验。

另外,由于现有技术中采用ETL进行离线数据处理,也就是说,现有技术中在接收到用户的具体业务需求之后,先是将业务需求相关的数据抽取出来,然后再对这些数据进行清洗和格式转换,再加载以提供给用户。由于数据清洗和格式转换需要一定的时间,所以提供给用户的数据已经不是最新的数据,将导致提供给用户的数据准确度不足。

而采用本申请实施例中的离线数据处理方法,由于先将配置参数通过DSL表达式转换为SQL语句;然后再触发离线数据平台进行数据筛选以得到第二离线数据。也就是说,从数据平台中抽取的数据均是最新的数据,准确度较高。

优选地,各配置参数具有唯一的标识,在得到第二离线数据之后,还包括:保存配置参数、该配置参数的标识、以及作为该配置参数的筛选结果的第二离线数据之间的映射关系;将第二离线数据提供给用户的同时,将第二离线数据的标识提供给用户。

各系统接收到的业务需求会有多个,因此配置的参数也会有多个,为了区分针对不同业务需求的配置参数,可以为不同的配置参数设置不同的标识;同时,可能某一用户提交的业务需求也不相同,为了使用户区分获得的第二离线数据是对应的哪个业务需求的,在将第二离线数据提供给用户的同时,将该数据的标识提供给用户。

在具体实施时,该配置参数的标识可以是在设置配置参数之后由系统随机自动生成,也可以由工程师根据具体的业务需求为配置参数自定义相应的标识,本领域技术人员应当理解,能够将各配置参数相区别的标识方式均在本申请的范围之内。

采用本申请实施例中的离线处理方法,为各配置参数设置唯一的标识,并 保存配置参数、该配置参数的标识、以及作为该配置参数的筛选结果的第二离线数据之间的映射关系;并将第二离线数据提供给用户的同时,将第二离线数据的标识提供给用户,使得用户能够容易地区分获得的第二离线数据所对应的业务需求,提升了用户体验。

优选地,在根据用户提交的业务需求设置配置参数之后,还包括:为配置参数设置标识,并判断标识是否已存在;如果不存在,则创建标识,并保存标识与所述配置参数之间的映射关系;如果已存在,则更新标识对应的配置参数。

在具体实施时,为了使提供给用户的标识能够承载更多的有用信息,在唯一的标识配置参数和根据该配置参数筛选的第二离线数据之外,通常设置的标识还与用户的业务需求相关;而同一用户的同一业务需求可能也会随时变化,因此,对应的配置参数可能也会更新。

采用本申请实施例中的方案,在为根据业务需求生成的配置参数分配标识时,如果发现系统中还不存在该标识,则为该配置参数生成该唯一标识,如果该标识已经存在,则更新该标识对应的配置参数,从而能够直接更新标识对应的配置参数,不需要重新生成新的唯一标识。

优选地,将DSL表达式转换为SQL语句具体包括:将DSL表达式转化为AST(abstract syntax tree,抽象语法树);根据离线数据平台的数据存储格式的SQL语法对AST进行变量动态替换,生成SQL语句。

在具体实施时,可以使用开源软件dropincc将DSL表达式转化为AST。

仍然以DSL表达式“$a>10&&$b=”string”为例,其中,使用dropincc对其进行转化后的AST如图2所示。

优选地,触发离线数据平台针对第一离线数据执行SQL语句以得到第二离线数据具体包括:将SQL语句发送至离线数据平台;触发离线数据平台执行SQL语句,得到第二离线数据;从离线数据平台读取第二离线数据。

在具体实施时,通常在离线数据平台之外提供本申请实施例中的离线数据处理方法,仅保留与离线数据平台的之间的数据传输接口,以降低与离线数据 平台的耦合度,提高数据处理的灵活度。

在具体实施时,可以通过离线数据平台的API(Application Programming Interface,应用程序编程接口)接口实现从离线数据平台对第二离线数据的读取。

优选地,该离线数据平台是ODPS(Open Data Processing Service,开放数据处理服务)平台。

ODPS是构建在飞天系统上的大规模分布式数据处理服务。ODPS支持用户提交类SQL查询语言,对海量数据进行离线处理。随着大数据应用的发展,基于离线的ODPS已经得到越来越多的使用。

采用本申请实施例中的离线数据处理方法,能够缩短从用户提交业务需求到获得对应的数据的时间,提升了用户体验。

另外,采用本申请实施例中的离线数据处理方法,从ODPS平台中筛选并提供给用户的数据均是ODPS平台中的最新数据,准确度较高。

基于同一发明构思,本申请实施例中还提供了一种离线数据处理装置,由于该装置解决问题的原理与本申请实施例一中的离线数据方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。

图3为根据本申请实施例二的离线数据处理装置的结构示意图。

根据本申请实施例二的离线数据处理装置300包括:配置模块302,用于根据用户提交的业务需求设置配置参数,配置参数包括一个或多个筛选条件;DSL解析模块304,用于将配置参数转换为领域模型语言DSL表达式;SQL解析模块306,用于将DSL表达式转换为结构化查询语言SQL语句;执行模块308,用于触发离线数据平台针对第一离线数据执行SQL语句,得到第二离线数据;数据提供模块310,用于将第二离线数据提供给用户。

采用本申请实施例中的离线数据处理装置,在接收到用户提交的业务需求后,根据该业务需求设置相应的配置参数,然后将配置参数通过DSL表达式 转换为SQL语句;使得离线数据平台能够执行SQL语句以得到第二离线数据;并将离线数据提供给用户使用,缩短了从用户提交业务需求到获得对应的数据的时间,提升了用户体验。

另外,采用本申请实施例中的离线数据处理装置,由于先将配置参数通过DSL表达式转换为SQL语句;然后再触发离线数据平台进行数据筛选以得到第二离线数据。也就是说,从数据平台中抽取的数据均是最新的数据,准确度较高。

优选地,该配置参数具有唯一的标识,该装置还包括:保存模块,用于保存配置参数、该配置参数的标识、以及作为该配置参数的筛选结果的第二离线数据之间的映射关系;数据提供模块,用于在将第二离线数据提供给用户的同时,将第二离线数据的标识提供给用户。

采用本申请实施例中的离线处理装置,为各配置参数设置唯一的标识,并保存配置参数、该配置参数的标识、以及作为该配置参数的筛选结果的第二离线数据之间的映射关系;并将第二离线数据提供给用户的同时,将第二离线数据的标识提供给用户,使得用户能够容易地区分获得的第二离线数据所对应的业务需求,提升了用户体验。

优选地,该离线数据处理装置200还包括:标识设置模块,用于为配置参数设置标识;判断模块,用于判断标识是否已存在;标识更新模块,用于在判断模块的判断结果为不存在时,创建标识,并保存标识与配置参数之间的映射关系;以及在判断模块的判断结果为已存在时,更新标识对应的配置参数。

优选地,SQL解析模块具体包括:AST转换子模块,用于将DSL表达式转化为抽象语法树AST;SQL生成子模块,用于按照离线数据平台的数据存储格式的SQL语法对AST进行变量动态替换,生成SQL语句。

优选地,执行模块具体包括:SQL语句发送子模块,用于将SQL语句发送至离线数据平台;触发子模块,用于触发离线数据平台执行SQL语句,得到第二离线数据;读取子模块,用于从离线数据平台读取第二离线数据。

在具体实施时,通常在离线数据平台之外提供本申请实施例中的离线数据处理装置,仅保留与离线数据平台的之间的数据传输接口,以降低与离线数据平台的耦合度,提高数据处理的灵活度。

优选地,该离线数据平台是ODPS平台。

图4为根据本申请实施例三所示的独立于ODPS的离线数据处理装置结构示意图。

采用本申请实施例中的离线数据处理装置,能够缩短从用户提交业务需求到获得对应的数据的时间,提升了用户体验。

另外,采用本申请实施例中的离线数据处理装置,从ODPS平台中筛选并提供给用户的数据均是ODPS平台中的最新数据,准确度较高。

为了描述的方便,以上所述装置的各部分以功能分为各种部件或单元分别描述。当然,在实施本申请时可以把各部件或单元的功能在同一个或多个软件或硬件中实现。

图5为根据本申请实施例四的离线数据处理方法的流程图。

如图5所示,根据申请实施例四的应用于ODPS平台的离线数据处理方法包括以下步骤:

S502,参数配置;由业务工程师根据需求,定义将用于对原始数据表的字段信息进行筛选描述的配置参数。可以根据不同需求对同一个原始数据表定义多个过滤和筛选条件。

S504,创建标识;在业务工程师配置好配置参数并设置好对应的标识之后,判断是否存在该标识,如果没有存在标识,将会生成一个唯一的标识;如果已经存在标识,那么将会更新该标识对应的配置参数。

S506,生成DSL表达式。

S508,生成ODPS可执行SQL;将DSL表达式翻译为ODPS平台可以的执行SQL语句。

S510,提交任务;将SQL语句提交到ODPS平台进行执行,并生成指定的目标数据;

S512,读取数据;任务执行结束之后,产生与标识相映射的目标离线数据,调用ODPS的下载接口,将结果数据同步到在线环境供用户使用。

采用本申请实施例中的离线数据处理方法,能够缩短从用户提交业务需求到获得对应的数据的时间,提升了用户体验。并且采用本申请实施例中的离线数据处理方法,从ODPS平台中筛选并提供给用户的数据均是ODPS平台中的最新数据,准确度较高。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使 得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。

显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1