CN111061803A - 任务处理方法、装置、设备及存储介质 - Google Patents
任务处理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN111061803A CN111061803A CN201911397435.3A CN201911397435A CN111061803A CN 111061803 A CN111061803 A CN 111061803A CN 201911397435 A CN201911397435 A CN 201911397435A CN 111061803 A CN111061803 A CN 111061803A
- Authority
- CN
- China
- Prior art keywords
- etl
- task
- etl task
- condition
- tasks
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/217—Database tuning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
- G06F16/2448—Query languages for particular applications; for extensibility, e.g. user defined types
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
- G06F16/353—Clustering; Classification into predefined classes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种任务处理方法、装置、设备及存储介质,属于数据库技术领域。本实施例提供了通过合并相似ETL任务以实现优化功能的方法,通过从平台上部署的ETL任务整体的冗余情况出发,考虑到各个ETL任务的SQL逻辑具有互相重复的部分,通过提取每个ETL任务在SQL逻辑方面的特征,依据每个ETL任务的SQL特征进行分类,从而将SQL逻辑相似的ETL任务归入同一个类中,因此实现了自动检测相似ETL任务的功能。通过将SQL逻辑相似的ETL任务进行合并,从而减少了ETL任务的总数量,那么由于待执行的任务数量更少,因此节省了执行ETL任务的耗时,降低了ETL任务整体的冗余度,实现ETL任务整体的加速处理,达到优化ETL任务的目的。
Description
技术领域
本申请涉及数据库技术领域,特别涉及一种任务处理方法、装置、设备及存储介质。
背景技术
抽取转换加载(Extract-Transform-Load,ETL)任务泛指将数据从数据源经过抽取(extract)和转换(transform)后加载(load)后至数据库的流程中的任务,是数据库的核心技术之一,也是商业智能项目的基础环节。随着数据库技术的不断发展,数据库的规模日趋庞大,各层级的ETL任务数量不断增加,面临这一时代背景,如何对ETL任务的处理过程进行优化,已经成为引起广泛关注的技术热点。
相关技术中,当在平台部署待处理的ETL任务后,平台会根据每个计算节点当前的负载情况,将所有ETL任务分别分配给对应的计算节点,调度每个计算节点分别处理对应的ETL任务,直至部署的每个ETL任务均被处理完成。
采用上述方法时,平台对ETL任务整体的执行耗时过长,导致ETL任务整体的处理效率低下。
发明内容
本申请实施例提供了一种任务处理方法、装置、设备及存储介质,能够解决相关技术中ETL任务整体的耗时较长、整体的处理效率低下的问题。所述技术方案如下:
一方面,提供了一种任务处理方法,所述方法包括:
获取待处理的至少一个抽取转换加载(Extract-Transform-Load,ETL)任务;提取每个ETL任务的结构化查询语言SQL特征;根据每个ETL任务的SQL特征,对所述至少一个ETL任务进行分类,得到至少一个类,每个类中不同ETL任务的SQL特征之间的相似度满足条件;对同一个类中的不同ETL任务进行合并,得到目标任务;对所述目标任务进行处理。
可选地,所述提取每个ETL任务的结构化查询语言(Structured Query Language,简称SQL)特征,包括:
识别每个ETL任务的脚本中的关键词,每个脚本包括对应ETL任务的SQL语句;
根据每个脚本的关键词,获取每个ETL任务的SQL特征。
可选地,所述识别每个ETL任务的脚本中的关键词,包括:
对于每个ETL任务的脚本包含的每个词汇,获取所述词汇在对应脚本的第一出现频率以及在脚本集合的第二出现频率,所述脚本集合包括所述至少一个ETL任务中每个ETL任务的脚本;根据所述词汇的第一出现频率以及第二出现频率,获取所述词汇对所述对应脚本的权重,所述权重与所述第一出现频率正相关且与所述第二出现频率负相关;根据每个脚本中每个词汇的权重,确定每个脚本的关键词,关键词的权重满足预设条件。
可选地,每个ETL任务的SQL特征包括特征向量,所述特征向量的每个维度表示对应ETL任务的脚本中的一个关键词,所述特征向量的每个维度的取值与对应关键词的权重相关。
可选地,所述提取每个ETL任务的结构化查询语言SQL特征之前,所述方法还包括:
识别每个ETL任务的脚本中的命令词,所述命令词用于指示对目标词汇标识的数据执行操作,所述目标词汇为所述命令词之后的词汇;
向所述命令词之后添加重复词汇,所述重复词汇与所述目标词汇相同。
可选地,所述同一个类中的不同ETL任务包括第一ETL任务和第二ETL任务,所述第一ETL任务表示查询第一表中第一字段的数据,所述第二ETL任务表示查询所述第一表中第二字段的数据,所述对同一个类中的不同ETL任务进行合并,得到目标ETL任务,包括:
根据所述第一字段的标识以及所述第二字段的标识,对所述第一ETL任务和所述第二ETL任务进行合并,得到所述目标ETL任务,所述目标ETL任务表示查询所述第一表中所述第一字段的数据以及所述第二字段的数据。
可选地,所述同一个类中的不同ETL任务包括第三ETL任务和第四ETL任务,所述第三ETL任务用于指示查询第二表中取值满足第一条件的数据,所述第四ETL任务表示查询所述第二表中取值满足第二条件的数据,所述对同一个类中的不同ETL任务进行合并,得到目标ETL任务,包括:
根据所述第一条件以及所述第二条件,对所述第三ETL任务和所述第四ETL任务进行合并,得到所述目标ETL任务,所述目标ETL任务表示查询所述第二表中取值满足所述第一条件或满足所述第二条件的数据。
可选地,所述同一个类中的不同ETL任务包括第五ETL任务和第六ETL任务,所述第五ETL任务用于指示通过第三条件对第三表和第四表进行连接查询,所述第六ETL任务用于指示通过所述第三条件对所述第三表和所述第四表进行连接查询,所述对同一个类中的不同ETL任务进行合并,得到目标ETL任务,包括:
根据所述第三条件,对所述第五ETL任务和所述第六ETL任务进行合并,得到所述目标ETL任务,所述目标ETL任务表示通过所述第三条件对所述第三表和所述第四表进行连接查询。
可选地,所述同一个类中的不同ETL任务包括第七ETL任务和第八ETL任务,所述第七ETL任务用于指示通过第四条件对第七表和第八表进行连接查询,所述第八ETL任务用于指示通过第五条件对所述第七表和第九表进行连接查询,所述对同一个类中的不同ETL任务进行合并,得到目标ETL任务,包括:
根据所述第四条件和所述第五条件,对所述第七ETL任务和所述第八ETL任务进行合并,得到所述目标ETL任务,所述目标ETL任务表示通过第六条件对所述第七表与所述第八表以及所述第九表分别进行连接查询,所述第六条件为所述第四条件和所述第五条件的并集。
另一方面,提供了一种任务处理装置,所述装置包括:
获取模块,用于获取待处理的至少一个抽取转换加载ETL任务;
提取模块,用于提取每个ETL任务的结构化查询语言SQL特征;
分类模块,用于根据每个ETL任务的SQL特征,对所述至少一个ETL任务进行分类,得到至少一个类,每个类中不同ETL任务的SQL特征之间的相似度满足条件;
合并模块,用于对同一个类中的不同ETL任务进行合并,得到目标任务;
处理模块,用于对所述目标任务进行处理。
可选地,所述提取模块,用于识别每个ETL任务的脚本中的关键词,每个脚本包括对应ETL任务的SQL语句;根据每个脚本的关键词,获取每个ETL任务的SQL特征。
可选地,所述提取模块,用于对于每个ETL任务的脚本包含的每个词汇,获取所述词汇在对应脚本的第一出现频率以及在脚本集合的第二出现频率,所述脚本集合包括所述至少一个ETL任务中每个ETL任务的脚本;根据所述词汇的第一出现频率以及第二出现频率,获取所述词汇对所述对应脚本的权重,所述权重与所述第一出现频率正相关且与所述第二出现频率负相关;根据每个脚本中每个词汇的权重,确定每个脚本的关键词,关键词的权重满足预设条件。
可选地,每个ETL任务的SQL特征包括特征向量,所述特征向量的每个维度表示对应ETL任务的脚本中的一个关键词,所述特征向量的每个维度的取值与对应关键词的权重相关。
可选地,所述装置还包括:
识别模块,用于识别每个ETL任务的脚本中的命令词,所述命令词用于指示对目标词汇标识的数据执行操作,所述目标词汇为所述命令词之后的词汇;
添加模块,用于向所述命令词之后添加重复词汇,所述重复词汇与所述目标词汇相同。
可选地,所述同一个类中的不同ETL任务包括第一ETL任务和第二ETL任务,所述第一ETL任务表示查询第一表中第一字段的数据,所述第二ETL任务表示查询所述第一表中第二字段的数据,所述合并模块,用于根据所述第一字段的标识以及所述第二字段的标识,对所述第一ETL任务和所述第二ETL任务进行合并,得到所述目标ETL任务,所述目标ETL任务表示查询所述第一表中所述第一字段的数据以及所述第二字段的数据。
可选地,所述同一个类中的不同ETL任务包括第三ETL任务和第四ETL任务,所述第三ETL任务用于指示查询第二表中取值满足第一条件的数据,所述第四ETL任务表示查询所述第二表中取值满足第二条件的数据,所述合并模块,用于根据所述第一条件以及所述第二条件,对所述第三ETL任务和所述第四ETL任务进行合并,得到所述目标ETL任务,所述目标ETL任务表示查询所述第二表中取值满足所述第一条件或满足所述第二条件的数据。
可选地,所述同一个类中的不同ETL任务包括第五ETL任务和第六ETL任务,所述第五ETL任务用于指示通过第三条件对第三表和第四表进行连接查询,所述第六ETL任务用于指示通过所述第三条件对所述第三表和所述第四表进行连接查询,所述合并模块,用于根据所述第三条件,对所述第五ETL任务和所述第六ETL任务进行合并,得到所述目标ETL任务,所述目标ETL任务表示通过所述第三条件对所述第三表和所述第四表进行连接查询。
可选地,所述同一个类中的不同ETL任务包括第七ETL任务和第八ETL任务,所述第七ETL任务用于指示通过第四条件对第七表和第八表进行连接查询,所述第八ETL任务用于指示通过第五条件对所述第七表和第九表进行连接查询,所述合并模块,用于根据所述第四条件和所述第五条件,对所述第七ETL任务和所述第八ETL任务进行合并,得到所述目标ETL任务,所述目标ETL任务表示通过第六条件对所述第七表与所述第八表以及所述第九表分别进行连接查询,所述第六条件为所述第四条件和所述第五条件的并集。
另一方面,提供了一种电子设备,所述电子设备包括一个或多个处理器和一个或多个存储器,所述一个或多个存储器中存储有至少一条指令,所述至少一条指令由所述一个或多个处理器加载并执行以实现上述任务处理方法所执行的操作。
另一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现上述任务处理方法所执行的操作。
本申请实施例提供的技术方案带来的有益效果至少包括:
本实施例提供了通过合并相似ETL任务以实现优化功能的装置,通过扩大了ETL任务优化的范围,从平台上部署的ETL任务整体的冗余情况出发,考虑到各个ETL任务的SQL逻辑具有互相重复的部分,通过提取每个ETL任务在SQL逻辑方面的特征,依据每个ETL任务的SQL特征进行分类,从而将SQL逻辑相似的ETL任务归入同一个类中,因此实现了自动检测相似ETL任务的功能。并且,通过将SQL逻辑相似的ETL任务进行合并,从而减少了ETL任务的总数量,由于待执行的任务的总量更少,因此节省了平台对ETL任务整体的执行耗时,并节约了数据仓库的维护成本。并且,由于降低了ETL任务整体的冗余度,优化了数据仓库的结构,提高ETL任务整体的处理效率,达到优化ETL任务的目的。尤其是,能够在执行各个ETL任务时,避免对逻辑相似的ETL任务重复进行解析的次数,例如在map(映射)阶段和reduce(归约)阶段,可以减少重复解析的映射归约(Map Reduce)任务数量,从而减少任务的执行时间以及执行任务所需的计算资源。基于该方法,可以节省平台处理所有任务带来的计算开销和时间成本,提高了ETL任务整体的执行效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种任务处理方法的实施环境的示意图;
图2是本申请实施例提供的一种任务处理方法的流程图;
图3是本申请实施例提供的一种合并ETL任务的示意图;
图4是本申请实施例提供的一种合并ETL任务的示意图;
图5是本申请实施例提供的一种合并ETL任务的示意图;
图6是本申请实施例提供的一种合并ETL任务的示意图;
图7是本申请实施例提供的一种任务处理方法的流程图;
图8是本申请实施例提供的一种任务处理装置的结构示意图;
图9是本申请实施例提供的一种终端的结构示意图;
图10是本申请实施例提供的一种服务器的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本申请中的字符“/”,一般表示前后关联对象是一种“或”的关系。
本申请中术语“多个”的含义是指两个或两个以上,例如,多个数据包是指两个或两个以上的数据包。
本申请中术语“第一”“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”、“第n”之间不具有逻辑或时序上的依赖关系,也不对数量和执行顺序进行限定。
图1是本申请实施例提供的一种任务处理方法的实施环境的示意图。该实施环境包括:终端101和任务处理平台102。终端101通过无线网络或有线网络与任务处理平台102相连。
终端101可以是智能手机、游戏主机、台式计算机、平板电脑、电子书阅读器、MP3(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)播放器或MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器和膝上型便携计算机中的至少一种。终端101可以检测对数据的查询操作,向任务处理平台102发送数据查询请求,从而查询任务处理平台102存储的数据。或者,终端101可以检测对数据的存储操作,向任务处理平台102发送数据存储请求,从而将数据存储至任务处理平台102。
任务处理平台102包括一台服务器、多台服务器、云计算平台和虚拟化中心中的至少一种。任务处理平台102包括:服务器1021和数据库1022。
服务器1021用于根据待查询的数据,执行ETL任务,读取数据库1022存储的数据,返回给终端101。或者,服务器1021用于接收终端待存储的数据,根据待存储的数据,执行ETL任务,将数据写入数据库1022,从而通过数据库1022对数据进行持久化存储。
服务器1021可以是一台或多台。当服务器1021是多台时,存在至少两台服务器1021用于提供不同的服务,和/或,存在至少两台服务器1021用于提供相同的服务,比如以负载均衡方式提供同一种服务,本申请实施例对此不加以限定。
本领域技术人员可以知晓,上述终端101、服务器1021、数据库1022的数量可以更多或更少。比如上述终端101、服务器1021、数据库1022可以仅为一个,或者上述终端101、服务器1021、数据库1022为几十个或几百个,或者更多数量,此时上述任务处理系统还包括其他终端、其他服务器或其他数据库。本申请实施例对终端、服务器或数据库的数量和设备类型不加以限定。
图2是本申请实施例提供的一种任务处理方法的流程图。该实施例的执行主体为电子设备,参见图2,该方法包括:
201、电子设备获取待处理的至少一个ETL任务。
该至少一个ETL任务可以是平台上部署的所有ETL任务。每个ETL任务可以通过运行对应脚本以得到执行。脚本是一种可执行文件,脚本用于存储以文本的形式表示的指令。在运行脚本的过程中,脚本中的文本会被翻译为机器可识别的指令,每条指令会按照顺序依次执行,从而控制计算机进行一系列的运算操作。对于数据库领域的ETL任务而言,ETL任务的脚本可以包括ETL任务的一个或多个结构化查询语言(Structured Query Language,简称SQL)语句,通过运行脚本,计算机可以执行脚本包含的SQL语句,从而对数据库执行读操作或写操作。示例性地,参见图3至图6,ETL任务的脚本包含的内容可以如图3至图6中的方框所示,包含一条或多条SQL语句。
本实施例中,可以从ETL任务的脚本中,挖掘出ETL任务在SQL逻辑方面的特征,依据不同ETL任务的SQL逻辑的相似性,对逻辑相似的ETL任务进行合并。其中,在识别相似ETL任务之前,可以执行以下步骤一至步骤二。
步骤一、对ETL任务的脚本进行清洗。
清洗也称数据清洗(Data cleaning),是指将多余的词汇删除,从而对脚本中的SQL语句进行简化的技术过程。具体而言,不同编程人员具有不同的开发习惯,编写的SQL语句会具有不同的风格,比如对SQL语句具有不同的注释习惯。虽然具有注释或标号的SQL语句在语法上也可以执行,但是注释或者标号里出现的词汇会对相似任务的识别带来噪声,因此,可以执行脚本清洗的过程,从而去除不必要的字符、注释、标号等,保留SQL语句的必选部分,从而避免噪声对后续提取特征的干扰,保证挖掘的特征的准确性。
步骤二、任务脚本预处理
步骤二可以包括以下步骤2.1至步骤2.2:
步骤2.1、识别每个ETL任务的脚本中的命令词。
命令词用于指示对目标词汇标识的数据执行操作。例如,命令词可以是select(选择)、from、where、join(连接)、on、group by(分组)等。目标词汇为命令词之后的词汇,可以为表标识或字段标识,例如可以是表名或字段名。
select用于标识SQL语言中的SELECT语句,SELECT语句用于从表中选取数据,将选取的数据存储在一个表中。SQL的SELECT语法可以是SELECT+列名称+FROM+表名称,也可以是SELECT*FROM+表名称等。其中,在实际的SQL语句中,这里的“+”可以替换为空格。
where用于标识SQL语言中的where子句。where子句用于规定选择的标准。通过将where子句添加到SELECT语句,能够有条件地从表中选取数据。where子句的语法可以是SELECT+列名称+FROM+表名称+WHERE+列+运算符+值。
join用于标识SQL语言中的join语句。join语句用于进行连接查询,以便从多个表中查询数据。具体地,数据库中的不同表可通过同一个键彼此联系起来,通过执行包含该键的join语句,能够从两个或两个以上的表中获取结果。join语句可以包括多种,例如leftjoin(左外连接)、right join(右外连接)、full join(全外连接)等。这几种连接查询的区别在于,left join表示即使右表中没有匹配,也从左表返回所有的行;right join表示即使左表中没有匹配,也从右表返回所有的行。full join表示只要其中一个表中存在匹配,就返回行。
group by用于标识SQL语言中的group by语句。group by语句用于进行分组查询,group by语句可以和SQL函数(比如SQL AVG函数、SQL COUNT函数)结合起来,实现分组聚合查询。
步骤2.2、向命令词之后添加重复词汇。
重复词汇是指与命令词之后的词汇重复的词汇,重复词汇与目标词汇相同。添加的重复词汇的数量可以是一个或多个。其中,命令词可以具有一种或多种,不同命令词对应的重复词汇的数量可以不同或相同。例如,可以建立命令词与重复词汇数量之间的映射关系,根据该映射关系,向每个命令词之后添加对应数量的重复词汇。示例性地,命令词与重复词汇的数量之间的映射关系可以如下表1所示:
表1
示例性地,一个ETL任务的脚本在添加重复词汇之前可以如下所示:
SELECT col1,max(col2),max(col3)
FROM table1
LEFT JOIN table2 ON table1.col1=table2.col4
WHERE col5 is not null
GROUP BY col1;
从上述脚本可以看出,该脚本包含了命令词:select、from、where、join、on、groupby等,基于该脚本以及上表1,添加重复词汇后可以如下所示:
SELECT col1,max(col2),max(col3)
FROM table1 table1 table1 table1 table1 table1 table1 table1
LEFT JOIN table2 table2 ON table1.col1 table1.col1=table2.col4table2.col4
WHERE col5 col5 is not null
GROUP BY col1 col1 col1 col1;
从上例可以看出,FROM之后的table1被重复了8次,JOIN之后的table2被重复了2次,WHERE之后的col5被重复了2次,GROUP BY之后的col1被重复了4次。
通过添加重复词汇,达到的效果至少可以包括:对于ETL任务来说,通常脚本中from、join等词汇之后的词汇的权重要高于其他词汇,因为这种词汇标识着ETL任务要进行读写操作的表或字段,能够将不同的ETL任务区别开。而通过对from、join等词汇之后额外添加重复字符串,会增加表标识或字段标识在脚本中所占的比例,从而提高ETL任务的识别度,因此有助于提高识别相似任务的准确性。
202、电子设备提取每个ETL任务的SQL特征。
SQL特征是指ETL任务在SQL逻辑方面的特征。SQL特征的数据形式可以有多种,例如,ETL任务的SQL特征可以是一维的特征向量。当然,SQL特征也可以是二维的特征图或三维的特征立方体,本实施例对此不做限定。
提取SQL特征可以有多种实现方式。以下,通过步骤一对步骤二,对提取SQL特征的具体过程进行示例性说明:
步骤一、识别每个ETL任务的脚本中的关键词。
脚本的关键词是指对该脚本重要度高的词汇,脚本的关键词可以帮助将该脚本与其他脚本区别开来,脚本的关键词可以是表名或字段名。例如,如果脚本的内容如下所示,该脚本的关键词可以包括table1、table2、col1、col2、col3、col4、col5等。
SELECT col1,max(col2),max(col3)
FROM table1 table1 table1 table1 table1 table1 table1 table1
LEFT JOIN table2 table2 ON table1.col1 table1.col1=table2.col4table2.col4
WHERE col5 col5 is not null
GROUP BY col1 col1 col1 col1;
其中,上述脚本的含义是Table1通过字段col1左连接Table2,限制条件为col5不为null,再通过col1聚合,得到通过col1汇总后的col2、col3的最大值。
识别关键词的方法可以包括多种。在一些实施例中,可以基于词频-逆文本频率指数(term frequency–inverse document frequency,TF/IDF)方法,利用词汇在某个ETL任务的脚本中出现的频率以及在所有ETL的脚本中出现的频率,衡量该词汇对该ETL任务的重要程度,从而找到ETL任务的脚本中的关键词。
以下,通过步骤1.1至步骤1.3,对基于TF/IDF方法识别关键词的流程进行示例性描述:
步骤1.1、对于每个ETL任务的脚本包含的每个词汇,获取词汇在对应脚本的第一出现频率以及在脚本集合的第二出现频率。
第一出现频率是指词汇在对应脚本中出现的频率,第二出现频率是指词汇在脚本集合中出现的频率,脚本集合包括至少一个ETL任务中每个ETL任务的脚本。示例性地,如果平台上共部署了ETL任务1、ETL任务2至ETL任务n,分别对应于脚本1、脚本2至脚本n,则对于脚本i中的任一个词汇而言,第一出现频率为词汇在脚本i中出现的频率,第二出现频率为词汇在脚本1、脚本2至脚本n这一集合中出现的频率。i表示脚本的标识,i的取值可以为大于或等于1,且小于或等于n,n的取值可以是正整数。
步骤1.2、根据词汇的第一出现频率以及第二出现频率,获取词汇对对应脚本的权重。
词汇的权重也称词汇对脚本的贡献度,权重与第一出现频率正相关,权重与第二出现频率负相关。例如,对于脚本i中的词汇i而言,可以获取词汇i的第一出现频率与词汇i的第二出现频率之间的比值,作为词汇i对脚本i的权重。
例如,如果一个脚本包含n个词汇,分别是词汇T1、词汇T2至词汇Tn,每个词汇出现了N1、N2、...、Nn次。词汇在任务集集合对应的脚本集合中出现的频率分别为D1、D2、...、Dn,每个脚本的信息量可以通过以下公式一计算:
其中,X表示ETL任务的脚本,H(X)表示脚本的信息量大小,H(X)也可以称为信息熵。Pi表示词汇i出现的概率,Pi的取值范围在0至1之间。为求和符号,i为词汇的标识,i大于或等于1且i小于或等于n。log表示取对数。
脚本中词汇Ti的权重可以通过以下公式二计算:
其中,Ni表示词汇在脚本i中出现的次数,K表示脚本i中所有词汇出现的总次数,K=N1+N2+...+Nn,Ni/K表示第一出现频率,D表示第二出现频率,Ni和K为正整数,D为整数。
步骤1.3、根据每个脚本中每个词汇的权重,确定每个脚本的关键词。
关键词的权重满足预设条件。例如,关键词的权重可以大于阈值,步骤1.3可以包括:对每个脚本中每个词汇的权重与阈值进行比较,若词汇的权重大于阈值,则确定该词汇为该脚本的关键词。通过这种方式,可以通过设定阈值,利用每个词对每个任务脚本的权重,选择出有价值的关键词。
步骤二、根据每个脚本的关键词,获取每个ETL任务的SQL特征。
其中,如果SQL特征的数据形式为特征向量,特征向量的每个维度可以表示对应ETL任务的脚本中的一个关键词、特征向量的每个维度的取值与对应关键词的权重相关。例如,特征向量的每个维度的取值可以就是对应关键词的权重,也可以将每个关键词的权重按照设定的规则进行换算,将换算出的取值作为每个维度的取值。
例如,如果脚本如以下所示:
SELECT col1,max(col2),max(col3)
FROM table1 table1 table1 table1 table1 table1 table1 table1
LEFT JOIN table2 table2 ON table1.col1 table1.col1=table2.col4table2.col4
WHERE col5 col5 is not null
GROUP BY col1 col1 col1 col1;
该脚本的每个关键词可以是table1、table2、col1、col2、col3、col4、col5,参见下表2,table1的权重为3.57192,table2的权重为1.51019,col1的权重为2.68561,col2的权重为0.39192,col3的权重为0.4925,col4的权重为0.84374,col5的权重为1.02326。通过将这几个关键词的权重映射为特征向量的一个维度,可以得到该脚本的特征向量为:(table1、table2、col1、col2、col3、col4、col5)=(3.57192、1.51019、2.68561、0.39192、0.4925、0.84374、1.02326)。
表2
其中,表2中的全集出现频率为科学计数法格式的数值,例如,1.24971E-03为1.24971*10^(-3)。
通过将ETL任务转换为特征向量,达到的效果至少可以包括:由于不同ETL任务在SQL逻辑方面的相似程度难以直接衡量,但是不同向量之间的相似性可以通过向量空间中的距离准确而有效地表示出来。那么,通过将ETL任务的脚本进行向量化,建立每个任务脚本的向量特征模型,可以将SQL逻辑的相似性度量问题转换为向量的相似性度量问题,那么通过计算不同向量之间的相似度,即可确定不同ETL任务SQL逻辑之间的相似度,保证得出的相似度准确性高,并且计算方式简单。
203、电子设备根据每个ETL任务的SQL特征,对至少一个ETL任务进行分类,得到至少一个类。
可以将任务集中SQL特征相似的不同ETL任务划分至同一个类,得到一个或多个类,每个类中不同ETL任务的SQL特征之间的相似度满足条件。具体而言,若两个ETL任务的SQL逻辑越相似,具有的重复部分越多,则这两个ETL任务的SQL特征之间的距离会越小,相似度会越高,这两个ETL任务被划分至同一个类中的概率越高。
基于SQL特征进行分类的过程可以包括多种实现方式。在一些实施例中,可以根据每个ETL任务的SQL特征,对至少一个ETL任务进行聚类。示例性地,可以采用C均值方法,将一个数据域定义为一类主题表的集合,通过以下步骤进行聚类。
步骤一、划分出C个初始的类。
其中,C为正整数,C可以根据数据域的个数确定。
步骤二、通过上文描述的任务脚本的向量化方法,构建每个任务的特征向量mi。
步骤三、通过以下公式三,计算类中各个向量的均值:
步骤四、通过以下公式四,计算每个类中向量与均值的误差平方,再进行求和:
其中,J表示和值,yj表示类中的向量。
步骤五、任取一个属于i聚类的样本y,通过以下公式五和公式六计算:
步骤六、选择pj中的最小值pk,若pk<pi,则将y从类i移到类k中。其中,pk和pi为聚类过程中的中间结果。
步骤七、重新执行步骤三和步骤四。
步骤八、在迭代过程中,计算J的变化量,对J的变化量与阈值进行比较,若连续N次迭代后,J的变化量小于阈值,则停止聚类,输出聚类结果;若J的变化量大于或等于阈值,跳转至步骤五继续执行。
204、电子设备对同一个类中的不同ETL任务进行合并,得到目标任务。
目标任务是指合并后的ETL任务。例如参见图3至图6,目标任务可以是图3至图6中右侧方框中所示的任务。目标任务的总数量小于原始的ETL任务的总数量,并且,目标任务包含了原始的ETL任务指示的操作。通过将SQL逻辑相似的ETL任务进行合并,一方面,由于目标任务中保留了原始ETL任务的必要信息,通过执行目标任务,可以执行原始ETL任务对应的每个操作,另一方面,由于对互相重复的SQL逻辑进行合并,降低了原始ETL任务整体的冗余度,简化了ETL任务的脚本。
以下,示例性描述四种可合并的任务模式,若不同ETL任务满足这四种任务模式中的任一种,即可自动将其合并为新的ETL任务。
任务模式一、同一个类中的不同ETL任务包括第一ETL任务和第二ETL任务。其中,第一ETL任务和第二ETL任务可以为查询同一个表中不同字段或相同字段的任务。
第一ETL任务表示查询第一表中第一字段的数据。比如说,参见图3,图3中的脚本1包含“form a”,a为数据库中表的标识,form a表示从表a,图3中脚本1的含义为获取col1字段和col2字段。第二ETL任务表示查询第一表中第二字段的数据。比如说,参见图3,脚本2包含“form a”,a为表的标识,form a表示从表a,图3中脚本2的含义为从表a获取col1、col3和col4字段。
在任务模式一下,在合并不同ETL任务的过程中,可以根据第一字段的标识以及第二字段的标识,对第一ETL任务和第二ETL任务进行合并,得到目标ETL任务。目标ETL任务表示查询第一表中第一字段的数据以及第二字段的数据。例如,参见图3,可以根据col1、col2、col3和col4,对脚本1和脚本2合并,合并后变为一个任务:从表a获取col1、col2、col3和col4字段。
需要说明的一点是,任务模式一提供的方法也适用于select a.col1、a.col2from a(left join...)这种模式。
任务模式二、同一个类中的不同ETL任务包括第三ETL任务和第四ETL任务。第三ETL任务和第四ETL任务为按照不同条件或相同条件查询同一个表的任务。
其中,第三ETL任务用于指示查询第二表中取值满足第一条件的数据。例如,参见图4,脚本1表示从表a获取col1字段,限制条件为条件1。第四ETL任务表示查询第二表中取值满足第二条件的数据。例如,参见图4,脚本2表示从表a获取col2字段,限制条件为条件2。
在合并不同ETL任务的过程中,可以根据第一条件以及第二条件,对第三ETL任务和第四ETL任务进行合并,得到目标ETL任务,目标ETL任务表示查询第二表中取值满足第一条件或满足第二条件的数据。例如,参见图4,可以根据条件1和条件2,对脚本1和脚本2合并,合并后变为一个任务:从表a获取col1字段和col2字段。
在一些实施例中,在合并任务的过程中,可以重新加工字段逻辑,将不满足条件的取值置为空值(null)。通过该方式,合并后产生的数据量会增加,但是多增加的无效行的取值为null,后续可以通过对null值进行处理,比如进行过滤,从而达到相同的数据结果,因此同样可以简化脚本。
任务模式三、同一个类中的不同ETL任务包括第五ETL任务和第六ETL任务。第五ETL任务和第六ETL任务为按照同一个条件对多个表进行连接查询。
其中,第五ETL任务用于指示通过第三条件对第三表和第四表进行连接查询。例如,参见图5,图5中的脚本1包含from a和join b,a和b均为数据库中表的标识,from a表示从表a,join b表示连接表b,图5中脚本1的含义为从表a通过条件1联接表b,通过col1聚合,得到经过f(a,b)变换后的数据集。其中,f(a,b)为函数,表a和表b为f(a,b)的输入参数。第六ETL任务用于指示通过第三条件对第三表和第四表进行连接查询。例如,参见图5,脚本2为从表a通过条件1联接表b,通过col1聚合,得到经过g(a,b)变换后的数据集。其中,g(a,b)为函数,表a和表b为g(a,b)的输入参数。
在任务模式三下,在合并不同ETL任务的过程中,可以根据第三条件,对第五ETL任务和第六ETL任务进行合并,得到目标ETL任务。目标ETL任务表示通过第三条件对第三表和第四表进行连接查询。例如,参见图5,可以根据条件1对脚本1和脚本2合并,合并后变为一个任务,该任务为将表a通过条件1联接表b,通过col1聚合,得到经过f(a,b)、g(a,b)变换后取交集的数据集。
其中,任务模式三可以适于生成一张包含所有所属粒度指标的大宽表。
任务模式四、同一个类中的不同ETL任务包括第七ETL任务和第八ETL任务。第七ETL任务和第八ETL任务为按照不同条件对多个表进行连接查询。
其中,第七ETL任务用于指示通过第四条件对第七表和第八表进行连接查询。例如,参见图6,脚本1表示从表a通过条件1联接表b,限制条件为条件2,通过col1聚合,得到经过f(a,b)变换后的数据集。其中,a和b均为数据库中表的标识,图6中的“from a”的含义是从表a,f(a,b)为函数,f(a,b)的输入参数包括表a和表b。
第八ETL任务用于指示通过第五条件对第七表和第九表进行连接查询。例如,参见图6,脚本2表示从表a通过条件3联接表c,限制条件为条件4,通过col1聚合,得到经过g(a,c)变换后的数据集。g(a,c)为函数,g(a,c)的输入参数包括表a和表c。c为数据库中表的标识。
在合并不同ETL任务的过程中,可以根据第四条件和第五条件,对第七ETL任务和第八ETL任务进行合并,得到目标ETL任务。例如,参见图6,合并后变为一个任务:表a通过条件1联接表b,通过col1聚合,得到经过f(a,b),g(a,b)变换后取交集的数据集。
其中,任务模式四可以涵盖大部分的SQL逻辑,合并后产生的数据量会增加,但是多出行计算出的指标值会是0。可以在0值对指标不影响的情况下,采取这种合并模式。
应理解,上述任务模式一至任务模式四可以采用任意方式结合。例如,可以仅按照这四种任务模式中的一种任务模式,进行相似任务的合并,或者,按照这四种任务模式中的两种或两种以上的任务模式,进行相似任务的合并。其中,如果使用任务模式一至任务模式四中的多种任务模式,对使用不同任务模式进行合并的时序不做限定。
应理解,上述任务模式一至任务模式四仅是示例性说明,并不代表是合并相似ETL任务功能的必选方式。在另一些实施例中,也可以采用其他任务模式来实现合并相似ETL任务的功能,而这些其他任务模式作为合并相似ETL任务的一种具体情况,也应涵盖在本申请实施例的保护范围之内。
205、电子设备对目标任务进行处理。
综上所述,在一些实施例中,参见图7,可以通过执行以下方法流程,来对相似ETL任务进行合并优化:
步骤1、对任务脚本进行清洗。
步骤2、对任务脚本进行预处理。
步骤3、对任务脚本进行向量化。
步骤4、对相似的任务脚本进行聚类。
步骤5、对相似的任务脚本进行合并。
相关技术中,通常仅考虑了单个ETL任务的处理如何优化,采用分而治之的方法优化每个ETL任务,通过设计每个ETL任务的执行单元负载均衡,来提高ETL任务的执行效率,而忽视了平台整体ETL任务的冗余情况。而由于很多ETL任务的SQL逻辑其实有相互重复的部分,那么重复的SQL逻辑会导致操作的重复执行,无疑造成计算资源的浪费。尤其是,在平台上部署的任务量较大时,由于整体的计算资源有限,会使得很多任务无法得到及时处理,导致作业并发期pending(等待状态)的任务数量太多,任务处理完成的耗时过长。
本实施例提供了通过合并相似ETL任务以实现优化功能的方法,通过扩大了ETL任务优化的范围,从平台上部署的ETL任务整体的冗余情况出发,考虑到各个ETL任务的SQL逻辑具有互相重复的部分,通过提取每个ETL任务在SQL逻辑方面的特征,依据每个ETL任务的SQL特征进行分类,从而将SQL逻辑相似的ETL任务归入同一个类中,因此实现了自动检测相似ETL任务的功能。并且,通过将SQL逻辑相似的ETL任务进行合并,从而减少了ETL任务的总数量,由于待执行的任务的总量更少,因此节省了平台对ETL任务整体的执行耗时,并节约了数据仓库的维护成本。并且,由于降低了ETL任务整体的冗余度,优化了数据仓库的结构,提高ETL任务整体的处理效率,达到优化ETL任务的目的。尤其是,能够在执行各个ETL任务时,避免对逻辑相似的ETL任务重复进行解析的次数,例如在map(映射)阶段和reduce(归约)阶段,可以减少重复解析的映射归约(Map Reduce)任务数量,从而减少任务的执行时间以及执行任务所需的计算资源。基于该方法,可以节省平台处理所有任务带来的计算开销和时间成本,提高了ETL任务整体的执行效率。
图8是本申请实施例提供的一种任务处理装置的结构示意图。参见图8,该装置包括:
获取模块801,用于获取待处理的至少一个ETL任务;
提取模块802,用于提取每个ETL任务的SQL特征;
分类模块803,用于根据每个ETL任务的SQL特征,对至少一个ETL任务进行分类,得到至少一个类,每个类中不同ETL任务的SQL特征之间的相似度满足条件;
合并模块804,用于对同一个类中的不同ETL任务进行合并,得到目标任务;
处理模块805,用于对目标任务进行处理。
本实施例提供了通过合并相似ETL任务以实现优化功能的装置,通过扩大了ETL任务优化的范围,从平台上部署的ETL任务整体的冗余情况出发,考虑到各个ETL任务的SQL逻辑具有互相重复的部分,通过提取每个ETL任务在SQL逻辑方面的特征,依据每个ETL任务的SQL特征进行分类,从而将SQL逻辑相似的ETL任务归入同一个类中,因此实现了自动检测相似ETL任务的功能。并且,通过将SQL逻辑相似的ETL任务进行合并,从而减少了ETL任务的总数量,由于待执行的任务的总量更少,因此节省了平台对ETL任务整体的执行耗时,并节约了数据仓库的维护成本。并且,由于降低了ETL任务整体的冗余度,优化了数据仓库的结构,提高ETL任务整体的处理效率,达到优化ETL任务的目的。尤其是,能够在执行各个ETL任务时,避免对逻辑相似的ETL任务重复进行解析的次数,例如在map阶段和reduce阶段,可以减少重复解析的Map Reduce任务数量,从而减少任务的执行时间以及执行任务所需的计算资源。基于该方法,可以节省平台处理所有任务带来的计算开销和时间成本,提高了ETL任务整体的执行效率。
可选地,提取模块802,用于识别每个ETL任务的脚本中的关键词,每个脚本包括对应ETL任务的SQL语句;根据每个脚本的关键词,获取每个ETL任务的SQL特征。
可选地,提取模块802,用于对于每个ETL任务的脚本包含的每个词汇,获取词汇在对应脚本的第一出现频率以及在脚本集合的第二出现频率,脚本集合包括至少一个ETL任务中每个ETL任务的脚本;根据词汇的第一出现频率以及第二出现频率,获取词汇对对应脚本的权重,权重与第一出现频率正相关且与第二出现频率负相关;根据每个脚本中每个词汇的权重,确定每个脚本的关键词,关键词的权重满足预设条件。
可选地,每个ETL任务的SQL特征包括特征向量,特征向量的每个维度表示对应ETL任务的脚本中的一个关键词,特征向量的每个维度的取值与对应关键词的权重相关。
可选地,装置还包括:
识别模块,用于识别每个ETL任务的脚本中的命令词,命令词用于指示对目标词汇标识的数据执行操作,目标词汇为命令词之后的词汇;
添加模块,用于向命令词之后添加重复词汇,重复词汇与目标词汇相同。
可选地,同一个类中的不同ETL任务包括第一ETL任务和第二ETL任务,第一ETL任务表示查询第一表中第一字段的数据,第二ETL任务表示查询第一表中第二字段的数据,合并模块804,用于根据第一字段的标识以及第二字段的标识,对第一ETL任务和第二ETL任务进行合并,得到目标ETL任务,目标ETL任务表示查询第一表中第一字段的数据以及第二字段的数据。
可选地,同一个类中的不同ETL任务包括第三ETL任务和第四ETL任务,第三ETL任务用于指示查询第二表中取值满足第一条件的数据,第四ETL任务表示查询第二表中取值满足第二条件的数据,合并模块804,用于根据第一条件以及第二条件,对第三ETL任务和第四ETL任务进行合并,得到目标ETL任务,目标ETL任务表示查询第二表中取值满足第一条件或满足第二条件的数据。
可选地,同一个类中的不同ETL任务包括第五ETL任务和第六ETL任务,第五ETL任务用于指示通过第三条件对第三表和第四表进行连接查询,第六ETL任务用于指示通过第三条件对第三表和第四表进行连接查询,合并模块804,用于根据第三条件,对第五ETL任务和第六ETL任务进行合并,得到目标ETL任务,目标ETL任务表示通过第三条件对第三表和第四表进行连接查询。
可选地,同一个类中的不同ETL任务包括第七ETL任务和第八ETL任务,第七ETL任务用于指示通过第四条件对第七表和第八表进行连接查询,第八ETL任务用于指示通过第五条件对第七表和第九表进行连接查询,合并模块804,用于根据第四条件和第五条件,对第七ETL任务和第八ETL任务进行合并,得到目标ETL任务,目标ETL任务表示通过第六条件对第七表与第八表以及第九表分别进行连接查询,第六条件为第四条件和第五条件的并集。
上述所有可选技术方案,可以采用任意结合形成本申请的可选实施例,在此不再一一赘述。
需要说明的是:上述实施例提供的任务处理装置在处理任务时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将任务处理装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的任务处理装置与任务处理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
上述方法实施例中的电子设备可以实现为终端,例如,图9示出了本申请一个示例性实施例提供的终端900的结构框图。该终端900可以是:智能手机、平板电脑、MP3(MovingPicture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)播放器、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端900还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,终端900包括有:一个或多个处理器901和一个或多个存储器902。
处理器901可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器901可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器901也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器901可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器901还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器902可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器902还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器902中的非暂态的计算机可读存储介质用于存储至少一条指令,该至少一条指令用于被处理器901所执行以实现本申请中方法实施例提供的任务处理方法。
在一些实施例中,终端900还可选包括有:外围设备接口903和至少一个外围设备。处理器901、存储器902和外围设备接口903之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口903相连。具体地,外围设备包括:射频电路904、显示屏905、摄像头组件906、音频电路907、定位组件908和电源909中的至少一种。
外围设备接口903可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器901和存储器902。在一些实施例中,处理器901、存储器902和外围设备接口903被集成在同一芯片或电路板上;在一些其他实施例中,处理器901、存储器902和外围设备接口903中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路904用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路904通过电磁信号与通信网络以及其他通信设备进行通信。射频电路904将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路904包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路904可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路904还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏905用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏905是触摸显示屏时,显示屏905还具有采集在显示屏905的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器901进行处理。此时,显示屏905还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏905可以为一个,设置终端900的前面板;在另一些实施例中,显示屏905可以为至少两个,分别设置在终端900的不同表面或呈折叠设计;在再一些实施例中,显示屏905可以是柔性显示屏,设置在终端900的弯曲表面上或折叠面上。甚至,显示屏905还可以设置成非矩形的不规则图形,也即异形屏。显示屏905可以采用LCD(LiquidCrystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件906用于采集图像或视频。可选地,摄像头组件906包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件906还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路907可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器901进行处理,或者输入至射频电路904以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端900的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器901或射频电路904的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路907还可以包括耳机插孔。
定位组件908用于定位终端900的当前地理位置,以实现导航或LBS(LocationBased Service,基于位置的服务)。定位组件908可以是基于美国的GPS(GlobalPositioning System,全球定位系统)、中国的北斗系统或俄罗斯的伽利略系统的定位组件。
电源909用于为终端900中的各个组件进行供电。电源909可以是交流电、直流电、一次性电池或可充电电池。当电源909包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端900还包括有一个或多个传感器910。该一个或多个传感器910包括但不限于:加速度传感器911、陀螺仪传感器912、压力传感器913、指纹传感器914、光学传感器915以及接近传感器916。
加速度传感器911可以检测以终端900建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器911可以用于检测重力加速度在三个坐标轴上的分量。处理器901可以根据加速度传感器911采集的重力加速度信号,控制显示屏905以横向视图或纵向视图进行用户界面的显示。加速度传感器911还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器912可以检测终端900的机体方向及转动角度,陀螺仪传感器912可以与加速度传感器911协同采集用户对终端900的3D动作。处理器901根据陀螺仪传感器912采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器913可以设置在终端900的侧边框和/或显示屏905的下层。当压力传感器913设置在终端900的侧边框时,可以检测用户对终端900的握持信号,由处理器901根据压力传感器913采集的握持信号进行左右手识别或快捷操作。当压力传感器913设置在显示屏905的下层时,由处理器901根据用户对显示屏905的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器914用于采集用户的指纹,由处理器901根据指纹传感器914采集到的指纹识别用户的身份,或者,由指纹传感器914根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器901授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器914可以被设置终端900的正面、背面或侧面。当终端900上设置有物理按键或厂商Logo时,指纹传感器914可以与物理按键或厂商Logo集成在一起。
光学传感器915用于采集环境光强度。在一个实施例中,处理器901可以根据光学传感器915采集的环境光强度,控制显示屏905的显示亮度。具体地,当环境光强度较高时,调高显示屏905的显示亮度;当环境光强度较低时,调低显示屏905的显示亮度。在另一个实施例中,处理器901还可以根据光学传感器915采集的环境光强度,动态调整摄像头组件906的拍摄参数。
接近传感器916,也称距离传感器,通常设置在终端900的前面板。接近传感器916用于采集用户与终端900的正面之间的距离。在一个实施例中,当接近传感器916检测到用户与终端900的正面之间的距离逐渐变小时,由处理器901控制显示屏905从亮屏状态切换为息屏状态;当接近传感器916检测到用户与终端900的正面之间的距离逐渐变大时,由处理器901控制显示屏905从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图9中示出的结构并不构成对终端900的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
上述方法实施例中的电子设备可以实现为服务器,例如,图10是本申请实施例提供的一种服务器的结构示意图,该服务器1000可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(Central Processing Units,CPU)1001和一个或一个以上的存储器1002,其中,该存储器1002中存储有至少一条指令,该至少一条指令由该处理器1001加载并执行以实现上述各个方法实施例提供的任务处理方法。当然,该服务器还可以具有有线或无线网络接口以及输入输出接口等部件,以便进行输入输出,该服务器还可以包括其他用于实现设备功能的部件,在此不做赘述。
在示例性实施例中,还提供了一种计算机可读存储介质,例如包括至少一条指令的存储器,上述至少一条指令由可由处理器执行以完成上述实施例中的任务处理方法。例如,计算机可读存储介质可以是只读存储器(Read-Only Memory,简称:ROM)、随机存取存储器(Random Access Memory,简称:RAM)、只读光盘(Compact Disc Read-Only Memory,简称:CD-ROM)、磁带、软盘和光数据存储设备等。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (12)
1.一种任务处理方法,其特征在于,所述方法包括:
获取待处理的至少一个抽取转换加载ETL任务;
提取每个ETL任务的结构化查询语言SQL特征;
根据每个ETL任务的SQL特征,对所述至少一个ETL任务进行分类,得到至少一个类,每个类中不同ETL任务的SQL特征之间的相似度满足条件;
对同一个类中的不同ETL任务进行合并,得到目标任务;
对所述目标任务进行处理。
2.根据权利要求1所述的方法,其特征在于,所述提取每个ETL任务的结构化查询语言SQL特征,包括:
识别每个ETL任务的脚本中的关键词,每个脚本包括对应ETL任务的SQL语句;
根据每个脚本的关键词,获取每个ETL任务的SQL特征。
3.根据权利要求2所述的方法,其特征在于,所述识别每个ETL任务的脚本中的关键词,包括:
对于每个ETL任务的脚本包含的每个词汇,获取所述词汇在对应脚本的第一出现频率以及在脚本集合的第二出现频率,所述脚本集合包括所述至少一个ETL任务中每个ETL任务的脚本;
根据所述词汇的第一出现频率以及第二出现频率,获取所述词汇对所述对应脚本的权重,所述权重与所述第一出现频率正相关且与所述第二出现频率负相关;
根据每个脚本中每个词汇的权重,确定每个脚本的关键词,关键词的权重满足预设条件。
4.根据权利要求2所述的方法,其特征在于,每个ETL任务的SQL特征包括特征向量,所述特征向量的每个维度表示对应ETL任务的脚本中的一个关键词,所述特征向量的每个维度的取值与对应关键词的权重相关。
5.根据权利要求1所述的方法,其特征在于,所述提取每个ETL任务的结构化查询语言SQL特征之前,所述方法还包括:
识别每个ETL任务的脚本中的命令词,所述命令词用于指示对目标词汇标识的数据执行操作,所述目标词汇为所述命令词之后的词汇;
向所述命令词之后添加重复词汇,所述重复词汇与所述目标词汇相同。
6.根据权利要求1所述的方法,其特征在于,所述同一个类中的不同ETL任务包括第一ETL任务和第二ETL任务,所述第一ETL任务表示查询第一表中第一字段的数据,所述第二ETL任务表示查询所述第一表中第二字段的数据,所述对同一个类中的不同ETL任务进行合并,得到目标ETL任务,包括:
根据所述第一字段的标识以及所述第二字段的标识,对所述第一ETL任务和所述第二ETL任务进行合并,得到所述目标ETL任务,所述目标ETL任务表示查询所述第一表中所述第一字段的数据以及所述第二字段的数据。
7.根据权利要求1所述的方法,其特征在于,所述同一个类中的不同ETL任务包括第三ETL任务和第四ETL任务,所述第三ETL任务用于指示查询第二表中取值满足第一条件的数据,所述第四ETL任务表示查询所述第二表中取值满足第二条件的数据,所述对同一个类中的不同ETL任务进行合并,得到目标ETL任务,包括:
根据所述第一条件以及所述第二条件,对所述第三ETL任务和所述第四ETL任务进行合并,得到所述目标ETL任务,所述目标ETL任务表示查询所述第二表中取值满足所述第一条件或满足所述第二条件的数据。
8.根据权利要求1所述的方法,其特征在于,所述同一个类中的不同ETL任务包括第五ETL任务和第六ETL任务,所述第五ETL任务用于指示通过第三条件对第三表和第四表进行连接查询,所述第六ETL任务用于指示通过所述第三条件对所述第三表和所述第四表进行连接查询,所述对同一个类中的不同ETL任务进行合并,得到目标ETL任务,包括:
根据所述第三条件,对所述第五ETL任务和所述第六ETL任务进行合并,得到所述目标ETL任务,所述目标ETL任务表示通过所述第三条件对所述第三表和所述第四表进行连接查询。
9.根据权利要求1所述的方法,其特征在于,所述同一个类中的不同ETL任务包括第七ETL任务和第八ETL任务,所述第七ETL任务用于指示通过第四条件对第七表和第八表进行连接查询,所述第八ETL任务用于指示通过第五条件对所述第七表和第九表进行连接查询,所述对同一个类中的不同ETL任务进行合并,得到目标ETL任务,包括:
根据所述第四条件和所述第五条件,对所述第七ETL任务和所述第八ETL任务进行合并,得到所述目标ETL任务,所述目标ETL任务表示通过第六条件对所述第七表与所述第八表以及所述第九表分别进行连接查询,所述第六条件为所述第四条件和所述第五条件的并集。
10.一种任务处理装置,其特征在于,所述装置包括:
获取模块,用于获取待处理的至少一个抽取转换加载ETL任务;
提取模块,用于提取每个ETL任务的结构化查询语言SQL特征;
分类模块,用于根据每个ETL任务的SQL特征,对所述至少一个ETL任务进行分类,得到至少一个类,每个类中不同ETL任务的SQL特征之间的相似度满足条件;
合并模块,用于对同一个类中的不同ETL任务进行合并,得到目标任务;
处理模块,用于对所述目标任务进行处理。
11.一种电子设备,其特征在于,所述电子设备包括一个或多个处理器和一个或多个存储器,所述一个或多个存储器中存储有至少一条指令,所述至少一条指令由所述一个或多个处理器加载并执行以实现如权利要求1至权利要求9任一项所述的任务处理方法所执行的操作。
12.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现如权利要求1至权利要求9任一项所述的任务处理方法所执行的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911397435.3A CN111061803A (zh) | 2019-12-30 | 2019-12-30 | 任务处理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911397435.3A CN111061803A (zh) | 2019-12-30 | 2019-12-30 | 任务处理方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111061803A true CN111061803A (zh) | 2020-04-24 |
Family
ID=70305177
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911397435.3A Withdrawn CN111061803A (zh) | 2019-12-30 | 2019-12-30 | 任务处理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111061803A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111552730A (zh) * | 2020-04-28 | 2020-08-18 | 杭州数梦工场科技有限公司 | 数据分发方法、装置、电子设备、存储介质 |
CN112465321A (zh) * | 2020-11-18 | 2021-03-09 | 中国建设银行股份有限公司 | 一种任务分析方法、装置、设备及存储介质 |
CN113656178A (zh) * | 2021-08-19 | 2021-11-16 | 中国银行股份有限公司 | 数据处理方法、装置、设备及可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103488537A (zh) * | 2012-06-14 | 2014-01-01 | 中国移动通信集团湖南有限公司 | 一种数据抽取、转换和加载etl的执行方法及装置 |
CN105589874A (zh) * | 2014-10-22 | 2016-05-18 | 阿里巴巴集团控股有限公司 | Etl任务依赖关系的检测方法、装置及etl工具 |
CN110377725A (zh) * | 2019-07-12 | 2019-10-25 | 深圳新度博望科技有限公司 | 数据生成方法、装置、计算机设备及存储介质 |
CN110555035A (zh) * | 2018-05-31 | 2019-12-10 | 阿里巴巴集团控股有限公司 | 一种对查询语句进行优化的方法、装置 |
-
2019
- 2019-12-30 CN CN201911397435.3A patent/CN111061803A/zh not_active Withdrawn
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103488537A (zh) * | 2012-06-14 | 2014-01-01 | 中国移动通信集团湖南有限公司 | 一种数据抽取、转换和加载etl的执行方法及装置 |
CN105589874A (zh) * | 2014-10-22 | 2016-05-18 | 阿里巴巴集团控股有限公司 | Etl任务依赖关系的检测方法、装置及etl工具 |
CN110555035A (zh) * | 2018-05-31 | 2019-12-10 | 阿里巴巴集团控股有限公司 | 一种对查询语句进行优化的方法、装置 |
CN110377725A (zh) * | 2019-07-12 | 2019-10-25 | 深圳新度博望科技有限公司 | 数据生成方法、装置、计算机设备及存储介质 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111552730A (zh) * | 2020-04-28 | 2020-08-18 | 杭州数梦工场科技有限公司 | 数据分发方法、装置、电子设备、存储介质 |
CN111552730B (zh) * | 2020-04-28 | 2024-01-26 | 杭州数梦工场科技有限公司 | 数据分发方法、装置、电子设备、存储介质 |
CN112465321A (zh) * | 2020-11-18 | 2021-03-09 | 中国建设银行股份有限公司 | 一种任务分析方法、装置、设备及存储介质 |
CN112465321B (zh) * | 2020-11-18 | 2024-05-14 | 中国建设银行股份有限公司 | 一种任务分析方法、装置、设备及存储介质 |
CN113656178A (zh) * | 2021-08-19 | 2021-11-16 | 中国银行股份有限公司 | 数据处理方法、装置、设备及可读存储介质 |
CN113656178B (zh) * | 2021-08-19 | 2024-02-27 | 中国银行股份有限公司 | 数据处理方法、装置、设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110471858B (zh) | 应用程序测试方法、装置及存储介质 | |
CN109784351B (zh) | 行为数据分类方法、分类模型训练方法及装置 | |
CN111061803A (zh) | 任务处理方法、装置、设备及存储介质 | |
CN110162604B (zh) | 语句生成方法、装置、设备及存储介质 | |
CN111339737B (zh) | 实体链接方法、装置、设备及存储介质 | |
CN112966124B (zh) | 知识图谱对齐模型的训练方法、对齐方法、装置及设备 | |
CN111694834A (zh) | 图数据的入库方法、装置、设备及可读存储介质 | |
CN111930964B (zh) | 内容处理方法、装置、设备及存储介质 | |
CN110942046B (zh) | 图像检索方法、装置、设备及存储介质 | |
CN112269853A (zh) | 检索处理方法、装置及存储介质 | |
CN113553039A (zh) | 算子的可执行代码的生成方法及装置 | |
CN111897525A (zh) | 大数据处理方法及系统 | |
CN114281956A (zh) | 文本处理方法、装置、计算机设备及存储介质 | |
CN113742366A (zh) | 数据处理方法、装置、计算机设备及存储介质 | |
CN114117206B (zh) | 推荐模型处理方法、装置、电子设备及存储介质 | |
CN112561084B (zh) | 特征提取方法、装置、计算机设备及存储介质 | |
CN114298123A (zh) | 聚类处理方法、装置、电子设备及可读存储介质 | |
CN111475611A (zh) | 词典管理方法、装置、计算机设备及存储介质 | |
CN113138996A (zh) | 语句生成方法和装置 | |
CN113343709B (zh) | 意图识别模型的训练方法、意图识别方法、装置及设备 | |
CN113222771B (zh) | 一种基于知识图谱确定目标群体的方法、装置及电子设备 | |
CN111125095B (zh) | 数据前缀添加的方法、装置、电子设备及介质 | |
CN112560612B (zh) | 确定业务算法的系统、方法、计算机设备及存储介质 | |
CN116244299A (zh) | 业务数据路径的确定方法、装置、电子设备及介质 | |
CN112416356A (zh) | Json字符串的处理方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20200424 |
|
WW01 | Invention patent application withdrawn after publication |