CN115577008A - 分区视图生成方法和装置 - Google Patents

分区视图生成方法和装置 Download PDF

Info

Publication number
CN115577008A
CN115577008A CN202211282845.5A CN202211282845A CN115577008A CN 115577008 A CN115577008 A CN 115577008A CN 202211282845 A CN202211282845 A CN 202211282845A CN 115577008 A CN115577008 A CN 115577008A
Authority
CN
China
Prior art keywords
instant information
data
day
view
current
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211282845.5A
Other languages
English (en)
Inventor
陈世治
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Bilibili Technology Co Ltd
Original Assignee
Shanghai Bilibili 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 Shanghai Bilibili Technology Co Ltd filed Critical Shanghai Bilibili Technology Co Ltd
Priority to CN202211282845.5A priority Critical patent/CN115577008A/zh
Publication of CN115577008A publication Critical patent/CN115577008A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2474Sequence data queries, e.g. querying versioned data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/128Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/168Details of user interfaces specifically adapted to file systems, e.g. browsing and visualisation, 2d or 3d GUIs
    • 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/21Design, administration or maintenance of databases
    • G06F16/215Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Quality & Reliability (AREA)
  • Fuzzy Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供了一种分区视图生成方法,所述方法包括:当数据写入至HUDI表中的进度达到目标watermark时,从预设时间轴上抽取当天的Instant信息;检测抽取到的各个Instant信息对应的文件分片中是否包括跨天数据,并在检测到当前Instant信息对应的文件分片中包含有跨天数据时,在所述当前Instant信息中添加数据过滤逻辑,其中,所述数据过滤逻辑用于将所述当前Instant信息对应的文件分片中包含的跨天数据删除;对所有经过检测处理后的Instant信息进行数据快照处理,得到分区视图的Instant信息;根据所述分区视图的Instant信息对当天的所有文件分片进行文件合并处理,生成分区视图。本申请的技术方案,使得数据实际边界得到准确的区分。

Description

