CN112749186B - 数据处理方法、装置、电子设备和计算机可读存储介质 - Google Patents
数据处理方法、装置、电子设备和计算机可读存储介质 Download PDFInfo
- Publication number
- CN112749186B CN112749186B CN202110087974.8A CN202110087974A CN112749186B CN 112749186 B CN112749186 B CN 112749186B CN 202110087974 A CN202110087974 A CN 202110087974A CN 112749186 B CN112749186 B CN 112749186B
- Authority
- CN
- China
- Prior art keywords
- sql
- field
- map
- data processing
- grammar tree
- 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.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 34
- 238000003860 storage Methods 0.000 title claims abstract description 16
- 238000012545 processing Methods 0.000 claims abstract description 55
- 238000000034 method Methods 0.000 claims abstract description 22
- 238000000605 extraction Methods 0.000 claims abstract description 16
- 238000004590 computer program Methods 0.000 claims description 8
- 230000001502 supplementing effect Effects 0.000 claims description 7
- 238000001914 filtration Methods 0.000 claims description 6
- 230000010365 information processing Effects 0.000 claims description 5
- 238000007781 pre-processing Methods 0.000 claims description 5
- 238000004458 analytical method Methods 0.000 claims description 4
- 238000003780 insertion Methods 0.000 claims description 3
- 230000037431 insertion Effects 0.000 claims description 3
- 238000012935 Averaging Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 230000000875 corresponding effect Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 230000035945 sensitivity Effects 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000009776 industrial production Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000005266 casting Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
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/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- 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/31—Indexing; Data structures therefor; Storage structures
- G06F16/316—Indexing structures
- G06F16/322—Trees
-
- 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/34—Browsing; Visualisation therefor
-
- 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/36—Creation of semantic tools, e.g. ontology or thesauri
- G06F16/367—Ontology
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Animal Behavior & Ethology (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明的实施例提供了一种数据处理方法、装置、电子设备和计算机可读存储介质,涉及数据处理技术领域,方法包括:获得SQL语法树并进行处理,得到包含图谱实体和关系的中间语法树,通过遍历中间语法树,以表或者字段表征中间语法树中各内容在目标图谱的实体,并配置表和字段之间的关系,得到目标图谱,基于该目标图谱能够便捷地实现对SQL的特征提取及应用。
Description
技术领域
本发明涉及数据处理技术领域,具体而言,涉及一种数据处理方法、装置、电子设备和计算机可读存储介质。
背景技术
现今,在许多关系数据库或数据仓库中都支持使用结构化查询语言(StructuredQuery Language,SQL)或类SQL的查询语言。某些数仓中大量数据建设、查询工作是使用Hive-SQL完成的,多年来累积了海量的SQL程序,这些程序完成各种各样的任务,是宝贵的财富之一,这些SQL程序主要是由工程师根据需求开发,花费了较多人力。就目前业界的技术而言,想要自动生成符合具体需求的SQL难度较大,但是,可以利用这些已有的SQL做各种辅助自动化的任务。然而,如何提高SQL的应用便捷性为本领域需要研究的问题。
发明内容
本发明的目的之一包括,例如,提供了一种数据处理方法、装置、电子设备和计算机可读存储介质,以至少部分地提高SQL特征提取及应用的便捷性。
本发明的实施例可以这样实现:
第一方面,本发明实施例提供一种数据处理方法,包括:
获得SQL语法树并进行处理,得到包含图谱实体和关系的中间语法树;
遍历所述中间语法树,以表或者字段表征所述中间语法树中各内容在目标图谱的实体,并配置所述表和字段之间的关系,得到目标图谱。
在可选的实施方式中,获得SQL语法树的步骤,包括:
对SQL任务进行预处理,得到SQL语句集合;
对所述SQL语句集合进行解析得到SQL语法树。
在可选的实施方式中,对SQL任务进行预处理,得到SQL语句集合的步骤,包括:
将SQL任务包含的各语句切分成多个单句;
对所述多个单句进行过滤,得到包含、选择、合并、联合和插入类语句;
对所述包含、选择、合并、联合和插入类语句进行去重,得到SQL语句集合。
在可选的实施方式中,遍历所述中间语法树,以表或者字段表征所述中间语法树中各内容在目标图谱的实体,并配置所述表和字段之间的关系,得到目标图谱的步骤,包括:
遍历所述中间语法树,以表或者字段表征所述中间语法树中各内容在待处理图谱的实体,并配置所述表和字段之间的关系;
根据解析得到的所述SQL语法树,对所述待处理图谱的实体和关系进行补充;
对进行补充后的待处理图谱的实体和关系进行归一去重,得到目标图谱。
在可选的实施方式中,配置所述表和字段之间的关系的步骤,包括:
将所述表和字段之间的关系配置为:表包含字段、表选择表、表合并表、表联合表和表插入表中的至少一种。
在可选的实施方式中,所述遍历所述中间语法树,以表或者字段表征所述中间语法树中各内容在目标图谱的实体的步骤,包括:
查找出所述中间语法树中的数据表、临时结果集合和标签;
以表作为所述数据表和临时结果集合的实体,以字段作为所述标签的实体。
第二方面,本发明实施例提供一种数据处理方法,包括:
从目标图谱中提取表和字段的特征,其中,所述目标图谱根据第一方面中的数据处理方法得到;
基于所述表和字段的特征得到目标图谱中SQL语句的总体特征。
在可选的实施方式中,从目标图谱中提取表和字段的特征的步骤,基于以下至少一种方法实现:
基于图谱关系数据运用DeepWalk算法得到表和字段的embedding;
基于图谱关系数据和PageRank算法得到表和字段的PageRank;
将目标图谱的表和字段按属性名和属性值展开成文本,利用doc2vector对所述文本进行处理得到初步的表和字段的embedding,利用关系数据和GCN算法对初步的表和字段的embedding做处理,得到基于GCN的表和字段的embedding;
将目标图谱的表和字段按属性名和属性值展开成文本,利用doc2vector对所述文本进行处理得到初步的表和字段的embedding,利用关系数据和GraphSAGE算法对初步的表和字段的embedding做处理,得到基于GraphSAGE的表和字段的embedding。
在可选的实施方式中,基于所述表和字段的特征得到目标图谱中SQL语句的总体特征的步骤,包括:
对所述表和字段的特征取平均,得到目标图谱中SQL语句的总体embedding或PageRank。
第三方面,本发明实施例提供一种数据处理装置,包括:
信息获得模块,用于获得SQL语法树并进行处理,得到包含图谱实体和关系的中间语法树;
信息处理模块,用于遍历所述中间语法树,以表或者字段表征所述中间语法树中各内容在目标图谱的实体,并配置所述表和字段之间的关系,得到目标图谱。
第四方面,本发明实施例提供一种数据处理装置,包括:
特征提取模块,用于从目标图谱中提取表和字段的特征,其中,所述目标图谱根据第一方面中的数据处理方法得到;
特征获得模块,用于基于所述表和字段的特征得到目标图谱中SQL语句的总体特征。
第五方面,本发明实施例提供一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现前述实施方式任一项所述的数据处理方法。
第六方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质包括计算机程序,所述计算机程序运行时控制所述计算机可读存储介质所在电子设备执行前述实施方式任一项所述的数据处理方法。
本发明实施例的有益效果包括,配置了以表和字段作为实体的目标图谱,基于目标图谱能够便捷地实现对SQL的特征提取及应用。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本发明实施例提供的一种应用场景示意图。
图2示出了本发明实施例提供的一种数据处理方法的流程示意图。
图3示出了本发明实施例提供的一种目标图谱的可视化展现。
图4示出了本发明实施例提供的一种目标图谱的另一可视化展现。
图5示出了本发明实施例提供的一种数据处理方法的另一流程示意图。
图6示出了本发明实施例提供的一种数据处理方法的又一流程示意图。
图7示出了本发明实施例提供的一种第一数据处理装置的示例性结构框图。
图8示出了本发明实施例提供的一种第二数据处理装置的示例性结构框图。
图标:100-电子设备;110-存储器;120-处理器;130-通信模块;140-第一数据处理装置;141-信息获得模块;142-信息处理模块;150-第二数据处理装置;151-特征提取模块;152-特征获得模块。
具体实施方式
术语解释:
图谱:是一种揭示实体之间关系的语义网络,通俗地讲,就是把所有不同种类的信息连接在一起而得到的关系网络。由节点和边组成,每个节点表示现实世界中存在的实体,每条边为实体与实体之间的关系。
GCN(Graph convolution Network)算法:是一种图卷积神经网络算法,通过对图的拓扑结构和顶点的属性信息进行学习来得到节点embedding。
GraphSAGE算法:是一种图卷积神经网络算法,能够利用节点的属性信息高效产生未知顶点embedding的一种归纳式学习的框架,核心思想是通过学习一个对邻居顶点进行聚合表示的函数来产生目标顶点的embedding。
DeepWalk算法:其思想类似word2vec,使用图中节点与节点的共现关系来学习节点的向量表示。
PageRank算法:最初作为互联网网页重要度的计算方法,可应用在任意有向图上,得到图中节点重要度。
Antlr4:是一款语法分析器生成工具,能够根据语法规则文件生成对应的语法分析器。
Hive:是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载。将结构化的数据文件映射为一张数据库表,并提供SQL查询功能,能将SQL语句转变成MapReduce任务来执行。
现今,可以利用某些已有的SQL做各种辅助自动化的任务。例如:可以对SQL的各个表或标签(也称字段)的价值进行判断,用于指导工程师高效地发现新标签,节约开发成本。又例如,可以对SQL和表的相关度进行计算,在检索时给出与检索的表最相关的SQL,指导SQL开发。
然而,经研究发现,SQL程序形式多样,长短不一,短的可以有几十个词,长的甚至有几千个词,如何提取SQL以及SQL中的元素的有效特征成为了基础需求,同时也是难点。
基于上述研究,本发明实施例提供一种数据处理方案,对目标图谱进行了巧妙配置,以表和字段作为目标图谱的实体,在目标图谱中配置了表和字段之间的关系,基于配置的目标图谱,能够便捷地提取表和字段的特征,以及SQL语句的总体特征,基于提取的特征可以便捷实现后续应用。
针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本发明实施例针对上述问题所提出的解决方案,都应该是发明人在发明过程中做出的贡献。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
需要说明的是,在不冲突的情况下,本发明的实施例中的特征可以相互结合。
请参照图1,是本实施例提供的一种电子设备100的方框示意图,本实施例中的电子设备100可以为能够进行数据处理的服务器、处理设备、处理平台等。所述电子设备100包括存储器110、处理器120及通信模块130。所述存储器110、处理器120以及通信模块130各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。
其中,存储器110用于存储程序或者数据。所述存储器110可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存储器(ErasableProgrammable Read-Only Memory,EPROM),电可擦除只读存储器(Electric ErasableProgrammable Read-Only Memory,EEPROM)等。
处理器120用于读/写存储器110中存储的数据或程序,并执行相应地功能。
通信模块130用于通过所述网络建立所述电子设备100与其它通信终端之间的通信连接,并用于通过所述网络收发数据。
应当理解的是,图1所示的结构仅为电子设备100的结构示意图,所述电子设备100还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。
为了便捷地实现SQL特征提取,本发明实施例中,在提取特征前,进行了目标图谱建设,在建设目标图谱之前,对目标图谱的架构(schema)进行了研究和设计。经过观察和分析SQL语法及SQL任务程序的特征,本发明实施例中设计的目标图谱包含两类实体:一类是表,它代表了已有的数据表或SQL中间过程产生的临时结果集合;另一类是字段(也称标签)。这两类实体在设计中还可能包含多种属性,如名称、类型、值等。类似地,目标图谱中各实体之间的关系也可能包含相应属性。
请结合参阅图2,为本发明实施例提供的一种数据处理方法的流程示意图,基于该数据处理方法能够获得目标图谱。该数据处理方法可以由图1所述电子设备100执行,例如可以由电子设备100中的处理器120执行。该数据处理方法包括S110和S120。
S110,获得SQL语法树并进行处理,得到包含图谱实体和关系的中间语法树。
S120,遍历所述中间语法树,以表或者字段表征所述中间语法树中各内容在目标图谱的实体,并配置所述表和字段之间的关系,得到目标图谱。
SQL语法树可以通过多种方式得到,示例性地,可以对SQL任务进行预处理,得到SQL语句集合,对所述SQL语句集合进行解析得到SQL语法树。
在一种实现方式中,若SQL任务包括多个SQL语句,对SQL任务进行预处理可以包括切分、过滤、去重等中的一种或多种。
示例性地,若一个SQL任务包含了多个SQL语句,则将SQL任务包含的各语句切分成多个单句。为了得到所需的语句,可以对切分得到的多个单句进行过滤,如过滤得到选择(select)、插入(insert)类语句,又例如,还可以过滤得到包含(include)、合并(union)、联合(join)类语句。过滤得到的包含、选择、合并、联合和插入类语句可能有一定重复,为了确保得到的SQL语句集合的简洁、准确性,可以对过滤得到的包含、选择、合并、联合和插入类语句进行去重,得到SQL语句集合。例如,可以按照SQL任务的id(Identity document,标识)和SQL元素相似度去重得到SQL语句集合。
在一种实现方式中,可以使用SQLparse和Antlr4对SQL语句集合进行解析得到SQL语法树,进而将SQL语法树处理转化成包含图谱实体、关系的中间语法树。
在获得中间语法树的情况下,可以通过多种方式得到目标图谱。
在一种实现方式中,可以遍历所述中间语法树,以表或者字段表征所述中间语法树中各内容在待处理图谱的实体,并配置所述表和字段之间的关系。根据解析得到的所述SQL语法树,对所述待处理图谱的实体和关系进行补充。对进行补充后的待处理图谱的实体和关系进行归一去重,得到目标图谱。
其中,在SQL语法树为使用SQLparse和Antlr4对SQL语句集合进行解析得到的情况下,S110中,对SQL语法树进行处理得到中间语法树的方式可以为:递归处理采用SQLparse得到的SQL语法树,得到包含图谱实体、关系的中间语法树。S120中,获得目标图谱的方式可以为:遍历中间语法树得到目标图谱的实体和关系,融合Antlr4对SQL语句集合进行解析得到的SQL解析结果,进一步补充目标图谱的实体和属性,利用SQL任务的id、名字、别名等对目标图谱的实体和关系进行归一去重,进而得到所需的目标图谱。
在一种实现方式中,目标图谱的实体之间的关系可以包括以下五类:include:<表,包含,字段>;select:<表,选择,表>;union:<表,合并,表>;join:<表,联合,表>;insert:<表,插入,表>。相应地,表和字段之间的关系可以配置为:表包含字段、表选择表、表合并表、表联合表和表插入表中的至少一种。
示例性地,若某一SQL任务的程序如下:
Withdata1as(selectukey,install_channel,dtfrom gamelive.dw_huya_new_userwherenew_user_type='ukey'and new_data_type='all'and product in('huya_andriod','huya_ios')and dt='2020-07-22'),data2 as(select yyuid,duowanb fromzhgame.dwd_pay_consume where dt>='2020-07-22'and dt<='2020-07-29'and gamein('shmb','xyzbdb','yxzbweb','yyyxzb','huyaapp','yxzbhb','wghyjd','wghyb')),data3 as(select ukey,yyuid from zhgametemp.tx_dim_ukey_yyuid_app),data4as(selectukey,dtfrom gamelive.dw_huya_new_userwherenew_user_type='ukey'andnew_data_type='all'and product in('huya_andriod','huya_ios')and dt='2020-07-22')insert overwrite table zhgametemp.huya_new_user_dau_ltv partition(dt='2020-07-22',day_range=7)select substring(dt,1,7),install_channel,pay_total,cnt_ukey,pay_total/cnt_ukey ltv from(select a.dt,a.install_channel,count(distinct a.ukey)cnt_ukey,sum(duowanb)pay_total from data1 a leftjoindata3 b on a.ukey=b.ukey left join data2 c on b.yyuid=c.yyuid group bya.dt,a.install_channel)t1 union all select substring(dt,1,7),'all'as install_channel,pay_total,cnt_ukey,pay_total/cnt_ukey ltv from(select a.dt,count(distinct a.ukey)cnt_ukey,sum(duowanb)pay_total from data4 a left join data3b on a.ukey=b.ukey left join data2 c on b.yyuid=c.yyuid group by a.dt)t1
如图3所示,为采用本发明实施例中的数据处理方法对上述SQL任务进行处理所得到的目标图谱的可视化展现。目标图谱的实体在图3中以节点的形式呈现,其中,黑色的节点表征表,白色的节点表征字段。各节点之间的关系以边(节点之间的连线)的方式呈现。各节点之间的关系包括:include:<表,包含,字段>;select:<表,选择,表>;union:<表,合并,表>;join:<表,联合,表>;insert:<表,插入,表>。
在另一种实现方式中,若SQL任务仅包括一个简单的SQL语句,相应地,SQL语法树可以使用SQLparse对该简单的SQL语句进行处理得到,那么,可以通过将该SQL语法树处理转化成包含实体、关系的中间语法树,进一步遍历该中间语法树得到目标图谱的实体和关系,从而得到目标图谱。
本实施例中,目标图谱的实体包括表和字段。目标图谱的实体可以通过以下方式得到:查找出所述中间语法树中的数据表、临时结果集合和标签。以表作为所述数据表和临时结果集合的实体,以字段作为所述标签的实体。
示例性地,若某一SQL语句如下:
select ta.name,ta.age,tb.iphone from ta left join tb on ta.name=tb.name
如图4所示,为采用本发明实施例中的数据处理方法对SQL语句进行处理所得到的目标图谱的可视化展现。目标图谱的实体在图4中以节点的形式呈现,其中,黑色的节点表征表,白色的节点表征字段。各节点之间的关系以边的方式呈现。各节点之间的关系包括:include:<表,包含,字段>;select:<表,选择,表>;join:<表,联合,表>。
上述图3和图4仅为本发明实施例中提供的目标图谱的举例说明,目标图谱还可以有其他展现形式。例如,目标图谱中还可以展示各节点和边的属性,各节点的id等。
请结合参阅图5和图6,为本发明实施例提供的一种数据处理方法的流程示意图,该数据处理方法可以基于上述目标图谱进行特征提取。该数据处理方法可以由图1所述电子设备100执行,例如可以由电子设备100中的处理器120执行。该数据处理方法包括S210和S220。
S210,从目标图谱中提取表和字段的特征,其中,获得目标图谱的原理可以参阅图2所示S110和S120中的相关描述,在此不作赘述。
S220,基于所述表和字段的特征得到目标图谱中SQL语句的总体特征。
其中,可以采用多种方式从目标图谱中提取表和字段的特征。本实施例中列举了其中几种特征提取方式,分别如下:
方式一:基于图谱关系数据运用DeepWalk算法得到表和字段的embedding。
方式二:基于图谱关系数据和PageRank算法得到表和字段的PageRank。
方式三:将目标图谱的表和字段按属性名和属性值展开成文本,利用doc2vector对所述文本进行处理得到初步的表和字段的embedding,利用关系数据和GCN算法对初步的表和字段的embedding做处理,得到基于GCN的表和字段的embedding。
方式四:将目标图谱的表和字段按属性名和属性值展开成文本,利用doc2vector对所述文本进行处理得到初步的表和字段的embedding,利用关系数据和GraphSAGE算法对初步的表和字段的embedding做处理,得到基于GraphSAGE的表和字段的embedding。
在采用上述方式一至方式四中的至少一种便可得到表和字段的embedding或PageRank。在得到表和字段的embedding或PageRank之后,可以按照设定策略得到目标图谱中SQL语句的总体特征。例如,可以对SQL包含的表和字段的相应特征取平均,作为SQL语句总体的embedding或pagegrank特征。
基于图5和图6所示流程便可实现特征提取,可以将提取的各特征进行存储,如存储至特征库中备用,基于提取的特征可以实现多种应用。例如,在标签工业化生产项目中,采用上述方式一提取的字段(即标签)的embedding特征可以运用在标签工业化生产的项目中。例如,可以融合基于标签加工的传统特征及本发明实施例中提取的标签的embedding特征,作为预测标签价值机模型的输入,实现价值预测。该应用取得了良好效果,能够实现标签的自动化发现,有效避免不同团队之间开发重复数据标签,节约了标签开发时间,丰富了数据资产,实现了数据资产的共享。经验证,项目中使用传统特征的查准率为78%,查全率为80%,而使用了本发明实施例中提取的特征后查准率达到88%,查全率达到95%,提升效果显著。
又例如,在SQL敏感度判断项目中,主要是对用户执行的SQL进行敏感度判别,对于包含敏感信息的查询应该禁止,目前该审核工作主要是由人工审核完成,为了实现审核的自动化,节约人力成本,可以通过特征提取实现自动化识别。经验证,若仅使用传统的文本特征,LightGBM模型对SQL敏感度进行判断的准召回分别为50%、27%,而加入了本发明实施例提供的方式一提取的表(SQL包含了该表)的embedding特征后,LightGBM模型的准召可提升至80%、81%,增益效果明显。
为了执行上述实施例及各个可能的方式中的相应步骤,下面给出一种数据处理装置的实现方式。请参阅图7,图7为本发明实施例提供的一种第一数据处理装置140的功能模块图,该第一数据处理装置140可以应用于图1所示电子设备100。需要说明的是,本实施例所提供的第一数据处理装置140,其基本原理及产生的技术效果和上述图2所示实施例相同,为简要描述,本实施例部分未提及之处,可参考上述的图2所示实施例中相应内容。该第一数据处理装置140包括信息获得模块141和信息处理模块142。
其中,信息获得模块141用于获得SQL语法树并进行处理,得到包含图谱实体和关系的中间语法树。
信息处理模块142用于遍历所述中间语法树,以表或者字段表征所述中间语法树中各内容在目标图谱的实体,并配置所述表和字段之间的关系,得到目标图谱。
为了执行上述实施例及各个可能的方式中的相应步骤,下面给出一种数据处理装置的实现方式。请参阅图8,图8为本发明实施例提供的一种第二数据处理装置150的功能模块图,该第二数据处理装置150可以应用于图1所示电子设备100。需要说明的是,本实施例所提供的第二数据处理装置150,其基本原理及产生的技术效果和上述图5所示实施例相同,为简要描述,本实施例部分未提及之处,可参考上述的图5所示实施例中相应内容。该第二数据处理装置150包括特征提取模块151和特征获得模块152。
其中,特征提取模块151用于从目标图谱中提取表和字段的特征,其中,所述目标图谱根据图2所示数据处理方法得到。
特征获得模块152用于基于所述表和字段的特征得到目标图谱中SQL语句的总体特征。
在上述基础上,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质包括计算机程序,所述计算机程序运行时控制所述计算机可读存储介质所在电子设备执行上述的数据处理方法。
采用本发明实施例中的上述方案,设计实现了基于SQL任务程序建设包含标签生产逻辑关系的目标图谱,并基于目标图谱和特征提取方法组合设计,实现了几种SQL特征提取方法。能够提取SQL语句的总体特征,以及表和标签的特征,这些特征用在下游任务时效果显著,赋能了诸多辅助SQL自动化的任务。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种数据处理方法,其特征在于,包括:
获得SQL语法树并进行处理,得到包含图谱实体和关系的中间语法树;
遍历所述中间语法树,以表或者字段表征所述中间语法树中各内容在目标图谱的实体,并配置所述表和字段之间的关系,得到目标图谱;
所述获得SQL语法树并进行处理,包括:
使用SQLparse和Antlr4对SQL语句集合进行解析得到SQL语法树;
将SQL语法树处理转化成包含图谱实体、关系的中间语法树;
所述遍历所述中间语法树,以表或者字段表征所述中间语法树中各内容在目标图谱的实体的步骤,包括:
查找出所述中间语法树中的数据表、临时结果集合和标签;
以表作为所述数据表和临时结果集合的实体,以字段作为所述标签的实体。
2.根据权利要求1所述的数据处理方法,其特征在于,获得SQL语法树的步骤,包括:
对SQL任务进行预处理,得到SQL语句集合;
对所述SQL语句集合进行解析得到SQL语法树。
3.根据权利要求2所述的数据处理方法,其特征在于,对SQL任务进行预处理,得到SQL语句集合的步骤,包括:
将SQL任务包含的各语句切分成多个单句;
对所述多个单句进行过滤,得到包含、选择、合并、联合和插入类语句;
对所述包含、选择、合并、联合和插入类语句进行去重,得到SQL语句集合。
4.根据权利要求3所述的数据处理方法,其特征在于,遍历所述中间语法树,以表或者字段表征所述中间语法树中各内容在目标图谱的实体,并配置所述表和字段之间的关系,得到目标图谱的步骤,包括:
遍历所述中间语法树,以表或者字段表征所述中间语法树中各内容在待处理图谱的实体,并配置所述表和字段之间的关系;
根据解析得到的所述SQL语法树,对所述待处理图谱的实体和关系进行补充;
对进行补充后的待处理图谱的实体和关系进行归一去重,得到目标图谱。
5.根据权利要求3所述的数据处理方法,其特征在于,配置所述表和字段之间的关系的步骤,包括:
将所述表和字段之间的关系配置为:表包含字段、表选择表、表合并表、表联合表和表插入表中的至少一种。
6.一种数据处理方法,其特征在于,包括:
从目标图谱中提取表和字段的特征,其中,所述目标图谱根据权利要求1至5任意一项得到;
基于所述表和字段的特征得到目标图谱中SQL语句的总体特征。
7.根据权利要求6所述的数据处理方法,其特征在于,从目标图谱中提取表和字段的特征的步骤,基于以下至少一种方法实现:
基于图谱关系数据运用DeepWalk算法得到表和字段的embedding;
基于图谱关系数据和PageRank算法得到表和字段的PageRank;
将目标图谱的表和字段按属性名和属性值展开成文本,利用doc2vector对所述文本进行处理得到初步的表和字段的embedding,利用关系数据和GCN算法对初步的表和字段的embedding做处理,得到基于GCN的表和字段的embedding;
将目标图谱的表和字段按属性名和属性值展开成文本,利用doc2vector对所述文本进行处理得到初步的表和字段的embedding,利用关系数据和GraphSAGE算法对初步的表和字段的embedding做处理,得到基于GraphSAGE的表和字段的embedding。
8.根据权利要求7所述的数据处理方法,其特征在于,基于所述表和字段的特征得到目标图谱中SQL语句的总体特征的步骤,包括:
对所述表和字段的特征取平均,得到目标图谱中SQL语句的总体embedding或PageRank。
9.一种数据处理装置,其特征在于,包括:
信息获得模块,用于获得SQL语法树并进行处理,得到包含图谱实体和关系的中间语法树;
信息处理模块,用于遍历所述中间语法树,以表或者字段表征所述中间语法树中各内容在目标图谱的实体,并配置所述表和字段之间的关系,得到目标图谱;
其中,所述获得SQL语法树并进行处理,包括:使用SQLparse和Antlr4对SQL语句集合进行解析得到SQL语法树;将SQL语法树处理转化成包含图谱实体、关系的中间语法树;
所述遍历所述中间语法树,以表或者字段表征所述中间语法树中各内容在目标图谱的实体包括:查找出所述中间语法树中的数据表、临时结果集合和标签;以表作为所述数据表和临时结果集合的实体,以字段作为所述标签的实体。
10.一种数据处理装置,其特征在于,包括:
特征提取模块,用于从目标图谱中提取表和字段的特征,其中,所述目标图谱根据权利要求1至5任意一项得到;
特征获得模块,用于基于所述表和字段的特征得到目标图谱中SQL语句的总体特征。
11.一种电子设备,其特征在于,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求1至8任一项所述的数据处理方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括计算机程序,所述计算机程序运行时控制所述计算机可读存储介质所在电子设备执行权利要求1至8任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110087974.8A CN112749186B (zh) | 2021-01-22 | 2021-01-22 | 数据处理方法、装置、电子设备和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110087974.8A CN112749186B (zh) | 2021-01-22 | 2021-01-22 | 数据处理方法、装置、电子设备和计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112749186A CN112749186A (zh) | 2021-05-04 |
CN112749186B true CN112749186B (zh) | 2024-02-09 |
Family
ID=75652932
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110087974.8A Active CN112749186B (zh) | 2021-01-22 | 2021-01-22 | 数据处理方法、装置、电子设备和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112749186B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103744802A (zh) * | 2013-12-20 | 2014-04-23 | 北京奇虎科技有限公司 | Sql注入攻击的识别方法及装置 |
CN110245270A (zh) * | 2019-05-09 | 2019-09-17 | 重庆天蓬网络有限公司 | 基于图模型的数据血缘关系存储方法、系统、介质和设备 |
CN110674229A (zh) * | 2019-09-24 | 2020-01-10 | 山东爱城市网信息技术有限公司 | 一种基于ast的关系型数据库sql表关系分析及展现方法 |
CN111538743A (zh) * | 2020-04-22 | 2020-08-14 | 电子科技大学 | 基于sql的数据血缘关系分析方法以及系统 |
CN111694858A (zh) * | 2020-04-28 | 2020-09-22 | 平安科技(深圳)有限公司 | 数据血缘分析方法、装置、设备及计算机可读存储介质 |
-
2021
- 2021-01-22 CN CN202110087974.8A patent/CN112749186B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103744802A (zh) * | 2013-12-20 | 2014-04-23 | 北京奇虎科技有限公司 | Sql注入攻击的识别方法及装置 |
CN110245270A (zh) * | 2019-05-09 | 2019-09-17 | 重庆天蓬网络有限公司 | 基于图模型的数据血缘关系存储方法、系统、介质和设备 |
CN110674229A (zh) * | 2019-09-24 | 2020-01-10 | 山东爱城市网信息技术有限公司 | 一种基于ast的关系型数据库sql表关系分析及展现方法 |
CN111538743A (zh) * | 2020-04-22 | 2020-08-14 | 电子科技大学 | 基于sql的数据血缘关系分析方法以及系统 |
CN111694858A (zh) * | 2020-04-28 | 2020-09-22 | 平安科技(深圳)有限公司 | 数据血缘分析方法、装置、设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112749186A (zh) | 2021-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110555153A (zh) | 一种基于领域知识图谱的问答系统及其构建方法 | |
US9875319B2 (en) | Automated data parsing | |
CN101814067B (zh) | 对自然语言内容中的信息含量进行定量估算的系统和方法 | |
CN109408811B (zh) | 一种数据处理方法及服务器 | |
EP3671526B1 (en) | Dependency graph based natural language processing | |
US20180075161A1 (en) | Extensible automatic query language generator for semantic data | |
CN111899089A (zh) | 基于知识图谱的企业风险预警方法及系统 | |
CN113312922B (zh) | 一种改进的篇章级三元组信息抽取方法 | |
CN113254507B (zh) | 一种数据资产目录智能构建盘点方法 | |
CN114495143B (zh) | 一种文本对象识别方法、装置、电子设备及存储介质 | |
CN109558166A (zh) | 一种面向缺陷定位的代码搜索方法 | |
CN109522396B (zh) | 一种面向国防科技领域的知识处理方法及系统 | |
KR20150084706A (ko) | 온톨로지의 지식 학습 장치 및 그의 방법 | |
CN114625748A (zh) | Sql查询语句的生成方法、装置、电子设备及可读存储介质 | |
CN117648093A (zh) | 基于大模型和自定制需求模板的rpa流程自动化生成方法 | |
Tekli et al. | Approximate XML structure validation based on document–grammar tree similarity | |
CN111198934A (zh) | 一种信息处理方法及相关设备 | |
CN113377739A (zh) | 知识图谱应用方法、平台、电子设备及存储介质 | |
CN117473054A (zh) | 基于知识图谱的通用智能问答方法及装置 | |
KR101499571B1 (ko) | 일반문서의 자동계층 분류를 통한 의미적 문서로의 변환 방법, 이를 수행하기 위한 기록 매체 및 장치 | |
Naeem et al. | Interacting with data warehouse by using a natural language interface | |
CN112749186B (zh) | 数据处理方法、装置、电子设备和计算机可读存储介质 | |
CN116304231A (zh) | 基于语法解析树的查询语句生成方法和装置、设备、介质 | |
CN114880483A (zh) | 一种元数据知识图谱构建方法、存储介质及系统 | |
KR101225333B1 (ko) | 구문론적으로 분석된 텍스트 코퍼스로부터 정보를 추출하는 트리 패턴 표현식을 이용한 시스템 및 방법 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |