CN111752967A - 基于sql的数据处理方法、装置、电子设备和存储介质 - Google Patents
基于sql的数据处理方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN111752967A CN111752967A CN202010534504.7A CN202010534504A CN111752967A CN 111752967 A CN111752967 A CN 111752967A CN 202010534504 A CN202010534504 A CN 202010534504A CN 111752967 A CN111752967 A CN 111752967A
- Authority
- CN
- China
- Prior art keywords
- data
- sql
- feature
- signature
- statement
- 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.)
- Pending
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/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Medical Informatics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及基于SQL的数据处理方法、装置、电子设备和存储介质,方法包括:获取SQL拓展语句和数据表;SQL拓展语句为SQL标准语句中的数据处理表达式增加特征签名得到;对SQL拓展语句进行拓展编译,生成带特征签名的逻辑执行计划;基于逻辑执行计划,对数据表进行列处理得到特征数据;基于特征数据生成用于机器学习的样本文件。可见,通过对SQL标准语句中的数据处理表达式增加特征签名,实现拓展SQL语句,进而在对数据表进行SQL数据处理时,可基于特征签名实现对数据的特征处理,从而可直接生成用于机器学习的带特征的样本文件,至少解决目前需要单独编写程序来为每列数据进行特征签名,才能导出机器学习场景可使用的样本文件,生成样本文件效率较低的问题。
Description
技术领域
本公开实施例涉及数据处理技术领域,具体涉及一种基于SQL的数据处理方法、装置、电子设备和非暂态计算机可读存储介质。
背景技术
SQL(Structured Query Language,结构化查询语言)是一种数据处理语言,目前关系型数据库管理系统和Spark等大数据处理框架可支持SQL,SQL也常用于机器学习场景的数据处理和特征抽取阶段。本公开的发明人发现在机器学习场景使用SQL至少存在以下问题。
其一是SQL中需要以表的形式来组织数据,通常是基于一个表生成另一个新表,但在机器学习场景,经常需要把一维的原始数据哈希生成超高维的特征数据,例如一个千亿维的稀疏特征数据,如果以表的形式存储就需要补零成千亿列数据而实际有值的只有某几列,这样无论是存储还是计算的成本较大,因此在SQL中描述和存储高维的数据效率较低。
其二是由于SQL无法表示高维的特征数据,因此用户使用SQL进行数据处理后,还需要单独编写程序来为每列数据进行特征签名(也即描述单列数据是稀疏特征数据还是稠密特征数据),才能导出机器学习场景可使用的样本文件,因此生成样本文件的效率较低。
上述对问题的发现过程的描述,仅用于辅助理解本公开的技术方案,并不代表承认上述内容是现有技术。
发明内容
为了解决现有技术存在的至少一个问题,本公开的至少一个实施例提供了一种基于SQL的数据处理方法、装置、电子设备和非暂态计算机可读存储介质。
第一方面,本公开实施例提出一种基于SQL的数据处理方法,包括:
获取SQL拓展语句和数据表;所述SQL拓展语句为SQL标准语句中至少一个数据处理表达式增加特征签名得到;
对所述SQL拓展语句进行拓展编译,生成带有特征签名的逻辑执行计划;
基于所述带有特征签名的逻辑执行计划,对所述数据表进行列处理,得到特征数据;
基于所述特征数据生成用于机器学习的样本文件。
第二方面,本公开实施例提出一种基于SQL的数据处理装置,包括:
交互模块,用于获取SQL拓展语句和数据表;所述SQL拓展语句为SQL标准语句中至少一个数据处理表达式增加特征签名得到;
SQL编译引擎模块,用于对所述SQL拓展语句进行拓展编译,生成带有特征签名的逻辑执行计划;
离线引擎模块,用于基于所述带有特征签名的逻辑执行计划,对所述数据表进行列处理,得到特征数据;基于所述特征数据生成用于机器学习的样本文件。
第三方面,本公开实施例提出一种电子设备,包括:处理器和存储器;所述处理器通过调用所述存储器存储的程序或指令,用于执行如第一方面所述基于SQL的数据处理方法的步骤。
第四方面,本公开实施例提出一种非暂态计算机可读存储介质,用于存储程序或指令,所述程序或指令使计算机执行如第一方面所述基于SQL的数据处理方法的步骤。
可见,本公开的至少一个实施例中,通过对SQL标准语句中的数据处理表达式增加特征签名,实现拓展SQL语句,进而在对数据表进行SQL数据处理的过程中,基于特征签名实现对数据的特征处理,也即在一个任务同时完成SQL数据处理和特征处理,从而可直接生成用于机器学习的带特征的样本文件,可解决现有技术中SQL描述和存储高维数据效率较低,且需要单独编写程序来为每列数据进行特征签名,才能导出机器学习场景可使用的样本文件,生成样本文件效率较低的问题。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是本公开实施例提供的一种基于SQL的数据处理装置的示例性框图;
图2是本公开实施例提供的另一种基于SQL的数据处理装置的示例性框图;
图3是本公开实施例提供的一种电子设备的示例性框图;
图4是本公开实施例提供的一种基于SQL的数据处理方法的示例性流程图;
图5是本公开实施例提供的另一种基于SQL的数据处理方法的示例性流程图。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面结合附图和实施例对本公开作进一步的详细说明。可以理解的是,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。此处所描述的具体实施例仅仅用于解释本公开,而非对本公开的限定。基于所描述的本公开的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本公开保护的范围。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
本公开的发明人发现:
在SQL中描述和存储高维的数据效率较低,而在机器学习场景中,稀疏特征通常为高维的数据。因此,针对机器学习场景,在SQL中无法描述单列数据是否为稀疏特征,也即在SQL中没有进行稀疏特征签名的方法。进而在SQL中也没有针对机器学习场景进行稠密特征签名的方法和描述标签列的方法。
用户使用SQL进行数据处理后,还需要编写程序来为每列数据进行特征签名(也即描述单列数据是标签列、稀疏特征数据还是稠密特征数据),才能导出机器学习场景可使用的样本文件,因此生成样本文件的效率较低。
另外,SQL数据处理和列数据的特征签名属于两个分开的过程,需要采用两个程序分别进行SQL数据处理和列数据的特征签名,两个程序除了各自需要消耗计算硬件资源进行程序运行、数据计算和数据存储等,还需要双方交互数据,导致耗时较长。
本公开的发明人考虑:
拓展SQL语句,在标准SQL语句的基础上,新增针对机器学习场景的特征签名功能,不仅能实现SQL本身的数据处理功能,而且能实现列数据的特征签名功能,这样就能采用一个程序实现SQL数据处理和列数据的特征签名,直接导出机器学习场景可使用的样本文件,提高生成样本文件的效率。并且相比采用两个程序,采用一个程序实现SQL数据处理和列数据的特征签名,无需消耗更多的计算硬件资源,也无需与其他程序交互数据,使得耗时较少。
基于上述考虑,本公开实施例提供一种基于SQL的数据处理方法、装置、电子设备和非暂态计算机可读存储介质,通过对SQL标准语句中的数据处理表达式增加特征签名,实现拓展SQL语句,进而在对数据表进行SQL数据处理的过程中,基于特征签名实现对数据的特征处理,也即在一个任务同时完成SQL数据处理和特征处理,从而可直接生成用于机器学习的带特征的样本文件,可解决现有技术中SQL描述和存储高维数据效率较低,且需要单独编写程序来为每列数据进行特征签名,才能导出机器学习场景可使用的样本文件,生成样本文件效率较低的问题。并且相比采用两个程序,本公开实施例可采用一个程序实现SQL数据处理和列数据的特征签名,无需消耗更多的计算硬件资源,也无需与其他程序交互数据,使得耗时较少。
图1为本公开实施例提供的一种基于SQL的数据处理装置100的示例性框图。如图1所示,基于SQL的数据处理装置100包括:交互模块101、SQL编译引擎模块102、离线引擎模块103以及其他用于辅助数据处理的组件,例如离线数据库、在线数据库等。
交互模块101,用于获取SQL拓展语句。所述SQL拓展语句相比SQL标准语句,除了具有SQL标准语句的数据处理功能之外,还具有特征签名功能,其中所述SQL标准语句可以理解为现有技术中所使用的SQL语句。在一些实施例中,所述SQL拓展语句是SQL标准语句中至少一个数据处理表达式增加特征签名得到,其中,所述特征签名用于描述由列数据生成特征数据的方式。
在一些实施例中,特征签名为标签(label)、离散特征(discrete)和稠密特征(continuous)中的一个或多个,其中所述离散特征可以理解为稀疏特征;所述稠密特征可以理解为连续特征。
在一些实施例中,若特征签名为label,则由列数据生成特征数据的方式为:存储label对应的列数据;若特征签名为discrete,则由列数据生成特征数据的方式为:将discrete对应的列数据生成为高维的特征数据;若特征签名为discrete,则由列数据生成特征数据的方式为:将discrete对应的列数据生成为一维的特征数据。
例如,SQL标准SELECT语句如下:
SELECT clicked,
gender,
school,
sum(age)OVER w,
avg(age)OVER w,
min(age)OVER w,
max(age)OVER w,
FROM t1
WINDOW w AS(PARTITION BY gender ORDER BY createTime ROWS INTERVAL10DAYS PRECEDING)
本领域技术人员可以理解上述SQL标准SELECT语句的具体含义,在此不对上述SQL标准SELECT语句中的每个单词进行解释。在下文中仅对涉及本公开实施例的单词进行说明,以明确本公开实施例的实现方式。
SQL标准SELECT语句增加特征签名后得到的拓展SQL语句如下:
SELECT label(clicked),
discrete(gender),
discrete(school),
continuous(sum(age)OVER w),
continuous(avg(age)OVER w),
continuous(min(age)OVER w),
continuous(max(age)OVER w),
FROM t1
WINDOW w AS(PARTITION BY gender ORDER BY createTime ROWS INTERVAL10DAYS PRECEDING)
上述拓展SQL语句中,对于数据处理表达式:sum(age)OVER w,增加的特征标签为continuous(稠密特征),对于数据处理表达式:gender,增加的特征标签为discrete(离散特征),对数据处理表达式:clicked,增加的特征标签为discrete(离散特征),以上仅为举例说明,本领域技术人员可以理解,对于不同的SQL标准语句,均可以增加特征签名,用于描述经过SQL标准语句处理后的数据生成特征数据的方式。
可见,拓展SQL语句不仅描述了数据处理过程,例如在特定窗口中计算年龄的总和(sum)、均值(avg)、最大值(max)、最小值(min),而且对于每一列都进行了必要的签名工作,例如声明clicked为标签列、对gender和school需要以离散特征、其他特征则以稠密特征来处理。通过加入label、discrete、contiuous这几个特征签名,不仅是声明了每一列作为特征时需要处理的逻辑不同,在最终导出结果时SQL标准语句的输出只能导出数据表格式,而SQL拓展语句的输出可以导出标识超高维特征的样本格式。
在一些实施例中,所述交互模块101还用于获取数据表。由于SQL需要以表的形式来组织数据,为了便于后续其他模块利用SQL拓展语句处理数据,因此,所述交互模块101获取的是数据表。在一些实施例中,所述交互模块101可以获取整张数据表,也可以获取数据表中的一行数据(也可以称为一条数据),也即所述交互模块101每次获取一条数据,后续其他模块或所述交互模块101可基于数据表属性信息,将多条数据合为一张数据表。其中所述数据表属性信息描述了数据表包括的列数及每列的数据属性,所述数据属性例如gender(性别)和school(学校)为离散类字段,sum(计算总和)、avg(计算均值)、min(计算最小值)和max(计算最大值)为连续类字段等。所述数据表属性信息也是由所述交互模块101来获取。
在一些实施例中,所述交互模块101为具有人机交互界面的模块,所述人机交互界面可使用户输入SQL拓展语句,用户可根据机器学习场景的特征工程方法,来编写SQL拓展语句。所述人机交互界面也可使用户输入数据表或其他信息,相应地,所述交互模块101可通过所述人机交互界面来获取用户输入的信息,例如数据表属性信息。在一些实施例中,所述交互模块101还可以提供其他形式的数据接口,例如应用编程接口(API,ApplicationProgramming Interface),以便能够获取到SQL拓展语句和数据表。
SQL编译引擎模块102,用于对SQL拓展语句进行拓展编译,生成带有特征签名的逻辑执行计划。由于所述交互模块101获取的是SQL拓展语句,而SQL标准编译引擎只能编译SQL标准语句,而无法编译SQL拓展语句,其中所述SQL标准编译引擎可以理解为现有技术中所使用的SQL编译引擎,例如MySQL、Spark等内置的SQL编译器。不同于SQL标准编译引擎,本实施例中的SQL编译引擎模块102支持特征签名,可以对SQL拓展语句进行拓展编译。
在一些实施例中,SQL编译引擎模块102可解析SQL拓展语句得到多个关键字和特征签名。本实施例中,SQL编译引擎模块102可以解析出SQL拓展语句中的关键字,SQL拓展语句的关键字与SQL标准语句的关键字相同,不再赘述,另外,SQL编译引擎模块102可以解析出SQL拓展语句中的特征签名,这是现有SQL编译器无法实现的。在一些实施例中,SQL编译引擎模块102通过词法解析器解析SQL拓展语句得到多个关键字和特征签名。其中,所述词法解析器对SQL拓展语句中关键字的解析方式与现有词法解析器相同,不再赘述。所述词法解析器对SQL拓展语句中特征签名的解析方式需要预先定制开发。
在一些实施例中,SQL编译引擎模块102可基于解析出来的多个关键字和特征签名,生成抽象语法树。本实施例中,由关键字生成抽象语法树是现有SQL编译器均能实现的功能,SQL编译引擎模块102是将特征签名也作为关键字来生成抽象语法树。生成抽象语法树的方式是本领域的常用手段,在此不再赘述。在一些实施例中,SQL编译引擎模块102通过语法解析器将解析出来的多个关键字和特征签名按照语法规则生成抽象语法树。
在一些实施例中,SQL编译引擎模块102可基于抽象语法树生成带有特征签名的逻辑执行计划,其中所述逻辑执行计划用于描述计算逻辑关系,包括多个计算节点。本实施例中,SQL编译引擎模块102可通过遍历抽象语法树生成逻辑执行计划,这与现有SQL编译器生成逻辑执行计划的方式相同,不再赘述。不同的是:由于新增了label、discrete、continuous这几个特征签名作为关键字,因此,在遍历抽象语法树的FunctionCall(函数调用)节点时,需要对涉及的数据处理表达式节点进行检查,如果出现这几个特征签名,就需要记录数据处理表达式以及特征签名所描述的由列数据生成特征数据的方式,例如,对于label列的数据直接存储,对于discrete列通过哈希算法计算得到高维的稀疏特征数据,对于continuous列则保留原始值生成一维的稠密特征数据。
在一些实施例中,SQL编译引擎模块102的各种功能可基于开源的Antlr4项目和Presto项目中的SqlBase.g4语法文件,通过重载Visitor的方法实现,其中重载Visitor的方法属于本领域技术人员可以理解的方法,不再赘述。所述SQL编译引擎模块102生成的带有特征签名的逻辑执行计划可以应用在各种数据处理平台,例如Spark、Presto等。
离线引擎模块103,用于基于SQL编译引擎模块102生成的带有特征签名的逻辑执行计划,对所述交互模块101获取的数据表进行列处理,得到特征数据。在一些实施例中,离线引擎模块103可以将逻辑执行计划的每个计算节点都转化为离线计算的节点,然后使用Spark等大数据计算框架来提交离线数据处理任务。需要说明的是,由于所述带有特征签名的逻辑执行计划是SQL拓展语句得到,因此,基于所述逻辑执行计划对数据表进行列处理包括两方面的内容,一方面是SQL数据处理,也可以理解为SQL标准语句的数据处理,另一方面是基于特征签名对数据的特征处理,例如基于特征签名对SQL数据处理后得到的数据进行特征处理,得到特征数据。在一些实施例中,离线引擎模块103基于所述特征签名为标签,存储所述标签对应的列数据;基于所述特征签名为离散特征,将所述离散特征对应的列数据生成为高维的特征数据;基于所述特征签名为稠密特征,将所述稠密特征对应的列数据生成为一维的特征数据。
在一些实施例中,离线引擎模块103可基于所述特征数据生成用于机器学习的样本文件。本实施例中,由于所述特征数据可以为超高维的稀疏特征数据,如果直接保存为表数据,会因为数据维度过高导致存储和读取数据效率极低,因此SQL拓展语句的输出格式支持直接导出支持稀疏特征数据的样本格式而不是数据表格式。例如支持稀疏特征数据的样本格式为LIBSVM格式。在一些实施例中,离线引擎模块103将所述特征数据输出为具有预设样本格式的样本文件。本实施例中,预设样本格式可由用户指定,预设样本格式例如LIBSVM或者TFRecords等样本格式。离线引擎模块103在计算discrete和continuous的特征后直接以LIBSVM或TFRecords的格式规范来生成输出样本文件。
基于对数据处理装置100各模块的描述,用户只需要编写一个SQL拓展语句,数据处理装置100就可以完成SQL数据处理和特征处理两个阶段,而且可以生成支持超高维稀疏特征的样本文件,直接给开源机器学习训练框架使用,提高机器学习模型训练的效率。
图2为本公开实施例提供的另一种基于SQL的数据处理装置200的示例性框图。在一些实施例中,数据处理装置200可以实现为图1中的数据处理装置100或者数据处理装置100的一部分。
如图2所示,基于SQL的数据处理装置200可划分为多个模块,例如可包括:交互模块201、SQL编译引擎模块202、离线引擎模块203、机器学习训练模块204、在线引擎模块205以及其他用于辅助数据处理的组件,例如离线数据库、在线数据库等。。
其中,交互模块201、SQL编译引擎模块202、离线引擎模块203可实现为图1中的交互模块101、SQL编译引擎模块102、离线引擎模块103,在此不再赘述。
所述机器学习训练模块204,用于基于所述离线引擎模块203生成的样本文件进行机器学习模型训练,得到机器学习模型。例如,可以使用开源的机器学习框架,例如Scikit-learn、TensorFlow等,直接读取样本文件进行机器学习模型训练。
所述在线引擎模块205,用于基于所述SQL编译引擎模块202生成的带有特征签名的逻辑执行计划,对实时在线获取的所述数据表的行数据进行处理,得到所述行数据对应的预估样本。在一些实施例中,在线引擎模块205可以将逻辑执行计划的每个计算节点都转化为在线的实时处理函数,对实时在线获取的数据表中的一行数据(也可以称为一条数据),通过在线的实时处理函数对这一条数据进行处理,得到对应的预估样本。
在一些实施例中,所述在线引擎模块205,还用于基于所述行数据对应的预估样本,通过机器学习模型生成预估结果;其中,所述机器学习模型为机器学习训练模块204基于所述离线引擎模块203生成的样本文件进行机器学习模型训练得到。
在一些实施例中,基于SQL的数据处理装置200中各模块的划分仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如交互模块201、SQL编译引擎模块202、离线引擎模块203、机器学习训练模块204和在线引擎模块205中的至少两个模块可以实现为一个模块;交互模块201、SQL编译引擎模块202、离线引擎模块203、机器学习训练模块204或在线引擎模块205也可以划分为多个子模块。可以理解的是,各个模块或子模块能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能。
图3是本公开实施例提供的一种电子设备的结构示意图。如图3所示,电子设备包括:至少一个处理器301、至少一个存储器302和至少一个通信接口303。电子设备中的各个组件通过总线系统304耦合在一起。通信接口303,用于与外部设备之间的信息传输。可理解地,总线系统304用于实现这些组件之间的连接通信。总线系统304除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但为了清楚说明起见,在图3中将各种总线都标为总线系统304。
可以理解,本实施例中的存储器302可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。
在一些实施方式中,存储器302存储了如下的元素,可执行单元或者数据结构,或者他们的子集,或者他们的扩展集:操作系统和应用程序。
其中,操作系统,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序,包含各种应用程序,例如媒体播放器(Media Player)、浏览器(Browser)等,用于实现各种应用业务。实现本公开实施例提供的基于SQL的数据处理方法的程序可以包含在应用程序中。
在本公开实施例中,处理器301通过调用存储器302存储的程序或指令,具体的,可以是应用程序中存储的程序或指令,处理器301用于执行本公开实施例提供的基于SQL的数据处理方法各实施例的步骤。
本公开实施例提供的基于SQL的数据处理方法可以应用于处理器301中,或者由处理器301实现。处理器301可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器301中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器301可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本公开实施例提供的基于SQL的数据处理方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件单元组合执行完成。软件单元可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器302,处理器301读取存储器302中的信息,结合其硬件完成方法的步骤。
图4为本公开实施例提供的一种基于SQL的数据处理方法的示例性流程图。该方法的执行主体为电子设备,为便于描述,以下实施例中以电子设备为执行主体说明基于SQL的数据处理方法的流程。
在步骤401中,电子设备获取SQL拓展语句和数据表;所述SQL拓展语句为SQL标准语句中至少一个数据处理表达式增加特征签名得到。其中,所述特征签名用于描述由列数据生成特征数据的方式。在一些实施例中,特征签名为标签(label)、离散特征(discrete)和稠密特征(continuous)中的一个或多个,其中所述离散特征可以理解为稀疏特征;所述稠密特征可以理解为连续特征。
在一些实施例中,若特征签名为label,则由列数据生成特征数据的方式为:存储label对应的列数据;若特征签名为discrete,则由列数据生成特征数据的方式为:将discrete对应的列数据生成为高维的特征数据;若特征签名为discrete,则由列数据生成特征数据的方式为:将discrete对应的列数据生成为一维的特征数据。
在一些实施例中,电子设备可以获取整张数据表,也可以获取数据表中的一行数据(也可以称为一条数据),也即每次获取一条数据,基于数据表属性信息,将多条数据合为一张数据表。其中所述数据表属性信息描述了数据表包括的列数及每列的数据属性。
在一些实施例中,电子设备为具有人机交互界面的设备,所述人机交互界面可使用户输入SQL拓展语句,用户可根据机器学习场景的特征工程方法,来编写SQL拓展语句。所述人机交互界面也可使用户输入数据表或其他信息,相应地,电子设备可通过所述人机交互界面来获取用户输入的信息,例如数据表属性信息。在一些实施例中,电子设备还可以提供其他形式的数据接口,例如应用编程接口(API,Application Programming Interface),以便能够获取到SQL拓展语句和数据表。
在步骤402中,电子设备对所述SQL拓展语句进行拓展编译,生成带有特征签名的逻辑执行计划。在一些实施例中,电子设备可解析SQL拓展语句得到多个关键字和特征签名;进而基于解析出来的多个关键字和特征签名,生成抽象语法树;从而基于抽象语法树生成带有特征签名的逻辑执行计划,其中所述逻辑执行计划用于描述计算逻辑关系,包括多个计算节点。
例如,电子设备通过词法解析器解析SQL拓展语句得到多个关键字和特征签名,进而通过语法解析器将解析出来的多个关键字和特征签名按照语法规则生成抽象语法树;从而通过遍历抽象语法树生成逻辑执行计划。由于新增了label、discrete、continuous这几个特征签名作为关键字,因此,在遍历抽象语法树的FunctionCall(函数调用)节点时,需要对涉及的数据处理表达式节点进行检查,如果出现这几个特征签名,就需要记录数据处理表达式以及特征签名所描述的由列数据生成特征数据的方式,例如,对于label列的数据直接存储,对于discrete列通过哈希算法计算得到高维的稀疏特征数据,对于continuous列则保留原始值生成一维的稠密特征数据。
在步骤403中,电子设备基于所述带有特征签名的逻辑执行计划,对所述数据表进行列处理,得到特征数据。在一些实施例中,电子设备可将逻辑执行计划的每个计算节点都转化为离线计算的节点,然后使用Spark等大数据计算框架来提交离线数据处理任务。在一些实施例中,电子设备基于所述特征签名为标签,存储所述标签对应的列数据;基于所述特征签名为离散特征,将所述离散特征对应的列数据生成为高维的特征数据;基于所述特征签名为稠密特征,将所述稠密特征对应的列数据生成为一维的特征数据。
在步骤404中,电子设备基于所述特征数据生成用于机器学习的样本文件。在一些实施例中,电子设备将所述特征数据输出为具有预设样本格式的样本文件。所述预设样本格式可由用户指定,预设样本格式例如LIBSVM或者TFRecords等样本格式。
图5为本公开实施例提供的一种基于SQL的数据处理方法的示例性流程图。该方法的执行主体为电子设备,为便于描述,以下实施例中以电子设备为执行主体说明基于SQL的数据处理方法的流程。步骤501至步骤504可与图4中步骤401至步骤404相同,不再赘述。
在步骤505中,电子设备基于所述样本文件进行机器学习模型训练,得到机器学习模型。例如,可以使用开源的机器学习框架,例如Scikit-learn、TensorFlow等,直接读取样本文件进行机器学习模型训练。
在步骤506中,电子设备基于所述带有特征签名的逻辑执行计划,对实时在线获取的所述数据表的行数据进行处理,得到所述行数据对应的预估样本。在一些实施例中,电子设备可以将逻辑执行计划的每个计算节点都转化为在线的实时处理函数,对实时在线获取的数据表中的一行数据(也可以称为一条数据),通过在线的实时处理函数对这一条数据进行处理,得到对应的预估样本。
在步骤507中,电子设备基于所述行数据对应的预估样本,通过机器学习模型生成所述预估样本的预估结果;其中,所述机器学习模型基于所述样本文件进行机器学习模型训练得到。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员能够理解,本公开实施例并不受所描述的动作顺序的限制,因为依据本公开实施例,某些步骤可以采用其他顺序或者同时进行。另外,本领域技术人员能够理解,说明书中所描述的实施例均属于可选实施例。
本公开实施例还提出一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储程序或指令,所述程序或指令使计算机执行如基于SQL的数据处理方法各实施例的步骤,为避免重复描述,在此不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本公开的范围之内并且形成不同的实施例。
本领域的技术人员能够理解,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
虽然结合附图描述了本公开的实施方式,但是本领域技术人员可以在不脱离本公开的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (10)
1.一种基于SQL的数据处理方法,其特征在于,包括:
获取SQL拓展语句和数据表;所述SQL拓展语句为SQL标准语句中至少一个数据处理表达式增加特征签名得到;
对所述SQL拓展语句进行拓展编译,生成带有特征签名的逻辑执行计划;
基于所述带有特征签名的逻辑执行计划,对所述数据表进行列处理,得到特征数据;
基于所述特征数据生成用于机器学习的样本文件。
2.根据权利要求1所述的方法,其特征在于,所述特征签名用于描述由列数据生成特征数据的方式。
3.根据权利要求1所述的方法,其特征在于,所述特征签名为:标签、离散特征或稠密特征。
4.根据权利要求1所述的方法,其特征在于,所述对所述SQL拓展语句进行拓展编译,生成带有特征签名的逻辑执行计划,包括:
解析所述SQL拓展语句得到多个关键字和所述特征签名;
基于所述多个关键字和所述特征签名,生成抽象语法树;
基于所述抽象语法树生成带有特征签名的逻辑执行计划。
5.根据权利要求3所述的方法,其特征在于,所述基于所述带有特征签名的逻辑执行计划,对所述数据表进行列处理,包括:
基于所述特征签名为标签,存储所述标签对应的列数据;
基于所述特征签名为离散特征,将所述离散特征对应的列数据生成为高维的特征数据;
基于所述特征签名为稠密特征,将所述稠密特征对应的列数据生成为一维的特征数据。
6.根据权利要求1所述的方法,其特征在于,基于所述特征数据生成用于机器学习的样本文件,包括:
将所述特征数据输出为具有预设样本格式的样本文件。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
基于所述样本文件进行机器学习模型训练,得到机器学习模型。
8.一种基于SQL的数据处理装置,其特征在于,包括:
交互模块,用于获取SQL拓展语句和数据表;所述SQL拓展语句为SQL标准语句中至少一个数据处理表达式增加特征签名得到;
SQL编译引擎模块,用于对所述SQL拓展语句进行拓展编译,生成带有特征签名的逻辑执行计划;
离线引擎模块,用于基于所述带有特征签名的逻辑执行计划,对所述数据表进行列处理,得到特征数据;基于所述特征数据生成用于机器学习的样本文件。
9.一种电子设备,其特征在于,包括:处理器和存储器;
所述处理器通过调用所述存储器存储的程序或指令,用于执行如权利要求1至7任一项所述方法的步骤。
10.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储程序或指令,所述程序或指令使计算机执行如权利要求1至7任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010534504.7A CN111752967A (zh) | 2020-06-12 | 2020-06-12 | 基于sql的数据处理方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010534504.7A CN111752967A (zh) | 2020-06-12 | 2020-06-12 | 基于sql的数据处理方法、装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111752967A true CN111752967A (zh) | 2020-10-09 |
Family
ID=72675132
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010534504.7A Pending CN111752967A (zh) | 2020-06-12 | 2020-06-12 | 基于sql的数据处理方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111752967A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180357565A1 (en) * | 2017-06-13 | 2018-12-13 | Google Inc. | Large-Scale In-Database Machine Learning with Pure SQL |
CN110046169A (zh) * | 2019-03-12 | 2019-07-23 | 阿里巴巴集团控股有限公司 | 基于结构化查询语言语句的计算服务实现方案 |
CN110275889A (zh) * | 2019-06-26 | 2019-09-24 | 深圳前海微众银行股份有限公司 | 一种适用于机器学习的特征处理方法及装置 |
-
2020
- 2020-06-12 CN CN202010534504.7A patent/CN111752967A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180357565A1 (en) * | 2017-06-13 | 2018-12-13 | Google Inc. | Large-Scale In-Database Machine Learning with Pure SQL |
CN110046169A (zh) * | 2019-03-12 | 2019-07-23 | 阿里巴巴集团控股有限公司 | 基于结构化查询语言语句的计算服务实现方案 |
CN110275889A (zh) * | 2019-06-26 | 2019-09-24 | 深圳前海微众银行股份有限公司 | 一种适用于机器学习的特征处理方法及装置 |
Non-Patent Citations (1)
Title |
---|
陈迪豪: "基于机器学习场景,如何搭建特征数据管理中台?", 腾讯云:HTTPS://CLOUD.TENCENT.COM/DEVELOPER/ARTICLE/1581715?AREASOURCE=102001.14&TRACEID=JMOSEHRP8_LT5BQFRH8FY, pages 1 - 16 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9298453B2 (en) | Source code analytics platform using program analysis and information retrieval | |
US9239710B2 (en) | Programming language transformations with abstract syntax tree extensions | |
CN110795455B (zh) | 依赖关系解析方法、电子装置、计算机设备及可读存储介质 | |
US20190079741A1 (en) | Pruning Engine | |
JP2023182708A (ja) | 異種にプログラムされたデータ処理システムの自動依存性アナライザ | |
CN106611044B (zh) | 一种sql优化方法及设备 | |
CN110502227B (zh) | 代码补全的方法及装置、存储介质、电子设备 | |
AU2014315619B2 (en) | Methods and systems of four-valued simulation | |
WO2018161509A1 (zh) | 条件编译预处理方法、终端及存储介质 | |
EP3999950B1 (en) | Automatically converting a program written in a procedural programming language into a dataflow graph and related systems and methods | |
US11573790B2 (en) | Generation of knowledge graphs based on repositories of code | |
CN112199416A (zh) | 数据规则生成方法及装置 | |
Baig et al. | Natural language to sql queries: A review | |
CN112000690B (zh) | 解析结构化操作语句的方法和装置 | |
WO2019148797A1 (zh) | 自然语言处理方法、装置、计算机设备和存储介质 | |
CN111142871A (zh) | 一种前端页面开发系统、方法、设备、介质 | |
CN111752967A (zh) | 基于sql的数据处理方法、装置、电子设备和存储介质 | |
CN115374764A (zh) | 一种基于用户故事的需求模型自动生成方法及系统 | |
CN112948419A (zh) | 查询语句处理方法及装置 | |
CN108021559B (zh) | 自然语言理解系统以及语意分析方法 | |
CN112364053A (zh) | 一种搜索优化方法、装置、电子设备及存储介质 | |
Zhu et al. | A supporting tool for syntactic analysis of sofl formal specifications and automatic generation of functional scenarios | |
CN103019801A (zh) | 一种应用于高速数字io波形引擎的编译器 | |
CN116560667B (zh) | 一种基于预编译延迟执行的拆分调度系统及方法 | |
TWI842427B (zh) | 軟體開發系統以及軟體開發方法 |
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 |