CN110866052A - 一种数据分析方法、装置及设备 - Google Patents
一种数据分析方法、装置及设备 Download PDFInfo
- Publication number
- CN110866052A CN110866052A CN201810985908.0A CN201810985908A CN110866052A CN 110866052 A CN110866052 A CN 110866052A CN 201810985908 A CN201810985908 A CN 201810985908A CN 110866052 A CN110866052 A CN 110866052A
- Authority
- CN
- China
- Prior art keywords
- data
- type
- database
- destination
- storing
- 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
- 238000000034 method Methods 0.000 title claims abstract description 79
- 238000007405 data analysis Methods 0.000 title claims abstract description 34
- 230000008676 import Effects 0.000 claims description 25
- 238000004458 analytical method Methods 0.000 claims description 21
- 238000006243 chemical reaction Methods 0.000 claims description 21
- 238000010586 diagram Methods 0.000 description 17
- 230000008569 process Effects 0.000 description 16
- 238000013500 data storage Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 11
- 238000004590 computer program Methods 0.000 description 7
- 101100237842 Xenopus laevis mmp18 gene Proteins 0.000 description 4
- 230000004044 response Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 101100328886 Caenorhabditis elegans col-2 gene Proteins 0.000 description 1
- 101100328884 Caenorhabditis elegans sqt-3 gene Proteins 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种数据分析方法、装置及设备,该方法包括:接收存储请求,所述存储请求用于将源数据库的数据存储到一个或者多个目的数据库;其中,不同目的数据库的类型相同或者不同;确定所述源数据库的第一类型和所述目的数据库的第二类型;若所述第一类型与所述第二类型不同,则从所述源数据库中读取所述存储请求对应的第一数据,将所述第一数据转换为所述第二类型对应的第二数据;将所述第二数据存储到所述目的数据库。通过本申请的技术方案,可以在异构数据源的应用场景下,进行多目的、多源的ETL处理。
Description
技术领域
本申请涉及互联网技术领域,尤其涉及一种数据分析方法、装置及设备。
背景技术
数据湖分析(Data Lake Analytics)用于为用户提供无服务器化(Serverless)的查询分析服务,能够对海量的数据进行任意维度的分析和查询,支持高并发、低延时(毫秒级响应)、实时在线分析、海量数据查询等功能。在数据湖分析系统中,可以包括数据库和前端节点,数据库用于存储大量数据,而前端节点在接收到查询请求后,可以从数据库中查询与该查询请求对应的数据。
目前,数据湖分析可以支持ETL(Extract Transform Load,抽取转换加载),也就是说,前端节点可以从源数据库中抽取数据,在对数据进行转换后,将数据加载到目的数据库中。但是,在传统方式中,数据湖分析只支持单个源数据库和单个目的数据库,而且,源数据库的类型与目的数据库的类型相同。
发明内容
本申请提供一种数据分析方法,所述方法包括:
接收存储请求,所述存储请求用于将源数据库的数据存储到一个或者多个目的数据库;其中,不同目的数据库的类型相同或者不同;
确定所述源数据库的第一类型和所述目的数据库的第二类型;
若所述第一类型与所述第二类型不同,则从所述源数据库中读取所述存储请求对应的第一数据,将所述第一数据转换为所述第二类型对应的第二数据;
将所述第二数据存储到所述目的数据库。
本申请提供一种数据分析方法,所述方法包括:
接收存储请求,所述存储请求用于将源数据库的数据存储到一个或者多个目的数据库;其中,不同目的数据库的类型相同或者不同;源数据库和目的数据库均为云数据库,所述云数据库用于提供无服务器化的查询分析服务;
确定所述源数据库的第一类型和所述目的数据库的第二类型;
若所述第一类型与所述第二类型不同,则从所述源数据库中读取所述存储请求对应的第一数据,将所述第一数据转换为所述第二类型对应的第二数据;
将所述第二数据存储到所述目的数据库。
本申请提供一种数据分析方法,所述方法包括:
接收存储请求,所述存储请求用于将源数据库的数据存储到一个或者多个目的数据库;其中,不同目的数据库的类型相同或者不同;
确定所述源数据库的第一类型和所述目的数据库的第二类型;
若所述第一类型与所述第二类型不同,则获取第一类计划,并将所述第一类计划发送给计算节点,以使所述计算节点根据所述第一类计划从所述源数据库中读取所述存储请求对应的第一数据,并将所述第一数据转换为所述第二类型对应的第二数据,并将所述第二数据存储到所述目的数据库。
本申请提供一种数据分析装置,所述装置包括:
接收模块,用于接收存储请求,所述存储请求用于将源数据库的数据存储到一个或者多个目的数据库;其中,不同目的数据库的类型相同或者不同;
确定模块,用于确定源数据库的第一类型和目的数据库的第二类型;
处理模块,用于若所述第一类型与所述第二类型不同,则从所述源数据库中读取所述存储请求对应的第一数据,将所述第一数据转换为所述第二类型对应的第二数据,并将所述第二数据存储到所述目的数据库。
本申请提供一种数据分析装置,所述装置包括:
接收模块,用于接收存储请求,所述存储请求用于将源数据库的数据存储到一个或者多个目的数据库;其中,不同目的数据库的类型相同或者不同;
确定模块,用于确定源数据库的第一类型和目的数据库的第二类型;
处理模块,用于若所述第一类型与所述第二类型不同,则获取第一类计划,并将所述第一类计划发送给计算节点,以使所述计算节点根据所述第一类计划从所述源数据库中读取所述存储请求对应的第一数据,并将所述第一数据转换为所述第二类型对应的第二数据,并将所述第二数据存储到所述目的数据库。
本申请提供一种数据分析设备,包括:
处理器和机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述处理器执行所述计算机指令时进行如下处理:
接收存储请求,所述存储请求用于将源数据库的数据存储到一个或者多个目的数据库;其中,不同目的数据库的类型相同或者不同;
确定所述源数据库的第一类型和所述目的数据库的第二类型;
若所述第一类型与所述第二类型不同,则从所述源数据库中读取所述存储请求对应的第一数据,将所述第一数据转换为所述第二类型对应的第二数据;
将所述第二数据存储到所述目的数据库。
本申请提供一种数据分析设备,包括:
处理器和机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述处理器执行所述计算机指令时进行如下处理:
接收存储请求,所述存储请求用于将源数据库的数据存储到目的数据库;
接收存储请求,所述存储请求用于将源数据库的数据存储到一个或者多个目的数据库;其中,不同目的数据库的类型相同或者不同;
若所述第一类型与所述第二类型不同,则获取第一类计划,并将所述第一类计划发送给计算节点,以使所述计算节点根据所述第一类计划从所述源数据库中读取所述存储请求对应的第一数据,并将所述第一数据转换为所述第二类型对应的第二数据,并将所述第二数据存储到所述目的数据库。
基于上述技术方案,本申请实施例中,当源数据库的第一类型和目的数据库的第二类型不同时,则可以从源数据库中读取第一数据,将第一数据转换为第二类型对应的第二数据,并将第二数据存储到目的数据库。这样,可以支持不同类型的ETL处理,而且,源数据库可以包括一个或者多个源数据库,目的数据库可以包括一个或者多个目的数据库。综上所述,上述方式可以使得数据湖分析在异构数据源的应用场景下,能够进行多目的、多源的ETL处理。
附图说明
为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其它的附图。
图1A是本申请一种实施方式中的系统结构示意图;
图1B是本申请另一种实施方式中的系统结构示意图;
图2是本申请一种实施方式中的数据分析方法的流程图;
图3是本申请另一种实施方式中的数据分析方法的流程图;
图4A-图4D是本申请一种实施方式中的数据分析示意图;
图5是本申请一种实施方式中的数据分析装置的结构图;
图6是本申请另一种实施方式中的数据分析装置的结构图。
具体实施方式
在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本申请实施例中提出了一种数据分析方法,该方法可以应用于包括客户端、负载均衡设备、前端节点(front node,也可以称为前端服务器)和数据库的系统,如用于实现数据湖分析的数据库系统。参见图1A和图1B所示,为本实施例的应用场景示意图,在图1A中,包括客户端、负载均衡设备、前端节点和数据库,在图1B中,包括客户端、负载均衡设备、前端节点、计算节点(compute node,也可以称为计算服务器)和数据库。当然,在图1A和图1B中,还可以包括其它服务器,如还可以包括资源调度服务器等,对此系统结构不做限制。
在图1A和图1B中,以3个前端节点为例,实际应用中,前端节点的数量还可以为其它数量,对此不做限制。在图1B中,以5个计算节点为例,实际应用中,计算节点的数量还可以为其它数量,对此不做限制。由于每个前端节点的处理流程相同,每个计算节点的处理流程相同,因此,为了方便描述,后续实施例中,以1个前端节点的处理流程为例,以1个计算节点的处理流程为例。
其中,客户端可以是终端设备(如PC(Personal Computer,个人计算机)、笔记本电脑、移动终端等)包括的APP(Application,应用),也可以是终端设备包括的浏览器,对此不做限制。负载均衡设备用于对存储请求进行负载均衡,如接收到存储请求后,将该存储请求负载均衡到各前端节点,对此不做限制。
其中,多个前端节点用于提供相同功能,形成前端节点的资源池。针对该资源池中的每个前端节点,用于接收客户端发送的存储请求,并对所述存储请求进行SQL(Structured Query Language,结构化查询语言)解析,根据解析结果生成执行计划,并处理该执行计划。例如,在图1A所示的应用场景中,由前端节点处理该执行计划。在图1B所示的应用场景中,前端节点将该执行计划发送给计算节点,由计算节点处理该执行计划。例如,可以将该执行计划发送给一个计算节点,由该计算节点处理该执行计划;或者,将该执行计划拆解为多个子计划,并将多个子计划发送给多个计算节点,每个计算节点处理子计划。
其中,多个计算节点用于提供相同的功能,形成计算节点的资源池。针对该资源池中的每个计算节点,若接收到前端节点发送的执行计划,则可以处理该执行计划;或者,若接收到前端节点发送的子计划,则可以处理该子计划。
其中,数据库用于存储各种类型的数据,对此数据类型不做限制,如可以是用户数据、商品数据、地图数据、视频数据、图像数据、音频数据等。
参见图1A和图1B所示,是以5个数据库为例进行说明,实际应用中,数据库的数量还可以为其它数量,对此不做限制。本实施例中,可以是针对异构数据源的场景,也就是说,对于数据库101-数据库105来说,可以是相同类型的数据库,也可以是不同类型的数据库。例如,数据库101和数据库102可以是相同类型的数据库,数据库101和数据库103可以是不同类型的数据库。
针对本申请实施例中的数据库,可以是关系型数据库,也可以是非关系型数据库,对此不做限制。进一步的,对于每个数据库来说,该数据库的类型可以包括但不限于:OSS(Object Storage Service,对象存储服务)、TableStore(表格存储)、HBase(HadoopDatabase,Hadoop数据库)、HDFS(Hadoop Distributed File System,Hadoop分布式文件系统)、MySQL等,当然,上述只是数据库类型或者存储系统的几个示例,对此数据库的类型不做限制。
在上述应用场景下,参见图2所示,为本申请实施例中提出的数据分析方法的流程示意图,该方法可以应用于前端节点,该方法可以包括以下步骤:
步骤201,接收存储请求(如ETL存储请求),该存储请求用于将源数据库的数据存储到一个或者多个目的数据库;不同目的数据库的类型相同或不同。
其中,当客户端需要将源数据库的数据存储到目的数据库时,可以发送存储请求,该存储请求可以是基于ETL的存储请求,该存储请求可以携带源数据库信息(如源数据库的名称等)和目的数据库信息(如目的数据库的名称等)。
负载均衡设备在接收到该存储请求后,则可以采用负载均衡策略选择一个前端节点,并将该存储请求发送给该前端节点,由前端节点接收该存储请求。
步骤202,确定源数据库的第一类型和目的数据库的第二类型。其中,源数据库的第一类型与目的数据库的第二类型,二者可以相同,二者也可以不同。
在一个例子中,确定源数据库的第一类型和目的数据库的第二类型,可以包括但不限于:从该存储请求中获取源数据库信息和目的数据库信息;然后,通过该源数据库信息查询注册表,得到该源数据库的第一类型,并通过该目的数据库信息查询注册表,得到该目的数据库的第二类型。进一步的,参见上述的实施例,该源数据库的第一类型可以包括以下类型的一种:OSS、TableStore、HBase、HDFS、MySQL等,该目的数据库的第二类型可以包括为以下类型的一种:OSS、TableStore、HBase、HDFS、MySQL等。
在一个例子中,注册表用于记录数据库信息(如数据库的名称)与数据库的类型的对应关系,基于此,在从该存储请求中获取源数据库信息后,则可以通过该源数据库信息查询该注册表,得到与该源数据库信息对应的数据库类型,而这个数据库类型就是源数据库的第一类型。在从该存储请求中获取目的数据库信息后,则可以通过该目的数据库信息查询该注册表,得到与该目的数据库信息对应的数据库类型,而这个数据库类型就是目的数据库的第二类型。
步骤203,若该第一类型与该第二类型不同,则从该源数据库中读取该存储请求对应的第一数据,并将该第一数据转换为第二类型对应的第二数据。
其中,将该第一数据转换为第二类型对应的第二数据,可以包括但不限于:将该第一数据从第一文件格式转换为第二文件格式;该第一文件格式是该第一类型对应的文件格式,该第二文件格式是该第二类型对应的文件格式。
步骤204,将该第二数据存储到该目的数据库。
在一个例子中,将该第二数据存储到该目的数据库,还可以包括但不限于:将该第二数据流式存储到目的数据库,也就是说,可以直接将该第二数据存储到目的数据库,而不再将该第二数据存储到指定存储介质。或者,将该第二数据存储到指定存储介质(如本地存储介质,即本地的存储磁盘等,或者,云上的分布式存储介质,如分布式的存储磁盘等);在满足数据存储条件后,可以从该指定存储介质中读取该第二数据,并将该第二数据存储到目的数据库。
在一个例子中,针对步骤202,在确定源数据库的第一类型和目的数据库的第二类型之后,若该第一类型与该第二类型相同,则还可以从该源数据库中读取该存储请求对应的第一数据,并将该第一数据存储到目的数据库中。
其中,将该第一数据存储到目的数据库中,可以包括但不限于:将该第一数据流式存储到目的数据库中,也就是说,可以直接将该第一数据存储到目的数据库,而不再将该第一数据存储到指定存储介质。或者,将该第一数据存储到指定存储介质(如本地存储介质,即本地的存储磁盘等,或者,云上的分布式存储介质,如分布式的存储磁盘等);在满足数据存储条件后,可以从该指定存储介质中读取该第一数据,并将该第一数据存储到目的数据库中。
在上述实施例中,从该源数据库中读取该存储请求对应的第一数据,可以包括但不限于:从该存储请求中获取源数据库信息;然后,通过该源数据库信息查询注册表,得到该源数据库的第一地址(如IP地址或者其它地址,对此不做限制);然后,根据该第一地址从该源数据库中读取该第一数据,也就是说,确定与该第一地址对应的源数据库,并从该源数据库中读取该第一数据。
在上述实施例中,将该第二数据存储到该目的数据库,可以包括但不限于:从该存储请求中获取目的数据库信息;然后,通过该目的数据库信息查询注册表,得到该目的数据库的第二地址(如IP地址或者其它地址,对此不做限制);然后,根据该第二地址将该第二数据存储到该目的数据库,也就是说,确定与该第二地址对应的目的数据库,并将该第二数据存储到该目的数据库。
在上述实施例中,将该第一数据存储到该目的数据库,可以包括但不限于:从该存储请求中获取目的数据库信息;通过目的数据库信息查询注册表,得到目的数据库的第二地址;根据该第二地址将该第一数据存储到该目的数据库。
在一个例子中,注册表用于记录数据库信息(如数据库的名称)与数据库的地址的对应关系,基于此,在从该存储请求中获取源数据库信息后,可以通过该源数据库信息查询该注册表,得到与该源数据库信息对应的数据库的地址,而这个数据库的地址就是源数据库的第一地址。在从该存储请求中获取目的数据库信息后,可以通过该目的数据库信息查询该注册表,得到与该目的数据库信息对应的数据库的地址,而这个数据库的地址就是目的数据库的第二地址。
在一个例子中,上述执行顺序只是为了方便描述给出的一个示例,在实际应用中,还可以改变步骤之间的执行顺序,对此执行顺序不做限制。而且,在其它实施例中,并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其它实施例中可能被分解为多个步骤进行描述;本说明书中所描述的多个步骤,在其它实施例也可能被合并为单个步骤进行描述。
在上述实施例中,源数据库具体可以包括一个或者多个源数据库;其中,不同的源数据库的类型可以相同或者不同。此外,目的数据库具体可以包括一个或者多个目的数据库;其中,不同目的数据库的类型相同或者不同。
例如,源数据库为数据库101,目的数据库为数据库103,且数据库101的类型与数据库103的类型不同。又例如,源数据库为数据库101和数据库102,目的数据库为数据库103,数据库101的类型和数据库102的类型相同或者不同,数据库101的类型与数据库103的类型相同或者不同,数据库102的类型与数据库103的类型相同或者不同。又例如,源数据库为数据库101,目的数据库为数据库103和数据库104,数据库103的类型和数据库104的类型相同或者不同,数据库101的类型与数据库103的类型相同或者不同,数据库101的类型与数据库104的类型相同或者不同。又例如,源数据库为数据库101和数据库102,目的数据库为数据库103和数据库104,数据库101的类型和数据库102的类型相同或者不同,数据库101的类型与数据库103的类型相同或者不同,数据库101的类型与数据库104的类型相同或者不同,数据库103的类型和数据库104的类型相同或者不同。当然,上述只是数据库的几个示例,对此不做限制。
在一个例子中,若该第一类型与该第二类型不同,为了实现“从该源数据库中读取该存储请求对应的第一数据,并将该第一数据转换为第二类型对应的第二数据将该第二数据存储到该目的数据库”等过程,则可以采用如下方式:
若第一类型与第二类型不同,则前端节点获取第一类计划(即执行计划)。在图1A所示的应用场景下,可以由前端节点处理该第一类计划,这样,前端节点可以根据该第一类计划从源数据库中读取存储请求对应的第一数据,将第一数据转换为第二类型对应的第二数据,并将第二数据存储到目的数据库。
在图1B所示的应用场景下,前端节点可以将该第一类计划发送给计算节点,这样,可以由计算节点处理该第一类计划,也就是说,计算节点可以根据该第一类计划从该源数据库中读取该存储请求对应的第一数据,并将该第一数据转换为第二类型对应的第二数据,并将该第二数据存储到该目的数据库。
为了实现上述功能,则该第一类计划可以包括:格式转换运算符算子和表写入运算符算子;其中,格式转换运算符算子用于将第一数据转换为第二类型对应的第二数据;表写入运算符算子用于将第二数据流式存储到目的数据库。
或者,为了实现上述功能,则该第一类计划还可以包括但不限于:格式转换运算符算子、磁盘换入换出运算符算子和数据导入运算符算子;其中,该格式转换运算符算子用于将该第一数据转换为第二类型对应的第二数据;该磁盘换入换出运算符算子用于将该第二数据存储到指定存储介质;该数据导入运算符算子用于从指定存储介质中读取第二数据,并将第二数据存储到目的数据库。
在一个例子中,若该第一类型与该第二类型相同,为了实现“从该源数据库中读取存储请求对应的第一数据,并将该第一数据存储到目的数据库中”等过程,则可以采用如下方式:若第一类型与第二类型相同,则前端节点获取第二类计划(即执行计划)。在图1A所示的应用场景下,可以由前端节点处理该第二类计划,这样,前端节点可以根据该第二类计划从该源数据库中读取该存储请求对应的第一数据,并将该第一数据存储到目的数据库。在图1B所示的应用场景下,前端节点可以将该第二类计划发送给计算节点,这样,可以由计算节点处理该第二类计划,也就是说,计算节点可以根据该第二类计划从该源数据库中读取该存储请求对应的第一数据,并将该第一数据存储到目的数据库。
为了实现上述功能,则该第二类计划可以包括:表写入运算符算子;其中,该表写入运算符算子用于将第一数据流式存储到目的数据库。或者,该第二类计划可以包括:磁盘换入换出运算符算子和数据导入运算符算子;其中,该磁盘换入换出运算符算子用于将第一数据存储到指定存储介质;该数据导入运算符算子用于从指定存储介质中读取第一数据,将第一数据存储到目的数据库中。
在上述实施例中,前端节点获取第一类计划时,可以包括但不限于:前端节点获取多个第一类计划,并获取每个第一类计划的性能开销,然后,前端节点可以根据性能开销,从多个第一类计划中选择性能开销最小的第一类计划。
在上述实施例中,前端节点获取第二类计划时,可以包括但不限于:前端节点获取多个第二类计划,并获取每个第二类计划的性能开销,然后,前端节点可以根据性能开销,从多个第二类计划中选择性能开销最小的第二类计划。
基于上述技术方案,本申请实施例中,当源数据库的第一类型和目的数据库的第二类型不同时,则可以从源数据库中读取第一数据,将第一数据转换为第二类型对应的第二数据,并将第二数据存储到目的数据库。这样,可以支持不同类型的ETL处理,而且,源数据库可以包括一个或者多个源数据库,目的数据库可以包括一个或者多个目的数据库。综上所述,上述方式可以使得数据湖分析在异构数据源的应用场景下,能够进行多目的、多源的ETL处理。
基于与上述方法同样的申请构思,针对图1B所示的应用场景,本申请实施例中还提出另一种数据分析方法,参见图3所示,为该方法的流程示意图。
步骤301,接收存储请求,该存储请求可以用于将源数据库的数据存储到一个或者多个目的数据库;其中,不同目的数据库的类型相同或者不同。
步骤302,确定该源数据库的第一类型和该目的数据库的第二类型。
步骤302,若该第一类型与该第二类型不同,则获取第一类计划,并将该第一类计划发送给计算节点;其中,该第一类计划用于使计算节点根据该第一类计划从该源数据库中读取该存储请求对应的第一数据,并将该第一数据转换为该第二类型对应的第二数据,并将该第二数据存储到该目的数据库。
在一个例子中,该第一类计划可以包括:格式转换运算符算子和表写入运算符算子;或者,格式转换运算符算子、磁盘换入换出运算符算子和数据导入运算符算子。该格式转换运算符算子用于将第一数据转换为第二类型对应的第二数据;该表写入运算符算子用于将第二数据流式存储到目的数据库;该磁盘换入换出运算符算子用于将第二数据存储到指定存储介质;该数据导入运算符算子用于从指定存储介质中读取第二数据,并将第二数据存储到目的数据库。
在一个例子中,在确定该源数据库的第一类型和该目的数据库的第二类型之后,若该第一类型与该第二类型相同,则获取第二类计划,并将该第二类计划发送给计算节点,其中,该第二类计划用于使计算节点根据该第二类计划从源数据库中读取该存储请求对应的第一数据,将第一数据存储到目的数据库。
在一个例子中,该第二类计划可以包括但不限于:表写入运算符算子;或者,磁盘换入换出运算符算子和数据导入运算符算子;其中,该表写入运算符算子可以用于将第一数据流式存储到目的数据库;该磁盘换入换出运算符算子可以用于将第一数据存储到指定存储介质;该数据导入运算符算子可以用于从该指定存储介质中读取第一数据,并将第一数据存储到目的数据库。
其中,图3所示的处理流程与图2所示的处理流程类似,在此不再赘述。
基于上述技术方案,本申请实施例中,当源数据库的第一类型和目的数据库的第二类型不同时,则可以从源数据库中读取第一数据,将第一数据转换为第二类型对应的第二数据,并将第二数据存储到目的数据库。这样,可以支持不同类型的ETL处理,而且,源数据库可以包括一个或者多个源数据库,目的数据库可以包括一个或者多个目的数据库。综上所述,上述方式可以使得数据湖分析在异构数据源的应用场景下,能够进行多目的、多源的ETL处理。
基于与上述方法同样的申请构思,本申请实施例还提出另一种数据分析方法,该方法可以包括:接收存储请求,该存储请求用于将源数据库的数据存储到一个或者多个目的数据库;不同目的数据库的类型相同或者不同;源数据库和目的数据库均为云数据库,且云数据库用于提供无服务器化的查询分析服务。确定源数据库的第一类型和目的数据库的第二类型;若第一类型与第二类型不同,则从源数据库中读取该存储请求对应的第一数据,将所该述第一数据转换为第二类型对应的第二数据,并将该第二数据存储到目的数据库。其中,上述数据分析方法的处理流程与图2所示的处理流程类似,在此不再赘述。
本实施例中的源数据库和目的数据库,均可以为云数据库,该云数据库是指云计算平台提供的数据库,而云计算平台可以是以数据存储为主的存储型云平台,或者,以数据处理为主的计算型云平台,或者,计算和数据存储处理兼顾的综合云计算平台,对此云计算平台不做限制。针对云计算平台(如数据湖分析平台)提供的云数据库,可以用于为用户提供无服务器化(Serverless)的查询分析服务,能够对海量的数据进行任意维度的分析和查询,支持高并发、低延时(毫秒级响应)、实时在线分析、海量数据查询等功能。
以下结合几个具体应用场景,对上述技术方案进行进一步的说明。
应用场景1,在本应用场景中,源数据库的第一类型和目的数据库的第二类型相同,且采用流式存储方式,将源数据库中的数据存储到目的数据库中。
前端节点接收的存储请求可以为如下所示的ETL语句。在该ETL语句中,INSERTINTO后面的A和B是目的数据库的名称,即存在两个目的数据库;source_1和source_2是源数据库的名称,即存在两个源数据库,而且,第二行到最后一行表示对源数据库中数据的处理方式,对此处理方式不做限制。
INSERT INTO A,B
SELECT SUM(col1),col2,col3
FROM source_1_table_1JOIN source_1_table_2
ON source_1_table_1.col4=source_1_table_2.col4
JOIN source_2_table_1
ON source_2_table_1.col4=source_1_table_2.col4
WHERE source_1_table_1.col5=100
前端节点在得到上述存储请求后,可以确定源数据库的第一类型和目的数据库的第二类型,具体确定方式参见上述步骤202,在此不再重复赘述。
假设源数据库的第一类型和目的数据库的第二类型相同,则前端节点可以生成执行计划1,并将执行计划1发送给计算节点,而计算节点在接收到执行计划1后,则可以处理执行计划1,即可以根据该执行计划1从源数据库中读取数据,并将该数据流式存储到目的数据库(即数据库A和数据库B等)中,也就是说,每获取到一个数据,就直接将该数据存储到目的数据库中。此外,计算节点也可以等待一段时间,将这段时间的多个数据一起存储到目的数据库中。
其中,针对每个数据,可以先将数据存储到数据库A,在存储完成后,将数据存储到数据库B;或者,可以先将数据存储到数据库B,在存储完成后,将数据存储到数据库A;或者,可以将数据并行存储到数据库A和数据库B。
在一个例子中,假设执行计划1可以包括但不限于Table Scan Operator(表扫描运算符)算子、Filter Operator(过滤运算符)算子、Join Operator(加入运算符)算子、AggOperator(聚合运算符)算子、Table Writer Operator(表写入运算符)算子、OutputOperator(输出运算符)算子,则计算节点处理执行计划1的流程,可以参见图4A所示。在图4A中,Table Scan Operator算子、Filter Operator算子、Join Operator算子、AggOperator算子的实现流程,就对应上述ETL语句的第2行-第7行,也就是说,计算节点通过执行Table Scan Operator算子、Filter Operator算子、Join Operator算子、Agg Operator算子的实现流程,能够从源数据库中读取数据,并对这些数据进行处理,对此过程不再赘述。
在图4A中,Table Writer Operator算子用于将数据流式存储到目的数据库,也就是说,计算节点通过执行Table Writer Operator算子,能够将数据流式存储到数据库A和数据库B等目的数据库中。而且,还可以设置多个Table Writer Operator算子,这样,可以通过多个Table Writer Operator算子并行写入数据。
应用场景2,在本应用场景中,源数据库的第一类型和目的数据库的第二类型相同,且采用磁盘存储方式,将源数据库中的数据存储到目的数据库中。
前端节点接收的存储请求可以与应用场景1的ETL语句相同,在此不再赘述。前端节点在得到上述存储请求后,可以确定源数据库的第一类型和目的数据库的第二类型,具体确定方式参见上述步骤202,在此不再重复赘述。
假设源数据库的第一类型和目的数据库的第二类型相同,则前端节点可以生成执行计划2,并将执行计划2发送给计算节点,而计算节点在接收到执行计划2后,则可以处理执行计划2,即可以根据该执行计划2从源数据库中读取数据,并将该数据存储到指定存储介质(如本地存储介质,即本地的存储磁盘,或者,云上的分布式存储介质,如分布式的存储磁盘);在满足数据存储条件(如每隔一个设定时间就满足数据存储条件)后,可以从该指定存储介质中读取数据,并将读取的数据存储到目的数据库(即数据库A和数据库B等)中。
在一个例子中,假设执行计划2可以包括但不限于Table Scan Operator算子、Filter Operator算子、Join Operator算子、Agg Operator算子、Disk Spill Operator(磁盘换入换出运算符)算子、Data Import Operator(数据输入运算符)算子、OutputOperator算子,则计算节点处理执行计划2的流程,可以参见图4B所示。计算节点通过执行Table Scan Operator算子、Filter Operator算子、Join Operator算子、Agg Operator算子的实现流程,能够从源数据库中读取数据。
在图4B中,Disk Spill Operator算子用于将数据存储到指定存储介质;也就是说,计算节点通过执行Disk Spill Operator算子,将数据存储到指定存储介质,实现本地落盘或分布式存储落盘;而且,可以设置多个Disk Spill Operator算子,从而通过多个Disk Spill Operator算子并行将数据存储到指定存储介质。
在图4B中,Data Import Operator算子用于从指定存储介质中读取数据,并将该数据存储到目的数据库中;也就是说,计算节点通过执行Data Import Operator算子,从指定存储介质中读取数据,并将该数据存储到目的数据库中,这样,可以将整体数据一起导入到目的数据库中,最终实现数据的存储。
应用场景3,在本应用场景中,源数据库的第一类型和目的数据库的第二类型不同,且采用磁盘存储方式,将源数据库中的数据存储到目的数据库中。
前端节点接收的存储请求可以与应用场景1的ETL语句相同,在此不再赘述。前端节点在得到上述存储请求后,可以确定源数据库的第一类型和目的数据库的第二类型,具体确定方式参见上述步骤202,在此不再重复赘述。
假设源数据库的第一类型和目的数据库的第二类型不同,则前端节点可以生成执行计划3,并将执行计划3发送给计算节点,而计算节点在接收到执行计划3后,可以处理执行计划3,即可以根据该执行计划3从源数据库中读取数据,将该数据转换为第二类型对应的数据,并将数据存储到指定存储介质(如本地存储介质,即本地的存储磁盘,或者,云上的分布式存储介质,如分布式的存储磁盘);在满足数据存储条件(如每隔一个设定时间就满足数据存储条件)后,从该指定存储介质中读取数据,并将读取的数据存储到目的数据库中。
在一个例子中,假设该执行计划3包括但不限于Table Scan Operator算子、Filter Operator算子、Join Operator算子、Agg Operator算子、Format ConvertOperator(格式转换运算符)算子、Disk Spill Operator算子、Data Import Operator算子、Output Operator算子,则计算节点处理执行计划3的流程,可以参见图4C所示。计算节点通过执行Table Scan Operator算子、Filter Operator算子、Join Operator算子、AggOperator算子的实现流程,能够从源数据库中读取数据。
在图4C中,Format Convert Operator算子用于将数据转换为第二类型对应的数据;也就是说,计算节点通过执行Format Convert Operator算子,能够将源数据库中的数据转换为第二类型对应的数据,即对数据进行格式转换,对此转换过程不做限制,从而将数据转换为目的数据库支持的数据。而且,可以设置多个Format Convert Operator算子,从而可以并行的对数据进行格式转换。
在一个例子中,假设数据库A和数据库B的类型也不相同,则在将源数据库的数据转换为第二类型对应的数据时,可以通过一个Format Convert Operator算子将数据转换为数据库A的第二类型1对应的数据,并可以通过另一个Format Convert Operator算子将数据转换为数据库B的第二类型2对应的数据。
在图4C中,Disk Spill Operator算子用于将数据存储到指定存储介质;也就是说,计算节点通过执行Disk Spill Operator算子,将转换后的数据存储到指定存储介质,实现本地落盘或分布式存储落盘;可以设置多个Disk Spill Operator算子,从而通过多个Disk Spill Operator算子并行将数据存储到指定存储介质。
在图4C中,Data Import Operator算子用于从指定存储介质中读取数据,并将该数据存储到目的数据库中;也就是说,计算节点通过执行Data Import Operator算子,从指定存储介质中读取数据,并将该数据存储到目的数据库中,这样,可以将整体数据一起导入到目的数据库中,最终实现数据的存储。
应用场景4,在本应用场景中,源数据库的第一类型和目的数据库A的第二类型1相同,且源数据库的第一类型和目的数据库B的第二类型2不同。
前端节点接收的存储请求可以为如下所示的ETL语句。在该ETL语句中,INSERTINTO后面的A和B是目的数据库的名称,即存在两个目的数据库,而source_1是源数据库的名称,即存在一个源数据库。进一步的,SELECT*FROM source_1_table_1表示从源数据库1的表1中读取数据,对此读取方式不做限制。
INSERT INTO A,B
SELECT*FROM source_1_table_1
前端节点在得到上述存储请求后,可以确定源数据库的第一类型和目的数据库的第二类型,具体确定方式参见上述步骤202,在此不再重复赘述。
假设源数据库的第一类型和目的数据库A的第二类型1相同,且源数据库的第一类型和目的数据库B的第二类型2不同,则前端节点可以生成执行计划4,并将执行计划4发送给计算节点,计算节点在接收到执行计划4后,可以处理执行计划4,即可以根据执行计划4从源数据库中读取数据。然后,计算节点将该数据存储到目的数据库A。此外,计算节点将该数据转换为第二类型2对应的数据,并将数据存储到指定存储介质(如本地存储介质,或者,云上的分布式存储介质);在满足数据存储条件(如每隔设定时间就满足数据存储条件)后,从指定存储介质中读取数据,并将读取的数据存储到目的数据库B中。
在一个例子中,假设执行计划4包括File Copy Operator(文件复制运算符)算子或者Table Writer Operator算子;此外,该执行计划4还可以包括Format ConvertOperator算子、Disk Spill Operator算子、Data Import Operator算子、Output Operator算子,则计算节点处理执行计划4的流程,可以参见图4D所示。
若执行计划4包括的是File Copy Operator算子,则File Copy Operator算子用于将数据复制到目的数据库,也就是说,计算节点从源数据库中读取数据后,通过执行FileCopy Operator算子,能够将数据复制到目的数据库A。或者,若执行计划4包括的是TableWriter Operator算子,则Table Writer Operator算子用于将数据流式存储到目的数据库,也就是说,计算节点从源数据库中读取数据后,通过执行Table Writer Operator算子,将数据流式存储到目的数据库A。
参见图4D所示,Format Convert Operator算子用于将数据转换为第二类型2对应的数据;也就是说,计算节点通过执行Format Convert Operator算子,能够将源数据库中的数据转换为第二类型对应的数据,即可以对数据进行格式转换,对此转换过程不做限制,从而将数据转换为目的数据库B支持的数据。
在图4D中,Disk Spill Operator算子用于将数据存储到指定存储介质;也就是说,计算节点通过执行Disk Spill Operator算子,将转换后的数据存储到指定存储介质,实现本地落盘或分布式存储落盘。Data Import Operator算子用于从指定存储介质中读取数据,并将数据存储到目的数据库中;也就是说,计算节点通过执行Data Import Operator算子,从指定存储介质中读取数据,将数据存储到目的数据库中,从而将整体数据一起导入到目的数据库,实现数据存储。
在上述各应用场景中,前端节点在生成执行计划(如执行计划1-执行计划4,后续以执行计划1为例)时,可以获取多个执行计划,然后,从这些执行计划中选择性能开销最小的执行计划,并将选择的执行计划确定为执行计划1。
例如,为了实现应用场景1的数据存储流程,则执行计划1包括Table ScanOperator算子、Filter Operator算子、Join Operator算子、Agg Operator算子、TableWriter Operator算子、Output Operator算子,在此基础上,可以生成多个执行计划。例如,第一个执行计划中包括1个Table Writer Operator算子,第二个执行计划中包括2个TableWriter Operator算子,第三个执行计划中包括3个Table Writer Operator算子,以此类推。当然,在各执行计划中,其它算子的数量也可以根据实际应用选择,对此不做限制,这样,就可以得到多个执行计划。
在得到多个执行计划后,还可以确定每个执行计划的性能开销,并选择性能开销最小的执行计划,并将性能开销最小的执行计划确定为执行计划1。
其中,为了确定每个执行计划的性能开销,则可以采用如下方式实现:在初始状态下,可以从所有执行计划中随机选择执行计划,在将该执行计划确定为执行计划1后,计算节点会处理该执行计划,这样,计算节点就可以统计出该执行计划的性能开销,例如,占用的CPU资源、内存资源、带宽资源等,然后,计算节点在性能表中记录该执行计划与性能开销的对应关系。这样,在经过一段时间后,就可以在性能表中记录每个执行计划与性能开销的对应关系。
进一步,为了实现应用场景1的数据存储流程,则在得到多个执行计划后,可以通过查询性能表,得到每个执行计划的性能开销,选择性能开销最小的执行计划,并将性能开销最小的执行计划确定为执行计划1,然后处理执行计划1。
在上述各应用场景中,前端节点在生成执行计划(如上述的执行计划1-执行计划4)后,还可以通过用户界面,将该执行计划的可视化分析图展现给用户,以使用户能够获知当前的执行计划,从而可以提供良好的交互体验。
基于上述技术方案,本申请实施例中,提出了一种在云上异构数据源场景下进行多源、多目的、多路的ETL任务选择和优化方法,能够实现多路、多目的、多源的ETL任务,可以支持不同类型的ETL处理,可以使得数据湖分析在异构数据源的应用场景下,能够进行多目的、多源的ETL处理。
基于与上述方法同样的申请构思,本申请实施例还提供一种数据分析装置,可以应用于前端节点,如图5所示,为该装置的结构图,该装置包括:
接收模块501,用于接收存储请求,所述存储请求用于将源数据库的数据存储到一个或者多个目的数据库;其中,不同目的数据库的类型相同或者不同;
确定模块502,用于确定源数据库的第一类型和目的数据库的第二类型;
处理模块503,用于若所述第一类型与所述第二类型不同,则从所述源数据库中读取所述存储请求对应的第一数据,将所述第一数据转换为所述第二类型对应的第二数据,并将所述第二数据存储到所述目的数据库。
所述处理模块503将所述第二数据存储到所述目的数据库时具体用于:
将所述第二数据流式存储到所述目的数据库;或者,
将所述第二数据存储到指定存储介质;从所述指定存储介质中读取所述第二数据,并将所述第二数据存储到所述目的数据库。
所述处理模块503还用于:若所述第一类型与所述第二类型相同,则从所述源数据库中读取所述存储请求对应的第一数据,并将所述第一数据存储到所述目的数据库中;其中,所述处理模块503将所述第一数据存储到所述目的数据库中时具体用于:将所述第一数据流式存储到所述目的数据库中;或者,
将所述第一数据存储到指定存储介质,并从所述指定存储介质中读取所述第一数据,并将所述第一数据存储到所述目的数据库中。
所述处理模块503还用于:
若所述第一类型与所述第二类型不同,则获取第一类计划,并将所述第一类计划发送给计算节点,以使所述计算节点根据所述第一类计划从所述源数据库中读取所述存储请求对应的第一数据,将所述第一数据转换为所述第二类型对应的第二数据,并将所述第二数据存储到所述目的数据库;或者,
若所述第一类型与所述第二类型相同,则获取第二类计划,并将所述第二类计划发送给计算节点,以使计算节点根据所述第二类计划从所述源数据库中读取所述存储请求对应的第一数据,并将所述第一数据存储到所述目的数据库。
基于与上述方法同样的申请构思,本申请实施例还提供一种数据分析设备,包括:处理器和机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述处理器执行所述计算机指令时进行如下处理:
接收存储请求,所述存储请求用于将源数据库的数据存储到一个或者多个目的数据库;其中,不同目的数据库的类型相同或者不同;
确定所述源数据库的第一类型和所述目的数据库的第二类型;
若所述第一类型与所述第二类型不同,则从所述源数据库中读取所述存储请求对应的第一数据,将所述第一数据转换为所述第二类型对应的第二数据;
将所述第二数据存储到所述目的数据库。
本申请实施例还提供一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令;所述计算机指令被执行时进行如下处理:
接收存储请求,所述存储请求用于将源数据库的数据存储到一个或者多个目的数据库;其中,不同目的数据库的类型相同或者不同;
确定所述源数据库的第一类型和所述目的数据库的第二类型;
若所述第一类型与所述第二类型不同,则从所述源数据库中读取所述存储请求对应的第一数据,将所述第一数据转换为所述第二类型对应的第二数据;
将所述第二数据存储到所述目的数据库。
基于与上述方法同样的申请构思,本申请实施例还提供一种数据分析装置,可以应用于前端节点,如图6所示,为该装置的结构图,该装置包括:
接收模块601,用于接收存储请求,所述存储请求用于将源数据库的数据存储到一个或者多个目的数据库;其中,不同目的数据库的类型相同或者不同;
确定模块602,用于确定源数据库的第一类型和目的数据库的第二类型;
处理模块603,用于若所述第一类型与所述第二类型不同,则获取第一类计划,将所述第一类计划发送给计算节点,以使所述计算节点根据所述第一类计划从所述源数据库中读取所述存储请求对应的第一数据,并将所述第一数据转换为所述第二类型对应的第二数据,并将所述第二数据存储到所述目的数据库。
基于与上述方法同样的申请构思,本申请实施例还提供一种数据分析设备,包括:处理器和机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述处理器执行所述计算机指令时进行如下处理:
接收存储请求,所述存储请求用于将源数据库的数据存储到一个或者多个目的数据库;其中,不同目的数据库的类型相同或者不同;
确定所述源数据库的第一类型和所述目的数据库的第二类型;
若所述第一类型与所述第二类型不同,则获取第一类计划,并将所述第一类计划发送给计算节点,以使所述计算节点根据所述第一类计划从所述源数据库中读取所述存储请求对应的第一数据,并将所述第一数据转换为所述第二类型对应的第二数据,并将所述第二数据存储到所述目的数据库。
本申请实施例还提供一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令;所述计算机指令被执行时进行如下处理:
接收存储请求,所述存储请求用于将源数据库的数据存储到一个或者多个目的数据库;其中,不同目的数据库的类型相同或者不同;
确定所述源数据库的第一类型和所述目的数据库的第二类型;
若所述第一类型与所述第二类型不同,则获取第一类计划,并将所述第一类计划发送给计算节点,以使所述计算节点根据所述第一类计划从所述源数据库中读取所述存储请求对应的第一数据,并将所述第一数据转换为所述第二类型对应的第二数据,并将所述第二数据存储到所述目的数据库。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (28)
1.一种数据分析方法,其特征在于,所述方法包括:
接收存储请求,所述存储请求用于将源数据库的数据存储到一个或者多个目的数据库;其中,不同目的数据库的类型相同或者不同;
确定所述源数据库的第一类型和所述目的数据库的第二类型;
若所述第一类型与所述第二类型不同,则从所述源数据库中读取所述存储请求对应的第一数据,将所述第一数据转换为所述第二类型对应的第二数据;
将所述第二数据存储到所述目的数据库。
2.根据权利要求1所述的方法,其特征在于,
所述将所述第二数据存储到所述目的数据库,包括:
将所述第二数据流式存储到所述目的数据库;或者,
将所述第二数据存储到指定存储介质;从所述指定存储介质中读取所述第二数据,并将所述第二数据存储到所述目的数据库。
3.根据权利要求1所述的方法,其特征在于,所述源数据库具体包括一个或者多个源数据库;其中,不同的源数据库的类型相同或者不同。
4.根据权利要求1所述的方法,其特征在于,所述确定所述源数据库的第一类型和所述目的数据库的第二类型之后,所述方法还包括:
若所述第一类型与所述第二类型相同,则从所述源数据库中读取所述存储请求对应的第一数据,并将所述第一数据存储到所述目的数据库中。
5.根据权利要求4所述的方法,其特征在于,
所述将所述第一数据存储到所述目的数据库中,包括:
将所述第一数据流式存储到所述目的数据库中;或者,
将所述第一数据存储到指定存储介质,并从所述指定存储介质中读取所述第一数据,并将所述第一数据存储到所述目的数据库中。
6.根据权利要求1或4所述的方法,其特征在于,
所述确定所述源数据库的第一类型和所述目的数据库的第二类型,包括:
从所述存储请求中获取源数据库信息和目的数据库信息;
通过所述源数据库信息查询注册表,得到所述源数据库的第一类型;
通过所述目的数据库信息查询注册表,得到所述目的数据库的第二类型;
其中,所述注册表用于记录数据库信息与数据库的类型的对应关系。
7.根据权利要求1或4所述的方法,其特征在于,
所述从所述源数据库中读取所述存储请求对应的第一数据,包括:
从所述存储请求中获取源数据库信息;
通过所述源数据库信息查询注册表,得到所述源数据库的第一地址;
根据所述第一地址从所述源数据库中读取第一数据;
其中,所述注册表用于记录数据库信息与数据库的地址的对应关系。
8.根据权利要求1或4所述的方法,其特征在于,
所述将所述第二数据存储到所述目的数据库,包括:
从所述存储请求中获取目的数据库信息;
通过所述目的数据库信息查询注册表,得到所述目的数据库的第二地址;
根据所述第二地址将所述第二数据存储到所述目的数据库;
其中,所述注册表用于记录数据库信息与数据库的地址的对应关系。
9.根据权利要求1所述的方法,其特征在于,
所述将所述第一数据转换为所述第二类型对应的第二数据,包括:
将所述第一数据从第一文件格式转换为第二文件格式;所述第一文件格式是第一类型对应的文件格式,所述第二文件格式是第二类型对应的文件格式。
10.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:
若所述第一类型与所述第二类型不同,则获取第一类计划,并将所述第一类计划发送给计算节点,以使所述计算节点根据所述第一类计划从所述源数据库中读取所述存储请求对应的第一数据,将所述第一数据转换为所述第二类型对应的第二数据,并将所述第二数据存储到所述目的数据库。
11.根据权利要求10所述的方法,其特征在于,
所述第一类计划包括:格式转换运算符算子和表写入运算符算子;
其中,所述格式转换运算符算子用于将第一数据转换为第二类型对应的第二数据;所述表写入运算符算子用于将第二数据流式存储到目的数据库。
12.根据权利要求10所述的方法,其特征在于,所述第一类计划包括:格式转换运算符算子、磁盘换入换出运算符算子和数据导入运算符算子;其中,格式转换运算符算子用于将第一数据转换为第二类型对应的第二数据;磁盘换入换出运算符算子用于将第二数据存储到指定存储介质;数据导入运算符算子用于从指定存储介质中读取第二数据,并将第二数据存储到目的数据库。
13.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:
若所述第一类型与所述第二类型相同,则获取第二类计划,并将所述第二类计划发送给计算节点,以使计算节点根据所述第二类计划从所述源数据库中读取所述存储请求对应的第一数据,并将所述第一数据存储到所述目的数据库。
14.根据权利要求13所述的方法,其特征在于,所述第二类计划包括:表写入运算符算子;表写入运算符算子用于将第一数据流式存储到目的数据库。
15.根据权利要求13所述的方法,其特征在于,所述第二类计划包括:磁盘换入换出运算符算子和数据导入运算符算子;其中,所述磁盘换入换出运算符算子用于将第一数据存储到指定存储介质;所述数据导入运算符算子用于所述从指定存储介质中读取第一数据,并将所述第一数据存储到目的数据库中。
16.根据权利要求10或13所述的方法,其特征在于,
所述获取第一类计划包括:获取多个第一类计划和第一类计划的性能开销,并从所述多个第一类计划中选择性能开销最小的第一类计划;
所述获取第二类计划包括:获取多个第二类计划和第二类计划的性能开销,并从所述多个第二类计划中选择性能开销最小的第二类计划。
17.一种数据分析方法,其特征在于,所述方法包括:
接收存储请求,所述存储请求用于将源数据库的数据存储到一个或者多个目的数据库;其中,不同目的数据库的类型相同或者不同;源数据库和目的数据库均为云数据库,所述云数据库用于提供无服务器化的查询分析服务;
确定所述源数据库的第一类型和所述目的数据库的第二类型;
若所述第一类型与所述第二类型不同,则从所述源数据库中读取所述存储请求对应的第一数据,将所述第一数据转换为所述第二类型对应的第二数据;
将所述第二数据存储到所述目的数据库。
18.一种数据分析方法,其特征在于,所述方法包括:
接收存储请求,所述存储请求用于将源数据库的数据存储到一个或者多个目的数据库;其中,不同目的数据库的类型相同或者不同;
确定所述源数据库的第一类型和所述目的数据库的第二类型;
若所述第一类型与所述第二类型不同,则获取第一类计划,并将所述第一类计划发送给计算节点,以使所述计算节点根据所述第一类计划从所述源数据库中读取所述存储请求对应的第一数据,并将所述第一数据转换为所述第二类型对应的第二数据,并将所述第二数据存储到所述目的数据库。
19.根据权利要求18所述的方法,其特征在于,
所述第一类计划包括:格式转换运算符算子和表写入运算符算子;或者,格式转换运算符算子、磁盘换入换出运算符算子和数据导入运算符算子;其中,所述格式转换运算符算子用于将第一数据转换为第二类型对应的第二数据;所述表写入运算符算子用于将第二数据流式存储到目的数据库;所述磁盘换入换出运算符算子用于将第二数据存储到指定存储介质;所述数据导入运算符算子用于从指定存储介质中读取第二数据,并将第二数据存储到目的数据库。
20.根据权利要求18所述的方法,其特征在于,所述确定所述源数据库的第一类型和所述目的数据库的第二类型之后,所述方法还包括:
若所述第一类型与所述第二类型相同,则获取第二类计划,并将所述第二类计划发送给计算节点,以使计算节点根据所述第二类计划从所述源数据库中读取所述存储请求对应的第一数据,将所述第一数据存储到所述目的数据库。
21.根据权利要求20所述的方法,其特征在于,所述第二类计划包括:表写入运算符算子;或者,磁盘换入换出运算符算子和数据导入运算符算子;其中,所述表写入运算符算子用于将第一数据流式存储到目的数据库;所述磁盘换入换出运算符算子用于将第一数据存储到指定存储介质;所述数据导入运算符算子用于从指定存储介质中读取第一数据,将第一数据存储到目的数据库。
22.一种数据分析装置,其特征在于,所述装置包括:
接收模块,用于接收存储请求,所述存储请求用于将源数据库的数据存储到一个或者多个目的数据库;其中,不同目的数据库的类型相同或者不同;
确定模块,用于确定源数据库的第一类型和目的数据库的第二类型;
处理模块,用于若所述第一类型与所述第二类型不同,则从所述源数据库中读取所述存储请求对应的第一数据,将所述第一数据转换为所述第二类型对应的第二数据,并将所述第二数据存储到所述目的数据库。
23.根据权利要求22所述的装置,其特征在于,
所述处理模块将所述第二数据存储到所述目的数据库时具体用于:
将所述第二数据流式存储到所述目的数据库;或者,
将所述第二数据存储到指定存储介质;从所述指定存储介质中读取所述第二数据,并将所述第二数据存储到所述目的数据库。
24.根据权利要求22所述的装置,其特征在于,所述处理模块还用于:若所述第一类型与所述第二类型相同,则从所述源数据库中读取所述存储请求对应的第一数据,并将所述第一数据存储到所述目的数据库中;将所述第一数据存储到所述目的数据库中时具体用于:将所述第一数据流式存储到所述目的数据库中;或者,将所述第一数据存储到指定存储介质,并从所述指定存储介质中读取所述第一数据,并将所述第一数据存储到所述目的数据库中。
25.根据权利要求22所述的装置,其特征在于,所述处理模块还用于:
若所述第一类型与所述第二类型不同,则获取第一类计划,并将所述第一类计划发送给计算节点,以使所述计算节点根据所述第一类计划从所述源数据库中读取所述存储请求对应的第一数据,将所述第一数据转换为所述第二类型对应的第二数据,并将所述第二数据存储到所述目的数据库;或者,
若所述第一类型与所述第二类型相同,则获取第二类计划,并将所述第二类计划发送给计算节点,以使计算节点根据所述第二类计划从所述源数据库中读取所述存储请求对应的第一数据,并将所述第一数据存储到所述目的数据库。
26.一种数据分析装置,其特征在于,所述装置包括:
接收模块,用于接收存储请求,所述存储请求用于将源数据库的数据存储到一个或者多个目的数据库;其中,不同目的数据库的类型相同或者不同;
确定模块,用于确定源数据库的第一类型和目的数据库的第二类型;
处理模块,用于若所述第一类型与所述第二类型不同,则获取第一类计划,并将所述第一类计划发送给计算节点,以使所述计算节点根据所述第一类计划从所述源数据库中读取所述存储请求对应的第一数据,并将所述第一数据转换为所述第二类型对应的第二数据,并将所述第二数据存储到所述目的数据库。
27.一种数据分析设备,其特征在于,包括:
处理器和机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述处理器执行所述计算机指令时进行如下处理:
接收存储请求,所述存储请求用于将源数据库的数据存储到一个或者多个目的数据库;其中,不同目的数据库的类型相同或者不同;
确定所述源数据库的第一类型和所述目的数据库的第二类型;
若所述第一类型与所述第二类型不同,则从所述源数据库中读取所述存储请求对应的第一数据,将所述第一数据转换为所述第二类型对应的第二数据;
将所述第二数据存储到所述目的数据库。
28.一种数据分析设备,其特征在于,包括:
处理器和机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述处理器执行所述计算机指令时进行如下处理:
接收存储请求,所述存储请求用于将源数据库的数据存储到一个或者多个目的数据库;其中,不同目的数据库的类型相同或者不同;
确定所述源数据库的第一类型和所述目的数据库的第二类型;
若所述第一类型与所述第二类型不同,则获取第一类计划,并将所述第一类计划发送给计算节点,以使所述计算节点根据所述第一类计划从所述源数据库中读取所述存储请求对应的第一数据,并将所述第一数据转换为所述第二类型对应的第二数据,并将所述第二数据存储到所述目的数据库。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810985908.0A CN110866052A (zh) | 2018-08-28 | 2018-08-28 | 一种数据分析方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810985908.0A CN110866052A (zh) | 2018-08-28 | 2018-08-28 | 一种数据分析方法、装置及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110866052A true CN110866052A (zh) | 2020-03-06 |
Family
ID=69651234
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810985908.0A Pending CN110866052A (zh) | 2018-08-28 | 2018-08-28 | 一种数据分析方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110866052A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113127124A (zh) * | 2021-04-21 | 2021-07-16 | 平安付科技服务有限公司 | 数据库语言类型切换方法、装置、计算机设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090287726A1 (en) * | 2006-04-07 | 2009-11-19 | Mag Productions Holding B.V. | Method and system for synchronization of databases |
US20150234884A1 (en) * | 2012-11-08 | 2015-08-20 | Sparkledb As | System and Method Involving Resource Description Framework Distributed Database Management System and/or Related Aspects |
-
2018
- 2018-08-28 CN CN201810985908.0A patent/CN110866052A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090287726A1 (en) * | 2006-04-07 | 2009-11-19 | Mag Productions Holding B.V. | Method and system for synchronization of databases |
US20150234884A1 (en) * | 2012-11-08 | 2015-08-20 | Sparkledb As | System and Method Involving Resource Description Framework Distributed Database Management System and/or Related Aspects |
Non-Patent Citations (2)
Title |
---|
尹旭日,张武军编著: "Visual C++环境下MapX的开发技术", 31 January 2009, 冶金工业出版社, pages: 226 * |
章剑林著: "网格与商务智能", 30 September 2008, 上海交通大学出版社, pages: 114 - 115 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113127124A (zh) * | 2021-04-21 | 2021-07-16 | 平安付科技服务有限公司 | 数据库语言类型切换方法、装置、计算机设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10162550B2 (en) | Large-scale, dynamic graph storage and processing system | |
CN107391142B (zh) | 一种应用拆分的方法及装置 | |
US20090187588A1 (en) | Distributed indexing of file content | |
US9639444B2 (en) | Architecture for end-to-end testing of long-running, multi-stage asynchronous data processing services | |
CN108268529B (zh) | 一种基于业务抽象和多引擎调度的数据汇总方法和系统 | |
WO2020211717A1 (zh) | 一种数据处理方法、装置及设备 | |
US8843632B2 (en) | Allocation of resources between web services in a composite service | |
CN109033404B (zh) | 日志数据处理方法、装置和系统 | |
CN103646073A (zh) | 一种基于HBase表的条件查询优化方法 | |
CN103248645A (zh) | Bt离线数据下载系统及方法 | |
CN111723161A (zh) | 一种数据处理方法、装置及设备 | |
CN107566477B (zh) | 一种在分布式文件系统集群中获取文件的方法和装置 | |
CN106055630A (zh) | 日志存储的方法及装置 | |
JP2015508543A (ja) | 店舗訪問データを処理すること | |
CN107423037B (zh) | 应用程序接口定位方法及设备 | |
CN111782404A (zh) | 一种数据处理方法及相关设备 | |
CN114820080A (zh) | 基于人群流转的用户分群方法、系统、装置及介质 | |
CN111142849B (zh) | 流程处理方法、装置、存储介质及处理器 | |
CN110888672B (zh) | 一种基于元数据架构的表达式引擎实现方法及系统 | |
CN111400301B (zh) | 一种数据查询方法、装置及设备 | |
US11803562B2 (en) | Method and system for querying streaming data | |
CN110909072B (zh) | 一种数据表建立方法、装置及设备 | |
CN110866052A (zh) | 一种数据分析方法、装置及设备 | |
CN108319604B (zh) | 一种hive中大小表关联的优化方法 | |
CN112506887A (zh) | 车辆终端can总线数据处理方法及装置 |
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 |