CN109783498B - 数据处理方法及装置、电子设备、存储介质 - Google Patents

数据处理方法及装置、电子设备、存储介质 Download PDF

Info

Publication number
CN109783498B
CN109783498B CN201910044399.6A CN201910044399A CN109783498B CN 109783498 B CN109783498 B CN 109783498B CN 201910044399 A CN201910044399 A CN 201910044399A CN 109783498 B CN109783498 B CN 109783498B
Authority
CN
China
Prior art keywords
data
metadata
data table
acquisition request
tables
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
Application number
CN201910044399.6A
Other languages
English (en)
Other versions
CN109783498A (zh
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.)
Beijing Sankuai Online Technology Co Ltd
Original Assignee
Beijing Sankuai Online Technology Co 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 Beijing Sankuai Online Technology Co Ltd filed Critical Beijing Sankuai Online Technology Co Ltd
Priority to CN201910044399.6A priority Critical patent/CN109783498B/zh
Publication of CN109783498A publication Critical patent/CN109783498A/zh
Application granted granted Critical
Publication of CN109783498B publication Critical patent/CN109783498B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本公开是关于一种数据处理方法及装置、电子设备、存储介质,涉及大数据技术领域,该方法包括:获取数据获取请求中的元数据;将所述数据获取请求中的每一元数据分别与每一预设数据表的元数据进行匹配,以得到与所述数据获取请求相匹配的候选数据表;其中,所述候选数据表的至少一个元数据与所述数据获取请求中的至少一个元数据匹配;对具有相同的匹配的元数据的候选数据表进行筛选以确定预定数量的目标数据表,并从所述目标数据表中获取匹配的元数据的值;根据所述目标数据表中的匹配的元数据的值,确定所述数据获取请求中的元数据的值。本公开可以快速精准地获取与数据获取请求对应的元数据的值,实现快速智能取数。

Description

数据处理方法及装置、电子设备、存储介质
技术领域
本公开涉及大数据技术领域,具体而言,涉及一种数据处理方法、数据处理装置、电子设备以及计算机可读存储介质。
背景技术
随着大数据的发展,数据量越来越多,因此需要快速准确地从数据源中获取需要的数据,以根据得到的数据进行业务处理。
相关技术中,可通过统一接口以及正则表达式对不同的数据源进行取数。当一个指标在多个数据表中存在时,这种方式不能实现快速取数,效率较低且只通过统一的接口得到的取数结果并不准确,无法满足大规模数据中快速准确地得到需要的数据的需求。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的在于提供一种数据处理方法及装置、电子设备、存储介质,进而至少在一定程度上克服由于相关技术的限制和缺陷而导致的不能快速精准取数的问题。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开的一个方面,提供一种数据处理方法,包括:获取数据获取请求中的元数据;将所述数据获取请求中的每一元数据分别与每一预设数据表的元数据进行匹配,以得到与所述数据获取请求相匹配的候选数据表;其中,所述候选数据表的至少一个元数据与所述数据获取请求中的至少一个元数据匹配;对具有相同的匹配的元数据的候选数据表进行筛选以确定预定数量的目标数据表,并从所述目标数据表中获取匹配的元数据的值;根据所述目标数据表中的匹配的元数据的值,确定所述数据获取请求中的元数据的值。
在本公开的一种示例性实施例中,根据所述目标数据表中的匹配的元数据的值,确定所述数据获取请求中的元数据的值包括:获取所有所述目标数据表;根据所述目标数据表的匹配的元数据之间的关联关系,确定述数据获取请求中的元数据的值。
在本公开的一种示例性实施例中,所述数据获取请求中的元数据包括数据范围、指标、维度以及筛选条件。
在本公开的一种示例性实施例中,所述预设数据表的元数据包括数据范围、指标、维度、数据生产时间、数据质量以及引擎类型中的一个或多个。
在本公开的一种示例性实施例中,将所述数据获取请求中的每一元数据分别与每一预设数据表的元数据进行匹配,以得到与所述数据获取请求相匹配的候选数据表包括:依次按照指标、维度、数据范围、数据生产时间以及引擎类型的排列顺序,对所述数据获取请求中的元数据与各所述预设数据表的元数据进行匹配,以将匹配成功的预设数据表作为所述候选数据表。
在本公开的一种示例性实施例中,对具有相同的匹配的元数据的候选数据表进行筛选以确定预定数量的目标数据表包括:根据所述预设数据表的元数据中的维度由小到大的顺序,从所述多个候选数据表中选择目标数据表;根据引擎的速度由快到慢的顺序,从所述多个候选数据表中选择目标数据表;根据数据质量由高到低的顺序,从所述多个候选数据表中选择目标数据表;根据数据生产时间由小到大的顺序,从所述多个候选数据表中选择目标数据表;根据手动排序选择目标数据表。
在本公开的一种示例性实施例中,对具有相同的匹配的元数据的候选数据表进行筛选以确定预定数量的目标数据表包括:根据所述预设数据表的元数据中的维度由小到大的顺序,从所述多个候选数据表中选择目标数据表;若无法根据所述维度确定所述目标数据表,则根据引擎的速度由快到慢的顺序,从所述多个候选数据表中选择目标数据表;若无法根据所述引擎的速度确定所述目标数据表,则根据数据质量由高到低的顺序,从所述多个候选数据表中选择目标数据表;若无法根据所述数据质量确定所述目标数据表,则根据数据生产时间由小到大的顺序,从所述多个候选数据表中选择目标数据表;若无法根据所述数据生产时间确定所述目标数据表,则根据手动排序选择目标数据表。
根据本公开的一个方面,提供一种数据处理装置,包括:元数据获取模块,用于获取数据获取请求中的元数据;候选数据表确定模块,用于将所述数据获取请求中的每一元数据分别与每一预设数据表的元数据进行匹配,以得到与所述数据获取请求相匹配的候选数据表;其中,所述候选数据表的至少一个元数据与所述数据获取请求中的至少一个元数据匹配;目标数据表确定模块,用于对具有相同的匹配的元数据的候选数据表进行筛选以确定预定数量的目标数据表,并从所述目标数据表中获取匹配的元数据的值;数据获取模块,用于根据所述目标数据表中的匹配的元数据的值,确定所述数据获取请求中的元数据的值。
根据本公开的一个方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的数据处理方法。
根据本公开的一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的数据处理方法。
本公开示例性实施例中提供的一种数据处理方法、数据处理装置、电子设备以及计算机可读存储介质中,一方面,通过对数据获取请求中包含的元数据以及预设数据表的元数据进行匹配得到多个候选数据表,并通过对具有相同的匹配的元数据的候选数据表进行筛选,得到预设数量的目标数据表,从而能够准确得到与数据获取请求对应的目标数据表,根据目标数据表的中匹配的元数据实现精准取数,提高数据获取的准确率;另一方面,通过对数据获取请求中包含的元数据以及预设数据表的元数据进行匹配,以得到候选数据表,从而减少了获取数据时需要选择的数据表的数量,提高了获取数据的效率,具有高效性,能够实现快速取数。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示意性示出本公开示例性实施例中一种数据处理方法示意图。
图2示意性示出本公开示例性实施例中数据处理系统的架构图。
图3示意性示出本公开示例性实施例中生成数据获取任务的页面示意图。
图4示意性示出本公开示例性实施例中选择目标数据表的流程图。
图5示意性示出本公开示例性实施例中智能取数算法示意图。
图6示意性示出本公开示例性实施例中一种数据处理装置的框图。
图7示意性示出本公开示例性实施例中一种电子设备的框图。
图8示意性示出本公开示例性实施例中一种程序产品。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
本示例实施方式中首先提供了一种数据处理方法,可以应用于要查询的数据处于不同数据表的应用场景,本示例性实施例中的数据处理方法可以基于Kepler云服务器进行。参考图1所示对该数据处理方法进行详细描述。
在步骤S110中,获取数据获取请求中的元数据。
本示例性实施例中,首先介绍系统架构图。参考图2所示,该系统架构图主要包括数据仓库201、数据源202、元数据管理模块203、智能取数模块204以及结果展示层205。其中,数据仓库,指的是基于业务数据建立的数据表的集合,例如可以包括仓库主题、仓库层次以及仓库规范等等。数据源指的是数据仓库的数据表实际存放的存储引擎和库,数据源可以包括Hive、MySQL、Druid、Kylin等数据库中的任意一种或多种。元数据管理模块,用于将所有数据源及数据仓库和数据表的信息进行抽象统一管理。智能取数模块,用于对相同指标存在不同表的情况下,通过元数据管理模块提供的信息以及数据获取任务智能选择最合适的表。结果展示层,用于采用取数语句从智能取数模块中获取数据加工后返回给用户终端,取数语句例如可以为统一的元数据语法或者是元数据函数,具体可以为SQL(Structured Query Language,结构化查询语言)取数语句或者是其它取数语句,此处不作特殊限定。
终端指的是用户终端,数据获取请求指的是由用户终端发送的用于查询和获取满足用户需求的数据的请求。数据获取请求中包括至少一个元数据,这些元数据用于表示用户需求,具体可以表现为字段的形式,例如可包括表示部门的字段1,还可包括表示收入的字段2等等,从而根据字段1和字段2形成数据获取请求。需要说明的是,用户终端可以通过前端应用统一的元数据取数语句向智能取数模块发起数据获取请求,即该数据获取请求可通过统一的元数据取数语句来表示。
获取到用户终端发送的数据获取请求之后,可根据接收到的数据获取请求创建数据获取任务。参考图3中所示,用户通过用户终端上如图3所示的界面来输入元数据,作为数据获取请求提供的元数据的具体数值,以构建数据获取任务。基于用户提供的元数据,前端界面可通过元数据管理接口得到每一个元数据的下拉列表,进而可以得到用户提供的元数据以及元数据的具体参数等等。此处的元数据包括但不限于数据范围、指标、维度以及筛选条件等等,用于创建数据获取任务。具体地,用户可以在页面上选择和输入参数以及具体数值以作为数据获取请求,智能取数模块可根据数据获取请求中的元数据(包括用户输入的元数据以及具体数值)创建数据获取任务,从而实现根据元数据创建数据获取任务。进一步地,可确定数据获取任务中包含的元数据,参考图3中所示,与用户输入对应的,数据获取任务中的元数据可以包括但不限于数据范围、指标、维度以及筛选条件。其中,数据范围指的是“效果广告”或者是其他类别,数据范围还可以为数据表的行数。指标可以包括消耗、收入或者是其他等等。维度可以包括日期、时间、距离或者是根据实际需求进行设定。筛选条件例如可以为部门标识BUID、当然也可以为地区标识或者是某个用户标识等等。筛选条件中还可以包括条件判断符,例如等于、大于、小于等等,还可以包括用于判断的基准数值,基准数值可以根据实际需求设置为任意数值,例如1.13或者是其他数值等等。参考图3中所示,筛选条件可以设为部门标识BUID等于1,13。
在步骤S120中,将所述数据获取请求中的每一元数据分别与每一预设数据表的元数据进行匹配,以得到与所述数据获取请求相匹配的候选数据表;其中,所述候选数据表的至少一个元数据与所述数据获取请求中的至少一个元数据匹配。
本示例性实施例中,预设数据表指的是待选择的或者是可选的多个数据表,预设数据表的元数据指的是元数据管理模块提供的元数据。元数据管理模块提供的元数据包括但不限于数据范围、指标、维度、数据生产时间、数据质量以及引擎类型中的一个或多个。此处的维度也可以称为粒度,粒度越粗,数据越多;粒度越小,数据越少。数据生产时间指的是数据生成的时间。引擎用于存储每个数据表,一个数据表存储在一个引擎中,引擎类型包括热引擎和冷引擎,热引擎指的是速度较快的引擎,冷引擎指的是速度较慢的引擎,一般而言,冷引擎中可包括一些复杂的运算。数据质量可通过数据是否缺失、数据是否错误或者数据是否重复等等来确定,数据质量可通过具体数值来表示。数据获取请求中包含的元数据的数据范围、指标和维度可以包括在元数据管理模块提供的数据范围、指标以及维度范围内,也可以在这些范围之外,此处不作特殊限定。
由于元数据管理模块是对所有数据源及数据仓库和数据表的信息进行抽象统一管理。因此元数据管理模块提供的元数据中还可以包括如数据表中分区信息,数据仓库的层次和主题信息,数据表的范围,数据仓库每日生产的日志信息等。
通过数据获取请求中的每一个元数据以及每一个预设数据表的元数据进行匹配,得到与所述数据获取请求匹配的候选数据表时,可根据所述数据获取任务中的元数据,通过用于存储数据表的元数据的元数据管理接口得到满足所述数据获取请求的候选数据表。也就是说,智能取数模块使用数据获取任务中提供的指标维度和筛选条件,通过元数据管理接口得到所有具备和满足数据获取请求的数据表集合,并将这些数据表集合作为满足数据获取请求的候选数据表。
具体地,得到候选数据表的步骤包括:对所述预设数据表的元数据与所述数据获取请求中的元数据进行对比,以判断所述预设数据表的元数据是否与所述数据获取任请求中的元数据匹配;若所述预设数据表的元数据与所述数据获取请求中的元数据匹配成功,则将匹配成功的预设数据表确定为候选数据表。参考图4所示,本步骤主要执行图4中的淘汰阶段。可依次判断预设数据表的每个元数据中的具体数值是否符合数据获取任务中包含的至少一个元数据的数值,如果满足,则可将该预设数据表作为满足数据获取请求的一个候选数据表。如此一来,可将所有预设数据表的元数据的具体数值与数据获取任务中包含的元数据的数值进行对比,从而得到满足数据获取请求的一个或者是多个候选数据表。满足所述数据获取请求的候选数据表可以是指,某一个预设数据表的至少一个行或列对应的元数据,与数据获取请求中的至少一个元数据匹配。
举例而言,在选择候选数据表时,可依次按照指标、维度、数据范围、数据生产时间以及引擎进行筛选。参考图4中所示,第一步,可进行指标筛选,淘汰指标不匹配的数据表,例如数据表1元数据的指标为消耗,数据获取请求中的元数据的指标为收入,则可将数据表1淘汰掉。通过同样的方式,可对所有预设数据表的指标进行筛选,从而得到指标符合数据获取请求的多个候选数据表。第二步,可进行维度筛选,淘汰维度不匹配的预设数据表,例如数据表2的元数据的维度为距离,数据获取请求中的元数据的维度为时间,则可将数据表2淘汰掉。通过同样的方式,可对每个预设数据表的维度进行筛选,从而得到维度符合数据获取请求的多个候选数据表。第三步,可进行数据范围筛选,淘汰数据范围不匹配的预设数据表,例如数据表3的元数据的数据范围为200行,数据获取请求中的元数据的数据范围为100行,由于数据行数不匹配,则可将数据表3淘汰掉。通过同样的方式,可对所有预设数据表的数据范围进行筛选,从而得到数据范围符合数据获取请求的多个候选数据表。第四步,按照数据生产时间进行筛选,例如数据表4的数据生产时间为2018年6月15日,数据获取请求的时间为2018年6月15日,则可以将数据表4作为一个候选数据表。若数据表5的数据生产时间为2018年6月14日,数据获取请求的时间为2018年6月15日,则可以将数据表5过滤掉。第五步,可通过引擎进行筛选,例如数据表6的元数据的引擎为冷引擎1,数据获取请求中的元数据的引擎为热引擎1,则可将数据表6淘汰掉。通过同样的方式,可对所有预设数据表的引擎进行筛选,从而得到引擎符合数据获取请求的多个候选数据表。
需要说明的是,根据数据获取请求的元数据和元数据管理模块提供的预设数据表的元数据,得到的第一步和第五步之间,可以先执行第一步,在第一步执行完之后再执行第二步,或者是在第一步执行完之后直接完成整个淘汰过程。依次从第一步执行到第五步,可准确锁定满足数据获取请求的候选数据表,从而减少了智能取数时需要判断的表的数量,在数据表较多的情况下极大程度地提高了效率。即:
根据指标进行筛选,淘汰指标不匹配的预设数据表;根据维度进行筛选,淘汰维度不匹配的预设数据表;根据数据范围进行筛选,淘汰数据范围(行或列)不匹配的预设数据表;根据数据生产日期进行筛选,淘汰数据生产日期不匹配的预设数据表;根据引擎类型进行筛选,淘汰引擎类型不匹配(冷或热)或淘汰引擎计算类型不匹配的预设数据表。
需要说明的是,依次执行上述的第一步到第五步只是一种实施方式,上述五个步骤的执行顺序可以任意调整,此处不作具体限定。整个筛选过程具体可以通过程序或者是函数进行,此处不作具体限定。
举例而言,数据获取请求为“账户BU的收入数据”,则可认为数据获取请求中的元数据为账户BU以及收入;在执行完步骤S120之后,可得到符合数据获取请求的多个候选数据表,例如表1、表2和表3。如表1、表2和表3中所示,每一个表都至少具有一个与数据获取请求中的元数据相同的元数据;例如表1和表2中的“收入”以及表3中的“账户BU”。
账户ID 账户名称 收入
1001 账户A 300
1002 账户B 600
1003 账户C 1200
表1
账户ID 门店ID 收入
1001 80012 300
1002 80013 200
1002 80014 400
1003 80015 1200
表2
账户ID 账户BU
1001 丽人BU
1002 丽人BU
1003 休娱BU
表3
其中,表1的主键为账户,收入为粒度2。表2的主键为账户和门店,收入为粒度3。表3的粒度为账户BU,即账户所属的部门。
在步骤S130中,对具有相同的匹配的元数据的候选数据表进行筛选以确定预定数量的目标数据表,并从所述目标数据表中获取匹配的元数据的值。
本示例性实施例中,若数据获取请求中包含的某一个元数据存在于多个候选数据表而不是一个候选数据表中,则需要根据该元数据的具体数值从多个候选数据表中选择预定数量个作为目标数据表。目标数据表的数量可以为预定数量,预定数量例如可以为至少一个,以避免未获取到目标数据表的无效操作,提高操作有效性。
继续参考图4所示,确定某一个元数据对应的目标数据表描述的主要是图4中的排序阶段。在选择目标数据表时,可按照预定的优先级顺序依次对包含某一个元数据的目标数据表进行排序,优先级顺序指的是依次按维度排序、引擎排序、质量排序、数据生产时间排序以及手动排序的顺序,从而对具有相同的匹配的元数据的多个候选数据表进行筛选或者是过滤,从一个或多个候选数据表中确定预定数量的目标数据表。
若多个候选数据表中均存在同一个与数据获取请求匹配的元数据,则首先可按照维度的排列顺序对多个候选数据表进行筛选,从而选择目标数据表。具体而言,在按照维度排序时,可根据数据表的元数据中的维度由小到大的顺序,从所述多个候选数据表中选择目标数据表,此处的维度小指的是维度或粒度粗。例如,若在淘汰阶段得到均具有元数据“收入”的候选数据表包括表1和表2。表1是账户ID粒度,即一个维度;表2是账户ID和门店ID粒度,即两个维度。在排序阶段,由于表1的粒度比表2的粒度粗,所以优先选择表1作为目标数据表。
接下来,如果维度排序不能实现或者是维度排序结果不能确定目标数据表,则可以按照引擎筛选。具体地,可根据引擎的速度由快到慢的顺序,从所述多个候选数据表中选择目标数据表。也就是说,在其他条件相同的情况下,可将引擎速度快的候选数据表作为目标数据表。例如,对于均具有元数据“收入”的表1和表2而言,若表1为快引擎,表2为慢引擎,则可将表1作为目标数据表。
进一步地,如果维度排序、引擎排序均不能实现或者是维度排序、引擎排序结果不能确定目标数据表,则可以按照数据质量筛选。具体地,可根据数据质量由高到低的顺序,从所述多个候选数据表中选择目标数据表。也就是说,在其他条件相同的情况下,可将数据比较完整或者是数据正确率较高的数据表作为目标数据表。
另外,如果维度排序、引擎排序、数据质量排序均不能实现或者是维度排序、引擎排序、数据质量排序结果不能确定目标数据表,则可以按照数据生产时间筛选。具体地,可根据数据生产时间由小到大的顺序,从所述多个候选数据表中选择目标数据表。也就是说,在其他条件相同的情况下,可将数据生产时间较早的数据表作为目标数据表。
最后,可以根据手动排序确定目标数据表,手动排序时可自定义优先级,并将自定义的优先级高的数据表作为目标数据表。例如,自定义优先级时可将数据量最少的表作为目标数据表,或者也可按照其他方式自定义优先级。
综上所述,具体确定目标数据表的过程即为:
根据所述预设数据表的元数据中的维度由小到大的顺序,从所述多个候选数据表中选择目标数据表;若无法根据所述维度确定所述目标数据表,则根据引擎的速度由快到慢的顺序,从所述多个候选数据表中选择目标数据表;若无法根据所述引擎的速度确定所述目标数据表,则根据数据质量由高到低的顺序,从所述多个候选数据表中选择目标数据表;若无法根据所述数据质量确定所述目标数据表,则根据数据生产时间由小到大的顺序,从所述多个候选数据表中选择目标数据表;若无法根据所述数据生产时间确定所述目标数据表,则根据手动排序选择目标数据表。
当然,依次执行上述筛选步骤只是一种实施方式,上述几个步骤的执行顺序可以任意调整,此处不作具体限定。整个筛选过程具体可以通过程序或者是函数进行,此处不作具体限定。
在此基础上,通过对具有相同的匹配的元数据的候选数据表,依次按照维度、引擎、数据质量、数据生产时间以及手动排序进行筛选后,对于元数据位于多个数据表的情况而言,能够得到较准确较全面的目标数据表。
举例而言,当用户终端发送的数据获取请求为账户BU的收入数据时,首先接收数据获取请求,并填入元数据请求,代码可例如:
{“metric”:“charge”
“groupby”:“account_buname”}
随后,智能取数模块通过元数据管理模块得到数据获取任务的元数据,通过步骤S120和步骤S130得到与数据获取请求关联的目标数据表。可例如,对于数据获取请求“账户BU的收入数据”而言,根据上述数据表筛选过程和选择过程,得到的与数据获取请求“账户BU的收入数据”对应的目标数据表为表1和表3。
进一步地,在确定目标数据表之后,可从目标数据表中得到匹配的元数据的值,具体可通过取数语句,例如SQL取数语句等从表1和表3中得到匹配的元数据的具体数值。具体而言,可通过数据获取任务中的元数据确定目标数据表对应的目标计算引擎,即通过图2中所示的数据范围、指标、维度以及筛选条件,利用通用的查询语法来进行语法翻译,通过语法翻译过程得到每个目标数据表对应的目标计算引擎。智能取数模块根据选择的目标数据表,结合接收到的数据查询请求和数据查询任务中包含的元数据,发送查询语句到目标计算引擎进行取数。通过每个目标计算引擎对每个目标数据表进行取数,可实现快速高效地获取数据。得到取数结果后可对取数结果进行名字转化和格式处理等工作,进而将转化后的取数结果返回至用户终端或者是用户界面。可例如,从表3可知丽人BU对应账户ID1001和账户ID1002,而从表1可知账户ID1001的收入为300且账户ID1002的收入为600;因此进行名字转化和格式处理后得到表4的结果,即丽人BU的收入为900,休娱BU的收入为1200:
账户BU 收入
丽人BU 900
休娱BU 1200
表4
通过本示例性实施例中的智能取数方法,当数据获取请求中的一个元数据存在于多个数据表中时,可通过元数据过滤和选择,从而高效地得到准确的数据。相比于相关技术而言,提高了取数效率。
在步骤S140中,根据所述目标数据表中的匹配的元数据的值,确定所述数据获取请求中的元数据的值。
本示例性实施例中,可获取所有目标数据表,并根据所述目标数据表的匹配的元数据之间的关联关系,确定述数据获取请求中的元数据的值。其中,关联关系指的是不同的目标数据表之间的相互对应关系,例如丽人BU对应的收入值以及休娱BU对应的收入值等等。也就是说,确定目标数据表中,与数据获取请求的元数据匹配的元数据的值之后,可将该匹配的元数据的值作为数据获取请求中要查询的元数据的值,即最终的取数结果。通过本示例性实施例中的智能取数方法,当数据获取请求中的一个元数据存在于多个数据表中时,可通过元数据过滤和选择,从而高效地得到准确的数据。相比于相关技术而言,避免了相关技术中只能做到简单的统一接口,在当前数据爆炸,数仓规模急剧扩大的情况下无法满足现有取数方的需求的问题,提高了取数效率和准确率,也能够满足取数方的需求,为取数方提供便利。
图5示出了智能取数的流程图,具体包括以下步骤:
在步骤S501中,客户端发送数据获取请求。
在步骤S502中,应用层前端界面通过智能取数接口传入用元数据构建的数据获取语句,并构建数据获取任务。
在步骤S503中,通过元数据管理模块得到数据获取任务的元数据和参数。
在步骤S504中,根据数据获取任务的元数据和数据表的元数据选择与数据获取请求关联的模型,此处的模型指的即是数据表。
在步骤S505中,通过语法选择以及语法翻译过程得到每个目标数据表的引擎。
在步骤S506中,根据选择的引擎和目标数据表发送数据获取请求。
在步骤S507中,智能取数从数据引擎得到取数结果,进行指标维度名称翻译格式处理等处理。
在步骤S508中,将得到的元数据的值返回给客户端,以使客户端进行展示。
在图5的步骤中,通过将数据获取请求中的元数据与元数据管理模块提供的预设数据表的元数据进行匹配对比,得到与数据获取请求匹配的候选数据表,并对候选数据表进行筛选,以从从多个预设数据表中确定与数据获取请求关联的目标数据表。通过元数据对比,能够准确地从多个预设数据表中得到最符合数据获取请求的目标数据表,进而从目标数据表中快速准确地得到数据获取请求对应的元数据的值,提高获取数据的效率和准确率,实现准确智能取数。
本公开还提供了一种数据处理装置。参考图6所示,该数据处理装置600可以包括:
元数据获取模块601,可以用于获取数据获取请求中的元数据;
候选数据表确定模块602,可以用于将所述数据获取请求中的每一元数据分别与每一预设数据表的元数据进行匹配,以得到与所述数据获取请求相匹配的候选数据表;其中,所述候选数据表的至少一个元数据与所述数据获取请求中的至少一个元数据匹配;
目标数据表确定模块603,可以用于对具有相同的匹配的元数据的候选数据表进行筛选以确定预定数量的目标数据表,并从所述目标数据表中获取匹配的元数据的值;
数据获取模块604,可以用于根据所述目标数据表中的匹配的元数据的值,确定所述数据获取请求中的元数据的值。
需要说明的是,上述数据处理装置中各模块的具体细节已经在对应的数据处理方法中进行了详细描述,因此此处不再赘述。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
在本公开的示例性实施例中,还提供了一种能够实现上述方法的电子设备。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
下面参照图7来描述根据本发明的这种实施方式的电子设备700。图7显示的电子设备700仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图7所示,电子设备700以通用计算设备的形式表现。电子设备700的组件可以包括但不限于:上述至少一个处理单元710、上述至少一个存储单元720、连接不同系统组件(包括存储单元720和处理单元710)的总线730。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元710执行,使得所述处理单元710执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元710可以执行如图1中所示的步骤。
存储单元720可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)7201和/或高速缓存存储单元7202,还可以进一步包括只读存储单元(ROM)7203。
存储单元720还可以包括具有一组(至少一个)程序模块7205的程序/实用工具7204,这样的程序模块7205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线730可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
显示单元740可以为具有显示功能的显示器,以通过该显示器展示由处理单元710执行本示例性实施例中的方法而得到的处理结果。显示器包括但不限于液晶显示器或者是其它显示器。
电子设备700也可以与一个或多个外部设备900(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备700交互的设备通信,和/或与使得该电子设备700能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口750进行。并且,电子设备700还可以通过网络适配器760与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器760通过总线730与电子设备700的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备700使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。
参考图8所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品800,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施例。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。

Claims (9)

1.一种数据处理方法,其特征在于,包括:
获取数据获取请求中的元数据;
将所述数据获取请求中的每一元数据分别与每一预设数据表的元数据进行匹配,以得到与所述数据获取请求相匹配的候选数据表;其中,所述候选数据表的至少一个元数据与所述数据获取请求中的至少一个元数据匹配;
若所述数据获取请求中的元数据存在于多个候选数据表中,按照预定的优先级顺序对具有相同的匹配的元数据的候选数据表进行筛选以确定预定数量的目标数据表,并从所述目标数据表中获取匹配的元数据的值;
根据所述目标数据表中的匹配的元数据的值,确定所述数据获取请求中的元数据的值,根据选择的目标数据表,结合接收到的所述数据获取请求和包含的元数据进行取数得到取数结果,对所述取数结果进行名字转化和格式处理,并将转化后的取数结果返回至用户终端或用户界面;
其中,根据所述目标数据表中的匹配的元数据的值,确定所述数据获取请求中的元数据的值包括:
获取所有所述目标数据表;
根据所述目标数据表的匹配的元数据之间的关联关系,确定所述数据获取请求中的元数据的值。
2.根据权利要求1所述的数据处理方法,其特征在于,所述数据获取请求中的元数据包括数据范围、指标、维度以及筛选条件。
3.根据权利要求1所述的数据处理方法,其特征在于,所述预设数据表的元数据包括数据范围、指标、维度、数据生产时间、数据质量以及引擎类型中的一个或多个。
4.根据权利要求3所述的数据处理方法,其特征在于,将所述数据获取请求中的每一元数据分别与每一预设数据表的元数据进行匹配,以得到与所述数据获取请求相匹配的候选数据表包括:
依次按照指标、维度、数据范围、数据生产时间以及引擎类型的排列顺序,对所述数据获取请求中的元数据与各所述预设数据表的元数据进行匹配,以将匹配成功的预设数据表作为所述候选数据表。
5.根据权利要求3所述的数据处理方法,其特征在于,对具有相同的匹配的元数据的候选数据表进行筛选以确定预定数量的目标数据表包括:
根据所述预设数据表的元数据中的维度由小到大的顺序,从所述多个候选数据表中选择目标数据表;
根据引擎的速度由快到慢的顺序,从所述多个候选数据表中选择目标数据表;
根据数据质量由高到低的顺序,从所述多个候选数据表中选择目标数据表;
根据数据生产时间由小到大的顺序,从所述多个候选数据表中选择目标数据表;
根据手动排序选择目标数据表。
6.根据权利要求5所述的数据处理方法,其特征在于,对具有相同的匹配的元数据的候选数据表进行筛选以确定预定数量的目标数据表包括:
根据所述预设数据表的元数据中的维度由小到大的顺序,从所述多个候选数据表中选择目标数据表;
若无法根据所述维度确定所述目标数据表,则根据引擎的速度由快到慢的顺序,从所述多个候选数据表中选择目标数据表;
若无法根据所述引擎的速度确定所述目标数据表,则根据数据质量由高到低的顺序,从所述多个候选数据表中选择目标数据表;
若无法根据所述数据质量确定所述目标数据表,则根据数据生产时间由小到大的顺序,从所述多个候选数据表中选择目标数据表;
若无法根据所述数据生产时间确定所述目标数据表,则根据手动排序选择目标数据表。
7.一种数据处理装置,其特征在于,包括:
元数据获取模块,用于获取数据获取请求中的元数据;
候选数据表确定模块,用于将所述数据获取请求中的每一元数据分别与每一预设数据表的元数据进行匹配,以得到与所述数据获取请求相匹配的候选数据表;其中,所述候选数据表的至少一个元数据与所述数据获取请求中的至少一个元数据匹配;
目标数据表确定模块,用于若所述数据获取请求中的元数据存在于多个候选数据表中,按照预定的优先级顺序对具有相同的匹配的元数据的候选数据表进行筛选以确定预定数量的目标数据表,并从所述目标数据表中获取匹配的元数据的值;
数据获取模块,用于根据所述目标数据表中的匹配的元数据的值,确定所述数据获取请求中的元数据的值,根据选择的目标数据表,结合接收到的所述数据获取请求和包含的元数据进行取数得到取数结果,对所述取数结果进行名字转化和格式处理,并将转化后的取数结果返回至用户终端或用户界面;
其中,数据获取模块包括:
获取所有所述目标数据表;
根据所述目标数据表的匹配的元数据之间的关联关系,确定所述数据获取请求中的元数据的值。
8.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1-6任意一项所述的数据处理方法。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-6任意一项所述的数据处理方法。
CN201910044399.6A 2019-01-17 2019-01-17 数据处理方法及装置、电子设备、存储介质 Active CN109783498B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910044399.6A CN109783498B (zh) 2019-01-17 2019-01-17 数据处理方法及装置、电子设备、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910044399.6A CN109783498B (zh) 2019-01-17 2019-01-17 数据处理方法及装置、电子设备、存储介质

Publications (2)

Publication Number Publication Date
CN109783498A CN109783498A (zh) 2019-05-21
CN109783498B true CN109783498B (zh) 2020-06-02

Family

ID=66500882

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910044399.6A Active CN109783498B (zh) 2019-01-17 2019-01-17 数据处理方法及装置、电子设备、存储介质

Country Status (1)

Country Link
CN (1) CN109783498B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112988698A (zh) * 2019-12-02 2021-06-18 阿里巴巴集团控股有限公司 一种数据处理方法以及装置
CN112883073B (zh) * 2021-03-22 2024-04-05 北京同邦卓益科技有限公司 数据筛选方法、装置、设备、可读存储介质以及产品
CN113010509A (zh) * 2021-04-06 2021-06-22 新奥数能科技有限公司 统计特定时间段中使用数据的方法、装置和电子设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108959636A (zh) * 2018-07-25 2018-12-07 北京京东金融科技控股有限公司 数据处理方法、装置、系统、计算机可读介质

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3660667B2 (ja) * 2003-07-29 2005-06-15 株式会社東芝 データ処理装置、データ処理方法およびプログラム
US7340471B2 (en) * 2004-01-16 2008-03-04 Unisys Corporation Saving and restoring an interlocking trees datastore
CN100472514C (zh) * 2004-11-08 2009-03-25 中兴通讯股份有限公司 基于组合查询项的业务统计方法及其组合查询系统
US20060235834A1 (en) * 2005-04-14 2006-10-19 Microsoft Corporation Path expression in structured query language
US7870164B2 (en) * 2007-11-20 2011-01-11 Microsoft Corporation Database part creation, merge and reuse
CN101957828B (zh) * 2009-07-20 2013-03-06 阿里巴巴集团控股有限公司 一种对搜索结果进行排序的方法和装置
CN101876984A (zh) * 2009-12-07 2010-11-03 金蝶软件(中国)有限公司 一种数据管理系统及其数据关联查询方法和装置
CN102236672B (zh) * 2010-05-06 2016-08-24 深圳市腾讯计算机系统有限公司 一种数据导入方法及装置
CN102129461B (zh) * 2011-03-11 2013-06-26 南京新模式软件集成有限公司 一种快速检索企业数据的方法
CN106598977A (zh) * 2015-10-15 2017-04-26 北京国双科技有限公司 数据迁移方法和装置
US10042942B2 (en) * 2015-10-30 2018-08-07 Sap Se Transforms using column dictionaries
CN108132957B (zh) * 2016-12-01 2021-09-10 中国移动通信有限公司研究院 一种数据库处理方法及装置
CN107609130A (zh) * 2017-09-18 2018-01-19 链家网(北京)科技有限公司 一种选择数据查询引擎的方法及服务器
CN109144997A (zh) * 2018-06-11 2019-01-04 玖富金科控股集团有限责任公司 数据关联方法、装置及存储介质

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108959636A (zh) * 2018-07-25 2018-12-07 北京京东金融科技控股有限公司 数据处理方法、装置、系统、计算机可读介质

Also Published As

Publication number Publication date
CN109783498A (zh) 2019-05-21

Similar Documents

Publication Publication Date Title
CN110633292B (zh) 一种异构数据库的查询方法、装置、介质、设备及系统
CN109783498B (zh) 数据处理方法及装置、电子设备、存储介质
US9524318B2 (en) Minimizing result set size when converting from asymmetric to symmetric requests
US20120331010A1 (en) Systems And Methods For Performing A Query On A Distributed Database
CN109524070B (zh) 数据处理方法及装置、电子设备、存储介质
CN110795455A (zh) 依赖关系解析方法、电子装置、计算机设备及可读存储介质
US10157234B1 (en) Systems and methods for transforming datasets
US11698918B2 (en) System and method for content-based data visualization using a universal knowledge graph
CN114357276A (zh) 数据查询方法、装置、电子设备以及存储介质
CN110597844B (zh) 异构数据库数据统一访问方法及相关设备
CN110688544A (zh) 一种查询数据库的方法、设备及存储介质
CN109376153B (zh) 一种基于NiFi的数据写入图数据库的系统及方法
JP2020017272A (ja) ピクチャ検索方法、装置、サーバー及び記憶媒体
US11132363B2 (en) Distributed computing framework and distributed computing method
CN112580357A (zh) 自然语言查询的语义解析
CN109241100B (zh) 一种查询方法、装置、设备及存储介质
CN114579104A (zh) 数据分析场景的生成方法、装置、设备及存储介质
CN111198898A (zh) 大数据查询方法及大数据查询装置
CN116450890A (zh) 图数据处理方法、装置、系统、电子设备及存储介质
US20110302220A1 (en) Sql processing for data conversion
CN110874366A (zh) 数据处理、查询方法和装置
CN111104426B (zh) 一种数据查询方法及系统
US20150134660A1 (en) Data clustering system and method
JP2018198044A (ja) 複数イベント・パターン・クエリーを生成するための装置および方法
JP2023015275A (ja) 観測情報処理方法、装置、電子機器、記憶媒体及びコンピュータプログラム

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