分区视图生成方法和装置
技术领域
本申请涉及计算机技术领域,尤其涉及一种分区视图生成方法、装置、计算机设备及计算机可读存储介质。
背景技术
数据在写入至HUDI表的过程中,可以根据数据的处理时间或事件时间进行分区。然而,由于数据是实时写入的,因此导致写入至分区的分区数据也一直在变化。当在触发下游获取当天数据的任务时,可能得到的数据是不完整或过多包含跨天的数据,此外,由于后面一些延迟的当天数据也会陆续到位,这样对下游来说,这个分区数据是不确定的,分区边界也是不清楚。
发明内容
本申请的目的是提供一种分区视图生成方法、装置、计算机设备及计算机可读存储介质,以解决上述问题。
本申请实施例的一个方面提供了一种分区视图生成方法,所述方法包括:
当数据写入至HUDI表中的进度达到目标watermark时,从预设时间轴上抽取当天的Instant信息;
检测抽取到的各个Instant信息对应的文件分片中是否包括跨天数据,并在检测到当前Instant信息对应的文件分片中包含有跨天数据时,在所述当前Instant信息中添加数据过滤逻辑,其中,所述数据过滤逻辑用于将所述当前Instant信息对应的文件分片中包含的跨天数据删除;
对所有经过检测处理后的Instant信息进行数据快照处理,得到分区视图的Instant信息;
根据所述分区视图的Instant信息对当天的所有文件分片进行文件合并处理,生成分区视图。
可选地,所述Instant信息包括文件分片中包含的所有数据的事件时间区间,所述检测抽取到的各个Instant信息对应的文件分片中是否包括跨天数据包括:
检测抽取到的各个Instant信息中的事件时间区间中是否包含有跨天时间;
当检测到当前Instant信息中的事件时间区间中包含有跨天时间时,确定当前Instant信息对应的文件分片中包括跨天数据。
可选地,所述对所有经过检测处理后的Instant信息进行数据快照处理,得到分区视图的Instant信息包括:
对所有经过检测处理后的Instant信息中包含有数据过滤逻辑的Instant信息执行第一快照操作,得到分区视图的第一目标Instant信息;
对所有经过检测处理后的Instant信息中不包含有数据过滤逻辑的Instant信息执行第二快照操作,得到分区视图的第二目标Instant信息,其中,所述分区视图的Instant信息包括所述第一目标Instant信息与所述第二目标Instant信息。
可选地,所述根据所述分区视图的Instant信息对当天的所有文件分片进行文件合并处理,生成分区视图包括:
根据所述分区视图的Instant信息对包含有跨天数据的文件分片执行数据过滤逻辑操作,得到删除跨天数据的目标文件分片;
根据所述分区视图的Instant信息获取当天的所有文件分片;
根据获取到的当天的所有文件分片及所述目标文件分片进行文件合并处理,生成分区视图。
可选地,所述方法还包括:
当检测到写入至所述HUDI表中的数据的事件时间与用户预先设定的延迟时间的时间之和超过所述目标watermark时,确定数据写入至HUDI表中的进度达到所述目标watermark。
可选地,所述方法还包括:
将分区视图的Instant信息及分区视图写入至预设的分区中。
可选地,所述方法还包括:
将分区视图的Instant信息设为所述时间轴上的节点以供查询。
本申请实施例的又一个方面提供了一种分区视图生成装置,所述装置包括:
抽取模块,用于当数据写入至HUDI表中的进度达到目标watermark时,从预设时间轴上抽取当天的Instant信息;
检测模块,用于检测抽取到的各个Instant信息对应的文件分片中是否包括跨天数据,并在检测到当前Instant信息对应的文件分片中包含有跨天数据时,在所述当前Instant信息中添加数据过滤逻辑,其中,所述数据过滤逻辑用于将所述当前Instant信息对应的文件分片中包含的跨天数据删除;
快照模块,用于对所有经过检测处理后的Instant信息进行数据快照处理,得到分区视图的Instant信息;
生成模块,用于根据所述分区视图的Instant信息对当天的所有文件分片进行文件合并处理,生成分区视图。
本申请实施例的又一个方面提供了一种计算机设备,所述计算机设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时用于实现如上所述分区视图生成方法的步骤。
本申请实施例的又一个方面提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行如上所述的分区视图生成方法的步骤。
本申请实施例提供的分区视图生成方法、装置、计算机设备及计算机可读存储介质,通过当数据写入至HUDI表中的进度达到目标watermark时,从预设时间轴上抽取当天的Instant信息;检测抽取到的各个Instant信息对应的文件分片中是否包括跨天数据,并在检测到当前Instant信息对应的文件分片中包含有跨天数据时,在所述当前Instant信息中添加数据过滤逻辑,其中,所述数据过滤逻辑用于将所述当前Instant信息对应的文件分片中包含的跨天数据删除;对所有经过检测处理后的Instant信息进行数据快照处理,得到分区视图的Instant信息;根据所述分区视图的Instant信息对当天的所有文件分片进行文件合并处理,生成分区视图。本申请中的分区视图由于是基于目标watermark对当天写入至HUDI表中的所有文件分片进行切分,并进行合并处理得到的,因此,本申请中生成的分区视图只会包含有当天的数据,不再会包含有跨天的数据,使得下游获取到的数据的实际边界得到准确的区分。
附图说明
图1示意性示出了根据本申请实施例的环境示意图;
图2示意性示出了根据本申请实施例一的分区视图生成方法的流程图;
图3示意性示出了根据本申请实施例一的检测抽取到的各个Instant信息对应的文件分片中是否包括跨天数据的步骤细化流程图;
图4示意性示出了根据本申请实施例一的对所有经过检测处理后的Instant信息进行数据快照处理,得到分区视图的Instant信息的步骤细化流程图;
图5示意性示出了根据本申请实施例一根据所述分区视图的Instant信息对当天的所有文件分片进行文件合并处理,生成分区视图的步骤流程图;
图6示意性示出了时间轴的示意图;
图7示意性示出了根据本申请实施例三的分区视图生成装置的框图;以及
图8示意性示出了根据本申请实施例四的适于实现分区视图生成方法的计算机设备的硬件架构示意图。
具体实施方式
为了使本申请实施例的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,在本申请实施例中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
在本申请的描述中,需要理解的是,步骤前的数字标号并不标识执行步骤的前后顺序,仅用于方便描述本申请及区别每一步骤,因此不能理解为对本申请的限制。
以下为本申请涉及到的一些术语解释:
Flink,属于分布式实时计算系统,用于对无界和有界数据流进行有状态(state)计算。Flink设计为在所有常见的集群环境中运行,以内存速度和任何规模执行计算。其中,state一般指一个具体的任务(task)/算子(operator)的状态。
HDFS(Hadoop Distributed File System),为Hadoop分布式文件系统。
流处理,用于处理(如查询)流数据。流数据通常为在线数据,无边界性。
SQL(Structured Query Language)是具有数据操纵和数据定义等多种功能的数据库语言,这种语言具有交互性特点,能为用户提供极大的便利,数据库管理系统应充分利用SQL语言提高计算机应用系统的工作质量与效率。SQL语言不仅能独立应用于终端,还可以作为子语言为其他程序设计提供有效助力,该程序应用中,SQL可与其他程序语言一起优化程序功能,进而为用户提供更多更全面的信息。
HUDI(Hadoop Updates and Incrementals,Hadoop更新与增量),采用并管理通过DFS(HDFS或云存储)存储大型分析数据集,支持在当前数据表中进行更新操作。Hudi将表组织成HDFS上某个指定目录(basepath)下的目录结构,表被分成多个分区,分区是以目录的形式存在,每个目录下面会存在属于该分区的多个文件分片,类似Hive表,每个Hudi表分区通过一个分区路径(Partition Path)来唯一标识。
数据湖(Data Lake),是一个以原始格式存储数据的存储库或系统。
水印(watermark),是Flink为处理EventTime窗口计算提出的一种机制,本质上是一种时间戳。
Commit(提交),将记录原子写入数据集。
savepoint,是在数据库事务处理中实现“子事务”(subtransaction),也称为嵌套事务(nested transaction)的方法,事务可以回滚到savepoint而不影响savepoint创建前的变化,不需要放弃整个事务。
事件时间(eventtime),数据的生成时间。
为了方便本领域技术人员理解本申请实施例提供的技术方案,下面对相关技术进行说明:
数据在写入至HUDI表的过程中,可以根据数据的处理时间或事件时间进行分区。然而,由于数据是实时写入的,因此导致写入至分区的分区数据也一直在变化。当在触发下游获取当天数据的任务时,可能得到的数据是不完整或过多包含跨天的数据,此外,由于后面一些延迟的当天数据也会陆续到位,这样对下游来说,这个分区数据是不确定的,分区边界也是不清楚。当下游需要对当天的数据进行统计分析时,无法区分数据的实际边界。
鉴于现有技术中无法区分数据的实际边界的问题,本申请提供了分区视图生成方案。在这些方案中,可以实现数据的实际边界的准确划分,且可以实现对预设时间轴(timeline)上所有的Instant信息进行快照。此外,当需要获取当天的数据时,也无需对当天后将所有的数据导出至hive表中,而是,可以直接从生成的分区视图中获取。
下面提供本申请的示例性应用环境。图1示意性示出了根据本申请实施例的环境应用示意图。
服务平台2,可以提供分区视图生成等服务,其可以是单个服务器、服务器集群或云计算服务中心。其中,服务平台2内置有分区视图生成装置10,用于加速查询。
终端4,可以被配置发送查询请求等。终端可以是任意类型的计算设备,诸如智能手机、平板设备、膝上型计算机、智能电视、车载终端等。终端和服务平台2可以通过网络连接。网络可以包括各种网络设备,例如路由器、交换机、多路复用器、集线器、调制解调器、网桥、中继器、防火墙和/或代理设备等。网络可以包括物理链路,例如同轴电缆链路、双绞线电缆链路、光纤链路及其组合和/或类似物。网络可以包括无线链路,例如蜂窝链路、卫星链路、Wi-Fi链路和/或类似物。
需要说明的是,图1中的终端和服务器的数量仅是示意性的,不用于限制本申请的专利保护范围。
下面,将在上述示例性应用环境下提供若干个实施例,为便于理解,下面将以图1中的分区视图生成装置10为执行主体来说明分区视图生成方案。
实施例一
图2示意性示出了本申请实施例一的分区视图生成方法的流程图,包括步骤S20~步骤S23,具体说明如下:
步骤S20,当数据写入至HUDI表中的进度达到目标watermark时,从预设时间轴上抽取当天的Instant信息。
具体地,所述数据,可以通过埋点收集的移动终端实时产生的数据,或实时得到的其他流式数据;也可以是基于MySQL的Binlog日志,或描述数据库数据变更的增量数据。所述数据可以通过Fink将数据写入至HUDI表中。其中,HUDI表被组织成HDFS上某个指定目录(basepath)下的目录结构,表被分成多个分区,分区是以目录的形式存在,每个目录下面会存在属于该分区的多个文件分片,类似Hive表,每个Hudi表分区通过一个分区路径(Partition Path)来唯一标识。
watermark是用来收集作业数据流的整体处理进度的关键时间节点。所述目标watermark是用户预先设定的生成分区视图的时间节点。
HUDI提供有一条时间轴(Timeline)。该时间轴包括:在不同的即时时间(Instanttime)对HUDI表做的所有Instant操作,从而提供HUDI表的即时视图,并支持按到达顺序进行数据检索。也就是说,该时间轴上具有多个Instant信息。HUDI保证在时间轴上执行的操作的原子性和基于即时时间的时间轴一致性。时间轴对应表基础路径下.hoodie元数据文件夹下的一组文件。具体来说,新Instant操作得到的数据被保存为单个文件分片,而旧Instant操作得到的数据被存档到时间轴归档文件夹中,以限制writers和queries列出的文件数量。
所述Instant信息可以包括以下内容:
(1)Instant action(即时动作):对HUDI表执行的操作类型。即时动作包括但不限于:COMMIT,一次提交表示将一组记录原子写入到HUDI表中;CLEAN,删除HUDI表中不再需要的旧文件版本的后台活动;DELTA_COMMIT,将一批记录原子写入到MergeOnRead存储类型的数据集中,其中一些/所有数据都可以只写到增量日志中;COMPACTION,协调HUDI表中差异数据结构的后台活动。
(2)Instant time(即时时间):通常是一个时间戳,该时间戳按操作开始时间的顺序单调增加。
(3)Instant state(即时状态):Instant的当前状态。每个Instant都有avro或者json格式的元数据信息,详细的描述了该操作的状态以及这个即时时刻Instant的状态。任何给定的即时都会处于以下状态之一:REQUESTED,表示已调度但尚未初始化;INFLIGHT,表示当前正在执行该操作;COMPLETED,表示在时间轴上完成了该操作。
(4)文件分片(FileSlice)中包含的所有数据的事件时间区间,比如,当前文件分片中包含的所有数据的生成时间区间为:2022年10月10日15点20分00秒-2022年10月10日15点40分00秒,则所述事件时间区间即为:2022年10月10日15点20分00秒-2022年10月10日15点40分00秒。
在本实施例中,在数据不断写入至HUDI表的过程中,会对写入HUDI表的数据的事件时间(eventtime)进行监测,以判定当前的数据写入进度是否达到所述目标watermark,当监测到当前的数据写入进度达到所述目标watermark时,则会触发生成分区视图的操作;当监测到当前的数据写入进度未达到所述目标watermark时,则会继续将数据写入至HUDI表中,并在监测到当前的数据写入进度达到所述目标watermark时,触发生成分区视图的操作。
在可选的实施例中,当检测到写入至所述HUDI表中的数据的事件时间与用户预先设定的延迟时间的时间之和超过所述目标watermark时,确定数据写入至HUDI表中的进度达到所述目标watermark。
具体地,延迟时间可以根据实际情况进行设定与修改。
作为示例,延迟时间为30分钟,目标watermark为当天的下一天的00点30分00秒,则当检测到写入至所述HUDI表中的数据的事件时间晚于当天的24点00分00秒时,则可以确定数据写入至HUDI表中的进度达到所述目标watermark;当检测到写入至所述HUDI表中的数据的事件时间不晚于当天的24点00分00秒时,可以确定数据写入至HUDI表中的进度还未达到所述目标watermark。
本实施例中,通过数据的事件时间与用户预先设定的延迟时间的时间之和来判定数据写入至HUDI表中的进度是否达到所述目标watermark,可以使得对数据实际边界的区分更加精确。
在另一可选的实施例中,也可以通过实时比较当前watermark与目标watermark是否匹配的方式来判定数据写入至HUDI表中的进度是否达到目标watermark。其中,若当前watermark与目标watermark相同,则可以判定数据写入至HUDI表中的进度达到目标watermark。
步骤S21,检测抽取到的各个Instant信息对应的文件分片中是否包括跨天数据,并在检测到当前Instant信息对应的文件分片中包含有跨天数据时,在所述当前Instant信息中添加数据过滤逻辑,其中,所述数据过滤逻辑用于将所述当前Instant信息对应的文件分片中包含的跨天数据删除。
具体地,所述跨天数据指的是不是当天产生的数据,比如,当天为2022年10月15日,若当前数据的产生时间为2022年10月16日,则当前数据则为跨天数据。
在本实施例中,在抽取得到各个Instant信息后,会对各个Instant信息对应的文件分片中包含的数据进行检测,以判断文件分片中是否包含有跨天数据。当判定出文件分片中包含有跨天数据时,会在该Instant信息中添加数据过滤逻辑,以便后续可以根据该数据过滤逻辑对文件分片中的数据执行跨天数据删除操作。当判定出文件分片中没有包含有跨天数据时,则无需对Instant信息做任何处理。
在可选的实施例中,所述Instant信息包括文件分片中包含的所有数据的事件时间区间,参阅图3,所述检测抽取到的各个Instant信息对应的文件分片中是否包括跨天数据包括:步骤S30,检测抽取到的各个Instant信息中的事件时间区间中是否包含有跨天时间;步骤S31,当检测到当前Instant信息中的事件时间区间中包含有跨天时间时,确定当前Instant信息对应的文件分片中包括跨天数据。
具体地,所述跨天时间指的是不属于当天的时间,比如,当天为2022年10月15日,则2022年10月16日00点05分00秒则属于跨天时间。
本实施例中,通过对各个Instant信息中的事件时间区间进行检测,而无需对各个Instant信息对应的文件分片中的每一个数据的事件时间进行检测,即可以判定当前Instant信息对应的文件分片中包括跨天数据,提高了检测效率,减少了资源消耗。
步骤S22,对所有经过检测处理后的Instant信息进行数据快照处理,得到分区视图的Instant信息。
具体地,可以通过savepoint方法对所有经过检测处理后的Instant信息进行数据快照处理,得到分区视图的Instant信息。
在可选的实施方式中,为了节省数据存储空间,参阅图4,所述对所有经过检测处理后的Instant信息进行数据快照处理,得到分区视图的Instant信息包括:
步骤S40,对所有经过检测处理后的Instant信息中包含有数据过滤逻辑的Instant信息执行第一快照操作,得到分区视图的第一目标Instant信息。
具体地,所述第一快照操作可以为对包含有数据过滤逻辑的Instant信息进行复制的操作,相应地,得到的第一目标Instant信息即为添加有数据过滤逻辑的Instant信息。
步骤S41,对所有经过检测处理后的Instant信息中不包含有数据过滤逻辑的Instant信息执行第二快照操作,得到分区视图的第二目标Instant信息,其中,所述分区视图的Instant信息包括所述第一目标Instant信息与所述第二目标Instant信息。
具体地,所述第二目标Instant信息可以用于指示具体哪些Instant信息相对于原生的Instant信息没有发生了变化(没有添加数据过滤逻辑)。所述第二目标Instant信息可以包括一个指代原生的Instant信息未发生了变化的标识,比如,“1”。所述第二目标Instant信息中还包含有用于指代当前的Instant信息具体属于哪个原生的Instant信息的信息,比如“第二个”。
步骤S23,根据所述分区视图的Instant信息对当天的所有文件分片进行文件合并处理,生成分区视图。
具体地,通过分区视图的Instant信息对当天的所有文件分片进行文件合并处理,生成分区视图,使得生成的分区视图中的数据只会包含有当天的数据,而不会包含有跨天的数据,这样,在后续进行数据查询分析时,可以查询到实际边界非常明显的数据。
在可选的实施例中,参阅图5,所述根据所述分区视图的Instant信息对当天的所有文件分片进行文件合并处理,生成分区视图包括:步骤S50,根据所述分区视图的Instant信息对包含有跨天数据的文件分片执行数据过滤逻辑操作,得到删除跨天数据的目标文件分片;步骤S51,根据所述分区视图的Instant信息获取当天的所有文件分片;步骤S52,根据获取到的当天的所有文件分片及所述目标文件分片进行文件合并处理,生成分区视图。
本实施例中,通过先对包含有跨天数据的文件分片执行数据过滤逻辑操作,使得得到的目标文件分片是干净的,不包含有跨天数据的文件,之后,即可以将该目标文件分片替代对应的文件分片,然后一起和其他文件分片进行文件合并处理,生成分区视图。
在一实施方式中,在生成分区视图时,也可以根据分区视图的Instant信息从属于当天的数据文件中先取出最新版本的合并文件,然后将最新版本的合并文件与其他不属于该最新版本的合并文件的小文件分片及目标文件分片生成分区视图。
需要说明的是,上述最新版本的合并文件指的是在预设时间轴上的最晚时刻执行文件合并操作生成的文件分片。
本申请实施例提供的分区视图生成方法、通过当数据写入至HUDI表中的进度达到目标watermark时,从预设时间轴上抽取当天的Instant信息;检测抽取到的各个Instant信息对应的文件分片中是否包括跨天数据,并在检测到当前Instant信息对应的文件分片中包含有跨天数据时,在所述当前Instant信息中添加数据过滤逻辑,其中,所述数据过滤逻辑用于将所述当前Instant信息对应的文件分片中包含的跨天数据删除;对所有经过检测处理后的Instant信息进行数据快照处理,得到分区视图的Instant信息;根据所述分区视图的Instant信息对当天的所有文件分片进行文件合并处理,生成分区视图。本申请中的分区视图由于是基于目标watermark对当天写入至HUDI表中的所有文件分片切分,并进行合并处理得到的,因此,本申请中生成的分区视图只会包含有当天的数据,不再会包含有跨天的数据,使得数据实际边界得到准确的区分。
在一示例性的实施方式中,所述方法还包括:
将分区视图的Instant信息及分区视图写入至预设的分区中。
具体地,所述预设的分区为用户预先指定的分区,比如,预先指定的分区名称(partitionName)为logdate1。这样,当生成分区视图的Instant信息及分区视图后,即会将其写入至logdate1中。
在一实施方式中,为了区分分区视图与正常的instant分区数据,所述预设的分区与正常的instant分区数据存储在不同的目录下。
在一示例性的实施方式中,所述方法还包括:
将分区视图的Instant信息设为所述时间轴上的节点以供查询。
具体地,为了便于下游引擎查询到所述分区视图,可以将分区视图的Instant信息设为所述时间轴上的节点,从而打通分区视图到时间轴上的通道。这样,当下游引擎查询该分区视图时,则可以直接通过所述时间轴上的Instant信息来查询。
需要说明的是,下游引擎在查询分区视图时,还需要判断HUDI表中是否设置了分区视图,当HUDI表中设置了分区视图时,才可以将用户的查询请求路由到分区视图的Instant信息上。
为了便于理解,以下结合图6提供一个示例性应用。
在Timeline上的属于2020年11月01号的多个Instant信息(DeltacomimitT1、DeltacomimitT2及DeltacomimitT3)中的数据进行分析发现,DeltacomimitT3中的出现跨天数据,因此,在这之后,执行分区视图生成操作,并将该分区视图生成操作对应的Instant信息(Fork T4)设为Timeline上的一个节点。同理,在对Timeline上的属于2020年11月02号的多个Instant信息(DeltacomimitT5、DeltacomimitT6及CompactT7)中的数据进行分析发现,DeltacomimitT7中的出现跨天数据,因此,在这之后,执行分区视图生成操作,并将该分区视图生成操作对应的Instant信息(Fork T8)设为Timeline上的一个节点。
实施例二
图7示出了根据本申请实施例二的分区视图生成装置的框图,该分区视图生成装置可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本申请实施例。本申请实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,以下描述将具体介绍本实施例中各程序模块的功能。
如图7所示,所述分区视图生成装置70可以包括抽取模块71、检测模块72、快照模块73及生成模块74,其中:
抽取模块71,用于当数据写入至HUDI表中的进度达到目标watermark时,从预设时间轴上抽取当天的Instant信息;
检测模块72,用于检测抽取到的各个Instant信息对应的文件分片中是否包括跨天数据,并在检测到当前Instant信息对应的文件分片中包含有跨天数据时,在所述当前Instant信息中添加数据过滤逻辑,其中,所述数据过滤逻辑用于将所述当前Instant信息对应的文件分片中包含的跨天数据删除;
快照模块73,用于对所有经过检测处理后的Instant信息进行数据快照处理,得到分区视图的Instant信息;
生成模块74,用于根据所述分区视图的Instant信息对当天的所有文件分片进行文件合并处理,生成分区视图。
在可选的实施例中,所述Instant信息包括文件分片中包含的所有数据的事件时间区间,所述检测模块72,还用于检测抽取到的各个Instant信息中的事件时间区间中是否包含有跨天时间;当检测到当前Instant信息中的事件时间区间中包含有跨天时间时,确定当前Instant信息对应的文件分片中包括跨天数据。
在可选的实施例中,快照模块73,还用于对所有经过检测处理后的Instant信息中包含有数据过滤逻辑的Instant信息执行第一快照操作,得到分区视图的第一目标Instant信息;对所有经过检测处理后的Instant信息中不包含有数据过滤逻辑的Instant信息执行第二快照操作,得到分区视图的第二目标Instant信息,其中,所述分区视图的Instant信息包括所述第一目标Instant信息与所述第二目标Instant信息。
在可选的实施例中,生成模块74,还用于根据所述分区视图的Instant信息对包含有跨天数据的文件分片执行数据过滤逻辑操作,得到删除跨天数据的目标文件分片;根据所述分区视图的Instant信息获取当天的所有文件分片;根据获取到的当天的所有文件分片及所述目标文件分片进行文件合并处理,生成分区视图。
在可选的实施例中,所述分区视图生成装置70还包括确定模块。
所述确定模块,用于当检测到写入至所述HUDI表中的数据的事件时间与用户预先设定的延迟时间的时间之和超过所述目标watermark时,确定数据写入至HUDI表中的进度达到所述目标watermark。
在可选的实施例中,所述分区视图生成装置70还包括写入模块。
所述写入模块,还用于将分区视图的Instant信息及分区视图写入至预设的分区中。
在可选的实施例中,所述分区视图生成装置70还包括设置模块。
所述设置模块,用于将分区视图的Instant信息设为所述时间轴上的节点以供查询。
实施例三
图8示意性示出了根据本申请实施例三的适于实现分区视图生成方法的计算机设备的硬件架构示意图。所述计算机设备10000可以为服务平台2或其一部分。所述计算机设备10000其是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。例如,可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图8所示,计算机设备10000至少包括但不限于:可通过系统总线相互通信链接存储器10010、处理器10020、网络接口10030。其中:
存储器10010至少包括一种类型的计算机可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器10010可以是计算机设备10000的内部存储模块,例如该计算机设备10000的硬盘或内存。在另一些实施例中,存储器10010也可以是计算机设备10000的外部存储设备,例如该计算机设备10000上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,存储器10010还可以既包括计算机设备10000的内部存储模块也包括其外部存储设备。本实施例中,存储器10010通常用于存储安装于计算机设备10000的操作系统和各类应用软件,例如分区视图生成方法的程序代码等。此外,存储器10010还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器10020在一些实施例中可以是中央处理器(Central Processing Unit,简称为CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器10020通常用于控制计算机设备10000的总体操作,例如执行与计算机设备10000进行数据交互或者通信相关的控制和处理等。本实施例中,处理器10020用于运行存储器10010中存储的程序代码或者处理数据。
网络接口10030可包括无线网络接口或有线网络接口,该网络接口10030通常用于在计算机设备10000与其他计算机设备之间建立通信连接。例如,网络接口10030用于通过网络将计算机设备10000与外部终端相连,在计算机设备10000与外部终端之间的建立数据传输通道和通信连接等。网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobile communication,简称为GSM)、宽带码分多址(Wideband Code Division Multiple Access,简称为WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
需要指出的是,图8仅示出了具有部件10010-10030的计算机设备,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
在本实施例中,存储于存储器10010中的分区视图生成方法还可以被分割为一个或者多个程序模块,并由一个或多个处理器(本实施例为处理器10020)所执行,以完成本申请。
实施例四
本实施例还提供一种计算机可读存储介质,计算机可读存储介质其上存储有计算机程序,计算机程序被处理器执行时实现实施例中的分区视图生成方法的步骤。
本实施例中,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,计算机可读存储介质可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,计算机可读存储介质也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,计算机可读存储介质还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,计算机可读存储介质通常用于存储安装于计算机设备的操作系统和各类应用软件,例如实施例中的分区视图生成方法的程序代码等。此外,计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的各类数据。
显然,本领域的技术人员应该明白,上述的本申请实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请实施例不限制于任何特定的硬件和软件结合。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (10)

1.一种分区视图生成方法,其特征在于,所述分区视图生成方法包括:
当数据写入至HUDI表中的进度达到目标watermark时,从预设时间轴上抽取当天的Instant信息;
检测抽取到的各个Instant信息对应的文件分片中是否包括跨天数据,并在检测到当前Instant信息对应的文件分片中包含有跨天数据时,在所述当前Instant信息中添加数据过滤逻辑,其中,所述数据过滤逻辑用于将所述当前Instant信息对应的文件分片中包含的跨天数据删除;
对所有经过检测处理后的Instant信息进行数据快照处理,得到分区视图的Instant信息;
根据所述分区视图的Instant信息对当天的所有文件分片进行文件合并处理,生成分区视图。
2.根据权利要求1所述的分区视图生成方法,其特征在于,所述Instant信息包括文件分片中包含的所有数据的事件时间区间,所述检测抽取到的各个Instant信息对应的文件分片中是否包括跨天数据包括:
检测抽取到的各个Instant信息中的事件时间区间中是否包含有跨天时间;
当检测到当前Instant信息中的事件时间区间中包含有跨天时间时,确定当前Instant信息对应的文件分片中包括跨天数据。
3.根据权利要求1所述的分区视图生成方法,其特征在于,所述对所有经过检测处理后的Instant信息进行数据快照处理,得到分区视图的Instant信息包括:
对所有经过检测处理后的Instant信息中包含有数据过滤逻辑的Instant信息执行第一快照操作,得到分区视图的第一目标Instant信息;
对所有经过检测处理后的Instant信息中不包含有数据过滤逻辑的Instant信息执行第二快照操作,得到分区视图的第二目标Instant信息,其中,所述分区视图的Instant信息包括所述第一目标Instant信息与所述第二目标Instant信息。
4.根据权利要求1所述的分区视图生成方法,其特征在于,所述根据所述分区视图的Instant信息对当天的所有文件分片进行文件合并处理,生成分区视图包括:
根据所述分区视图的Instant信息对包含有跨天数据的文件分片执行数据过滤逻辑操作,得到删除跨天数据的目标文件分片;
根据所述分区视图的Instant信息获取当天的所有文件分片;
根据获取到的当天的所有文件分片及所述目标文件分片进行文件合并处理,生成分区视图。
5.根据权利要求1至4任一项所述的分区视图生成方法,其特征在于,所述方法还包括:
当检测到写入至所述HUDI表中的数据的事件时间与用户预先设定的延迟时间的时间之和超过所述目标watermark时,确定数据写入至HUDI表中的进度达到所述目标watermark。
6.根据权利要求1至4任一项所述的分区视图生成方法,其特征在于,所述方法还包括:
将分区视图的Instant信息及分区视图写入至预设的分区中。
7.根据权利要求1至4任一项所述的分区视图生成方法,其特征在于,所述方法还包括:
将分区视图的Instant信息设为所述时间轴上的节点以供查询。
8.一种分区视图生成装置,其特征在于,所述装置包括:
抽取模块,用于当数据写入至HUDI表中的进度达到目标watermark时,从预设时间轴上抽取当天的Instant信息;
检测模块,用于检测抽取到的各个Instant信息对应的文件分片中是否包括跨天数据,并在检测到当前Instant信息对应的文件分片中包含有跨天数据时,在所述当前Instant信息中添加数据过滤逻辑,其中,所述数据过滤逻辑用于将所述当前Instant信息对应的文件分片中包含的跨天数据删除;
快照模块,用于对所有经过检测处理后的Instant信息进行数据快照处理,得到分区视图的Instant信息;
生成模块,用于根据所述分区视图的Instant信息对当天的所有文件分片进行文件合并处理,生成分区视图。
9.一种计算机设备,所述计算机设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时用于实现权利要求1至7任意一项所述分区视图生成方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行权利要求1至7任意一项所述的分区视图生成方法的步骤。
CN202211282845.5A 2022-10-19 2022-10-19 分区视图生成方法和装置 Pending CN115577008A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211282845.5A CN115577008A (zh) 2022-10-19 2022-10-19 分区视图生成方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211282845.5A CN115577008A (zh) 2022-10-19 2022-10-19 分区视图生成方法和装置

Publications (1)

Publication Number Publication Date
CN115577008A true CN115577008A (zh) 2023-01-06

Family

ID=84586740

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211282845.5A Pending CN115577008A (zh) 2022-10-19 2022-10-19 分区视图生成方法和装置

Country Status (1)

Country Link
CN (1) CN115577008A (zh)

Similar Documents

Publication Publication Date Title
CN110321387B (zh) 数据同步方法、设备及终端设备
CN110427368B (zh) 数据处理方法、装置、电子设备及存储介质
US10216584B2 (en) Recovery log analytics with a big data management platform
US11507594B2 (en) Bulk data distribution system
CN108694195B (zh) 一种分布式数据仓库的管理方法及系统
CN110515795B (zh) 一种大数据组件的监控方法、装置、电子设备
CN112434061A (zh) 支持循环依赖的任务调度方法和系统
US11733999B2 (en) Versioning and cataloging application programming interface (API) specifications
CN114416703A (zh) 数据完整性自动监控方法、装置、设备及介质
CN111611207A (zh) 状态数据处理方法、装置及计算机设备
CN109446262B (zh) 一种数据汇聚方法及装置
CN106815223B (zh) 一种海量图片管理方法和装置
US20130204913A1 (en) File list generation method, system, and program, and file list generation device
CN110569315A (zh) 基于数据仓库的数据处理方法和装置
CN115577008A (zh) 分区视图生成方法和装置
CN111061719B (zh) 数据收集方法、装置、设备和存储介质
CN116126950A (zh) 实时物化视图系统和方法
CN112100186B (zh) 基于分布式系统的数据处理方法、装置、计算机设备
CN114896347A (zh) 一种数据处理方法、装置、电子设备及存储介质
CN109739883B (zh) 提升数据查询性能的方法、装置和电子设备
CN112947991A (zh) 版本差异代码文件的获取方法、装置、计算机设备和介质
CN113760600A (zh) 一种数据库备份方法、数据库还原方法和相关装置
CN111782588A (zh) 一种文件读取方法、装置、设备和介质
CN115952197A (zh) 数据查询方法和装置
CN111694801A (zh) 一种应用于故障恢复的数据去重方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination