CN114610758A - 基于数据仓库的数据处理方法、装置、可读介质及设备 - Google Patents

基于数据仓库的数据处理方法、装置、可读介质及设备 Download PDF

Info

Publication number
CN114610758A
CN114610758A CN202210281609.5A CN202210281609A CN114610758A CN 114610758 A CN114610758 A CN 114610758A CN 202210281609 A CN202210281609 A CN 202210281609A CN 114610758 A CN114610758 A CN 114610758A
Authority
CN
China
Prior art keywords
data
tables
data table
association
core
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
Application number
CN202210281609.5A
Other languages
English (en)
Inventor
郭枝虾
梁宝林
王建秀
马思聪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Telecom Corp Ltd
Original Assignee
China Telecom Corp Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Telecom Corp Ltd filed Critical China Telecom Corp Ltd
Priority to CN202210281609.5A priority Critical patent/CN114610758A/zh
Publication of CN114610758A publication Critical patent/CN114610758A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24542Plan optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24558Binary matching operations
    • G06F16/2456Join operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/283Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/906Clustering; Classification

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Operations Research (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请属于数据处理技术领域,具体涉及一种基于数据仓库的数据处理方法、装置、可读介质及设备。本申请通过从数据仓库中获取数据表集,然后从所述数据表集中选取至少一个核心数据表,根据选取的至少一个核心数据表所包含的字段构建临时表;并基于所述临时表响应数据处理操作。通过本申请的方法,可以利用构建的临时表响应数据处理操作,由于临时表中包含了较多的字段,可以实现数据经过两次关联就直接到达,因此,可以提高数据仓库开发效率,加快数据仓库的SQL执行响应时间;同时,本申请构建的临时表内存较小,本申请可以在牺牲最小内存资源的前提下,实现模型关联效率提升最大化,大大的节省数据建模的计算资源。

Description

基于数据仓库的数据处理方法、装置、可读介质及设备
技术领域
本申请属于数据处理技术领域,具体涉及一种基于数据仓库的数据处理方法、装置、可读介质及设备。
背景技术
数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。它是单个数据存储,出于分析性报告和决策支持目的而创建。
数据仓库中的数据经常以表的形式存在,而为了在数据仓库中执行结构化查询语言(SQL),常常需要对表进行多次关联,给开发人员带来了极大的调研和开发时间,开发效率极低;而且由于关联次数多,SQL执行还会带来的机器耗费成本巨大,执行时间过长等问题。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本申请的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本申请的目的在于提供一种基于数据仓库的数据处理方法、装置、可读介质及设备,至少在一定程度上克服相关技术中数据仓库开发效率低,数据仓库的SQL执行耗费成本巨大,执行时间过长等技术问题。
本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
根据本申请实施例的一个方面,提供一种基于数据仓库的数据处理方法,包括:
从数据仓库中获取数据表集,所述数据表集包括所述数据仓库中的数据表;
从所述数据表集中选取至少一个核心数据表,所述核心数据表的关联表数量超过第一阈值,所述核心数据表的关联表是与所述核心数据表的字段相似度超过第二阈值的数据表;
根据选取的至少一个核心数据表所包含的字段构建临时表;
基于所述临时表响应数据处理操作。
在本申请的一些实施例中,基于以上技术方案,在根据选取的至少一个核心数据表所包含的字段构建临时表之后,所述方法还包括:
获取所述数据表集中除所述至少一个核心数据表之外的其它数据表;
从所述其它数据表中选取与所述至少一个核心数据表之间的路径最短的目标数据表;
将选取的所述目标数据表所包含的字段添加到所述临时表。
在本申请的一些实施例中,基于以上技术方案,从所述数据表集中选取至少一个核心数据表的方法,包括:
利用聚类算法对所述数据表集中的数据表进行聚类,获得多个数据表子集;
从所述多个数据表子集中分别选取关联表数量超过第一阈值的数据表作为核心数据表。
在本申请的一些实施例中,基于以上技术方案,在从所述数据表集中选取至少一个核心数据表之前,所述方法还包括:
利用局部敏感哈希算法计算所述数据表集中各个数据表之间的字段相似度;
将所述字段相似度超过第二阈值的数据表确定为关联表;
基于各个数据表的关联表构建关联矩阵,所述关联矩阵用于表示所述数据表集中各个数据表与其它数据表的关联情况。
在本申请的一些实施例中,基于以上技术方案,从所述数据表集中选取至少一个核心数据表的方法,包括:
将所述关联矩阵转换成关联键值对;
从所述关联键值对中提取节点对,所述节点对包括所述数据表的两个关联表的组合;
以所述节点对包含的关联表为节点,构建无向的图神经网络,对所述无向的图神经网络进行训练获得所述关联表的特征向量;
基于所述特征向量得到至少一个核心数据表。
在本申请的一些实施例中,基于以上技术方案,基于所述特征向量得到至少一个核心数据表的方法,包括:
利用聚类算法对所述特征向量进行分类,并根据所述特征向量的分类结果确定所述节点对包含的关联表的类别;
计算每个所述类别中任一所述关联表与其它关联表的字段相似度,并进行降序排序;
获取每个所述类别中任一所述关联表中排序在第一预设值之前的关联表,在每个类别中形成至少一个节点列表;
计算所述每个类别中至少一个节点列表的交集,获得至少一个交集节点;
获取所述至少一个交集节点的关联表数量,并根据所述关联表数量对所述至少一个交集节点进行降序排序,形成交集排序表;
将所述交集排序表中排序在第二预设值之前的交集节点对应的数据表作为核心数据表。
在本申请的一些实施例中,基于以上技术方案,在基于所述临时表响应数据处理操作之前,所述方法还包括:
对所述临时表进行验证,若所述临时表中的临时表数量超过第三预设值或所述临时表集中的字段数量超过第四预设值或所述数据表集中任意两个数据表无法通过临时表进行直接关联,则舍弃该临时表。
根据本申请实施例的一个方面,本申请提供一种基于数据仓库的数据处理装置,包括:
获取模块,被配置为从数据仓库中获取数据表集,所述数据表集包括所述数据仓库中的数据表;
选取模块,被配置为从所述数据表集中选取至少一个核心数据表,所述核心数据表的关联表数量超过第一阈值,所述核心数据表的关联表是与所述核心数据表的字段相似度超过第二阈值的数据表;
构建模块,被配置为根据选取的至少一个核心数据表所包含的字段构建临时表;
处理模块,被配置为基于所述临时表响应数据处理操作。
在本申请的一些实施例中,基于以上技术方案,所述数据处理装置还包括添加模块,所述添加模块包括:
聚类单元,被配置为获取所述数据表集中除所述至少一个核心数据表之外的其它数据表;
选取单元,被配置为从所述其它数据表中选取与所述至少一个核心数据表之间的路径最短的目标数据表;
添加单元,被配置为将选取的所述目标数据表所包含的字段添加到所述临时表。
在本申请的一些实施例中,基于以上技术方案,所述选取模块包括:
聚类单元,被配置为利用聚类算法对所述数据表集中的数据表进行聚类,获得多个数据表子集;
选取单元,被配置为从所述多个数据表子集中分别选取关联表数量超过第一阈值的数据表作为核心数据表。
在本申请的一些实施例中,基于以上技术方案,所述数据处理装置还包括预处理模块,所述预处理模块包括:
相似度计算单元,别配置为利用局部敏感哈希算法计算所述数据表集中各个数据表之间的字段相似度;
关联单元,被配置为将所述字段相似度超过第二阈值的数据表确定为关联表;
矩阵构建单元,被配置为基于各个数据表的关联表构建关联矩阵,所述关联矩阵用于表示所述数据表集中各个数据表与其它数据表的关联情况。
在本申请的一些实施例中,基于以上技术方案,所述构建模块包括:
转换单元,被配置为将所述关联矩阵转换成关联键值对;
提取单元,被配置为从所述关联键值对中提取节点对,所述节点对包括所述数据表的两个关联表的组合;
训练单元,被配置为以所述节点对包含的关联表为节点,构建无向的图神经网络,对所述无向的图神经网络进行训练获得所述关联表的特征向量;
构建单元,用于基于所述特征向量得到至少一个核心数据表。
在本申请的一些实施例中,基于以上技术方案,所述构建单元包括:
向量分类单元,被配置为利用聚类算法对所述特征向量进行分类,并根据所述特征向量的分类结果确定所述节点对包含的关联表的类别;
第一排序单元,被配置为计算每个所述类别中任一所述关联表与其它关联表的字段相似度,并进行降序排序;
列表获取单元,被配置为获取每个所述类别中任一所述关联表中排序在第一预设值之前的关联表,在每个类别中形成至少一个节点列表;
交集获取单元,被配置为计算所述每个类别中至少一个节点列表的交集,获得至少一个交集节点;
第二排序单元,被配置为获取所述至少一个交集节点的关联表数量,并根据所述关联表数量对所述至少一个交集节点进行降序排序,形成交集排序表;
构建子单元,被配置为将所述交集排序表中排序在第二预设值之前的交集节点对应的数据表作为核心数据表。
在本申请的一些实施例中,基于以上技术方案,所述数据处理装置还包括验证模块,所述验证模块被配置为对所述临时表进行验证,若所述临时表中的临时表数量超过第三预设值或所述临时表集中的字段数量超过第四预设值或所述数据表集中任意两个数据表无法通过临时表进行直接关联,则舍弃该临时表。
根据本申请实施例的一个方面,提供一种计算机可读介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如以上技术方案中的基于数据仓库的数据处理方法。
根据本申请实施例的一个方面,提供一种电子设备,该电子设备包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器被配置为经由执行所述可执行指令来执行如以上技术方案中的基于数据仓库的数据处理方法。
根据本申请实施例的一个方面,提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行如以上技术方案中的基于数据仓库的数据处理方法。
在本申请实施例提供的技术方案中,本申请通过从数据仓库中获取数据表集,然后从所述数据表集中选取至少一个核心数据表,其中,该核心数据表的关联表数量超过第一阈值,根据选取的至少一个核心数据表所包含的字段构建临时表;并基于所述临时表响应数据处理操作。通过本申请的方法,可以将数据表集中关联表数量较多的数据表选取出来作为核心数据表,并根据核心数据表所包含的字段来构建临时表,利用构建的临时表响应数据处理操作,由于临时表中包含了较多的字段,可以实现数据经过两次关联就直接到达。因此,可以提高数据仓库开发效率,加快数据仓库的SQL执行响应时间,降低SQL执行耗费的成本;同时,本申请构建的临时表内存较小,本申请可以在牺牲最小内存资源的前提下,实现模型关联效率提升最大化,大大的节省数据建模的计算资源。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示意性地示出了一种数据仓库中数据表的示意图。
图2示意性地示出了应用本申请技术方案的示例性系统架构框图。
图3示意性地示出了本申请基于数据仓库的数据处理方法的流程图。
图4示意性地示出了本申请选取核心数据表的方法流程图。
图5示意性地示出了本申请对数据表集中的数据表进行预处理的方法流程图。
图6示意性地示出了本申请构建的关联矩阵示意图。
图7示意性地示出了本申请利用预处理后的数据表来选取核心数据表的方法流程图。
图8示意性地示出了本申请构建的图神经网络示意图。
图9示意性地示出了本申请基于特征向量得到至少一个核心数据表的方法流程图。
图10示意性地示出了本申请更新临时表的方法流程图。
图11示意性地示出了本申请关联网络的结构示意图。
图12示意性地示出了本申请实施例提供的基于数据仓库的数据处理装置的结构框图。
图13示意性地示出了用于实现本申请实施例的电子设备的计算机系统结构框图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本申请将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。它是单个数据存储,出于分析性报告和决策支持目的而创建的。
数据仓库中的数据经常以表的形式存在,而为了在数据仓库中执行结构化查询语言(SQL),常常需要对表进行多次关联。举例来说,如图1所示,图1示意性地示出了一种数据仓库中数据表的示意图。在某个数据仓库中存在五张数据表,分别是数据表T1-数据表T5,其中,每组数据表都包含了不同的字段名称,例如,数据表T1中包括了id(标识号)、dialogid(订单标识号)和dialogamout(订单数量)。
在对图1对应的数据仓库进行数据模型开发时,常常为了实现对两张数据表进行关联,而需要通过多张表来进行关联。例如,当需要计算未返现的订单总下单量时,实现的SQL语句如下:
Select sum(T1.dialog_amout)as sum_amount
from T1
Join T2 on T1.dialog_id=T2.dialog_id
Join T3 on T2.cate1_id=T3.cate1_id
Join T4 on T3.sale_id=T4.sale_id
Join T5 on T5.fas_id=T4.fas_id
where T5.status_id=0and T5.is_pop=1
以上例子中,为了获取是否返现的标识,进行了四次关联,其中,每次关联都利用了不同表之间的相同字段名称进行关联。即利用SQL挑选数据表T1中的订单数量,然后将数据表T2和数据表T1利用dialog id(对话标识号)关联,再利用数据表T3和数据表T2关联,依次进行直到数据表T5也关联完成,最后输出未返现的订单总下单量。
而以上所公开的是数据表数量较少时的关联次数,当数据仓库中的数据表数量较多时,甚至会出现十次以上的多次关联。给开发人员带来了极大的调研和开发时间,开发效率极低,而且由于关联次数多,sql执行还会带来机器耗费成本巨大,执行时间过长等问题。
为解决上述问题,可以通过对数据仓库中所有数据模型有关的数据表进行关联,得到一张超级大宽表,从而实现数据仓库中全部数据模型的两个表间通过两次关联即可实现百分百到达。但是,关联数据仓库中全部数据模型得到一张超级大宽表,该超级大宽表将占用极大内存且基于该超级大宽表进行表关联查询时,查询效率极低,甚至比多个小表进行多次关联慢很多,或者根本无法查询。因此,目前还没有方法可以解决数据表多次关联耗费较多时间成本,甚至浪费较多的资源的问题。
为了解决以上的技术问题,本申请公开了一种基于数据仓库的数据处理方法、基于数据仓库的数据处理装置、计算机可读介质以及电子设备,下面将通过各个方面进一步说明本申请的内容。
图2示意性地示出了应用本申请技术方案的示例性系统架构框图。
如图2所示,系统架构200可以包括终端设备210、网络220和服务器230。终端设备210可以包括智能手机、平板电脑、笔记本电脑、台式电脑等各种电子设备。服务器230可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器。网络220可以是能够在终端设备210和服务器230之间提供通信链路的各种连接类型的通信介质,例如可以是有线通信链路或者无线通信链路。
根据实现需要,本申请实施例中的系统架构可以具有任意数目的终端设备、网络和服务器。例如,服务器230可以是由多个服务器设备组成的服务器群组。另外,本申请实施例提供的技术方案可以应用于终端设备210,也可以应用于服务器230,或者可以由终端设备210和服务器230共同实施,本申请对此不做特殊限定。
终端设备210或服务器230可以通过网络220与数据仓库建立连接。建立连接之后,终端设备210或服务器230可以从数据仓库中获取数据表集,然后从数据表集中选取至少一个核心数据表,其中,核心数据表的关联表数量超过第一阈值,核心数据表的关联表是与核心数据表的字段相似度超过第二阈值的数据表;再根据选取的至少一个核心数据表所包含的字段构建临时表;最后基于临时表响应数据处理操作。通过终端设备210或服务器230对数据仓库的数据处理,可以提高数据仓库开发效率。在响应数据处理操作,例如,SQL执行时,可以加快数据仓库的SQL执行响应时间,降低SQL执行耗费的成本。
以上部分介绍了应用本申请技术方案的示例性系统架构的内容,接下来继续介绍本申请的基于数据仓库的数据处理方法。
如图3所示,图3示意性地示出了本申请基于数据仓库的数据处理方法的流程图。根据本申请实施例的一个方面,本申请提供一种基于数据仓库的数据处理方法,包括步骤S310-步骤S340。
在步骤S310中:从数据仓库中获取数据表集,数据表集包括数据仓库中的数据表。
在数据仓库中包含了许多的数据表,例如,如图1中所示的多张数据表。本申请步骤S310中,从数据仓库中获取数据表集,可以是从数据仓库中获取全部的数据表,将全部的数据表组成数据表集。本申请还可以根据实际的需求,来获取数据仓库中部分的数据表,将部分的数据表组成数据表集。例如,当只需要在某类型的数据表之间进行数据处理操作(SQL操作)时,本申请可以获取数据仓库中与对应类型相关的部分数据表,来组成数据表集。
在本申请的一个实施例中,本申请可以直接利用服务器130与数据仓库通过网络120进行连接,从而可以直接对数据仓库中的数据表进行处理,此时,本申请可以直接从数据仓库中获取数据表并在数据仓库中进行数据处理。利用该方法,无需从数据仓库中获取数据表集,因此,可以简化数据处理流程,提高数据处理的效率。
在步骤S320中:从数据表集中选取至少一个核心数据表,核心数据表的关联表数量超过第一阈值,核心数据表的关联表是与核心数据表的字段相似度超过第二阈值的数据表。
本申请选取核心数据表的选取策略可以包括第一策略和第二策略。其中,第一策略是选取的核心数据表与其它数据表的关联性要尽可能的大,对应的是核心数据表的关联表数量要较多。第二策略是,选取的各个核心数据表之间可关联的表的相似度要较小,对应的是各个核心数据表的关联表之间的差异要较大。
其中,本申请可以只利用第一策略进行核心数据表的选取,也可以同时利用两个策略进行选取。当利用两个策略同时进行选取时,可以避免选取出的核心数据表之间的关联表差异较小,因此,不会出现后续构建的临时表中重复数据表数量太多,导致占用内存的问题。
下面具体解释两种核心表选取策略对应的选取方法。
本申请的第一策略是选取的核心数据表与其它数据表的关联性要尽可能的大。对应的是核心数据表的关联表数量超过第一阈值,核心数据表的关联表是与核心数据表的字段相似度超过第二阈值的数据表,其中,本申请对于两个数据表之间的字段相似度计算,可以包括计算两个数据表的字段名称,字段数据和两个数据表的名称中的任意一个,也可以将三者综合考虑,来进行两个数据表之间的字段相似度计算。
在本申请的一个实施例中,本申请判断字段相似度超过第二阈值的方法可以是:将两个数据表的字段转换成字段向量,然后计算两个字段向量的距离,然后设定字段向量之间距离的阈值作为第二阈值,当两个数据表的字段对应的向量距离超过该第二阈值时,说明两个数据表是关联的。
以图1中的前四张数据表为例,由于数据表T1和数据表T2存在相同的字段dialog_id,因此,数据表T1和数据表T2是关联的,对应的数据表T2是数据表T1的关联表,而数据表T3-数据表T4与数据表T1不存在相同字段,因此,数据表T3-数据表T4不是数据表T1的关联表。对应的,利用相同的方法可以得到数据表T2的关联表为数据表T1、数据表T3和数据表T4;数据表T3的关联表为数据表T2和数据表T4;数据表T4的关联表为数据表T2和数据表T3。因此,可以得出数据表T2的关联表数量最多,因此,如果本申请设定的第一阈值是2时,对应的只有数据表T2超过了该第一阈值,因此,对应的数据表T2就是选取到的核心数据表。
其中,本申请的第一阈值可以根据数据仓库中所包含的数据表的数量或数据表集中所包含的数据表的数量来决定,同时本申请的第一阈值还可以根据后续构建的临时表的内存大小来决定。当数据表集中所包含的数据表数量越多,对应的可以将第一阈值设定的较大。当第一阈值设定的越大,对应的选取出来的核心数据表数量就会变少,后续构建的临时表的内存较小。
以上公开了本申请核心数据表选取策略中第一策略的内容,接下来继续公开本申请核心数据表选取策略中第二策略对应的选取方法。
本申请的第二策略是,选取的各个核心数据表之间可关联的表的相似度要较小,对应的是各个核心数据表的关联表之间的差异要较大。其中,第一策略对比的是各个数据表的字段相似度,而第二策略对比的是各个数据表本身的差异。
继续以图1中的数据表为例,数据表T2的关联表为数据表T1、数据表T3和数据表T4;数据表T3的关联表为数据表T2和数据表T4;假设还有一个数据表T6,其关联表为数据表T5和数据表T2。以数据表T2来说,数据表T2和数据表T3的关联表中有一个相同的关联表T4,而数据表T2和数据表T6中并没有相同的关联表。因此,数据表T2与数据表T6的关联表差异要大于与数据表T2与数据表T3的关联表差异。此时,我们可以选取数据表T2和数据表T6,而排除数据表T3。
在本申请的一个实施例中,本申请的第二策略可以在第一策略选取后再进一步选取,例如,当通过第一策略选取了多个核心数据表后,对于关联表数量相同的核心数据表可以通过对比各个核心数据表中关联表本身的差异来进一步选取核心数据表。
在本申请的一个实施例中,本申请的第二策略可以与第一策略同时进行,例如,继续以图1的数据表为例,本申请根据第一策略可以选取数据表T2。而根据第二策略,相比于数据表T2和数据表T3,数据表T2与数据表T1的关联表差异更大,因此,利用第二策略选择数据表T1也作为核心数据表。
当本申请利用第二策略和第一策略同时进行时,本申请可以利用以下方法进行核心数据表的选取。
在本申请的一个实施例中,如图4所示,图4示意性地示出了本申请选取核心数据表的方法流程图。本申请从数据表集中选取至少一个核心数据表的方法,包括步骤S410-步骤S420。
步骤S410:利用聚类算法对数据表集中的数据表进行聚类,获得多个数据表子集。
聚类的目的是按照某个特定标准(如距离准则)把一个数据表集分割成不同的类或簇,使得同一个簇内的数据对象的相似性尽可能大,同时不在同一个簇中的数据对象的差异性也尽可能地大。即聚类后同一类的数据尽可能聚集到一起,不同数据尽量分离。本申请可以将数据表集中的数据表作为一个个的数据点,然后利用K-means算法或Agglomerative算法对数据表集中的数据表进行聚类,获得多个数据表子集。
本申请通过聚类算法可以将数据仓库中的数据表根据数据表的字段相似度进行聚类,聚类后再进行相似度计算,可以有效的降低运算量,避免数据仓库中相似度差别大的进行相似度对比,浪费了计算机的算力。
在本申请的一个实施例中,本申请可以通过局部敏感哈希算法(LSH)来计算数据仓库中任意两个数据表之间字段相似度并完成聚类的过程。局部敏感哈希算法的基本思想是:将原始数据空间中的两个相邻数据点通过相同的映射或投影变换后,这两个数据点在新的数据空间中仍然相邻的概率很大,而不相邻的数据点被映射到同一个桶的概率很小。也就是说,如果我们对原始数据进行一些哈希映射后,我们希望原先相邻的两个数据点能够被哈希到相同的桶内,具有相同的桶号。对原始数据集合中所有的数据都进行哈希映射后,我们就得到了一个hash table(哈希表),这些原始数据集被分散到了hash table的桶内,每个桶会落入一些原始数据,属于同一个桶内的数据就有很大可能是相邻的。而本申请将数据仓库中的各个数据表作为局部敏感哈希算法中的数据点,利用局部敏感哈希算法可以实现在海量的高维数据集(数据仓库)中查找与查询数据点(任一数据表)近似(字段相似度大)最相邻的某个或某些数据点。需要说明的是,利用局部敏感哈希算法并不能保证一定能够查找到与数据表最相邻的数据,而是减少需要匹配的数据点个数的同时保证查找到最近邻的数据点的概率很大。
步骤S420:从多个数据表子集中分别选取关联表数量超过第一阈值的数据表作为核心数据表。
当聚类完成后,可以从多个数据表子集中分别选取关联表数量超过第一阈值的数据表作为核心数据表,选取方法同上述的第一策略。
本申请通过步骤S410可以预先将数据表集根据各个数据表的相似性先分类,避免后续选取的核心数据表都是一个类别的,导致浪费内存资源的问题,实现了上述的第二策略和第一策略同时执行。
在本申请的一个实施例中,如图5所示,图5示意性地示出了本申请对数据表集中的数据表进行预处理的方法流程图。在从数据表集中选取至少一个核心数据表之前,本申请可以对对数据表集中的数据表进行预处理,具体的预处理方法包括步骤S510-步骤S530。
步骤S510:利用局部敏感哈希算法计算数据表集中各个数据表之间的字段相似度。
本申请可以通过局部敏感哈希算法计算数据仓库中任意两个数据表之间字段相似度。使用局部敏感哈希算法LSH进行对数据表建立索引(Hash table)并通过索引来进行近似最近邻查找,通过局部敏感哈希算法可以找到与查询数据点近似最相邻的某个或某些数据点。其中,本申请可以将任意数据表作为查询数据点,从而可以找到每个数据表的近似最相邻的数据表作为某些数据点。本申请可以将找到每个数据表的近似最相邻的数据表作为该查询数据点对应数据表的关联表。本申请也可以在查找到近似最相邻的数据表后,进一步计算该近似最相邻的数据表与查询数据点对应的数据表的字段相似度,从而可以获得各个数据表之间的字段相似度。其中,计算两个字段的相似度先将两个字段转换成向量,然后利用余弦相似度计算公式来计算两者的相似度。
余弦相似度算法对应的公式如下:
Figure BDA0003557145660000141
其中similarity代表相似度,A和B分别表示两个字段的向量,通过以上步骤计算得到数据表集中各个数据表之间的字段相似度之后,继续进行步骤S520。
步骤S520:将字段相似度超过第二阈值的数据表确定为关联表。
获得字段相似度后,可以将字段相似度超过第二阈值的数据表确定为关联表。其中,第二阈值可以根据要选取的核心数据表的数量来确定,当第二阈值越小,对应的选取出的核心数据表数量越多。
例如,继续以图1为例,通过字段相似度对比,当其它数据表与核心数据表存在完全相同的字段时,才将该数据表作为核心数据表的关联表。例如,数据表T1的关联表是数据表T2。
步骤S530:基于各个数据表的关联表构建关联矩阵,关联矩阵用于表示数据表集中各个数据表与其它数据表的关联情况。
如图6所示,图6示意性地示出了本申请构建的关联矩阵示意图。
通过关联矩阵可以清楚的了解到各个数据表之间的关联情况,其中,Y代表两者存在关联关系,N代表两者不存在关联关系。
通过对数据集中的数据表进行预处理后,就可以对处理后的数据表进行数据表选取。
如图7所示,图7示意性地示出了本申请利用预处理后的数据表来选取核心数据表的方法流程图。在本申请的一个实施例中,从数据表集中选取至少一个核心数据表的方法,包括步骤S710-步骤S740。
步骤S710:将关联矩阵转换成关联键值对。
根据每个数据表对应的关联表,将关联矩阵转换成关联键值对。例如,图6对应的关联矩阵可以转换成如下关联键值对:T1:[T2]、T2:[T1,T3,T4]、T3:[T2,T4]、T4:[T2,T3]。其中,关联键值对包括了可能选取为核心数据表的待选数据表以及与该待选数据表关联的关联表。例如,关联键值对T2:[T1,T3,T4]中包括了待选数据表T2和与该待选数据表的关联表T1,T3,T4。
步骤S720:从关联键值对中提取节点对,节点对包括数据表的两个关联表的组合。
其中,节点对是两个关联表的组合。因此,对于关联键值对T1:[T2]由于只有一个关联表,就无法提取出节点对。而对于关联键值对T2:[T1,T3,T4]可以提取出的节点对包括[T1,T3]、[T1,T4]和[T3,T4]。因此本申请通过对关联键值对进行节点对的提取,可以提取到多组节点对,继续进行步骤S730。
步骤S730:以节点对包含的关联表为节点,构建无向的图神经网络,对无向的图神经网络进行训练获得关联表的特征向量。
如图8所示,图8示意性地示出了本申请构建的图神经网络示意图。本申请以节点对包含的关联表为节点,例如以数据表T1、数据表T2、数据表T3和数据表T4为节点,来构建无向的图神经网络,各个节点的连线是随机无向的。其中,本申请还可以设定一个权重值,例如将权重值设为1。然后定义随机游走策略,基于随机的游走策略来并训练无向的图神经网络,得到每个关联表的特征向量。
在本申请的一个实施例中,本申请可以通过图表嵌入(Graph Embedding)的方式来得到每个关联表的特征向量值。图表嵌入的思想是找到一种映射函数,将本申请无向的图神经网络中的每个节点转换为低维稠密的嵌入表示,要求在图中相似的节点在低维空间距离相近。
本申请可以利用deepwalk算法来进行图表嵌入。deepwalk算法通过截断式随机游走(truncated random walk)来学习图网络节点的社区表示(Social Representations)。Deepwalk算法包含两个主要的步骤:第一步利用Random Walk算法采样节点序列,第二步使用skip-gram算法学习表达向量。通过Deepwalk算法的两个步骤可以得到每个关联表的特征向量。
在本申请的一个实施例中,本申请还可以通过node-vec算法来进行图表嵌入。Node-vec算法是在deepwalk算法基础上对游走的方式做修改,增加了形成序列的条件,利用深度优先游走(Depth-first Sampling,DFS)和广度优先游走(Breadth-firstSampling,BFS)的思想,计算走到下一个节点的概率,来选择节点,其余步骤和deepwalk相同。
通过以上方法得到每个关联表的特征向量之后,继续进行步骤S740。
步骤S740:基于特征向量得到至少一个核心数据表。
如图9所示,图9示意性地示出了本申请基于特征向量得到至少一个核心数据表的方法流程图。
在本申请的一个实施例中,基于特征向量得到至少一个核心数据表的方法,包括步骤S910-步骤S960。
步骤S910:利用聚类算法对特征向量进行分类,并根据特征向量的分类结果确定节点对包含的关联表的类别。
本申请获得各个关联表的特征向量之后,可以通过聚类算法对特征向量进行分类,以确定节点对包含的关联表的类别。其中,本申请的聚类算法可以利用K-means算法或Agglomerative算法。通过步骤S910,多个特征向量对应的关联表被分为了多个类别。例如,通过对图8对应的节点对包含的关联表进行分类后,可以将数据表T1对应的向量归为一类,作为类别一。将数据表T2,数据表T3和数据表T4对应的向量归为一类,作为类别二。
步骤S920:计算每个类别中任一关联表与其它关联表的字段相似度,并进行降序排序。
继续以步骤S910中的类别二为例,通过分类后得到了类别二中包括了数据表T2,数据表T3和数据表T4。其中,本申请的步骤S920计算每个类别中任一关联表与其它关联表的字段相似度可以是计算类别二中任一数据表与其它数据表的字段相似度,并进行降序排序。其中字段相似度的计算方法同步骤S510。例如,通过计算后得到的相似度排序如下:
T2:[T3,T4]、T3:[T2,T4]、T3:[T2,T3]
以上例子中的类别二中包括了三个关联表,当关联表数量为n个时,对应的针对每一个关联表都会得到如下的排序结果:
Ti:{t1,ti+i...},i={1,2,3...n}
例如,当n为10时,对应的T1中就包括了另外九个数据表的降序排序结果,其中排在前面的可能是另外九个数据表中的任意一个。因此,通过步骤S920可以得到每个类别中各个关联表与其它关联表的字段相似度排序结果,继续进行步骤S930。
步骤S930:获取每个类别中任一关联表中排序在第一预设值之前的关联表,在每个类别中形成至少一个节点列表。
本申请的第一预设值可以根据需要来修改,例如,第一预设值可以为5,那么对应的就获取每个类别中任一关联表中排序前五的关联表,形成多个节点列表。
对应的,当第一预设值为N时,通过对步骤S920中任意关联表进行获取,可以得到以下的节点列表。
Ti:{t1,ti+i...},i={1,2,3...N}
当对每个类别的每个关联表都进行步骤S930时,可以得到该类别内的多个节点列表,然后再对不同类别的其它每个关联表进行相同的步骤,最终可以得到多个节点列表。
例如,一个数据仓库有九个数据表,通过上述步骤被分为了三类,其中,数据表T1和T3为类别一,数据表T2、T6、T8和T9为类别二,数据表T4、T5和T7为类别三。取第一预设值为2,其中,与任一数据表的字段相似度最高的是其本身,对应的每个数据表的节点列表就包括:类别一:T1:[T1,T3],T3:[T3,T1]。类别二:T2:[T2,T6],T6:[T6,T8],T8:[T8,T6],T9:[T9,T6]。类别三:T4:[T4,T7],T5:[T5,T4],T7:[T7,T5]。通过以上方法可以形成以上九个节点列表,每个节点列表里面就包含了与任一数据表相似度排名在前两位的数据表。
步骤S940:计算每个类别中至少一个节点列表的交集,获得至少一个交集节点。
计算上述每个类别中至少一个节点列表共同包含的关联表,将共同包含的关联表作为交集节点。例如,通过步骤S930中类别一,得到交集节点为数据表T1,数据表T3;类别二得到交集节点为数据表T4;类别三不存在交集节点。因此,通过以上步骤得到的交集节点就有三个,分别为数据表T1,数据表T3和数据表T4。
步骤S950:获取至少一个交集节点的关联表数量,并根据关联表数量对至少一个交集节点进行降序排序,形成交集排序表。
得到至少一个交集节点之后,可以再参考本申请步骤S520来计算出各个交集节点的关联表数量,并根据关联表数量对至少一个交集节点进行降序排序。
例如,获得的交集节点包数据表T1,数据表T3和数据表T4。而数据表T1有三个关联表,数据表T3有2个关联表,数据表T4有五个关联表,对应的可以得出的排序结果是:数据表T4,数据表T3,数据表T1。
步骤S960:将交集排序表中排序在第二预设值之前的交集节点对应的数据表作为核心数据表。
其中,第二预设值可以根据实际需要来确定,例如,当第二预设值为2时,可以取交集排序表中排前二的交集节点对应的数据表作为核心数据表。即取出步骤S950中的数据表T4和数据表T3作为核心数据表。
本申请通过以上步骤选取出核心数据表之后,继续进行步骤S330。
在步骤S330中:根据选取的至少一个核心数据表所包含的字段构建临时表。
本申请在选取得到至少一个核心数据表之后,可以直接将至少一个核心数据表所包含的字段提取出来,然后将这些字段组合在一起,构建形成临时表,其中得到的是一张包含了至少一个核心数据表中所有字段的临时表。
本申请还可以将至少一个核心数据表组合然后保存以构建临时表,其中,临时表中包含了至少一个核心数据表。例如,本申请通过选取得到核心数据表是数据表T2和数据表T1之后,对应构建的临时表中就包含了两张数据表。
本申请通过以上步骤构建了临时表之后,由于本申请的临时表是基于至少一个核心数据表构成,因此,可能会出现数据仓库中的部分数据表与核心数据表无法关联的情况。基于该问题,本申请在步骤S330之后,还包括如下步骤。
如图10所示,图10示意性地示出了本申请更新临时表的方法流程图。
在本申请的一个实施例中,在步骤S330之后,本申请还包括对该临时表进行更新,具体的更新方法包括步骤S1010-步骤S1030。
步骤S1010:获取数据表集中除至少一个核心数据表之外的其它数据表。
获取除通过步骤S950选取到的至少一个核心数据表之外的其它数据表,例如,继续以图1的前四张数据表为例,当选取的核心数据表是数据表T2和数据表T1时,对应的其它数据表是数据表T3数据表T4。
步骤S1020:从其它数据表中选取与至少一个核心数据表之间的路径最短的目标数据表。
其中,本申请的路径最短是基于关联关系来确定的。本申请可以根据数据仓库中所有表间关联性来构建关联网络,以图1对应的前四张数据表为例,如图11所示,图11示意性地示出了本申请关联网络的结构图。本申请可以基于关联关系构建数据表T1-数据表T4的关联网络,从图11可以看出,数据表T1和数据表T2相互关联,因此用双箭头连接。以图11为例,如果选取出的核心数据表是数据表T3时,此时对应的其它数据表就包括了数据表T1,数据表T2和数据表T4。对应的,数据表T1到核心数据表是数据表T3的最短路径是从数据表T1到数据表T2,再从数据表T2到数据表T3。因此,对应的目标数据表就是数据表T2。
通过以上方法构建关联网络并选取出目标数据表后,继续进行步骤S1030。
步骤S1030:将选取的目标数据表所包含的字段添加到临时表。
其中,本申请可以将目标数据表添加到临时表中,以使临时表中数据表的数量为至少一张核心数据表加上目标数据表的数量。本申请还可以直接将目标数据表所包含的字段添加到临时表中,以使临时表包含目标数据表的字段。
通过以上步骤完成了临时表的构建,本申请还可以对该临时表进行验证,具体的步骤如下。
在本申请的一个实施例中,在步骤S340之前以及在构建完临时表之后,本申请还可以对临时表进行验证,若临时表中的临时表数量超过第三预设值或临时表集中的字段数量超过第四预设值或数据表集中任意两个数据表无法通过临时表进行直接关联,则舍弃该临时表。
该步骤是对构建的临时表是否合格的验证,其中验证的条件有三个,三个条件中有一个不满足则说明该临时表不合格,若该临时表不合格,则舍弃该临时表,并返回步骤S320重新选取至少一个核心数据表。
其中,本申请的三个条件分别是对数据表的可达性,数据表数量和字段的数量进行的验证。数据表的可达性是指数据表集中任意两个数据表无法通过临时表进行直接关联,说明基于临时表并不能实现数据经过两次关联就直接到达。而对于数据表数量和字段的数量的验证是为了避免出现构建的临时表内存太大,占用资源的问题。
通过以上步骤验证通过后,可以继续进行步骤S340。
在步骤S340中:基于临时表响应数据处理操作。
本申请可以基于临时表进行多种数据处理操作。其中,最基础的处理操作是完成数据仓库中任意两个数据表的关联,并实现数据经过两次关联就直接到达,由于临时表中包含了数据仓库中所有数据表的字段,因此,数据表A通过关联临时表,再由临时表关联数据表B,即可实现直接到达。
通过以上步骤获得临时表后,本申请通过数据仓库进行了真实数据表的测试,测试结果可以实现任意两表间进行关联,可达性达到100%,而且,最终构建的临时表数量不到数据表总数量的10%,且构建的所有临时表的字段平均数量基本等同于其他非临时表的平均值。因此,可以满足本申请的需求,解决本申请的问题。
另外,随着5G消息平台的推进,用户、消息等结构化数据会逐渐庞大。为了提高平台的服务能力和智能化,需要基于这些增量的数据做智能化分析,为智能化分析过程中涉及大量的数据模型开发工作,而通过本申请的方案可以实现任意两个表间通过两次次关联实现百分百到达,因此可以将本申请的方法应用到智能化分析。同时,在大数据时代,本申请对应的方法还可以在涉及大量表关联工作的业务场景中适用,本申请对此不做限制。
通过本申请的方法,可以将数据表集中关联表数量较多的数据表选取出来作为核心数据表,并根据核心数据表所包含的字段来构建临时表,利用构建的临时表响应数据处理操作,由于临时表中包含了较多的字段,可以实现数据经过两次关联就直接到达。因此,可以提高数据仓库开发效率,加快数据仓库的SQL执行响应时间,降低SQL执行耗费的成本;同时,本申请构建的临时表内存相比于现有的大宽表来说,所占用的内存较小,因此,本申请可以在牺牲最小内存资源的前提下,实现模型关联效率提升最大化,大大的节省数据建模的计算资源。
应当注意,尽管在附图中以特定顺序描述了本申请中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
以上部分介绍了本申请数据基于数据仓库的数据处理方法的内容,接下来继续介绍本申请基于数据仓库的数据处理装置的内容。
如图12所示,图12示意性地示出了本申请实施例提供的基于数据仓库的数据处理装置的结构框图。
根据本申请实施例的一个方面,本申请提供一种基于数据仓库的数据处理装置1200,包括:
获取模块1210,被配置为从数据仓库中获取数据表集,数据表集包括数据仓库中的数据表;
选取模块1220,被配置为从数据表集中选取至少一个核心数据表,核心数据表的关联表数量超过第一阈值,核心数据表的关联表是与核心数据表的字段相似度超过第二阈值的数据表;
构建模块1230,被配置为根据选取的至少一个核心数据表所包含的字段构建临时表;
处理模块1240,被配置为基于临时表响应数据处理操作。
在本申请的一个实施例中,本申请的数据处理装置1200还包括添加模块,添加模块包括:
聚类单元,被配置为获取数据表集中除至少一个核心数据表之外的其它数据表;
选取单元,被配置为从其它数据表中选取与至少一个核心数据表之间的路径最短的目标数据表;
添加单元,被配置为将选取的目标数据表所包含的字段添加到临时表。
在本申请的一个实施例中,本申请的选取模块1220包括:
聚类单元,被配置为利用聚类算法对数据表集中的数据表进行聚类,获得多个数据表子集;
选取单元,被配置为从多个数据表子集中分别选取关联表数量超过第一阈值的数据表作为核心数据表。
在本申请的一个实施例中,本申请的数据处理装置1200还包括预处理模块,预处理模块包括:
相似度计算单元,别配置为利用局部敏感哈希算法计算数据表集中各个数据表之间的字段相似度;
关联单元,被配置为将字段相似度超过第二阈值的数据表确定为关联表;
矩阵构建单元,被配置为基于各个数据表的关联表构建关联矩阵,关联矩阵用于表示数据表集中各个数据表与其它数据表的关联情况。
在本申请的一个实施例中,本申请的构建模块1230包括:
转换单元,被配置为将关联矩阵转换成关联键值对;
提取单元,被配置为从关联键值对中提取节点对,节点对包括数据表的两个关联表的组合;
训练单元,被配置为以节点对包含的关联表为节点,以节点对的连线作为边,构建无向的图神经网络,对无向的图神经网络进行训练获得关联表的特征向量;
构建单元,用于基于特征向量得到至少一个核心数据表。
在本申请的一个实施例中,本申请的构建单元包括:
向量分类单元,被配置为利用聚类算法对所述特征向量进行分类,并根据所述特征向量的分类结果确定所述节点对包含的关联表的类别;
第一排序单元,被配置为计算每个所述类别中任一所述关联表与其它关联表的字段相似度,并进行降序排序;
列表获取单元,被配置为获取每个所述类别中任一所述关联表中排序在第一预设值之前的关联表,在每个类别中形成至少一个节点列表;
交集获取单元,被配置为计算所述每个类别中至少一个节点列表的交集,获得至少一个交集节点;
第二排序单元,被配置为获取所述至少一个交集节点的关联表数量,并根据所述关联表数量对所述至少一个交集节点进行降序排序,形成交集排序表;
构建子单元,被配置为将所述交集排序表中排序在第二预设值之前的交集节点对应的数据表作为核心数据表。
在本申请的一个实施例中,本申请的数据处理装置1200还包括验证模块,验证模块被配置为对临时表进行验证,若临时表中的临时表数量超过第三预设值或临时表集中的字段数量超过第四预设值或所述数据表集中任意两个数据表无法通过临时表进行直接关联,则舍弃该临时表。
通过本申请的数据处理装置1200,可以将数据表集中关联表数量较多的数据表选取出来作为核心数据表,并根据核心数据表所包含的字段来构建临时表,利用构建的临时表响应数据处理操作,由于临时表中包含了较多的字段,可以实现数据经过两次关联就直接到达。因此,可以提高数据仓库开发效率,加快数据仓库的SQL执行响应时间,降低SQL执行耗费的成本;同时,本申请构建的临时表内存较小,可以避免资源浪费。
本申请各实施例中提供的基于数据仓库的数据处理装置的具体细节已经在对应的方法实施例中进行了详细的描述,此处不再赘述。
以上部分介绍了本申请数据基于数据仓库的数据处理装置的内容,接下来继续介绍本申请其它方面的内容。
根据本申请实施例的一个方面,提供一种计算机可读介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如以上技术方案中的基于数据仓库的数据处理方法。
根据本申请实施例的一个方面,提供一种电子设备,该电子设备包括:处理器;以及存储器,用于存储处理器的可执行指令;其中,处理器被配置为经由执行可执行指令来执行如以上技术方案中的基于数据仓库的数据处理方法。
根据本申请实施例的一个方面,提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行如以上技术方案中的基于数据仓库的数据处理方法。
图13示意性地示出了用于实现本申请实施例的电子设备的计算机系统结构框图。
需要说明的是,图13示出的电子设备的计算机系统1300仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图13所示,计算机系统1300包括中央处理器1301(Central Processing Unit,CPU),其可以根据存储在只读存储器1302(Read-Only Memory,ROM)中的程序或者从存储部分1308加载到随机访问存储器1303(Random Access Memory,RAM)中的程序而执行各种适当的动作和处理。在随机访问存储器1303中,还存储有系统操作所需的各种程序和数据。中央处理器1301、在只读存储器1302以及随机访问存储器1303通过总线1304彼此相连。输入/输出接口1305(Input/Output接口,即I/O接口)也连接至总线1304。
以下部件连接至输入/输出接口1305:包括键盘、鼠标等的输入部分1306;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分1307;包括硬盘等的存储部分1308;以及包括诸如局域网卡、调制解调器等的网络接口卡的通信部分1309。通信部分1309经由诸如因特网的网络执行通信处理。驱动器1310也根据需要连接至输入/输出接口1305。可拆卸介质1311,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1310上,以便于从其上读出的计算机程序根据需要被安装入存储部分1308。
特别地,根据本申请的实施例,各个方法流程图中所描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1309从网络上被下载和安装,和/或从可拆卸介质1311被安装。在该计算机程序被中央处理器1301执行时,执行本申请的系统中限定的各种功能。
需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本申请实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

Claims (10)

1.一种基于数据仓库的数据处理方法,其特征在于,包括:
从数据仓库中获取数据表集,所述数据表集包括所述数据仓库中的数据表;
从所述数据表集中选取至少一个核心数据表,所述核心数据表的关联表数量超过第一阈值,所述核心数据表的关联表是与所述核心数据表的字段相似度超过第二阈值的数据表;
根据选取的至少一个核心数据表所包含的字段构建临时表;
基于所述临时表响应数据处理操作。
2.根据权利要求1所述的基于数据仓库的数据处理方法,其特征在于,在根据选取的至少一个核心数据表所包含的字段构建临时表之后,所述方法还包括:
获取所述数据表集中除所述至少一个核心数据表之外的其它数据表;
从所述其它数据表中选取与所述至少一个核心数据表之间的路径最短的目标数据表;
将选取的所述目标数据表所包含的字段添加到所述临时表。
3.根据权利要求1所述的基于数据仓库的数据处理方法,其特征在于,从所述数据表集中选取至少一个核心数据表,包括:
利用聚类算法对所述数据表集中的数据表进行聚类,获得多个数据表子集;
从所述多个数据表子集中分别选取关联表数量超过第一阈值的数据表作为核心数据表。
4.根据权利要求1所述的基于数据仓库的数据处理方法,其特征在于,在从所述数据表集中选取至少一个核心数据表之前,所述方法还包括:利用局部敏感哈希算法计算所述数据表集中各个数据表之间的字段相似度;
将所述字段相似度超过第二阈值的数据表确定为关联表;
基于各个数据表的关联表构建关联矩阵,所述关联矩阵用于表示所述数据表集中各个数据表与其它数据表的关联情况。
5.根据权利要求4所述的基于数据仓库的数据处理方法,其特征在于,从所述数据表集中选取至少一个核心数据表,包括:
将所述关联矩阵转换成关联键值对;
从所述关联键值对中提取节点对,所述节点对包括所述数据表的两个关联表的组合;
以所述节点对包含的关联表为节点,构建无向的图神经网络,对所述无向的图神经网络进行训练获得所述关联表的特征向量;
基于所述特征向量得到至少一个核心数据表。
6.根据权利要求5所述的基于数据仓库的数据处理方法,其特征在于,基于所述特征向量得到至少一个核心数据表,包括:
利用聚类算法对所述特征向量进行分类,并根据所述特征向量的分类结果确定所述节点对包含的关联表的类别;
计算每个所述类别中任一所述关联表与其它关联表的字段相似度,并进行降序排序;
获取每个所述类别中任一所述关联表中排序在第一预设值之前的关联表,在每个类别中形成至少一个节点列表;
计算所述每个类别中至少一个节点列表的交集,获得至少一个交集节点;
获取所述至少一个交集节点的关联表数量,并根据所述关联表数量对所述至少一个交集节点进行降序排序,形成交集排序表;
将所述交集排序表中排序在第二预设值之前的交集节点对应的数据表作为核心数据表。
7.根据权利要求2所述的基于数据仓库的数据处理方法,其特征在于,在基于所述临时表响应数据处理操作之前,所述方法还包括:
对所述临时表进行验证,若所述临时表中的临时表数量超过第三预设值或所述临时表集中的字段数量超过第四预设值或所述数据表集中任意两个数据表无法通过临时表进行直接关联,则舍弃该临时表。
8.一种基于数据仓库的数据处理装置,其特征在于,包括:
获取模块,被配置为从数据仓库中获取数据表集,所述数据表集包括所述数据仓库中的数据表;
选取模块,被配置为从所述数据表集中选取至少一个核心数据表,所述核心数据表的关联表数量超过第一阈值,所述核心数据表的关联表是与所述核心数据表的字段相似度超过第二阈值的数据表;
构建模块,被配置为根据选取的至少一个核心数据表所包含的字段构建临时表;
处理模块,被配置为基于所述临时表响应数据处理操作。
9.一种计算机可读介质,其上存储有计算机程序,该计算机程序被处理器执行时实现权利要求1至7中任意一项所述的基于数据仓库的数据处理方法。
10.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1至7中任意一项所述的基于数据仓库的数据处理方法。
CN202210281609.5A 2022-03-21 2022-03-21 基于数据仓库的数据处理方法、装置、可读介质及设备 Pending CN114610758A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210281609.5A CN114610758A (zh) 2022-03-21 2022-03-21 基于数据仓库的数据处理方法、装置、可读介质及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210281609.5A CN114610758A (zh) 2022-03-21 2022-03-21 基于数据仓库的数据处理方法、装置、可读介质及设备

Publications (1)

Publication Number Publication Date
CN114610758A true CN114610758A (zh) 2022-06-10

Family

ID=81865963

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210281609.5A Pending CN114610758A (zh) 2022-03-21 2022-03-21 基于数据仓库的数据处理方法、装置、可读介质及设备

Country Status (1)

Country Link
CN (1) CN114610758A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117609210A (zh) * 2023-11-30 2024-02-27 上海一谈网络科技有限公司 数据表处理方法、装置、计算机设备和存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117609210A (zh) * 2023-11-30 2024-02-27 上海一谈网络科技有限公司 数据表处理方法、装置、计算机设备和存储介质

Similar Documents

Publication Publication Date Title
Yuan et al. ITARS: trust-aware recommender system using implicit trust networks
WO2022257436A1 (zh) 基于无线通信网络数据仓库构建方法、系统、设备及介质
CN110619051B (zh) 问题语句分类方法、装置、电子设备及存储介质
CN104077723B (zh) 一种社交网络推荐系统及方法
WO2023155508A1 (zh) 一种基于图卷积神经网络和知识库的论文相关性分析方法
CN114398557B (zh) 基于双画像的信息推荐方法、装置、电子设备及存储介质
CN111738341B (zh) 一种分布式大规模人脸聚类方法及装置
Yin et al. Maximum entropy model for mobile text classification in cloud computing using improved information gain algorithm
CN108197656A (zh) 一种基于cuda的属性约简方法
CN114610758A (zh) 基于数据仓库的数据处理方法、装置、可读介质及设备
Guo et al. A resource aware MapReduce based parallel SVM for large scale image classifications
Jan et al. Semi-supervised labeling: a proposed methodology for labeling the twitter datasets
Ying et al. FrauDetector+ An Incremental Graph-Mining Approach for Efficient Fraudulent Phone Call Detection
CN107862073B (zh) 一种基于节点重要度和分离度的Web社区划分方法
Zhuge et al. Absent Multiview Semisupervised Classification
CN115168609A (zh) 一种文本匹配方法、装置、计算机设备和存储介质
WO2023273171A1 (zh) 图像处理方法、装置、设备和存储介质
CN115510331A (zh) 一种基于闲置量聚合的共享资源匹配方法
CN116842936A (zh) 关键词识别方法、装置、电子设备和计算机可读存储介质
Wu et al. A cloud service resource classification strategy based on feature similarity
CN113569067A (zh) 标签分类方法、装置、电子设备及计算机可读存储介质
CN108280176A (zh) 基于MapReduce的数据挖掘优化方法
CN108256083A (zh) 基于深度学习的内容推荐方法
Sun et al. Key nodes discovery in large-scale logistics network based on MapReduce
Wu et al. Link prediction based on random forest in signed social networks

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