CN112825069A - 数据库数据的分析方法、设备、***及存储介质 - Google Patents

数据库数据的分析方法、设备、***及存储介质 Download PDF

Info

Publication number
CN112825069A
CN112825069A CN201911147973.7A CN201911147973A CN112825069A CN 112825069 A CN112825069 A CN 112825069A CN 201911147973 A CN201911147973 A CN 201911147973A CN 112825069 A CN112825069 A CN 112825069A
Authority
CN
China
Prior art keywords
data
database
analysis
time period
storage system
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.)
Granted
Application number
CN201911147973.7A
Other languages
English (en)
Other versions
CN112825069B (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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201911147973.7A priority Critical patent/CN112825069B/zh
Publication of CN112825069A publication Critical patent/CN112825069A/zh
Application granted granted Critical
Publication of CN112825069B publication Critical patent/CN112825069B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/24535Query rewriting; Transformation of sub-queries or views
    • 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/23Updating
    • G06F16/2358Change logging, detection, and notification

Landscapes

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

Abstract

本申请实施例提供一种数据库数据的分析方法、设备、***及存储介质。在本申请实施例中,将数据库数据与数据库增量日志相结合,可根据数据分析需求对数据库数据与数据库增量日志进行联合分析,通过数据库增量日志可在一定程度上弥补单纯依赖数据库数据做数据分析时存在的各种不足,有利于提高数据库数据分析的灵活性,满足多样化的数据分析需求。

Description

数据库数据的分析方法、设备、***及存储介质
技术领域
本申请涉及数据库技术领域,尤其涉及一种数据库数据的分析方法、设备、***及存储介质。
背景技术
随着互联网技术的发展,数据库的应用越来越广泛。在实际应用中,数据库经常面临各种数据分析需求。为了减轻数据库的负担,一般是按照一定的备份策略将数据库中的数据全量备份至数据仓库中,然后在数据仓库中利用备份的全量数据进行分析。这种利用数据仓库进行数据分析方式可降低数据库的负担,但是在面对不断多样化的数据分析需求时仍有一定不足,有待提供一种新的数据分析方法。
发明内容
本申请的多个方面提供一种数据库数据的分析方法、设备、***及存储介质,用以提高数据库数据分析的灵活性,满足多样化的数据分析需求。
本申请实施例提供一种数据库数据的分析方法,包括:根据数据分析需求,获取第一时段内的数据库数据和第二时段内的数据库增量日志;对所述第一时段内的数据库数据和所述第二时段内的数据库增量日志进行联合分析。
本申请实施例还提供一种数据分析设备,包括:存储器和处理器;所述存储器,用于存储计算机程序;所述处理器,与所述存储器耦合,用于执行所述计算机程序,以用于:根据数据分析需求,获取第一时段内的数据库数据和第二时段内的数据库增量日志,并对所述第一时段内的数据库数据和所述第二时段内的数据库增量日志进行联合分析。
本申请实施例还提供一种数据分析***,包括:数据分析设备和数据库;所述数据库,用于产生数据库数据和数据库增量日志;所述数据分析设备,用于根据数据分析需求,获取第一时段内的数据库数据和第二时段内的数据库增量日志,并对所述第一时段内的数据库数据和所述第二时段内的数据库增量日志进行联合分析。
本申请实施例还提供一种分布式的数据分析***,包括:多台物理设备,所述多台物理设备上分布部署有若干个前端节点和若干个计算节点;所述若干个前端节点,用于获取数据分析需求,并根据所述数据分析需求指示所述若干个计算节点进行联合分析;所述若干个计算节点,用于根据所述若干个前端节点的指示,获取第一时段内的数据库数据和第二时段内的数据库增量日志,并对所述第一时段内的数据库数据和所述第二时段内的数据库增量日志进行联合分析。
本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,当所述计算机程序被处理器执行时,致使所述处理器能够实现上述方法实施例中的步骤。
本申请实施例还提供一种数据湖***,包括:云端存储***以及云端分析引擎;
所述云端存储***,用于存储数据源在不同时刻产生的全量数据以及在不同时刻之后产生的增量日志;
所述云端分析引擎,用于根据数据分析需求,从所述云端存储***中读取所述数据源在第一时刻产生的全量数据和在所述第一时刻之后产生的增量日志;对所述数据源在第一时刻产生的全量数据和在所述第一时刻之后产生的增量日志进行联合分析。
在本申请实施例中,将数据库数据与数据库增量日志相结合,可根据数据分析需求对数据库数据与数据库增量日志进行联合分析,通过数据库增量日志可在一定程度上弥补单纯依赖数据库数据做数据分析时存在的各种不足,有利于提高数据库数据分析的灵活性,满足多样化的数据分析需求。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1a为本申请示例性实施例提供的一种数据分析***的结构示意图;
图1b为本申请示例性实施例提供的另一种数据分析***的结构示意图;
图1c为基于图1b所示***进行数据库数据备份及联合分析的原理示意图;
图1d为本申请示例性实施例对数据库增量日志进行拆分的状态示意图;
图2a为本申请示例性实施例提供的又一种数据分析***的结构示意图;
图2b为图2a所示数据分析***的结构及工作原理示意图;
图3a为本申请示例性实施例提供的一种数据库数据分析方法的流程示意图;
图3b为本申请示例性实施例提供的另一种数据库数据分析方法的流程示意图;
图3c为本申请示例性实施例提供的一种数据湖***的结构示意图;
图4为本申请示例性实施例提供的一种数据分析设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
针对现有基于数据库的数据分析方案存在的不足,在本申请一些实施例中,将数据库数据与数据库增量日志相结合,可根据数据分析需求对数据库数据与数据库增量日志进行联合分析,通过数据库增量日志可在一定程度上弥补单纯依赖数据库数据做数据分析时存在的各种不足,有利于提高数据库数据分析的灵活性,满足多样化的数据分析需求。
以下结合附图,详细说明本申请各实施例提供的技术方案。
图1a为本申请示例性实施例提供的一种数据分析***的结构示意图。如图1a所示,该***100包括:数据分析设备101和数据库102。
本实施例的数据库102泛指任何可以存储数据的存储***。例如,数据库102可以是各种类型的数据库,也可以是数据仓库,还可以是数据湖(Data Lake)等。其中,数据湖是一种可为用户提供无服务器(Serverless)化的云上交互式查询分析服务的***,该数据湖包括或集成有用于存储数据的对象存储***(OSS)、支持不同数据库语言的数据库(例如,PostgreSQL、MySQL等)、非关系型(NoSQL)分布式存储***(例如表格存储(TableStore)等)。本实施例的数据分析***可针对数据湖包括或集成的OSS、PostgreSQL数据库、MySQL数据库或TableStore等中的数据进行联合分析。例如,本实施例的数据库102可以是联机事务处理(On-Line Transaction Processing,OLTP)型数据库,也可以是联机分析处理(On-Line Analytical Processing,OLAP)型数据库。OLTP型数据库是传统的关系型数据库,其主要负责基本的、日常的事务处理,例如银行交易。OLAP型数据库是数据仓库***的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。
在本实施例中,数据库102一方面可为使用方提供数据存储功能,另一方面还可以为使用方提供查询(QUERY)、***(INSERT)、删除(DELETE)、更新(UPDATE)等各种服务。数据库102的使用方可以是个人、企业、某种服务、应用***或业务***等,并不做限定。其中,使用方可以利用数据库102提供的查询、***、删除、更新等服务对数据库102中的数据进行的各种操作,使用方对数据库102的各种操作会被记录到数据库日志中。为了与数据库日志进行区分,将数据库102中存储的来自使用方的数据称为数据库数据。
在实际使用中,外部用户(例如数据库的使用方或第三方)经常需要对数据库102中的数据库数据进行查询分析。在本实施例中,数据分析设备101主要对外(例如数据库102的使用方或第三方)提供针对数据库102的查询分析服务。其中,数据分析设备101可对外提供仅针对数据库数据的分析服务,也可以对外提供针对数据库数据和数据库增量日志的联合分析服务。
在本实施例中,并不对数据分析设备101的设备形态进行限定。数据分析设备101可以是任何具有一定计算能力和通信能力的计算机设备,例如可以是智能手机、平板电脑、笔记本电脑或台式电脑等终端设备,也可以是常规服务器、云服务器或服务器阵列等服务器设备。其中,数据分析设备101可以安装数据分析引擎,从而对外提供针对数据库102的查询分析服务。
若来自外部的数据分析需求仅需要对全部或部分数据库数据进行分析,则数据分析设备101可以根据数据分析需求,获取该数据分析需求所需的数据库数据,并针对所获取的数据库数据进行分析处理。除此之外,若来自外部的数据分析需求不仅依赖数据库数据,还依赖数据库增量日志,则数据分析设备101可以根据数据分析需求,获取数据分析需求所需的数据库数据和数据库增量日志,并对所获取的数据库数据和数据库增量日志进行联合分析。下面将重点针对数据分析设备101提供的联合分析服务进行说明。
在本实施例中,将数据分析需求所需的数据库数据记为第一时段内的数据库数据;第一时段内的数据库数据是指在第一时段内产生的数据库数据。将数据分析需求所需的数据库增量日志记为第二时段内的数据库增量日志;第二时段内的数据库增量日志是指数据库102在第二时段内产生的增量日志。
在本实施例中,并不限定第一时段和第二时段的时间长度,也不对两个时段对应的时间区间进行限定,具体可根据应用场景灵活设定。例如,第一时段是昨天上午9点-昨天下午4点,第二时段是昨天下午4点-5点。又例如,第一时段是今天上午11点之前的时段,第二时段是今天上午11点至当前时间之间的时段。
在本实施例中,并不对数据分析需求进行限定,可以是一种联合查询需求,也可以是数据汇总需求等等。数据分析设备101可根据数据分析需求获取第一时段内的数据库数据和第二时段内的数据库增量日志,在获取第一时段内的数据库数据和第二时段内的数据库增量日志之后,可以对第一时段内的数据库数据和第二时段内的数据库增量日志进行联合分析,得到最终分析结果。其中,将数据库数据与数据库增量日志相结合,通过数据库增量日志可在一定程度上弥补单纯依赖数据库数据做数据分析时存在的各种不足,有利于提高数据库数据分析的灵活性,满足多样化的数据分析需求。
进一步可选地,如图1a所示,数据分析设备101可以输出最终分析结果。例如,数据分析设备101可以通过邮件、应用内消息、短信或即时通信等方式,将最终分析结果返回给数据分析需求方,以供数据分析需求方获知最终分析结果。或者,数据分析设备101也可以将最终分析结果展示在自己的电子屏幕上,或者以语音方式播放最终分析结果,或者通过打印机将最终分析结果打印出来,以供数据分析需求方获知最终分析结果。
在本申请实施例中,并不限定数据分析设备101根据获取数据库数据和数据库增量日志的方式。
在一可选实施例中,如图1a所示,数据分析设备101可以直接从数据库102中获取第一时段内的数据库数据和第二时段内的数据库增量日志;然后对第一时段内的数据库数据和第二时段内的数据库增量日志进行联合分析。
在另一可选实施例中,如图1b所示,为了减轻数据分析设备101因向数据库102请求第一时段内的数据库数据和第二时段内的数据库增量日志给数据库102造成的处理负担,可在数据库102之外增加存储***103,该存储***103主要用于存储数据库102中的数据库数据和数据库增量日志,并可响应于数据分析设备101的请求为数据分析设备101提供第一时段内的数据库数据和第二时段内的数据库增量日志。这可以减轻数据库102的处理负担,使得数据库102可以更加专注地为数据库使用方提供服务,提高数据库使用方的使用感受。
在本实施例中,并不对数据库102之外的存储***103进行任何限定,凡是具有一定备份功能,可以存储数据库数据和数据库增量日志的存储***均适用于本申请实施例。另外,该存储***103可以是一个,也可以是多个。在图1b中,以该存储***103包括第一存储***1031和第二存储***1032为例进行图示。其中,第一存储***1031可作为数据库102的备份***,主要负责存储数据库102中的数据库数据;第二存储***1032主要负责存储数据库102中的数据库增量日志。可选地,第一存储***1031可以是数据仓库,但不限于此。第二存储***1032可以是日志存储***,但不限于此。
在图1b所示数据分析***中,数据分析设备101可以根据数据分析需求,从第一存储***1031中获取第一时段内的数据库数据,并从第二存储***1032中获取第二时段内的数据库增量日志;然后,对第一时段内的数据库数据和第二时段内的数据库增量日志进行联合分析。
需要说明的是,根据第一存储***1031的实现形式的不同,数据分析设备101从第一存储***1031中获取数据的方式会有所不同。同理,根据第二存储***1032的实现形式的不同,数据分析设备101从第二存储***1032中获取数据的方式也会有所不同。在本申请实施例中,并不限定第一存储***1031和第二存储***1032的实现形式,同样也不会限定数据分析设备101从第一存储***1031和第二存储***1032中获取数据的方式。
在一可选实施例中,第一存储***1031和第二存储***1032是支持某种数据库语言(例如SQL、Oracle、Sybase、MySQL等)的数据库或数据仓库。在该情况下,数据分析设备101可根据包含数据分析需求中的数据标识参数的建表语句,创建分析表或分析表中的分区。其中,建表语句可以是数据分析需求方根据数据需求分析中的数据标识参数,编写的用于创建分析表或分区的数据库语句,例如可以是SQL语句、Oracle语句、Sybase语句、MySQL语句。该分析表包含数据标识参数,指向数据分析所需的第一时段内的数据库数据和第二时段内的数据库增量日志。然后,根据分析表中包含的数据标识参数,从第一存储***1031和第二存储***1032中分别获取第一时段内的数据库数据和第二时段内的数据库增量日志。
在一可选实施例中,上述数据标识参数可以包含但不限于:第一时间参数、第一存储位置参数、第二时间参数和第二存储位置参数。其中,第一时间参数是可以标识第一时段的时间参数,可以是一个时间点,也可以是一个时间范围;第一存储位置参数指向第一时段内的数据库数据的存储位置;第二时间参数是可以标识第二时段的时间参数,可以是一个时间点,也可以是一个时间范围;第二存储位置参数指向第二时段内的数据库增量日志的存储位置。基于此,数据分析设备101可以根据分析表中的第一时间参数和第一存储位置参数,从第一存储***1031中获取第一时段内的数据库数据,并根据分析表中的第二时间参数和第二存储位置参数,从第二存储***1032中获取第二时段内的数据库增量日志。
需要说明的是,上述数据分析设备101创建分析表并基于分析表从第一存储***1031和第二存储***1032中获取数据的方式,同样适用于数据分析设备101从数据库102中直接获取第一时段内的数据库数据和第二时段内的数据库增量日志。
在一些可选实施例中,可以采用某种数据库备份机制(例如周期性地或按照设定的备份时间),在一些时间点间隔性地将数据库102中的全量数据备份至第一存储***1031中。基于此,在数据分析设备101从第一存储***1031中获取第一时段内的数据库数据之前,可以在第一时间参数指示的第一时间点,将数据库102中的全量数据备份至第一存储***1031中。在该实施方式中,可以将第一时间点之前的时段作为第一时段,第一时间点之前的时段是指自数据库102部署实施之时起到第一时间点之间的时间,则第一时段内的数据库数据是指数据库102中到第一时间点为止产生的全量数据。当然,第一时间点之前的时段也可以是自数据库102部署实施之后的某个时间点开始到第一时间点之间的时段。例如,假设数据库102自2019年1月10日上午11点部署实施,第一时间点是2019年10月10日上午9点,则可以将自2019年1月10日上午11点至2019年10月10日上午9点之间的全部时间视为第一时段,也可以将自2019年10月5日上午9点至2019年10月10日上午9点之间的时间视为第一时段。
随着时间的推移,数据库102中的全量数据会不断被备份至第一存储***1031中,通过数据库备份机制备份到第一存储***1031中的数据库数据,是有计划、或者时间线的,如图1c所示。图1c中的时间戳(Timestamp)1、时间戳2、时间戳3和时间戳4等是数据库数据被备份到第一存储***1031中时间点,每个时间戳对应的数据库数据是到该时间戳为止数据库102中的全量数据。
在数据库备份场景中,若单纯依据第一存储***1031进行数据分析,只能对某个时间戳对应的数据库全量数据进行数据分析,数据的时效性受两次备份时间间隔的限制,若在两次备份操作之间数据发生变化,则在数据分析过程中无法考虑这种变化,对数据分析的时效性和分析结果的准确性都有较大影响。
在本实施例中,在相邻两个时间戳(即两次备份操作)之间,考虑到数据库102会随着***、删除、更新等操作而产生数据库增量日志。基于此,在需要进行数据分析时,还需要用到第二时段内的数据库增量日志,则可以在第三时间点,将数据库102在第二时间参数指示的第二时间点之后产生的增量日志拷贝到第二存储***1032中,为数据分析设备101从第二存储***1032中读取第二时段内的数据库增量日志提供数据基础。在本实施例中,将第二时间点到第三时间点之间的时段称为第二时段。第三时间点是需要进行数据分析的时间点,其可以是当前时刻,也可以是第二时间点之后的某个时间点。在本实施例中,并不对第二时间点进行限制,可灵活设定。第二时间点可以是将数据库102中的全量数据备份至第一存储***1031中的某个时间点,或者是相邻两次备份操作之间的某个时间点。无论是哪种情况,第二时段内的数据库增量日志可在一定程度上弥补第一时段内的数据库数据在时效上的滞后性,有利于提高数据分析的时效性,有利于较为实时地对数据库数据进行分析。
在一种应用场景中,第一时间点是将数据库102中的全量数据备份至第一存储***1031中的某个时间点,例如可以是图1c中的时间戳1、时间戳2、时间戳3或时间戳4等。相应地,第二时间点也是将数据库102中的全量数据备份至第一存储***1031中的某个时间点,例如可以是图1c中的时间戳1、时间戳2、时间戳3或时间戳4等。需要说明的是,第一时间点与第二时间点可以是同一时间点,也可以是不同时间点。
对于第一时间点与第二时间点是不同时间点的情况,假设第一时间点是图1c中的时间戳1,第二时间点是图1c中的时间戳2,则数据分析设备101需要从第一存储***1031中获取在时间戳1备份过来的数据库全量数据(即数据库102在时间戳1之前产生的全量数据),并从第二存储***1032中获取在第三时间点备份过来的数据库102在时间戳2之后且时间戳3之前产生的增量日志,进而对数据库102在时间戳1之前产生的全量数据和数据库102在时间戳2之后且时间戳3之前产生的增量日志进行联合分析。
对于第一时间点与第二时间点是相同时间点的情况,假设第一时间点和第二时间点均是图1c中的时间戳1,则数据分析设备101需要从第一存储***1031中获取在时间戳1备份过来的数据库全量数据(即数据库102在时间戳1之前产生的全量数据),并从第二存储***1032中获取在第三时间点备份过来的数据库102在时间戳1之后且时间戳2之前产生的增量日志,进而对数据库102在时间戳1之前产生的全量数据和数据库102在时间戳1之后且时间戳2之前产生的增量日志进行联合分析,如图1c所示。需要说明的是,随着时间的推移,数据库数据会不断被备份或导出,则多个时间戳会对应多个分析表或者一张分析表的多个分区,每次创建的分析表或者分区能够覆盖本次备份或导出的数据库数据以及本次备份或导出的时间点到数据分析时刻之间的数据库增量日志。在本申请实施例中,重点以分析表为例进行图示和说明。
针对上述第一时间点与第二时间点是相同时间点的情况,以SQL语言为例,一种建表语句的代码示例如下:
CREATE EXTERNAL TABLE orders_parquet_log(
O_ORDERKEY INT,
O_CUSTKEY INT,
O_ORDERSTATUS STRING,
O_TOTALPRICE DOUBLE,
O_ORDERDATE DATE,
O_ORDERPRIORITY STRING,
O_CLERK STRING,
O_SHIPPRIORITY INT,
O_COMMENT STRING)
STORED AS PARQUET
LOCATION'oss://bucket-for-testing/datasets/tpch/1x/orders_parquet/'
TBLPROPERTIES(
FULL_IMAGE_TIMESTAMP='2019-01-01 08:00:00',
DATABASE_LOG_LOCATION=
'oss://bucket-for-testing/datasets/tpch/1x/orders/logs/'
)
在上述建表语句的代码示例中,“FULL_IMAGE_TIMESTAMP”参数相当于第一时间参数,同时也相当于第二时间参数,表示数据库数据的备份或导出的时间点,该时间点之前的时段即为第一时段,该时间点至数据分析时刻之间的时段表示第二时段,数据分析时刻可以是当前时刻,也可以是下一次数据备份或导出的时间点之前的某个时间点;“LOCATION”参数相当于第一存储位置参数,指向第一时段内的数据库数据的存储位置;“DATABASE_LOG_LOCATION”参数相当于第二存储位置参数,指向第二时段内的数据库增量日志的存储位置。进一步可选地,“FULL_IMAGE_TIMESTAMP”参数表示的第一时间点和第二时间点可以是最近一次将数据库102中的全量数据备份至第一存储***1031中的时间点,则可以根据最近一次备份的数据库全量数据和数据库102在最近一次备份操作之后产生的增量日志进行联合分析,可以较为实时地对数据库数据进行分析。
进一步可选地,考虑到第一存储***1031支持的存储格式可能与数据库102支持的存储格式不同,则在每次备份过程中,可以将数据库102中的全量数据按照第一存储***1031支持的存储格式备份至第一存储***1031中。进一步,第一存储***1031可以采用采用列式存储格式,则在向第一存储***1031备份数据库数据时,可以将数据库数据转换为列式存储格式,然后存储至第一存储***1031中。其中,第一存储***1031采用列式存储格式,一方面可以节约存储空间,减少IO操作,另一方面,列式存储格式在计算上做了优化,对于数据分析更为高效。
在本申请前述各实施例中,并未限定数据分析设备101对第一时段内的数据库数据和第二时段内的数据库增量日志进行联合分析的实施方式,该实施方式会因数据分析需求的不同而有所不同。在本申请下述实施例中,给出一种对第一时段内的数据库数据和第二时段内的数据库增量日志进行联合分析的实施方式。其中,数据库增量日志描述的是数据库数据的变化,而不是数据库数据本身,相比于数据库数据其友好性相对较差,尤其是对于对象存储或类似的大数据存储***,例如HDFS等只能追加(append only)的数据库,这些数据库产生的增量日志,更是不太友好。如何把这些数据库增量日志使用起来,是比较有难度的。在下述实施例中,重点从如何使用数据库增量日志的角度进行了描述,解决数据库增量日志在使用上存在的技术难点。
在本申请一些实施例中,数据分析设备101在获取第一时段内的数据库数据和第二时段内的数据库增量日志之后,可将第二时段内的数据库增量日志拆分为由***操作形成的新增数据集和由删除操作形成的删除数据集;然后,将删除数据集中的数据库增量日志与第一时段内的数据库数据进行联合分析,得到中间分析结果;进而,将新增数据集中的数据库增量日志与中间分析结果进行联合分析,得到最终分析结果。
其中,数据库增量日志通常包括但不限于:I(INSERT)、U(UPDATE)和D(DELETE)三种类型,I类型日志是指***操作产生的日志数据,U类型日志是指更新操作产生的日志数据,D类型日志是指删除操作产生的日志数据。这些类型的日志通常包括日志ID、日志类型以及涉及变化的内容等。其中,不同类型的日志数据涉及变化的内容有所不同,例如,对于I类型日志数据,其涉及变化的内容是指新增的数据;对于D类型日志数据,其涉及变化的内容是指删除的数据;对于U类型日志数据,其涉及变化的内容是指更新之前(before)和之后(after)的数据等。其中,更新操作可拆解为删除和新增两种操作。基于此,可对第二时段内的数据库增量日志进行拆解处理,将其中U类型的日志数据变成删除和***两条日志数据,之后,再将针对同一数据记录的删除和***操作进行合并,得到两个数据集,一个是由***操作形成的新增数据集,一个是由删除操作形成的删除数据集,该过程如图1d所示。
需要说明的是,在本实施例中,新增数据集和删除数据集中存储的可以是相应数据库增量日志,具体地,新增数据集中存储的是***操作产生的日志数据,删除数据集中存储的是删除操作产生的日志数据。或者,新增数据集和删除数据集中存储的是由相应数据库增量日志生成的数据库数据;具体地,新增数据集中存储的是由***操作***的数据库数据;删除数据集中存储的是由删除操作删除的数据库数据。
在得到删除数据集和新增数据集之后,首先将删除数据集与第一时段内的数据库数据进行联合分析,得到中间分析结果;再将新增数据集与中间分析结果进行联合分析,得到最终分析结果。
其中,将删除数据集与第一时段内的数据库数据进行联合分析的过程主要是指利用删除数据集对第一时段内的数据库数据进行过滤的过程,即将第一时段内的数据库数据中已经被删除的数据库数据过滤掉。
进一步,若数据分析需求中的数据操作包括过滤操作,则可以将数据分析需求中的过滤操作与利用删除数据集对第一时段内的数据库数据进行过滤的操作放在一块执行,即利用删除数据集和数据分析需求中的过滤操作,对第一时段内的数据库数据进行过滤,得到中间分析结果。当然,若数据分析需求中的数据操作不包括过滤操作,则可以直接利用删除数据集对第一时段内的数据库数据进行过滤操作,得到中间分析结果。其中,数据分析需求中的数据操作是指数据分析要求的数据操作,包括一种或多种。
在本实施例中,并不限定利用删除数据集和数据分析需求中的过滤操作,对第一时段内的数据库数据进行过滤的先后顺序。例如,可以利用删除数据集对第一时段内的数据库数据进行初始过滤,再利用过滤操作中的过滤条件对初始过滤后的数据库数据进行二次过滤,得到中间分析结果。也可以先利用过滤操作中的过滤条件对第一时段内的数据库数据进行初始过滤,再利用删除数据集对初始过滤后的数据库数据进行二次过滤,得到中间分析结果。
进一步,若删除数据集中包含的是由删除操作产生的日志数据,在利用删除数据集对第一时段内的数据库数据进行初始过滤的过程中,或者在利用删除数据集对初始过滤后的数据库数据进行二次过滤的过程中,可以根据删除数据集中由删除操作产生的日志数据确定该删除操作对应的数据表以及该数据表中被删除的数据项,遍历第一时段内的数据库数据,将相应数据表中相应数据项删除。若删除数据集中包含的是被删除操作删除的数据库数据,则在利用删除数据集对第一时段内的数据库数据进行初始过滤的过程中,或者在利用删除数据集对初始过滤后的数据库数据进行二次过滤的过程中,可以确定删除数据集中被删除数据所属的数据表及数据项,遍历第一时段内的数据库数据,将相应数据表中相应数据项删除。
相应地,将新增数据集与中间分析结果进行联合分析的过程主要是指将新增数据集与中间分析结果进行合并,得到合并后的数据库数据;进而根据数据分析需求中的其它数据操作,继续对合并后的数据库数据进行分析处理,得到最终分析结果。这里的其它数据操作是指数据分析要求的除删除操作之外的其它数据操作。
进一步,在将新增数据集与中间分析结果进行合并过程中,主要是以数据表为单位,将中间分析结果中的数据库数据与根据新增数据集得到的数据库数据中隶属于同一张数据表的数据进行合并。
进一步,若新增数据集中包含的是由***操作产生的日志数据,则在将新增数据集与中间分析结果进行合并过程中,可以根据新增数据集中由***操作产生的日志数据,确定***的数据库数据以及该***操作涉及的数据表以及数据项,将该数据库数据合并到中间分析结果中相应数据表的相应数据项中,从而得到合并后的数据库数据。若新增数据集中包含的是由***操作***的数据库数据,则在将新增数据集与中间分析结果进行合并过程中,可以确定新增数据集中由***操作***的数据库数据隶属的数据表以及数据项,将该数据库数据合并到中间分析结果中相应数据表的相应数据项中,从而得到合并后的数据库数据。
在将新增数据集与中间分析结果进行合并之后,还可以根据数据分析需求中的其它数据操作,继续对合并后的数据库数据进行分析处理,得到最终分析结果。根据应用场景以及数据分析需求的不同,数据分析要求的其它数据操作也会有所不同。例如,数据分析要求的其它数据操作可以包括但不限于:数据表之间的关联操作、聚类操作、对分析结果数量进行限制的操作以及输出操作等等。鉴于数据分析要求的其它数据操作的灵活多样性,“根据数据分析需求中的其它数据操作,继续对合并后的数据库数据进行分析处理”的实施方式也会灵活多样,对该操作的实施方式本实施例并不做限定。
在本申请上述实施例中,将数据库数据与数据库增量日志相结合,可根据数据分析需求对数据库数据与数据库增量日志进行联合分析,通过数据库增量日志可在一定程度上弥补单纯依赖数据库数据进行数据分析时在时效性、准确性和灵活性等方面存在的不足,有利于提高数据库数据分析的时效性、准确性和灵活性,满足多样化的数据分析需求。
值得说明的是,上述实施例中由数据分析设备101实现的各种功能(即数据分析引擎)除了可以集中部署在一数据分析设备101上实现之外,也可以分布式部署在多台物理设备或虚拟机上实现。其中,一种分布式的数据分析***200的结构如图2a所示,包括:多台物理设备201,多台物理设备201上分布部署有若干个前端节点202和若干个计算节点203。这里的“若干个”表示数量不确定,可以是一个,也可以是多个。
在本实施例中,若干个前端节点202和若干个计算节点203是逻辑节点,这些逻辑节点相互配合可实现本实施例提供的数据分析引擎的功能。其中,若干个前端节点202,用于获取数据分析需求,并根据数据分析需求指示若干个计算节点203进行联合分析;若干个计算节点203,用于根据若干个前端节点202的指示,获取第一时段内的数据库数据和第二时段内的数据库增量日志,并对第一时段内的数据库数据和第二时段内的数据库增量日志进行联合分析。
在一可选实施例中,若干个计算节点203具体可从数据库之外的存储***中获取第一时段内的数据库数据和第二时段内的数据库增量日志。其中,第一时段内的数据库全量数据和第二时段内的数据库增量日志产生于该数据库;换句话说,该数据库是产生第一时段内的数据库全量数据和第二时段内的数据库增量日志的数据库。在本实施例中,并不对数据库的类型进行限定,该数据库可以代表任何具有数据存储能力的存储***,例如可以是各种类型的数据库、数据仓库或数据湖等。
其中,数据库之外的存储***主要用于存储数据库中的数据库数据和数据库增量日志,并可响应于计算节点203的请求为计算节点203提供第一时段内的数据库数据和第二时段内的数据库增量日志。这可以减轻数据库的处理负担,使得数据库可以更加专注地为数据库使用方提供服务,提高数据库使用方的使用感受。
在本实施例中,并不对数据库之外的存储***进行任何限定,凡是具有一定备份功能,可以存储数据库数据和数据库增量日志的存储***均适用于本申请实施例。另外,该存储***可以是一个,也可以是多个。在本实施例中,以存储***包括第一存储***和第二存储***为例进行说明。其中,第一存储***可作为数据库的备份***,主要负责存储数据库中的数据库数据;第二存储***主要负责存储数据库产生的数据库增量日志。可选地,第一存储***可以是数据仓库,但不限于此。第二存储***可以是日志存储***,但不限于此。
在一可选实施例中,第一存储***和第二存储***是支持某种数据库语言(例如SQL、Oracle、Sybase、MySQL等)的数据库或数据仓库。在该情况下,前端节点202可根据包含数据分析需求中的数据标识参数的建表语句,创建分析表或分析表中的分区。其中,建表语句可以是数据分析需求方根据数据需求分析中的数据标识参数,编写的用于创建分析表或分区的数据库语句,例如可以是SQL语句、Oracle语句、Sybase语句、MySQL语句。该分析表包含数据标识参数,指向数据分析所需的第一时段内的数据库数据和第二时段内的数据库增量日志。计算节点203根据前端节点202所创建的分析表中包含的数据标识参数,从第一存储***和第二存储***中分别获取第一时段内的数据库数据和第二时段内的数据库增量日志。
在一可选实施例中,上述数据标识参数可以包含但不限于:第一时间参数、第一存储位置参数、第二时间参数和第二存储位置参数。其中,第一时间参数是可以标识第一时段的时间参数,可以是一个时间点,也可以是一个时间范围;第一存储位置参数指向第一时段内的数据库数据的存储位置;第二时间参数是可以标识第二时段的时间参数,可以是一个时间点,也可以是一个时间范围;第二存储位置参数指向第二时段内的数据库增量日志的存储位置。基于此,计算节点203可以根据分析表中的第一时间参数和第一存储位置参数,从第一存储***中获取第一时段内的数据库数据,并根据分析表中的第二时间参数和第二存储位置参数,从第二存储***中获取第二时段内的数据库增量日志。
在一可选实施例中,一个或几个计算节点203可以根据分析表中的第一时间参数和第一存储位置参数,从第一存储***中获取第一时段内的数据库数据;另一个或几个计算节点203可以根据分析表中的第二时间参数和第二存储位置参数,从第二存储***中获取第二时段内的数据库增量日志。
在一些可选实施例中,可以采用某种数据库备份机制(例如周期性地或按照设定的备份时间),在一些时间点间隔性地将数据库中的全量数据备份至第一存储***中。基于此,在计算节点203从第一存储***中获取第一时段内的数据库数据之前,可以在第一时间参数指示的第一时间点,将数据库中的全量数据备份至第一存储***中。相应地,在计算节点203从第二存储***中获取第二时段内的数据库数据之前,还可以在第三时间点,将数据库在第二时间参数指示的第二时间点之后产生的增量日志拷贝到第二存储***中,为计算节点203从第二存储***中读取第二时段内的数据库增量日志提供数据基础。在本实施例中,将第二时间点到第三时间点之间的时段称为第二时段。第三时间点是需要进行数据分析的时间点,其可以是当前时刻,也可以是第二时间点之后的某个时间点。
需要说明的是,上述将数据库全量数据备份至第一存储***1031中的操作可以由前端节点202发起并执行,也可以由其它***发起并执行。同理,上述将数据库增量日志备份至第二存储***1032中的操作可以由前端节点202发起并执行,也可以由其它***发起并执行。
在一种应用场景中,第一时间点是将数据库中的全量数据备份至第一存储***中的某个时间点,相应地,第二时间点也是将数据库中的全量数据备份至第一存储***中的某个时间点。需要说明的是,第一时间点与第二时间点可以是同一时间点,也可以是不同时间点。相关描述可参见前述实施例。
需要说明的是,在本申请上述实施例中,第一时段内的数据库数据和第二时段内的数据库增量日志由计算节点203获取,但并不限于这一种实施方式。例如,第一时段内的数据库数据和第二时段内的数据库增量日志也可以由前端节点202获取,并在获取第一时段内的数据库数据和第二时段内的数据库增量日志之后,将第一时段内的数据库数据和第二时段内的数据库增量日志发送给若干个计算节点203,由若干个计算节点203进行联合分析。
在一可选实施例中,若干个计算节点203包括:获取节点、拆分节点、第一类联合分析节点和第二类联合分析节点。其中,获取节点,用于获取第一时段内的数据库数据和第二时段内的数据库增量日志。拆分节点,用于将第二时段内的数据库增量日志拆分为由***操作形成的新增数据集和由删除操作形成的删除数据集。其中,删除数据集被送入第一类联合分析节点,新增数据集被送入第二类联合分析节点。第一类联合分析节点,用于将删除数据集中的数据库增量日志与所述第一时段内的数据库数据进行联合分析,得到中间分析结果,并将中间分析结果送入第二类联合分析节点;第二类联合分析节点,用于将新增数据集中的数据库增量日志与中间分析结果进行联合分析,得到最终分析结果。需要说明的是,获取节点为可选节点,若第一时段内的数据库数据和第二时段内的数据库增量日志由前端节点202获取,则若干个计算节点203中可以不包含获取节点。
其中,将删除数据集与第一时段内的数据库数据进行联合分析的过程主要是指利用删除数据集对第一时段内的数据库数据进行过滤的过程,即将第一时段内的数据库数据中已经被删除的数据库数据过滤掉。相应地,将新增数据集与中间分析结果进行联合分析的过程主要是指将新增数据集与中间分析结果进行合并,得到合并后的数据库数据;进而根据数据分析需求中的其它数据操作,继续对合并后的数据库数据进行分析处理,得到最终分析结果。这里的其它数据操作是指数据分析要求的除删除操作之外的其它数据操作。
基于上述,如图2b所示的***架构所示,第一类联合分析节点包括多个过滤节点;第二类联合分析节点包括至少一个合并节点和其它节点。多个过滤节点位于至少一个合并节点的上游,至少一个合并节点位于其它节点的上游,其它节点之间根据对应数据操作的先后顺序也具有上下游关系。其中,多个过滤节点,用于利用删除数据集,或者利用删除数据集和数据分析需求中的过滤操作,对第一时段内的数据库数据进行过滤,并将过滤后的数据库数据作为中间分析结果送入下游的至少一个合并节点。至少一个合并节点,用于将新增数据集与中间分析结果进行合并,并将合并后的数据库数据送入后续其它节点;其它节点与数据分析需求中的其它数据操作对应,用于根据数据分析需求中的其它数据操作,继续对合并后的数据库数据进行分析处理,得到最终分析结果。
在一可选实施例中,如图2b所示,若干个计算节点203还包括多个切片节点,用于将第一时段内的数据库数据进行分片得到多个数据分片,并将多个数据分片分配到多个过滤节点。在将第一时段内的数据库数据进行分片的过程中,可以以数据表为单位,将每个数据表中的数据库数据切分为多个数据分片。例如,若数据表采用行式存储方式,则可以将数据表中的若干行切分为一个数据分片。若数据表采用列式存储方式,则可以将数据表中的若干列切分为一个数据分片。需要说明的是,不同数据分片包含的行数或列数可以相同,也可以不相同。
相应地,对于拆分节点来说,在将第二时段内的数据库增量日志拆分为新增数据集和删除数据集之后,可以将删除数据集广播给多个过滤节点;由多个过滤节点利用删除数据集和数据分析需求中的过滤操作对各自负责的数据分片进行过滤,并将过滤后的数据库数据作为中间分析结果送入下游的合并节点。同理,拆分节点也会将新增数据集广播给至少一个合并节点,以供每个合并节点利用新增数据集与各自负责的中间分析结果进行合并,得到合并后的数据库数据并送入下游的其它节点。下游的其它节点可根据数据分析需求中的其它数据操作,继续对合并后的数据库数据进行分析处理,得到最终分析结果。
如图2b所示,下游的其它节点依次包括但不限于:关联节点、聚类节点、限制节点以及输出节点。其中,关联节点用于在数据表之间进行关联操作;聚类节点用于对数据表进行聚类操作;限制节点用于从数据表中获取有限数量的结果;输出节点用于输出数据分析结果。鉴于数据分析要求的其它数据操作的灵活多样性,“根据数据分析需求中的其它数据操作,继续对合并后的数据库数据进行分析处理”的实施方式也会灵活多样,对该操作的实施方式本实施例并不做限定。
进一步,本申请实施例提供的分布式的数据分析***还可以包括数据库、第一存储***和第二存储***,但并不限于此。
在一些可选实施例中,本申请实施例提供的分布式的数据分析***或数据分析设备可以作为数据仓库分析平台实现,支持某种数据库语言(例如SQL),且可部署在云端实现,可为用户提供无服务器(Serverless)化的云上交互式查询分析服务。借助该数据仓库分析平台,无需经过ETL(ETL,是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(Extract)、交互转换(Transform)、加载(Load)至目的端的过程)就可通过该平台在云上通过相应的数据库语句直接对对象存储(OSS)、TableStore、云上关系型数据库、NoSQL(泛指非关系型的数据库)***等中的数据库数据进行查询和分析。这里的OSS、ableStore、云上关系型数据库、NoSQL***等是前述实施例中可产生数据库数据和数据库增量日志的数据库的具体示例。
以上述分布式的数据分析***或数据仓库分析平台支持SQL语言为例,为了实现对数据库数据与数据库增量日志进行联合分析,可在现有算子的基础上新增负责处理数据库日志数据的多个算子,例如可以增加但不限于:“Log Merge”、“Scan Log”、“Filter Off”和“Union”等算子,这些算子主要负责对数据库增量日志进行相应处理。
Log Merge算子:负责对数据库增量日志进行拆分和合并操作,生成新增数据集和删除数据集。
Filter Off算子:并不独立执行,而是将删除数据集广播到已有Scan&Filter算子所在的节点上,结合已有Scan&Filter算子,利用删除数据集和数据分析需求中的过滤操作对由数据库数据切分出的数据分片进行过滤,从中去除已经被删除的数据库数据。
Scan Log算子:负责读取新增数据集送入后续Union算子,以供Union算子将新增数据集与经过Scan&Filter算子后的数据分片合并;
Union算子:将上述经过过滤后的数据分片与新增数据集中属于同一张数据表的数据库数据进行合并,并将合并后的数据表送入下游算子继续执行。
Scan&Filter算子:是两个物理算子,分别是已有的扫描(Scan)算子和过滤(Filter)算子,其作用是边扫描边过滤,其中,Filter算子主要用于利用数据分析需求中过滤操作的过滤条件对数据分片进行过滤,以去除不符合要求的数据库数据。
结合图2b所示的***架构,拆分节点可执行Log Merge算子,以将第二时段内的数据库增量日志拆分为由***操作形成的新增数据集和由删除操作形成的删除数据集;进一步,拆分节点还可以执行Filter Off算子,从而将删除数据集广播到各过滤节点,以及执行Scan Log算子,从而将新增数据集送入后续的合并节点;各过滤节点执行已有Scan&Filter算子,以利用删除数据集和数据分析需求中的过滤操作对自己负责的数据分片进行过滤,并将经过过滤的数据分片送入后续合并节点;合并节点执行Union算子,以将上述经过过滤后的数据分片与新增数据集中属于同一张数据表的数据库数据进行合并,并将合并后的数据表送入下游的关联节点;关联节点执行Join算子,以在数据表之间进行关联操作,并将经关联处理后的数据表送入下游的聚类节点;聚类节点执行Agg算子,对数据表进行聚类操作,并将聚类结果送入下游的限制节点;限制节点执行Limit算子,以从聚类结果中获取有限数量的结果条目,并将获取的有限数量的结果条目送入下游的输出节点;输出节点执行Output算子,以输出有限数量的结果条目。其中,Join算子、Agg算子、Limit算子以及Output算子是SQL已有的算子,详细内容不再赘述。
基于上述新增的算子,在进行数据分析过程中,可根据数据分析需求中的数据操作,生成用于联合分析的数据库语句,例如SQL语句;然后结合新增的负责处理数据库增量日志的多个算子,对该数据库语句进行优化处理,以得到执行计划;运行该执行计划,以对第一时段内的数据库数据和第二时段内的数据库增量日志进行联合分析。其中,第一时段内的数据库数据和第二时段内的数据库增量日志进行联合分析包括:将第二时段内的数据库增量日志拆分为新增数据集和删除数据集的操作、将删除数据集中的数据库增量日志与第一时段内的数据库数据进行联合分析以得到中间分析结果的操作,以及将新增数据集中的数据库增量日志与中间分析结果进行联合分析以得到最终分析结果的操作。需要说明的是,在对数据库语句进行优化处理的过程中,不仅依赖新增的算子,也会依赖已有算子。如上文所述,一种执行计划中可以包括但不限于:Log Merge算子、Scan Log算子、Filter Off算子、Union算子、Join算子、Agg算子、Limit算子以及Output算子。结合图2a所示***,其中,获取数据分析需求以及生成执行计划等操作可由前端节点202完成,前端节点202将执行计划提供给计算节点203,以指示计算节点203进行联合分析;计算节点203可运行执行计划,以对第一时段内的数据库数据和第二时段内的数据库增量日志进行联合分析。
在本实施例中,通过新增对数据库增量日志进行处理的算子,可以直接对数据库增量日志和数据库数据进行联合分析,而不需要先将数据库增量日志离线转换为数据库数据后回写至数据库,然后再从数据库中读取所需数据库数据进行分析,既可以保证数据库数据分析的时效性,又可以提高分析效率,简化分析操作。
图3a为本申请示例性实施例提供的一种数据库数据的分析方法的流程示意图。如图3a所示,该方法包括:
31、根据数据分析需求,获取第一时段内的数据库数据和第二时段内的数据库增量日志。
32、对第一时段内的数据库数据和第二时段内的数据库增量日志进行联合分析。
本实施例的分析方法可由图1a或图1b所示实施例中的数据分析设备实施,也可以由图2a所示的数据分析***实施。若本实施例的分析方法由图2a所示的数据分析***实施,各步骤可由数据分析***中的不同节点执行。
在本实施例中,将数据库数据与数据库增量日志相结合,可根据数据分析需求对数据库数据与数据库增量日志进行联合分析,通过数据库增量日志可在一定程度上弥补单纯依赖数据库数据做数据分析时存在的各种不足,有利于提高数据库数据分析的灵活性,满足多样化的数据分析需求。
在一可选实施例中,上述步骤31,即根据数据分析需求,获取第一时段内的数据库数据和第二时段内的数据库增量日志的方式包括:根据数据分析需求,从数据库之外的存储***中获取第一时段内的数据库数据和第二时段内的数据库增量日志;其中,第一时段内的数据库全量数据和第二时段内的数据库增量日志产生于数据库。
进一步,数据库之外的存储***包括第一存储***和第二存储***;第一存储***主要用于存储数据库中的数据库数据,第二存储***主要用于存储数据库产生的数据库增量日志。基于此,根据数据分析需求,从数据库之外的存储***中获取第一时段内的数据库数据和第二时段内的数据库增量日志,包括:根据包含数据分析需求中的数据标识参数的建表语句,创建分析表或分析表中的分区,分析表或分区中包含第一时间参数、第一存储位置参数、第二时间参数和第二存储位置参数;根据第一时间参数和第一存储位置参数,从数据库之外的第一存储***中获取第一时段内的数据库数据;根据第二时间参数和第二存储位置参数,从数据库之外的第二存储***中获取第二时段内的数据库增量日志。
更进一步,在从数据库之外的第一存储***中获取第一时段内的数据库数据之前,还包括:在第一时间参数指示的第一时间点,将数据库中的全量数据,按照第一存储***支持的存储格式备份至第一存储***中;第一时段是第一时间点之前的时段。相应地,在从数据库之外的第二存储***中获取第二时段内的数据库增量日志之前,还包括:在第三时间点,将数据库在第二时间参数指示的第二时间点之后产生的增量日志拷贝到第二存储***中;第二时段是从第二时间点到第三时间点的时段。
在一可选实施例中,上述第一时间点与第二时间点为同一时间点。进一步,第一时间点和第二时间点可以是最近一次将数据库中的全量数据备份至第一存储***的时间点。
在一可选实施例中,如图3b所示,步骤32的一种实施方式包括以下步骤:
321、将第二时段内的数据库增量日志拆分为由***操作形成的新增数据集和由删除操作形成的删除数据集。
322、将删除数据集与第一时段内的数据库数据进行联合分析,得到中间分析结果。
323、将新增数据集与中间分析结果进行联合分析,得到最终分析结果。
进一步,将删除数据集与第一时段内的数据库数据进行联合分析,得到中间分析结果,包括:利用删除数据集和数据分析需求中的过滤操作,对第一时段内的数据库数据进行过滤,得到中间分析结果。
进一步,利用删除数据集和数据分析需求中的过滤操作,对第一时段内的数据库数据进行过滤,得到中间分析结果,包括:利用删除数据集对第一时段内的数据库数据进行初始过滤,并利用过滤操作中的过滤条件对初始过滤后的数据库数据进行二次过滤,得到中间分析结果;或者,利用过滤操作中的过滤条件对第一时段内的数据库数据进行初始过滤,并利用删除数据集对初始过滤后的数据库数据进行二次过滤,得到中间分析结果。
进一步,将新增数据集与中间分析结果进行联合分析,得到最终分析结果,包括:将新增数据集与中间分析结果进行合并,得到合并后的数据库数据;根据数据分析需求中的其它数据操作,继续对合并后的数据库数据进行分析处理,得到最终分析结果。
进一步,本实施例的分析方法由数据分析***执行,该数据分析***包括但不限于:拆分节点、过滤节点、合并节点以及其它节点。基于此,利用删除数据集和数据分析需求中的过滤操作,对第一时段内的数据库数据进行过滤,得到中间分析结果,包括:将第一时段内的数据库数据进行分片得到多个数据分片,并将多个数据分片分配到多个过滤节点;将删除数据集广播给多个过滤节点,由多个过滤节点利用删除数据集和数据分析需求中的过滤操作对各自负责的数据分片进行过滤,并将过滤后的数据库数据作为中间分析结果送入下游的合并节点。相应地,将新增数据集与中间分析结果进行合并,得到合并后的数据库数据,包括:由合并节点将新增数据集与中间分析结果进行合并,并将合并后的数据库数据送入后续其它节点;后续其它节点与数据分析需求中的其它数据操作对应。
进一步,在将第二时段内的数据库增量日志拆分为由***操作形成的新增数据集和由删除操作形成的删除数据集之前,还包括:根据数据分析需求中的数据操作,生成用于联合分析的数据库语句;结合新增的负责处理数据库增量日志的多个算子,对数据库语句进行优化处理,以得到执行计划;运行执行计划,以实现将第二时段内的数据库增量日志拆分为由***操作形成的新增数据集和由删除操作形成的删除数据集的操作及后续操作。
关于方法实施例中各步骤及相关内容的详细描述,可参见前述实施例中的描述,在此不再赘述。
需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤31至步骤32的执行主体可以为设备A;又比如,步骤31的执行主体可以为设备A,步骤32的执行主体可以为设备B;等等。
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如31、32等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
需要说明的是,本申请实施例提供的对数据库数据与数据库增量日志进行联合分析的技术方案可作为一种独立的服务,为已有数据湖***提供联合分析服务,即针对数据湖包括或集成的OSS、PostgreSQL数据库、MySQL数据库或TableStore等中的数据进行联合分析,如图1a描述的实施例所示。除此之外,本申请实施例还可以提供一种具备联合分析功能的数据湖(Data Lake)***。
本申请实施例提供的数据湖***可为用户提供无服务器(Serverless)化的云上交互式查询分析服务,该数据湖***无需ETL,可使用数据库语言,例如标准SQL、PostgreSQL或MySQL等,直接与各类云存储***对接,例如可直接对接OSS、TableStore、云上关系型数据库、云上非关系型数据库等。TableStore是一种构建在分布式***之上的分布式NoSQL数据存储服务。
如图3c所示,本申请实施例提供的数据湖***包括:云端存储***301和云端分析引擎302;云端存储***301和云端分析引擎302通信连接。
其中,云存储***301相当于数据湖***中的数据库,主要负责存储数据湖***进行联合分析所需的各种数据,例如可存储来自数据源在不同时刻产生的全量数据和在不同时刻之后产生的增量日志等。这里的时刻主要是指数据源向云存储***301备份全量数据的时刻,一般是不连续的。
本实施例并不对云存储***301的实现形式进行限定,可以是任何在云端部署实现的存储***,例如可以是但不限于:OSS、TableStore、云上关系型数据库、云上非关系型数据库等。同理,本实施例也不对数据源的实现形式进行限定,可以是任何能够持续产生数据的对象,例如可以是用户的应用***、用户部署的数据库或者用户租用的数据库等等。
可选地,云存储***301可以采用append only(只追加)方式,而非in placeupdate(就地更新)方式,对存储的数据进行更新。
云端分析引擎302,可根据数据分析需求,从云端存储***301中读取数据源在第一时刻产生的全量数据和在第一时刻之后产生的增量日志;对数据源在第一时刻产生的全量数据和在第一时刻之后产生的增量日志进行联合分析。其中,第一时刻可由数据分析需求指定,对此不做限定。例如,第一时刻可以是图1c所示实施例中的某个时间戳。
在一可选实施例中,如图3c所示,云存储***301可以包括数据存储***和日志存储***。其中,数据存储***,用于存储数据源在不同时刻产生的全量数据。日志存储***,用于存储数据源在不同时刻之后产生的增量日志。在本实施例中,并不对数据存储***和日志存储***的实现形式进行限定,均可以采用任何云上存储***实现。
在一可选实施例中,云端分析引擎302可以集中部署在一物理设备上实现,也可以分布式部署在多台物理设备或虚拟机上实现。在云端分析引擎302采用分布式部署的情况下,如图3c所示,云端分析引擎302的一种实现结构包括:若干个前端节点和若干个计算节点。其中,若干个前端节点,用于获取数据分析需求,并根据数据分析需求指示若干个计算节点进行联合分析。相应地,若干个计算节点,用于根据若干个前端节点的指示,从云端存储***301中读取数据源在第一时刻产生的全量数据和在第一时刻之后产生的增量日志;对数据源在第一时刻产生的全量数据和在第一时刻之后产生的增量日志进行联合分析。前端节点主要面向具有数据分析需求的用户。可选地,如图3c所示,前端节点与计算节点之间可以通过互联网进行通信连接。在图3c中,以计算节点部署在云端,以前端节点部署在数据分析用户本地为例进行图示,但并不限于此。另外,在图3c中,以云端存储***301和云端分析引擎302部署在两朵云中为例进行图示,图3c中的“云朵”仅是对云端的示意性表示,不同云朵并不表示不同云网络。需要说明的是,云端存储***301和云端分析引擎302可以部署在不同云网络中,也可以部署在同一云网络中。
关于云端分析引擎302或计算节点对数据源在第一时刻产生的全量数据和在第一时刻之后产生的增量日志进行联合分析的详细实施方式,可参见前述实施中数据分析设备101或计算节点203对第一时段内的数据库数据和第二时段内的数据库增量日志进行联合分析的实施方式,在此不再赘述。
本实施例提供的数据湖***,可将全量数据与增量日志相结合,可根据数据分析需求对全量数据与增量日志进行联合分析,通过增量日志可在一定程度上弥补单纯依赖全量数据做数据分析时因全量数据时效性导致的分析结果不准确等问题,有利于提高数据分析的准确性和灵活性,满足多样化的数据分析需求。
图4为本申请示例性实施例提供的一种数据分析设备的结构示意图。如图4所示,该数据分析设备包括:存储器41和处理器42。
存储器41,用于存储计算机程序,并可被配置为存储其它各种数据以支持在数据分析设备上的操作。这些数据的示例包括用于在数据分析设备上操作的任何应用程序或方法的指令,消息,图片,视频等。
处理器42,与存储器41耦合,用于执行存储器41中的计算机程序,以用于:根据数据分析需求,获取第一时段内的数据库数据和第二时段内的数据库增量日志;对第一时段内的数据库数据和第二时段内的数据库增量日志进行联合分析。
在一可选实施例中,处理器42在获取第一时段内的数据库数据和第二时段内的数据库增量日志时,具体用于:根据数据分析需求,从数据库之外的存储***中获取第一时段内的数据库数据和第二时段内的数据库增量日志;其中,第一时段内的数据库全量数据和第二时段内的数据库增量日志产生于数据库。
进一步,数据库之外的存储***包括第一存储***和第二存储***;第一存储***主要用于存储数据库中的数据库数据,第二存储***主要用于存储数据库产生的数据库增量日志。基于此,处理器42在从数据库之外的存储***中获取第一时段内的数据库数据和第二时段内的数据库增量日志时,具体用于:根据包含数据分析需求中的数据标识参数的建表语句,创建分析表或分析表中的分区,分析表或分区中包含第一时间参数、第一存储位置参数、第二时间参数和第二存储位置参数;根据第一时间参数和第一存储位置参数,从数据库之外的第一存储***中获取第一时段内的数据库数据;根据第二时间参数和第二存储位置参数,从数据库之外的第二存储***中获取第二时段内的数据库增量日志。
更进一步,处理器42还用于:在从数据库之外的第一存储***中获取第一时段内的数据库数据之前,在第一时间参数指示的第一时间点,将数据库中的全量数据,按照第一存储***支持的存储格式备份至第一存储***中;第一时段是第一时间点之前的时段。
更进一步,处理器42还用于:在从数据库之外的第二存储***中获取第二时段内的数据库增量日志之前,在第三时间点,将数据库在第二时间参数指示的第二时间点之后产生的增量日志拷贝到第二存储***中;第二时段是从第二时间点到第三时间点的时段。
在一可选实施例中,上述第一时间点与第二时间点为同一时间点。进一步,第一时间点和第二时间点可以是最近一次将数据库中的全量数据备份至第一存储***的时间点。
在一可选实施例中,处理器42在对第一时段内的数据库数据和第二时段内的数据库增量日志进行联合分析时,具体用于:将第二时段内的数据库增量日志拆分为由***操作形成的新增数据集和由删除操作形成的删除数据集;将删除数据集与第一时段内的数据库数据进行联合分析,得到中间分析结果;将新增数据集与中间分析结果进行联合分析,得到最终分析结果。
进一步,处理器42在将删除数据集与第一时段内的数据库数据进行联合分析,得到中间分析结果时,具体用于:利用删除数据集和数据分析需求中的过滤操作,对第一时段内的数据库数据进行过滤,得到中间分析结果。
更进一步,处理器42在得到中间分析结果时,具体用于:利用删除数据集对第一时段内的数据库数据进行初始过滤,并利用过滤操作中的过滤条件对初始过滤后的数据库数据进行二次过滤,得到中间分析结果;或者,利用过滤操作中的过滤条件对第一时段内的数据库数据进行初始过滤,并利用删除数据集对初始过滤后的数据库数据进行二次过滤,得到中间分析结果。
进一步,处理器42在将新增数据集与中间分析结果进行联合分析,得到最终分析结果时,具体用于:将新增数据集与中间分析结果进行合并,得到合并后的数据库数据;根据数据分析需求中的其它数据操作,继续对合并后的数据库数据进行分析处理,得到最终分析结果。
进一步,如图4所示,该数据分析设备还包括:通信组件43、显示器44、电源组件45、音频组件46等其它组件。图4中仅示意性给出部分组件,并不意味着数据分析设备只包括图4所示组件。另外,根据数据分析设备的实现形态的不同,图4中虚线框内的组件为可选组件,而非必选组件。例如,当数据分析设备实现为智能手机、平板电脑或台式电脑等终端设备时,可以包括图4中虚线框内的组件;当数据分析设备实现为常规服务器、云服务器、数据中心或服务器阵列等服务端设备时,可以不包括图4中虚线框内的组件。
本实施例提供的数据分析设备,可将数据库数据与数据库增量日志相结合,可根据数据分析需求对数据库数据与数据库增量日志进行联合分析,通过数据库增量日志可在一定程度上弥补单纯依赖数据库数据做数据分析时存在的各种不足,有利于提高数据库数据分析的灵活性,满足多样化的数据分析需求。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,当计算机程序被处理器执行时,致使处理器实现上述方法实施例中的各步骤。
上述图4中的存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
上述图4中的通信组件被配置为便于通信组件所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理***的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件还可以包括近场通信(NFC)模块,射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术等。
上述图4中的显示器包括屏幕,其屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
上述图4中的电源组件,为电源组件所在设备的各种组件提供电力。电源组件可以包括电源管理***,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。
上述图4中的音频组件,可被配置为输出和/或输入音频信号。例如,音频组件包括一个麦克风(MIC),当音频组件所在设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器或经由通信组件发送。在一些实施例中,音频组件还包括一个扬声器,用于输出音频信号。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

Claims (25)

1.一种数据库数据的分析方法,其特征在于,包括:
根据数据分析需求,获取第一时段内的数据库数据和第二时段内的数据库增量日志;
对所述第一时段内的数据库数据和所述第二时段内的数据库增量日志进行联合分析。
2.根据权利要求1所述的方法,其特征在于,根据数据分析需求,获取第一时段内的数据库数据和第二时段内的数据库增量日志,包括:
根据数据分析需求,从数据库之外的存储***中获取所述第一时段内的数据库数据和所述第二时段内的数据库增量日志;
其中,所述第一时段内的数据库全量数据和第二时段内的数据库增量日志产生于所述数据库。
3.根据权利要求2所述的方法,其特征在于,根据数据分析需求,从数据库之外的存储***中获取所述第一时段内的数据库数据和第二时段内的数据库增量日志,包括:
根据包含所述数据分析需求中的数据标识参数的建表语句,创建分析表,所述分析表中包含第一时间参数、第一存储位置参数、第二时间参数和第二存储位置参数;
根据所述第一时间参数和所述第一存储位置参数,从所述数据库之外的第一存储***中获取所述第一时段内的数据库数据;
根据所述第二时间参数和所述第二存储位置参数,从所述数据库之外的第二存储***中获取所述第二时段内的数据库增量日志。
4.根据权利要求3所述的方法,其特征在于,在从所述数据库之外的第一存储***中获取所述第一时段内的数据库数据之前,还包括:
在所述第一时间参数指示的第一时间点,将所述数据库中的全量数据,按照所述第一存储***支持的存储格式备份至所述第一存储***中;
其中,所述第一时段是所述第一时间点之前的时段。
5.根据权利要求4所述的方法,其特征在于,在从所述数据库之外的第二存储***中获取所述第二时段内的数据库增量日志之前,还包括:
在第三时间点,将所述数据库在所述第二时间参数指示的第二时间点之后产生的增量日志拷贝到所述第二存储***中;所述第二时段是从所述第二时间点到所述第三时间点的时段。
6.根据权利要求5所述的方法,其特征在于,所述第一时间点与所述第二时间点为同一时间点。
7.根据权利要求1-6任一项所述的方法,其特征在于,对所述第一时段内的数据库数据和所述第二时段内的数据库增量日志进行联合分析,包括:
将所述第二时段内的数据库增量日志拆分为由***操作形成的新增数据集和由删除操作形成的删除数据集;
将所述删除数据集与所述第一时段内的数据库数据进行联合分析,得到中间分析结果;
将所述新增数据集与所述中间分析结果进行联合分析,得到最终分析结果。
8.根据权利要求7所述的方法,其特征在于,将所述删除数据集与所述第一时段内的数据库数据进行联合分析,得到中间分析结果,包括:
利用所述删除数据集和所述数据分析需求中的过滤操作,对所述第一时段内的数据库数据进行过滤,得到中间分析结果。
9.根据权利要求8所述的方法,其特征在于,利用所述删除数据集和所述数据分析需求中的过滤操作,对所述第一时段内的数据库数据进行过滤,得到中间分析结果,包括:
利用所述删除数据集对所述第一时段内的数据库数据进行初始过滤,并利用所述过滤操作中的过滤条件对初始过滤后的数据库数据进行二次过滤,得到中间分析结果;
或者
利用所述过滤操作中的过滤条件对所述第一时段内的数据库数据进行初始过滤,并利用所述删除数据集对初始过滤后的数据库数据进行二次过滤,得到中间分析结果。
10.根据权利要求8所述的方法,其特征在于,将所述新增数据集与所述中间分析结果进行联合分析,得到最终分析结果,包括:
将所述新增数据集与所述中间分析结果进行合并,得到合并后的数据库数据;
根据数据分析需求中的其它数据操作,继续对所述合并后的数据库数据进行分析处理,得到最终分析结果。
11.根据权利要求10所述的方法,其特征在于,利用所述删除数据集和所述数据分析需求中的过滤操作,对所述第一时段内的数据库数据进行过滤,得到中间分析结果,包括:
将所述第一时段内的数据库数据进行分片得到多个数据分片,并将所述多个数据分片分配到多个过滤节点;
将所述删除数据集广播给所述多个过滤节点,由所述多个过滤节点利用所述删除数据集和数据分析需求中的过滤操作对各自负责的数据分片进行过滤,并将过滤后的数据库数据作为所述中间分析结果送入下游的合并节点。
12.根据权利要求11所述的方法,其特征在于,将所述新增数据集与所述中间分析结果进行合并,得到合并后的数据库数据,包括:
由所述合并节点将所述新增数据集与所述中间分析结果进行合并,并将合并后的数据库数据送入后续其它节点;所述后续其它节点与数据分析需求中的其它数据操作对应。
13.根据权利要求7所述的方法,其特征在于,在将所述第二时段内的数据库增量日志拆分为由***操作形成的新增数据集和由删除操作形成的删除数据集之前,还包括:
根据所述数据分析需求中的数据操作,生成用于联合分析的数据库语句;
结合新增的负责处理数据库增量日志的多个算子,对所述数据库语句进行优化处理,以得到执行计划;
运行所述执行计划,以实现将所述第二时段内的数据库增量日志拆分为由***操作形成的新增数据集和由删除操作形成的删除数据集的操作及后续操作。
14.一种数据分析设备,其特征在于,包括:存储器和处理器;
所述存储器,用于存储计算机程序;
所述处理器,与所述存储器耦合,用于执行所述计算机程序,以用于:
根据数据分析需求,获取第一时段内的数据库数据和第二时段内的数据库增量日志,并对所述第一时段内的数据库数据和所述第二时段内的数据库增量日志进行联合分析。
15.一种数据分析***,其特征在于,包括:数据分析设备和数据库;
所述数据库,用于产生数据库数据和数据库增量日志;
所述数据分析设备,用于根据数据分析需求,获取第一时段内的数据库数据和第二时段内的数据库增量日志,并对所述第一时段内的数据库数据和所述第二时段内的数据库增量日志进行联合分析。
16.根据权利要求15所述的***,其特征在于,还包括:所述数据库之外的存储***;
所述数据分析设备具体用于:根据所述数据分析需求,从所述存储***中获取所述第一时段内的数据库数据和所述第二时段内的数据库增量日志。
17.根据权利要求16所述的***,其特征在于,所述存储***包括:第一存储***和第二存储***,所述第一存储***用于备份所述数据库产生的数据库数据,所述第二存储***用于存储所述数据库产生的数据库增量日志;
所述数据分析设备具体用于:
根据包含所述数据分析需求中的数据标识参数的建表语句,创建分析表,所述分析表中包含第一时间参数、第一存储位置参数、第二时间参数和第二存储位置参数;
根据所述第一时间参数和所述第一存储位置参数,从所述第一存储***中获取所述第一时段内的数据库数据;
根据所述第二时间参数和所述第二存储位置参数,从所述第二存储***中获取所述第二时段内的数据库增量日志。
18.一种数据分析***,其特征在于,包括:多台物理设备,所述多台物理设备上分布部署有若干个前端节点和若干个计算节点;
所述若干个前端节点,用于获取数据分析需求,并根据所述数据分析需求指示所述若干个计算节点进行联合分析;
所述若干个计算节点,用于根据所述若干个前端节点的指示,获取第一时段内的数据库数据和第二时段内的数据库增量日志,并对所述第一时段内的数据库数据和所述第二时段内的数据库增量日志进行联合分析。
19.根据权利要求18所述的***,其特征在于,所述若干个计算节点包括:获取节点、拆分节点、第一类联合分析节点和第二类联合分析节点;
所述获取节点,用于获取所述第一时段内的数据库数据和所述第二时段内的数据库增量日志;
所述拆分节点,用于将所述第二时段内的数据库增量日志拆分为由***操作形成的新增数据集和由删除操作形成的删除数据集;
所述第一类联合分析节点,用于将所述删除数据集中的数据库增量日志与所述第一时段内的数据库数据进行联合分析,得到中间分析结果;
所述第二类联合分析节点,用于将所述新增数据集中的数据库增量日志与所述中间分析结果进行联合分析,得到最终分析结果。
20.根据权利要求19所述的***,其特征在于,所述第一类联合分析节点包括多个过滤节点;
所述多个过滤节点,用于利用所述删除数据集和所述数据分析需求中的过滤操作,对所述第一时段内的数据库数据进行过滤,并将过滤后的数据库数据作为所述中间分析结果送入下游的合并节点。
21.根据权利要求20所述的***,其特征在于,所述第二类联合分析节点包括至少一个合并节点和其它节点;
所述至少一个合并节点,用于将所述新增数据集与所述中间分析结果进行合并,并将合并后的数据库数据送入后续其它节点;
所述其它节点与数据分析需求中的其它数据操作对应,用于根据数据分析需求中的其它数据操作,继续对所述合并后的数据库数据进行分析处理,得到最终分析结果。
22.一种存储有计算机程序的计算机可读存储介质,其特征在于,当所述计算机程序被处理器执行时,致使所述处理器能够实现权利要求1-13任一项所述方法中的步骤。
23.一种数据湖***,其特征在于,包括:云端存储***以及云端分析引擎;
所述云端存储***,用于存储数据源在不同时刻产生的全量数据以及在不同时刻之后产生的增量日志;
所述云端分析引擎,用于根据数据分析需求,从所述云端存储***中读取所述数据源在第一时刻产生的全量数据和在所述第一时刻之后产生的增量日志;对所述数据源在第一时刻产生的全量数据和在所述第一时刻之后产生的增量日志进行联合分析。
24.根据权利要求23所述的***,其特征在于,所述云端存储***包括:数据存储***和日志存储***;
所述数据存储***,用于存储数据源在不同时刻产生的全量数据;
所述日志存储***,用于存储数据源在不同时刻之后产生的增量日志。
25.根据权利要求23或24所述的***,其特征在于,所述云端分析引擎包括:若干个前端节点和若干个计算节点;
所述若干个前端节点,用于获取数据分析需求,并根据所述数据分析需求指示所述若干个计算节点进行联合分析;
所述若干个计算节点,用于根据所述若干个前端节点的指示,从所述云端存储***中读取所述数据源在第一时刻产生的全量数据和在所述第一时刻之后产生的增量日志;对所述数据源在第一时刻产生的全量数据和在所述第一时刻之后产生的增量日志进行联合分析。
CN201911147973.7A 2019-11-21 2019-11-21 数据库数据的分析方法、设备、***及存储介质 Active CN112825069B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911147973.7A CN112825069B (zh) 2019-11-21 2019-11-21 数据库数据的分析方法、设备、***及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911147973.7A CN112825069B (zh) 2019-11-21 2019-11-21 数据库数据的分析方法、设备、***及存储介质

Publications (2)

Publication Number Publication Date
CN112825069A true CN112825069A (zh) 2021-05-21
CN112825069B CN112825069B (zh) 2024-05-24

Family

ID=75906423

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911147973.7A Active CN112825069B (zh) 2019-11-21 2019-11-21 数据库数据的分析方法、设备、***及存储介质

Country Status (1)

Country Link
CN (1) CN112825069B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113722194A (zh) * 2021-08-02 2021-11-30 中移(杭州)信息技术有限公司 日志统计方法、装置、设备及存储介质
CN113986944A (zh) * 2021-12-29 2022-01-28 天地伟业技术有限公司 分片数据的写入方法、***及电子设备
CN115114344A (zh) * 2021-11-05 2022-09-27 腾讯科技(深圳)有限公司 事务处理方法、装置、计算设备及存储介质
CN116028490A (zh) * 2022-12-20 2023-04-28 广州辰创科技发展有限公司 一种基于数据切片技术的数据冗余存储方法
WO2023071367A1 (zh) * 2021-10-25 2023-05-04 中兴通讯股份有限公司 通信业务数据的处理方法、装置和计算机存储介质
US20240126238A1 (en) * 2021-02-05 2024-04-18 Spicter Ag Data processing control system

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020107837A1 (en) * 1998-03-31 2002-08-08 Brian Osborne Method and apparatus for logically reconstructing incomplete records in a database using a transaction log
US20050071630A1 (en) * 2003-08-15 2005-03-31 Imcentric, Inc. Processing apparatus for monitoring and renewing digital certificates
US20050091461A1 (en) * 2003-10-22 2005-04-28 Kisley Richard V. Incremental data storage method, apparatus, interface, and system
CN102346775A (zh) * 2011-09-26 2012-02-08 苏州博远容天信息科技有限公司 一种基于日志的异构多源数据库同步方法
CN102483759A (zh) * 2009-07-09 2012-05-30 诺尔斯克科技公司 用于执行部分数据库的增量更新的方法、***和装置
US20120166400A1 (en) * 2010-12-28 2012-06-28 Teradata Us, Inc. Techniques for processing operations on column partitions in a database
CN105045817A (zh) * 2015-06-26 2015-11-11 司法部司法鉴定科学技术研究所 基于事务日志的SQL Server数据库取证分析***及方法
CN105447156A (zh) * 2015-11-30 2016-03-30 北京航空航天大学 资源描述框架分布式引擎及增量式更新方法
KR101690075B1 (ko) * 2015-12-18 2016-12-27 주식회사 한글과컴퓨터 로그기반 소스코드파일 이슈도 구현 방법
CN107402981A (zh) * 2017-07-07 2017-11-28 国网浙江省电力公司信息通信分公司 一种基于分布式离线数据库的数据增量处理方法及***
CN107402963A (zh) * 2017-06-20 2017-11-28 阿里巴巴集团控股有限公司 搜索数据的构建方法、增量数据的推送方法及装置和设备
CN109753531A (zh) * 2018-12-26 2019-05-14 深圳市麦谷科技有限公司 一种大数据统计方法、***、计算机设备及存储介质
CN110209735A (zh) * 2019-05-05 2019-09-06 深圳市腾讯计算机***有限公司 数据库备份方法、数据库备份装置、计算设备和存储介质
US20190332692A1 (en) * 2018-04-27 2019-10-31 Netapp, Inc. Archive log management for distributed database clusters

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020107837A1 (en) * 1998-03-31 2002-08-08 Brian Osborne Method and apparatus for logically reconstructing incomplete records in a database using a transaction log
US20050071630A1 (en) * 2003-08-15 2005-03-31 Imcentric, Inc. Processing apparatus for monitoring and renewing digital certificates
US20050091461A1 (en) * 2003-10-22 2005-04-28 Kisley Richard V. Incremental data storage method, apparatus, interface, and system
CN102483759A (zh) * 2009-07-09 2012-05-30 诺尔斯克科技公司 用于执行部分数据库的增量更新的方法、***和装置
US20120166400A1 (en) * 2010-12-28 2012-06-28 Teradata Us, Inc. Techniques for processing operations on column partitions in a database
CN102346775A (zh) * 2011-09-26 2012-02-08 苏州博远容天信息科技有限公司 一种基于日志的异构多源数据库同步方法
CN105045817A (zh) * 2015-06-26 2015-11-11 司法部司法鉴定科学技术研究所 基于事务日志的SQL Server数据库取证分析***及方法
CN105447156A (zh) * 2015-11-30 2016-03-30 北京航空航天大学 资源描述框架分布式引擎及增量式更新方法
KR101690075B1 (ko) * 2015-12-18 2016-12-27 주식회사 한글과컴퓨터 로그기반 소스코드파일 이슈도 구현 방법
CN107402963A (zh) * 2017-06-20 2017-11-28 阿里巴巴集团控股有限公司 搜索数据的构建方法、增量数据的推送方法及装置和设备
CN107402981A (zh) * 2017-07-07 2017-11-28 国网浙江省电力公司信息通信分公司 一种基于分布式离线数据库的数据增量处理方法及***
US20190332692A1 (en) * 2018-04-27 2019-10-31 Netapp, Inc. Archive log management for distributed database clusters
CN109753531A (zh) * 2018-12-26 2019-05-14 深圳市麦谷科技有限公司 一种大数据统计方法、***、计算机设备及存储介质
CN110209735A (zh) * 2019-05-05 2019-09-06 深圳市腾讯计算机***有限公司 数据库备份方法、数据库备份装置、计算设备和存储介质

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
PETER FRUHWIRT ET AL: "InoDB DataBase Forensics:Reconstructing Data Manipulation Queries from Redo Logs", 《2012 SEVENTH INTERNATIONAL CONFERENCE ON AVAILABLITY ,RELIABILITY AND SECURITY》, 11 October 2012 (2012-10-11) *
夏英;刘婉蓉;: "基于滑动窗口的关联规则增量式更新算法", 计算机应用, no. 12, 1 December 2008 (2008-12-01) *
白洪涛, 孙吉贵, 莫旭, 杨凤杰: "一个专用ETL程序的实现", 计算机应用, no. 02, 28 February 2004 (2004-02-28) *
翟建昭: "面向关系数据库的语义关键字搜索研究", 《中国知网硕士学位论文电子期刊》, vol. 2014, no. 7, 15 July 2014 (2014-07-15) *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20240126238A1 (en) * 2021-02-05 2024-04-18 Spicter Ag Data processing control system
CN113722194A (zh) * 2021-08-02 2021-11-30 中移(杭州)信息技术有限公司 日志统计方法、装置、设备及存储介质
CN113722194B (zh) * 2021-08-02 2024-05-24 中移(杭州)信息技术有限公司 日志统计方法、装置、设备及存储介质
WO2023071367A1 (zh) * 2021-10-25 2023-05-04 中兴通讯股份有限公司 通信业务数据的处理方法、装置和计算机存储介质
CN115114344A (zh) * 2021-11-05 2022-09-27 腾讯科技(深圳)有限公司 事务处理方法、装置、计算设备及存储介质
CN113986944A (zh) * 2021-12-29 2022-01-28 天地伟业技术有限公司 分片数据的写入方法、***及电子设备
CN113986944B (zh) * 2021-12-29 2022-03-25 天地伟业技术有限公司 分片数据的写入方法、***及电子设备
CN116028490A (zh) * 2022-12-20 2023-04-28 广州辰创科技发展有限公司 一种基于数据切片技术的数据冗余存储方法
CN116028490B (zh) * 2022-12-20 2023-11-03 广州辰创科技发展有限公司 一种基于数据切片技术的数据冗余存储方法

Also Published As

Publication number Publication date
CN112825069B (zh) 2024-05-24

Similar Documents

Publication Publication Date Title
CN112825069B (zh) 数据库数据的分析方法、设备、***及存储介质
US8874600B2 (en) System and method for building a cloud aware massive data analytics solution background
US10565208B2 (en) Analyzing multiple data streams as a single data object
JP5961689B2 (ja) 増分データの抽出
CN107122361B (zh) 数据迁移***和方法
US7424470B2 (en) Local data repository generation
US9767110B2 (en) Case data visualization application
US8880463B2 (en) Standardized framework for reporting archived legacy system data
CN105493028A (zh) 用于云分析的数据一致性和回退
CN113535856B (zh) 数据同步方法及***
US11507739B2 (en) Systems and methods for collaborative data entry and integration
CN105900093A (zh) 一种KeyValue数据库的数据表的更新方法与表数据更新装置
CN102779138A (zh) 实时数据的硬盘存取方法
US20240020267A1 (en) Distributed storage system, method, device, and storage medium for metadata management
CN107330024A (zh) 标签***数据的存储方法和装置
CN107491558B (zh) 元数据更新方法及装置
US11868363B2 (en) Method and system for persisting data
CN114416868B (zh) 一种数据同步方法、装置、设备及存储介质
Ali et al. A state of art survey for big data processing and nosql database architecture
Ghane Big data pipeline with ML-based and crowd sourced dynamically created and maintained columnar data warehouse for structured and unstructured big data
CN103778231A (zh) 一种数据银行管理操作记录信息的方法及***
US11455294B2 (en) Information lifecycle management notification framework
CN114153857A (zh) 数据同步方法、数据同步装置和计算机可读存储介质
Singh NoSQL: A new horizon in big data
US20240152514A1 (en) Arbitrary directory data properties in sql-based directory systems

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