CN111178024B - 数据表拼接方法、装置、计算机设备和存储介质 - Google Patents
数据表拼接方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN111178024B CN111178024B CN201911300563.1A CN201911300563A CN111178024B CN 111178024 B CN111178024 B CN 111178024B CN 201911300563 A CN201911300563 A CN 201911300563A CN 111178024 B CN111178024 B CN 111178024B
- Authority
- CN
- China
- Prior art keywords
- data table
- spliced
- column
- data
- original data
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种数据表拼接方法、装置、计算机设备和存储介质,包括:获取原始数据表;通过原始数据表对应的框架的内置函数在原始数据表中添加第一数据列,第一数据列的数据是有序不连续的;通过原始数据表对应的框架的内置函数在原始数据表中添加第二数据列,第二数据列的数据是相同数值的常数;根据第一数据列和第二数据列定义第一窗口规范,根据第一窗口规范通过原始数据表对应的框架的第一窗口函数在原始数据表中添加第一主键列,第一主键列的数据是单调连续递增的;获取目标待拼接数据表,目标待拼接数据表包括第二主键列;将第一主键列和第二主键列进行匹配,根据匹配结果将原始数据表和目标待拼接数据表进行拼接,得到目标拼接数据表。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种数据表拼接方法、装置、计算机设备和存储介质。
背景技术
随着计算机技术的发展,计算机需要计算处理的数据量越来越庞大。针对大规模数据量的处理,可以采用大数据处理系统,例如主流的大数据处理系统Apache Spark。大数据处理系统可以处理多种数据结构的数据表。
传统方式中,在一些特定数据结构的数据表上添加一列数据只能通过对该数据表现有数据列的转换或者只能在该数据表上添加有规律的一列数据,例如添加一列数据全为“男”的“性别”列,传统方法存在无法在该数据表上添加无规律的多列数据的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够在数据表上添加无规律的多列数据的数据表拼接方法、装置、计算机设备和存储介质。
一种数据表拼接方法,所述方法包括:
获取原始数据表;
通过所述原始数据表对应的框架的内置函数在所述原始数据表中添加第一数据列,所述第一数据列的数据是有序不连续的;
通过所述原始数据表对应的框架的内置函数在所述原始数据表中添加第二数据列,所述第二数据列的数据是相同数值的常数;
根据所述第一数据列和第二数据列定义第一窗口规范,根据所述第一窗口规范通过所述原始数据表对应的框架的第一窗口函数在所述原始数据表中添加第一主键列,所述第一主键列的数据是单调连续递增的;
获取目标待拼接数据表,所述目标待拼接数据表包括第二主键列;
将所述第一主键列和第二主键列进行匹配,根据匹配结果将所述原始数据表和目标待拼接数据表进行拼接,得到目标拼接数据表。
在其中一个实施例中,所述获取目标待拼接数据表之前,所述方法还包括:
获取原始待拼接数据表;
当所述原始待拼接数据表和原始数据表的数据结构一致时,通过所述原始数据表对应的框架的内置函数在所述原始待拼接数据表中添加第三数据列,通过所述原始数据表对应的框架的内置函数在所述原始待拼接数据表中添加第四数据列;
根据所述第三数据列和第四数据列定义第二窗口规范,根据所述第二窗口规范通过所述原始数据表对应的框架的第二窗口函数在所述原始待拼接数据表中添加所述第二主键列,得到所述目标待拼接数据表。
在其中一个实施例中,所述方法还包括:
当所述原始待拼接数据表和原始数据表的数据结构不一致,并且所述原始待拼接数据表的数据结构为基础数据结构时,在所述原始待拼接数据表中添加所述第二主键列,得到候选待拼接数据表;
获取所述候选待拼接数据表的数据;
根据所述候选待拼接数据表的数据创建所述目标待拼接数据表,所述目标待拼接数据表和所述原始数据表的数据结构一致。
在其中一个实施例中,所述方法还包括:
当所述原始待拼接数据表和原始数据表的数据结构不一致,并且所述原始待拼接数据表的数据结构为基础数据结构和原始数据表的数据结构之外的其他数据结构时,通过所述原始数据表对应的框架的转换函数将所述原始待拼接数据表的数据结构转换为所述原始数据表的数据结构;
在转换后的原始待拼接数据表中添加所述第三数据列和第四数据列。
在其中一个实施例中,所述根据所述第一数据列和第二数据列定义第一窗口规范,包括:
获取所述原始数据表的预设分区数;
将所述第一数据列作为排序规范列,根据所述预设分区数将所述第二数据列作为分区规范列;
根据所述排序规范列和分区规范列定义第一窗口规范。
在其中一个实施例中,所述将所述第一主键列和第二主键列进行匹配,根据匹配结果将所述原始数据表和目标待拼接数据表进行拼接,得到目标拼接数据表,包括:
获取所述第一主键列和第二主键列;
通过所述原始数据表对应的框架的连接函数将所述第一主键列和第二主键列中相同数据进行合并,将所述相同数据对应的行数据进行拼接,得到初始拼接数据表,所述初始拼接数据表包括第三主键列,所述第三主键列是从所述第一主键列和第二主键列中根据拼接方式确定的;
删除所述第三主键列,得到所述目标拼接数据表。
一种数据表拼接装置,所述装置包括:
数据表获取模块,用于获取原始数据表;获取目标待拼接数据表,所述目标待拼接数据表包括第二主键列;
数据列添加模块,用于通过所述原始数据表对应的框架的内置函数在所述原始数据表中添加第一数据列,所述第一数据列的数据是有序不连续的;通过所述原始数据表对应的框架的内置函数在所述原始数据表中添加第二数据列,所述第二数据列的数据是相同数值的常数;根据所述第一数据列和第二数据列定义第一窗口规范,根据所述第一窗口规范通过所述原始数据表对应的框架的第一窗口函数在所述原始数据表中添加第一主键列,所述第一主键列的数据是单调连续递增的;
数据表拼接模块,用于将所述第一主键列和第二主键列进行匹配,根据匹配结果将所述原始数据表和目标待拼接数据表进行拼接,得到目标拼接数据表。
在其中一个实施例中,所述装置还包括:
数据表生成模块,用于获取原始待拼接数据表;当所述原始待拼接数据表和原始数据表的数据结构一致时,通过所述原始数据表对应的框架的内置函数在所述原始待拼接数据表中添加第三数据列,通过所述原始数据表对应的框架的内置函数在所述原始待拼接数据表中添加第四数据列;根据所述第三数据列和第四数据列定义第二窗口规范,根据所述第二窗口规范通过所述原始数据表对应的框架的第二窗口函数在所述原始待拼接数据表中添加所述第二主键列,得到所述目标待拼接数据表。
在其中一个实施例中,所述数据表生成模块还用于当所述原始待拼接数据表和原始数据表的数据结构不一致,并且所述原始待拼接数据表的数据结构为基础数据结构时,在所述原始待拼接数据表中添加所述第二主键列,得到候选待拼接数据表;获取所述候选待拼接数据表的数据;根据所述候选待拼接数据表的数据创建所述目标待拼接数据表,所述目标待拼接数据表和所述原始数据表的数据结构一致。
在其中一个实施例中,所述数据表生成模块还用于当所述原始待拼接数据表和原始数据表的数据结构不一致,并且所述原始待拼接数据表的数据结构为基础数据结构和原始数据表的数据结构之外的其他数据结构时,通过所述原始数据表对应的框架的转换函数将所述原始待拼接数据表的数据结构转换为所述原始数据表的数据结构;在转换后的原始待拼接数据表中添加所述第三数据列和第四数据列。
在其中一个实施例中,所述数据列添加模块还用于获取所述原始数据表的预设分区数;将所述第一数据列作为排序规范列,根据所述预设分区数将所述第二数据列作为分区规范列;根据所述排序规范列和分区规范列定义第一窗口规范。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取原始数据表;
通过所述原始数据表对应的框架的内置函数在所述原始数据表中添加第一数据列,所述第一数据列的数据是有序不连续的;
通过所述原始数据表对应的框架的内置函数在所述原始数据表中添加第二数据列,所述第二数据列的数据是相同数值的常数;
根据所述第一数据列和第二数据列定义第一窗口规范,根据所述第一窗口规范通过所述原始数据表对应的框架的第一窗口函数在所述原始数据表中添加第一主键列,所述第一主键列的数据是单调连续递增的;
获取目标待拼接数据表,所述目标待拼接数据表包括第二主键列;
将所述第一主键列和第二主键列进行匹配,根据匹配结果将所述原始数据表和目标待拼接数据表进行拼接,得到目标拼接数据表。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取原始数据表;
通过所述原始数据表对应的框架的内置函数在所述原始数据表中添加第一数据列,所述第一数据列的数据是有序不连续的;
通过所述原始数据表对应的框架的内置函数在所述原始数据表中添加第二数据列,所述第二数据列的数据是相同数值的常数;
根据所述第一数据列和第二数据列定义第一窗口规范,根据所述第一窗口规范通过所述原始数据表对应的框架的第一窗口函数在所述原始数据表中添加第一主键列,所述第一主键列的数据是单调连续递增的;
获取目标待拼接数据表,所述目标待拼接数据表包括第二主键列;
将所述第一主键列和第二主键列进行匹配,根据匹配结果将所述原始数据表和目标待拼接数据表进行拼接,得到目标拼接数据表。
上述数据表拼接方法、装置、计算机设备和存储介质,通过获取原始数据表;通过原始数据表对应的框架的内置函数在原始数据表中添加第一数据列,第一数据列的数据是有序不连续的;通过原始数据表对应的框架的内置函数在原始数据表中添加第二数据列,第二数据列的数据是相同数值的常数;根据第一数据列和第二数据列定义第一窗口规范,根据第一窗口规范通过原始数据表对应的框架的第一窗口函数在原始数据表中添加第一主键列,第一主键列的数据是单调连续递增的;获取目标待拼接数据表,目标待拼接数据表包括第二主键列;将第一主键列和第二主键列进行匹配,根据匹配结果将原始数据表和目标待拼接数据表进行拼接,得到目标拼接数据表。根据利用内置函数在原始数据表中添加的数据列定义窗口规范,根据窗口规范通过窗口函数在原始数据表中添加第一主键列。由于目标待拼接数据表包括第二主键列,通过第一主键列和第二主键列的匹配结果可以将原始数据表和目标待拼接数据表拼接起来,也就是向原始数据表添加了目标待拼接数据表的多列数据列。
附图说明
图1为一个实施例中数据表拼接方法的应用环境图;
图2为一个实施例中数据表拼接方法的流程示意图;
图3为一个实施例中生成目标待拼接数据表的流程示意图;
图4为一个实施例中通过创建得到目标待拼接数据表的流程示意图;
图5为一个实施例中通过转换得到目标待拼接数据表的流程示意图;
图6为一个实施例中生成目标拼接数据表的流程示意图;
图7为另一个实施例中数据表拼接方法的流程示意图;
图8为一个实施例中数据表拼接装置的结构框图;
图9为另一个实施例中数据表拼接装置的结构框图;
图10为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但除非特别说明,这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。
本申请提供的数据表拼接方法,可以应用于如图1所示的应用环境中。如图1所示,该应用环境包括终端110和服务器120,终端110和服务器120之间通过网络进行通信,通信网络可以是无线或者有线网络,例如IP网络、蜂窝移动通信网络等。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
具体地,终端110可将原始数据表发送至服务器120,服务器120通过原始数据表对应的框架的内置函数在原始数据表中添加第一数据列,该第一数据列的数据是有序不连续的。服务器120通过原始数据表对应的框架的内置函数在原始数据表中添加第二数据列,该第二数据列的数据是相同的常数。服务器120根据第一数据列和第二数据列定义第一窗口规范,根据第一窗口规范通过原始数据表对应的框架的第一窗口函数在原始数据表中添加第一主键列,该第一主键列是单调连续递增的。服务器120获取目标待拼接数据表,该目标待拼接数据表包括第二主键列,将第一主键列和第二主键列进行匹配,根据匹配结果将原始数据表和待拼接数据表进行拼接,最终得到目标拼接数据表。
在一个实施例中,如图2所示,提供了一种数据表拼接方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
S202,获取原始数据表。
S204,通过原始数据表对应的框架的内置函数在原始数据表中添加第一数据列,第一数据列的数据是有序不连续的。
其中,原始数据表是一个存储有数据的网络虚拟表。原始数据表对应的框架是大数据计算框架。当原始数据表的数据结构为Spark DataFrame时,原始数据表对应的计算框架为Spark。Spark是一种基于内存计算的分布式大数据计算框架,可以同时支持批处理计算和流计算。当原始数据表的数据结构为Spark DataFrame时,为原始数据表添加任意没有规律的一列或多列数据在Spark中是没有做原生支持的。内置函数是计算框架预先定义好的函数。内置函数包括多种类型的函数,可以用于对原始数据表进行分析与处理,功能强大。使用内置函数可以为数据表添加一列数据有序的数据列。
具体地,服务器可以从数据库中获取原始数据表,也可以接收终端发送的原始数据表。接着服务器通过原始数据表对应的框架的内置函数为原始数据表添加一列数据有序的数据,即在原始数据表中添加第一数据列。该数据列的数据可以是单调不连续递增的,也可以是单调不连续递减的。
在一个实施例中,当原始数据表的数据结构为Spark DataFrame时,服务器可以通过Spark的内置函数为原始数据表添加数据有序的一列数据列,即在原始数据表中添加第一数据列。其中,Spark DataFrame是一种分布式的数据集,并且是按列存储,有对应列的描述。
S206,通过原始数据表对应的框架的内置函数在原始数据表中添加第二数据列,第二数据列的数据是相同数值的常数。
其中,使用内置函数可以给数据表添加一列数据数值全为相同常数的数据列。
具体地,服务器通过原始数据表对应的框架的内置函数为原始数据表添加一列数据数值全为相同常数的数据,即在原始数据表中添加第二数据列。
在一个实施例中,当原始数据表的数据结构为Spark DataFrame时,服务器可以通过Spark的内置函数为原始Spark DataFrame添加一列数值全为1的数据列。
S208,根据第一数据列和第二数据列定义第一窗口规范,根据第一窗口规范通过原始数据表对应的框架的第一窗口函数在原始数据表中添加第一主键列,第一主键列的数据是单调连续递增的。
其中,窗口函数是计算框架中的一种内置函数,用于对一组数据进行操作,同时为每条数据返回单个结果。Spark支持三类窗口函数:排名函数、分析函数和聚合函数。调用窗口函数需要先定义窗口规范。窗口规范包括分区规范和排序规范。分区规范是指定义数据表中的哪些行属于相同的分区。数据表中相同分区的数据存储在一个节点上,不同分区的数据存储在不同的节点上。若没有指定分区规范,那么数据表中所有的数据只会存储在一个节点上,对数据表进行计算处理的速度会非常慢。排序规范是指定义同一个分区中所有数据的排序方式,用于确定某一行在它所属分区中的具体位置。主键列是一列唯一标识数据表中行数据的数据列。主键列可以是从1开始的单调连续递增的ID(Identity Document)列。
具体地,因为无法直接为数据结构为Spark DataFrame的原始数据表添加一列单调连续递增的数据列,所以服务器需要根据第一数据列和第二数据列定义第一窗口函数对应的第一窗口规范,进而服务器通过第一窗口函数在原始数据表中添加第一主键列。
在一个实施例中,第一主键列可以是从1开始单调连续递增的ID(IdentityDocument)列。窗口函数可以是Spark的排名函数。具体地,服务器根据第一数据列和第二数据列定义Spark的排名函数的窗口规范,再通过该排名函数在原始数据表中添加从1开始单调连续递增的ID(Identity Document)列。
在一个实施例中,根据第一数据列和第二数据列定义第一窗口规范的步骤具体包括:获取原始数据表的预设分区数;将第一数据列作为排序规范列,根据预设分区数将第二数据列作为分区规范列,根据排序规范列和分区规范列定义第一窗口规范。
其中,预设分区数是指预先设置的原始数据表的分区数。当原始数据表的数据结构为Spark DataFrame时,预设分区数的设置可以通过Spark的shuffle操作。数据表的分区数的合理设置可以提高数据表的计算速度。
具体地,服务器获取原始数据表的预设分区数。调用窗口函数必须先定义窗口规范,窗口规范包括分区规范和排序规范。第一数据列是一列数据有序的数据列,利用第一数据列的有序性作为排序规范列。第二数据列是一列数据数值全为常数的数据列,根据原始数据表的预设分区数将第二数据列作为分区规范列。根据排序规范列和分区规范列定义窗口函数对应的窗口规范,再通过窗口函数在原始数据表中添加主键列,最后删除排序规范列和分区规范列。
通过排序规范列和分区规范列定义窗口函数对应的窗口规范,通过该窗口函数为原始数据表添加主键列,可以保证主键列按照原始数据表原有的顺序递增。举个例子,原始数据表有8行8列数据,已知该原始数据表的第1至3行为一个分区,第4至7行为一个分区,第8行为一个分区。为原始数据表添加第9列和第10列,第9列的数据全为1,第10列的数据为1、2、3、5、7、9、11、12,通过第9列、第10列和分区数定义窗口函数对应的窗口规范,通过该窗口函数为原始数据表添加第11列主键列,第11列的数据为1至8。若不添加第9列,最终得到的第11列主键列的数据为1、2、3、1、2、3、4、1,该主键列和目标待拼接数据表的主键列匹配会出现混乱。
S210,获取目标待拼接数据表,目标待拼接数据表包括第二主键列。
其中,目标待拼接数据表是一个数据表,用于和原始数据表进行拼接。目标待拼接数据表包括至少两列数据列,其中一列数据列为第二主键列,其余数据列的数据为需要和原始数据表的数据进行拼接的具体数据。第二主键列可以是从1开始的单调连续递增的ID列,也可以是单调不连续递增的ID列。例如,若目标待拼接数据表包括5行数据,那么第二主键列从第一行到第五行的数据可以是1、2、3、4、5,也可以是1、3、5、7、9。目标待拼接数据表的数据结构和原始数据表的数据结构一致。例如,当原始数据表的数据结构为SparkDataFrame时,目标待拼接数据表的数据结构也为Spark DataFrame。
S212,将第一主键列和第二主键列进行匹配,根据匹配结果将原始数据表和目标待拼接数据表进行拼接,得到目标拼接数据表。
其中,目标拼接数据表是拼接后得到的数据表。
具体地,服务器将原始数据表的第一主键列和目标待拼接数据表的第二主键列进行匹配,根据匹配结果将原始数据表和目标待拼接数据表拼接在一起,得到目标拼接数据表。匹配的具体过程可以是服务器获取原始数据表的第一主键列和目标待拼接数据表的第二主键列,查找第一主键列和第二主键列中相同的数据,将相同的数据对应的原始数据表的数据行和目标待拼接数据表的数据行拼接在一起,删除主键列,最终得到目标拼接数据表。
上述数据表拼接方法中,通过获取原始数据表;通过原始数据表对应的框架的内置函数在原始数据表中添加第一数据列,第一数据列的数据是有序不连续的;通过原始数据表对应的框架的内置函数在原始数据表中添加第二数据列,第二数据列的数据是相同数值的常数;根据第一数据列和第二数据列定义第一窗口规范,根据第一窗口规范通过原始数据表对应的框架的第一窗口函数在原始数据表中添加第一主键列,第一主键列的数据是单调连续递增的;获取目标待拼接数据表,目标待拼接数据表包括第二主键列;将第一主键列和第二主键列进行匹配,根据匹配结果将原始数据表和目标待拼接数据表进行拼接,得到目标拼接数据表。根据利用内置函数在原始数据表中添加的数据列定义窗口规范,根据窗口规范通过窗口函数在原始数据表中添加第一主键列。由于目标待拼接数据表包括第二主键列,通过第一主键列和第二主键列的匹配结果可以将原始数据表和目标待拼接数据表拼接起来,也就是向原始数据表添加了目标待拼接数据表的多列数据列。
在一个实施例中,如图3所示,在获取目标待拼接数据表之前,该方法还包括:
S302,获取原始待拼接数据表。
S304,当原始待拼接数据表和原始数据表的数据结构一致时,通过原始数据表对应的框架的内置函数在原始待拼接数据表中添加第三数据列,通过原始数据表对应的框架的内置函数在原始待拼接数据表中添加第四数据列。
其中,原始待拼接数据表的数据结构可以是和原始数据表的数据结构相同,也可以和原始数据表的数据结构不同。例如,当原始数据表的数据结构为Spark DataFrame时,原始待接数据表的数据结构可以为Spark RDD,也可以为Panda DataFrame,还可以为二维列表。
具体地,服务器获取原始数据表和原始数据表的数据结构。服务器获取原始待拼接数据表和原始待拼接数据表的数据结构。当原始待拼接数据表的数据结构和原始数据表的数据结构一致时,服务器可以通过原始数据表对应的框架的内置函数为原始待拼接数据表添加数据有序的一列数据列,即在原始待拼接数据表中添加第三数据列。通过原始数据表对应的计算框架的内置函数为原始待拼接数据表添加数据数值全为相同常数的数据列,即在原始待拼接数据表中添加第四数据列。
在一个实施例中,当原始数据表的数据结构为Spark DataFrame,原始待拼接数据表的数据结构也为Spark DataFrame时,服务器可以通过Spark的内置函数为原始待拼接数据表添加数据有序的一列数据列,即在原始待拼接数据表中添加第三数据列。服务器通过Spark的内置函数为原始待拼接数据表添加数据数值全为相同常数的数据列,即在原始待拼接数据表中添加第四数据列。
S306,根据第三数据列和第四数据列定义第二窗口规范,根据第二窗口规范通过原始数据表对应的框架的第二窗口函数在原始待拼接数据表中添加第二主键列,得到目标待拼接数据表。
具体地,服务器根据第三数据列和第四数据列定义第二窗口函数对应的第二窗口规范,进而服务器通过第二窗口函数在原始待拼接数据表中添加第二主键列,得到目标待拼接数据表。
在一个实施例中,当原始数据表的数据结构为Spark DataFrame,原始待拼接数据表的数据结构也为Spark DataFrame时,服务器可以通过Spark的内置函数为原始待拼接数据表添加一列数据等差递增的第一数据列。服务器可以通过Spark的内置函数为原始待拼接数据表添加一列数值全为5的第二数据列。服务器根据第一数据列和第二数据列定义Spark的排名函数的窗口规范,再通过该排名函数在原始待拼接数据表中添加从1开始单调连续递增的ID(Identity Document)列,得到目标待拼接数据表。
上述实施例中,当原始待拼接数据表和原始数据表的数据结构一致时,根据同样的方法为原始待拼接数据表添加第二主键列,得到目标待拼接数据表。进而可以根据原始数据表的第一主键列和目标待拼接数据表的第二主键列将原始数据表和目标待拼接数据表拼接起来。
在一个实施例中,如图4所示,该方法还包括:
S402,当原始待拼接数据表和原始数据表的数据结构不一致,并且原始待拼接数据表的数据结构为基础数据结构时,在原始待拼接数据表中添加第二主键列,得到候选待拼接数据表。
S404,获取候选待拼接数据表的数据。
S406,根据候选待拼接数据表的数据创建目标待拼接数据表,目标待拼接数据表和原始数据表的数据结构一致。
其中,基础数据结构是指数组。数组是数据结构的基础,是连续存储的线性数据结构的总称。数组可以包括多种数据结构,例如多维列表、多维元组、有序集合和有序字典。当原始待拼接数据表的数据结构为基础数据结构时,原始待拼接数据表对应的框架和原始数据表对应的框架是不同的,通过原始数据表对应的框架的内置函数是无法将原始待拼接数据表的数据结构转换成原始数据表的数据结构。
具体地,当原始待拼接数据表的数据结构为基础数据结构时,服务器可以在原始待拼接数据表中先添加一列主键列,得到候选待拼接数据表。该主键列可以是从1开始的单调连续递增的ID列,也可以是单调不连续递增的ID列。接着,服务器再获取候选待拼接数据表中每一列的数据,通过原始数据表对应的框架的创建函数创建目标待拼接数据表,该目标待拼接数据表的数据结构与原始数据表的数据结构相同。
在一个实施例中,原始数据表的数据结构为Spark DataFrame,原始数据表对应的框架为Spark,原始待拼接数据表的数据结构可以是二维列表,原始待拼接数据表对应的框架可以为Python。服务器先通过Python的内置函数在二维列表中添加一列从1开始单调连续递增的数据,得到候选待拼接数据表,从1开始单调连续递增的数据列的列名可以是ID。服务器再获取候选待拼接数据表中每一列的数据和对应的列名,通过Spark的创建函数,输入每一列的数据和对应的列名创建一个数据结构为Spark DataFrame的数据表,该数据表即为目标待拼接数据表。
上述实施例中,若通过原始数据表对应的计算框架的内置函数无法将原始待拼接数据表的数据结构转换为原始数据表的数据结构,服务器可以在原始待拼接数据表中先添加主键列,得到候选待拼接数据表,获取候选待拼接数据表的数据,通过内置函数创建数据结构与原始数据表一致的目标待拼接数据表。数据结构相同的数据表才能通过主键列进行拼接。
在一个实施例中,如图5所示,该方法还包括:
S502,当原始待拼接数据表和原始数据表的数据结构不一致,并且原始待拼接数据表的数据结构为基础数据结构和原始数据表的数据结构之外的其他数据结构时,通过原始数据表对应的框架的转换函数将原始待拼接数据表的数据结构转换为原始数据表的数据结构。
S504,在转换后的原始待拼接数据表中添加第三数据列和第四数据列。
其中,转换函数是计算框架中的一种内置函数,可以用于转换数据表的数据结构。
具体地,当原始待拼接数据表的数据结构和原始数据表的数据结构不一致,但是原始待拼接数据表的数据结构为通过原始数据表对应的计算框架的内置函数可以转换成与原始数据表数据结构一致的数据结构时,服务器可以通过转换函数将原始待拼接数据表的数据结构转换成原始数据表的数据结构。进而服务器使用与在原始数据表中添加第一数据列和第二数据列相同的方法在转换后的原始待拼接数据表中添加第三数据列和第四数据列。
在一个实施例中,原始数据表的数据结构为Spark DataFrame,原始待拼接数据表的数据结构可以为Spark中的其他数据结构。当原始待拼接数据表的数据结构为Spark中的其他数据结构时,服务器根据Spark的转换函数将原始待拼接数据表的数据结构转换为原始数据表的数据结构。例如,当原始待拼接数据表的数据结构为Spark RDD(ResilienntDistributed Datasets,弹性分布式数据集)时,服务器可以根据Spark的转换函数将SparkRDD转换成Spark DataFrame。
在一个实施例中,原始数据表的数据结构为Spark DataFrame,原始待拼接数据表的数据结构可以为Spark DataFrame以外的其他类型的DataFrame。当原始待拼接数据表的数据结构为Spark DataFrame以外的其他类型的DataFrame时,服务器根据Spark的转换函数将原始待拼接数据表的数据结构转换为原始数据表的数据结构。例如,当原始待拼接数据表的数据结构为Panda DataFrame时,服务器可以根据Spark的转换函数将PandaDataFrame转换成Spark DataFrame。
上述实施例中,若原始待拼接数据表的数据结构和原始数据表的数据结构不一致,且原始待拼接数据表的数据结构可以转换成原始数据表的数据结构时,那么可以通过计算框架的转换函数将原始待拼接数据表的数据结构转换成原始数据表的数据结构。数据结构相同的数据表才能通过主键列进行拼接。
在一个实施例中,如图6所示,将第一主键列和第二主键列进行匹配,根据匹配结果将原始数据表和目标待拼接数据表进行拼接,得到目标拼接数据表,包括:
S602,获取第一主键列和第二主键列;
S604,通过原始数据表对应的框架的连接函数将第一主键列和第二主键列中相同数据进行合并,将相同数据对应的行数据进行拼接,得到初始拼接数据表,初始拼接数据表包括第三主键列,第三主键列是从第一主键列和第二主键列中根据拼接方式确定的;
S606,删除第三主键列,得到目标拼接数据表。
其中,连接函数是计算框架中的一种内置函数,用于连接多个数据表。
具体地,服务器先获取原始数据表的第一主键列和目标待拼接数据表的第二主键列。接着,服务器通过原始数据表对应的计算框架的连接函数将第一主键列和第二主键列中相同数据进行合并,并且将相同数据对应的原始数据表的行数据和目标待拼接数据表的行数据拼接在一起,最终得到初始拼接数据表。其中,初始拼接数据表包括第三主键列。第三主键列是第一主键列和第二主键列中的一种,具体可以根据原始数据表和目标待拼接数据表的拼接方式确定。当目标待拼接数据表拼接在原始数据表的右边时,第三主键列为原始数据表的第一主键列。当目标待拼接数据表拼接在原始数据表的左边时,第三主键列为目标待拼接数据表的第二主键列。将初始拼接数据表中的第三主键列删除,得到目标拼接数据表。
在一个实施例中,当原始数据表的数据结构为Spark DataFrame时,服务器可以通过Spark的join将原始数据表和目标待拼接数据表拼接起来。Spark的join支持多种连接方式,包括内连接(Inner Join)、全外连接(Full Outer Join)、左外连接(Left OuterJoin)、右外连接(Right Outer Join)、左半连接(Left Semi Join)、左反连接(Left AntiJoin)、自然连接(Natural Join)和交叉连接(Cross Join)。
在一个实施例中,若原始数据表和目标待拼接数据表的行数不一致,拼接时不存在对应数据的第n行第m列的数据可以填充为null值。
如图7所示,在一个具体的实施例中,数据表拼接方法包括以下内容:
服务器获取数据结构为Spark DataFrame的原始数据表。通过Spark的内置函数为原始数据表添加一列数据单调不连续递增的数据列,将该数据列作为排序规范列。通过Spark的shuffle操作设置原始数据表的分区数。通过Spark的内置函数为原始数据表添加一列数值全为1的数据列,根据分区数将该数据列作为分区规范列。根据排序规范列和分区规范列定义窗口函数对应的窗口规范,通过该窗口函数为原始数据表添加ID列,并删除排序规范列和分区规范列,得到添加了ID列的原始数据表。
服务器获取待拼接数据表,判断待拼接数据表的数据结构是否为SparkDataFrame。如果待拼接数据表的数据结构为Spark DataFrame,那么按照为原始数据表添加ID列的方法为待拼接数据表添加ID列,得到数据结构为Spark DataFrame,添加了ID列的待拼接数据表。
如果待拼接数据表的数据结构不是Spark DataFrame,进而判断待拼接数据表的数据结构能否通过Spark的转换函数将数据结构转换成Spark DataFrame。如果可以,通过Spark的转换函数将待拼接数据表的数据结构转换成Spark DataFrame,按照为原始数据表添加ID列的方法为待拼接数据表添加ID列,得到数据结构为Spark DataFrame,添加了ID列的待拼接数据表。
如果待拼接数据表不可以通过Spark的转换函数将数据结构转换成SparkDataFrame,那么获取待拼接数据表的数据,根据待拼接数据表的数据通过Spark的创建函数创建新的待拼接数据表,该新的待拼接数据表的数据结构为Spark DataFrame。进而按照为原始数据表添加ID列的方法为新的待拼接数据表添加ID列,得到数据结构为SparkDataFrame,添加了ID列的待拼接数据表。或者,先为待拼接数据表添加ID列,再获取待拼接数据表的数据,根据待拼接数据表的数据通过Spark的创建函数创建新的待拼接数据表,该新的待拼接数据表的数据结构为Spark DataFrame,该新的待拼接数据表包括ID列。
根据原始数据表的ID列和待拼接数据表的ID列通过Spark的连接函数将原始数据表和待拼接数据表拼接在一起,删除ID列,得到目标数据表。目标数据表的数据结构为Spark DataFrame。
应该理解的是,虽然上述流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图8所示,提供了一种数据表拼接装置,包括:数据表获取模块802、数据列添加模块804和数据表拼接模块806,其中:
数据表获取模块802,用于获取原始数据表;获取目标待拼接数据表,目标待拼接数据表包括第二主键列;
数据列添加模块804,用于通过原始数据表对应的框架的内置函数在原始数据表中添加第一数据列,第一数据列的数据是有序不连续的;通过原始数据表对应的框架的内置函数在原始数据表中添加第二数据列,第二数据列的数据是相同数值的常数;根据第一数据列和第二数据列定义第一窗口规范,根据第一窗口规范通过原始数据表对应的框架的第一窗口函数在原始数据表中添加第一主键列,第一主键列的数据是单调连续递增的;
数据表拼接模块806,用于将第一主键列和第二主键列进行匹配,根据匹配结果将原始数据表和目标待拼接数据表进行拼接,得到目标拼接数据表。
如图9所示,在一个实施例中,该装置还包括:
数据表生成模块801,用于获取原始待拼接数据表;当原始待拼接数据表和原始数据表的数据结构一致时,通过原始数据表对应的框架的内置函数在原始待拼接数据表中添加第三数据列,通过原始数据表对应的框架的内置函数在原始待拼接数据表中添加第四数据列;根据第三数据列和第四数据列定义第二窗口规范,根据第二窗口规范通过原始数据表对应的框架的第二窗口函数在原始待拼接数据表中添加第二主键列,得到目标待拼接数据表。
在一个实施例中,数据表生成模块801还用于当原始待拼接数据表和原始数据表的数据结构不一致,并且原始待拼接数据表的数据结构为基础数据结构时,在原始待拼接数据表中添加第二主键列,得到候选待拼接数据表;获取候选待拼接数据表的数据;根据候选待拼接数据表的数据创建目标待拼接数据表,目标待拼接数据表和原始数据表的数据结构一致。
在一个实施例中,数据表生成模块801还用于当原始待拼接数据表和原始数据表的数据结构不一致,并且原始待拼接数据表的数据结构为基础数据结构和原始数据表的数据结构之外的其他数据结构时,通过原始数据表对应的框架的转换函数将原始待拼接数据表的数据结构转换为原始数据表的数据结构;在转换后的原始待拼接数据表中添加第三数据列和第四数据列。
在一个实施例中,数据列添加模块804还用于获取原始数据表的预设分区数;将第一数据列作为排序规范列,根据预设分区数将第二数据列作为分区规范列;根据排序规范列和分区规范列定义第一窗口规范。
在一个实施例中,数据表拼接模块806还用于获取第一主键列和第二主键列;通过原始数据表对应的框架的连接函数将第一主键列和第二主键列中相同数据进行合并,将相同数据对应的行数据进行拼接,得到初始拼接数据表,初始拼接数据表包括第三主键列,第三主键列是从第一主键列和第二主键列中根据拼接方式确定的;删除第三主键列,得到目标拼接数据表。
上述数据表拼接装置,通过获取原始数据表;通过原始数据表对应的框架的内置函数在原始数据表中添加第一数据列,第一数据列的数据是有序不连续的;通过原始数据表对应的框架的内置函数在原始数据表中添加第二数据列,第二数据列的数据是相同数值的常数;根据第一数据列和第二数据列定义第一窗口规范,根据第一窗口规范通过原始数据表对应的框架的第一窗口函数在原始数据表中添加第一主键列,第一主键列的数据是单调连续递增的;获取目标待拼接数据表,目标待拼接数据表包括第二主键列;将第一主键列和第二主键列进行匹配,根据匹配结果将原始数据表和目标待拼接数据表进行拼接,得到目标拼接数据表。根据利用内置函数在原始数据表中添加的数据列定义窗口规范,根据窗口规范通过窗口函数在原始数据表中添加第一主键列。由于目标待拼接数据表包括第二主键列,通过第一主键列和第二主键列的匹配结果可以将原始数据表和目标待拼接数据表拼接起来,也就是向原始数据表添加了目标待拼接数据表的多列数据列。
关于数据表拼接装置的具体限定可以参见上文中对于数据表拼接方法的限定,在此不再赘述。上述数据表拼接装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图10所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储各种数据表。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据表拼接方法。
本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述数据表拼接方法的步骤。此处数据表拼接方法的步骤可以是上述各个实施例的数据表拼接方法中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述数据表拼接方法的步骤。此处数据表拼接方法的步骤可以是上述各个实施例的数据表拼接方法中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种数据表拼接方法,所述方法包括:
获取原始数据表;
通过所述原始数据表对应的框架的内置函数在所述原始数据表中添加第一数据列,所述第一数据列的数据是有序不连续的;
通过所述原始数据表对应的框架的内置函数在所述原始数据表中添加第二数据列,所述第二数据列的数据是相同数值的常数;
获取所述原始数据表的预设分区数,将所述第一数据列作为排序规范列,根据所述预设分区数将所述第二数据列作为分区规范列,根据所述排序规范列和所述分区规范列定义第一窗口规范,根据所述第一窗口规范通过所述原始数据表对应的框架的第一窗口函数在所述原始数据表中添加第一主键列,所述第一主键列的数据是单调连续递增的;
获取目标待拼接数据表,所述目标待拼接数据表包括第二主键列;
将所述第一主键列和第二主键列进行匹配,根据匹配结果将所述原始数据表和目标待拼接数据表进行拼接,得到目标拼接数据表。
2.根据权利要求1所述的方法,其特征在于,所述获取目标待拼接数据表之前,所述方法还包括:
获取原始待拼接数据表;
当所述原始待拼接数据表和原始数据表的数据结构一致时,通过所述原始数据表对应的框架的内置函数在所述原始待拼接数据表中添加第三数据列,通过所述原始数据表对应的框架的内置函数在所述原始待拼接数据表中添加第四数据列;
根据所述第三数据列和第四数据列定义第二窗口规范,根据所述第二窗口规范通过所述原始数据表对应的框架的第二窗口函数在所述原始待拼接数据表中添加所述第二主键列,得到所述目标待拼接数据表。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
当所述原始待拼接数据表和原始数据表的数据结构不一致,并且所述原始待拼接数据表的数据结构为基础数据结构时,在所述原始待拼接数据表中添加所述第二主键列,得到候选待拼接数据表;
获取所述候选待拼接数据表的数据;
根据所述候选待拼接数据表的数据创建所述目标待拼接数据表,所述目标待拼接数据表和所述原始数据表的数据结构一致。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
当所述原始待拼接数据表和原始数据表的数据结构不一致,并且所述原始待拼接数据表的数据结构为基础数据结构和原始数据表的数据结构之外的其他数据结构时,通过所述原始数据表对应的框架的转换函数将所述原始待拼接数据表的数据结构转换为所述原始数据表的数据结构;
在转换后的原始待拼接数据表中添加所述第三数据列和第四数据列。
5.根据权利要求1所述的方法,其特征在于,所述将所述第一主键列和第二主键列进行匹配,根据匹配结果将所述原始数据表和目标待拼接数据表进行拼接,得到目标拼接数据表,包括:
获取所述第一主键列和第二主键列;
通过所述原始数据表对应的框架的连接函数将所述第一主键列和第二主键列中相同数据进行合并,将所述相同数据对应的行数据进行拼接,得到初始拼接数据表,所述初始拼接数据表包括第三主键列,所述第三主键列是从所述第一主键列和第二主键列中根据拼接方式确定的;
删除所述第三主键列,得到所述目标拼接数据表。
6.根据权利要求5所述的方法,其特征在于,当所述目标待拼接数据表拼接在所述原始数据表的右边时,所述第三主键列为所述原始数据表的第一主键列;当所述目标待拼接数据表拼接在所述原始数据表的左边时,所述第三主键列为所述目标待拼接数据表的第二主键列。
7.一种数据表拼接装置,其特征在于,所述装置包括:
数据表获取模块,用于获取原始数据表;获取目标待拼接数据表,所述目标待拼接数据表包括第二主键列;
数据列添加模块,用于通过所述原始数据表对应的框架的内置函数在所述原始数据表中添加第一数据列,所述第一数据列的数据是有序不连续的;通过所述原始数据表对应的框架的内置函数在所述原始数据表中添加第二数据列,所述第二数据列的数据是相同数值的常数;获取所述原始数据表的预设分区数,将所述第一数据列作为排序规范列,根据所述预设分区数将所述第二数据列作为分区规范列,根据所述排序规范列和所述分区规范列定义第一窗口规范,根据所述第一窗口规范通过所述原始数据表对应的框架的第一窗口函数在所述原始数据表中添加第一主键列,所述第一主键列的数据是单调连续递增的;
数据表拼接模块,用于将所述第一主键列和第二主键列进行匹配,根据匹配结果将所述原始数据表和目标待拼接数据表进行拼接,得到目标拼接数据表。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
数据表生成模块,用于获取原始待拼接数据表;当所述原始待拼接数据表和原始数据表的数据结构一致时,通过所述原始数据表对应的框架的内置函数在所述原始待拼接数据表中添加第三数据列,通过所述原始数据表对应的框架的内置函数在所述原始待拼接数据表中添加第四数据列;根据所述第三数据列和第四数据列定义第二窗口规范,根据所述第二窗口规范通过所述原始数据表对应的框架的第二窗口函数在所述原始待拼接数据表中添加所述第二主键列,得到所述目标待拼接数据表。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911300563.1A CN111178024B (zh) | 2019-12-17 | 2019-12-17 | 数据表拼接方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911300563.1A CN111178024B (zh) | 2019-12-17 | 2019-12-17 | 数据表拼接方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111178024A CN111178024A (zh) | 2020-05-19 |
CN111178024B true CN111178024B (zh) | 2023-09-12 |
Family
ID=70653912
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911300563.1A Active CN111178024B (zh) | 2019-12-17 | 2019-12-17 | 数据表拼接方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111178024B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112612839A (zh) * | 2020-12-28 | 2021-04-06 | 中国农业银行股份有限公司 | 一种数据处理方法及装置 |
CN117078139B (zh) * | 2023-10-16 | 2024-02-09 | 国家邮政局邮政业安全中心 | 跨境快递的监管方法、系统、电子设备以及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106844312A (zh) * | 2017-02-14 | 2017-06-13 | 济南浪潮高新科技投资发展有限公司 | 一种数据表转换方法、装置、可读介质及存储控制器 |
CN106897340A (zh) * | 2016-07-05 | 2017-06-27 | 阿里巴巴集团控股有限公司 | 一种数据表更新方法及装置 |
CN107729423A (zh) * | 2017-09-28 | 2018-02-23 | 链家网(北京)科技有限公司 | 一种大数据处理方法及装置 |
CN109684326A (zh) * | 2018-11-13 | 2019-04-26 | 平安科技(深圳)有限公司 | 数据表创建方法、装置、设备及计算机可读存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201615745D0 (en) * | 2016-09-15 | 2016-11-02 | Gb Gas Holdings Ltd | System for analysing data relationships to support query execution |
-
2019
- 2019-12-17 CN CN201911300563.1A patent/CN111178024B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106897340A (zh) * | 2016-07-05 | 2017-06-27 | 阿里巴巴集团控股有限公司 | 一种数据表更新方法及装置 |
CN106844312A (zh) * | 2017-02-14 | 2017-06-13 | 济南浪潮高新科技投资发展有限公司 | 一种数据表转换方法、装置、可读介质及存储控制器 |
CN107729423A (zh) * | 2017-09-28 | 2018-02-23 | 链家网(北京)科技有限公司 | 一种大数据处理方法及装置 |
CN109684326A (zh) * | 2018-11-13 | 2019-04-26 | 平安科技(深圳)有限公司 | 数据表创建方法、装置、设备及计算机可读存储介质 |
Non-Patent Citations (1)
Title |
---|
黄昆 等.电力系统自动化.电网调控系统轻量化人机交互体系架构及关键技术.2019,第第43卷卷(第第7期期),第159-165页. * |
Also Published As
Publication number | Publication date |
---|---|
CN111178024A (zh) | 2020-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110209652B (zh) | 数据表迁移方法、装置、计算机设备和存储介质 | |
WO2020181839A1 (zh) | 页面数据测试方法、装置、计算机设备和存储介质 | |
CN110795427B (zh) | 数据分离存储方法、装置、计算机设备和存储介质 | |
CN110990400A (zh) | 数据库查询方法、装置、计算机设备和存储介质 | |
CN111177302B (zh) | 业务单据处理方法、装置、计算机设备和存储介质 | |
US20190121926A1 (en) | Graph centrality calculation method and apparatus, and storage medium | |
WO2020253357A1 (zh) | 数据产品推荐方法、装置、计算机设备和存储介质 | |
WO2020192134A1 (zh) | 基于Spring MVC的异常处理方法、装置、计算机设备和存储介质 | |
CN111178024B (zh) | 数据表拼接方法、装置、计算机设备和存储介质 | |
CN110135888B (zh) | 产品信息推送方法、装置、计算机设备和存储介质 | |
US10664445B2 (en) | Bloom filter generation method and apparatus | |
CN111813799B (zh) | 数据库查询语句生成方法、装置、计算机设备和存储介质 | |
US20180114028A1 (en) | Secure multi-party information retrieval | |
CN107679077B (zh) | 分页的实现方法、装置、计算机设备及存储介质 | |
WO2019148712A1 (zh) | 钓鱼网站检测方法、装置、计算机设备和存储介质 | |
CN109361628B (zh) | 报文组装方法、装置、计算机设备和存储介质 | |
CN112559529B (zh) | 数据存储方法、装置、计算机设备及存储介质 | |
CN112000903A (zh) | 数据查询方法、装置、计算机设备和存储介质 | |
CN113808064A (zh) | 图像融合方法、装置、电子设备和介质 | |
CN110275703B (zh) | 键值对数据的赋值方法、装置、计算机设备和存储介质 | |
CN111209061A (zh) | 用户信息的填写方法、装置、计算机设备和存储介质 | |
CN109614399B (zh) | 位图数据查询方法、装置、计算机设备和存储介质 | |
CN110888872A (zh) | 数据存储方法、装置、计算机设备和存储介质 | |
US11361195B2 (en) | Incremental update of a neighbor graph via an orthogonal transform based indexing | |
CN111901383B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |