CN118035178A - 一种数据排查方法、装置、电子设备、计算机可读存储介质及程序产品 - Google Patents
一种数据排查方法、装置、电子设备、计算机可读存储介质及程序产品 Download PDFInfo
- Publication number
- CN118035178A CN118035178A CN202410431711.8A CN202410431711A CN118035178A CN 118035178 A CN118035178 A CN 118035178A CN 202410431711 A CN202410431711 A CN 202410431711A CN 118035178 A CN118035178 A CN 118035178A
- Authority
- CN
- China
- Prior art keywords
- hdfs
- data
- user
- directory
- target
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 46
- 238000011835 investigation Methods 0.000 title claims abstract description 20
- 238000011084 recovery Methods 0.000 claims description 39
- 238000010276 construction Methods 0.000 claims description 7
- 238000004064 recycling Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 4
- 239000010410 layer Substances 0.000 description 29
- 238000010586 diagram Methods 0.000 description 17
- 239000010813 municipal solid waste Substances 0.000 description 13
- 230000007246 mechanism Effects 0.000 description 11
- 238000013507 mapping Methods 0.000 description 9
- 238000005192 partition Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 230000008439 repair process Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000004140 cleaning Methods 0.000 description 3
- 238000009434 installation Methods 0.000 description 3
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 208000024780 Urticaria Diseases 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000002344 surface layer Substances 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提出一种数据排查方法、装置、电子设备、计算机可读存储介质及程序产品,在接收到用户的数据排查请求时,首先根据数据排查请求中的目标表的标识信息,扫描HDFS回收站中的当前检查点目录与历史检查点目录,以获得目标表在HDFS回收站中对应的目标目录地址。并且获取目标表的元数据。进而结合目标表的元数据与目标目录地址,构建目标表的历史数据表。使得用户能够基于目标表与历史数据表进行数据排查。避免了用户使用HDFS相关命令对HDFS回收站的排查造成的作业复杂度。并且,由于该历史数据表是基于用户需求和HDFS回收站构建的,因此HDFS文件存储层无需通过冗余存储来全量存储目标表的备份表,从而降低了资源占用。
Description
技术领域
本申请涉及大数据应用领域,具体而言,涉及一种数据排查方法、装置、电子设备、计算机可读存储介质及程序产品。
背景技术
在大数据生态系统中,现有的分析型系统,一般会将数据以文件的形式存储在分布式文件系统中。然后在该文件的基础上抽象出类似关系型数据库中的表的概念,并将这种文件和表的映射关系以及表的其它元数据持久化到元数据引擎。进而可以基于数据库语言(Structured Query Language, SQL)来清洗转换和汇总加工原始表中的数据以得到各种结果表数据,最后将结果表数据提供给外部进行各种业务上的分析和查询。
在日常作业处理过程中,为了处理延迟数据或调整业务处理逻辑,有时需要多次调度执行同一SQL作业以修复结果表数据。为确保结果表数据的完整性和整体数据质量,也为了确保SQL作业重复执行时的幂等性,一个常见的处理逻辑是通过特定语句,使用新生成的结果表新数据覆盖旧数据。
然而基于现有技术的方案,旧数据被覆盖后就无法进行查询。提高了后续数据稽核、修复的作业难度。
发明内容
本申请的目的在于提供一种数据排查方法、装置、电子设备、计算机可读存储介质及程序产品,用于降低分布式文件系统的数据排查作业难度,同时降低排查占用的资源。
为了实现上述目的,本申请实施例采用的技术方案如下:
第一方面,本申请实施例提供一种数据排查方法,包括:
当接收到用户的数据排查请求时,根据所述数据排查请求中的目标表的标识信息,扫描HDFS回收站中的当前检查点目录与历史检查点目录,以获得所述目标表在所述HDFS回收站中对应的目标目录地址;
获取所述目标表的元数据;
根据所述目标表的元数据与所述目标目录地址,构建所述目标表的历史数据表;
将所述历史数据表的表名信息反馈给用户,以使所述用户基于所述目标表与所述历史数据表进行数据排查。
可选地,在所述根据所述数据排查请求中的目标表的标识信息,扫描HDFS回收站中的当前检查点目录与历史检查点目录的步骤之前,还包括:
为所述用户的客户端安装配置信息,所述配置信息包含用于访问HDFS回收站和Hive查询服务的访问信息。
可选地,所述访问信息包括访问权限信息与代理状态信息,所述访问权限信息包含Hive查询服务的访问权限与HDFS回收站的访问权限; 所述代理状态信息用于指示是否开启Hive查询服务代理;
所述当接收到用户的数据排查请求时,根据所述数据排查请求中的目标表的标识信息,扫描HDFS回收站中的当前检查点目录与历史检查点目录的步骤,包括:
当接收到所述用户发送的数据稽核请求、数据修复请求或数据恢复请求时,根据所述数据排查请求中的目标表的标识信息与Hive查询服务的访问权限,登录Hive查询服务,获得所述目标表在HDFS中的存储目录地址;
根据所述代理状态信息获得所述用户对应的HDFS回收站的回收地址;
对所述回收地址中的所述当前检查点目录与所述历史检查点目录进行扫描,获得对应的子目录列表;所述子目录列表包含至少一个HDFS回收站存储地址;
将所述子目录列表与所述存储目录地址进行逐一匹配,将匹配成功的HDFS回收站存储地址作为所述目标目录地址。
可选地, 所述根据所述代理状态信息获得所述用户对应的HDFS回收站的回收地址的步骤,包括:
若所述代理状态信息指示开启Hive查询服务代理,则所述对应的HDFS回收站的回收地址为HIVE系统用户的回收站地址;
若所述代理状态信息指示未开启Hive查询服务代理,则所述对应的HDFS回收站的回收地址为HIVE业务用户的回收站地址。
可选地,所述获取所述目标表的元数据的步骤,包括:
通过Hive查询服务,基于HMS服务获得所述目标表的元数据。
可选地,还包括:
根据预置过期时间,对已过期的历史数据表进行删除。
第二方面,本申请实施例提供一种数据排查装置,包括:扫描模块、获取模块、构建模块以及反馈模块;
所述扫描模块,用于当接收到用户的数据排查请求时,根据所述数据排查请求中的目标表的标识信息,扫描HDFS回收站中的当前检查点目录与历史检查点目录,以获得所述目标表在所述HDFS回收站中对应的目标目录地址;
所述获取模块,用于获取所述目标表的元数据;
所述构建模块,用于根据所述目标表的元数据与所述目标目录地址,构建所述目标表的历史数据表;
所述反馈模块,用于将所述历史数据表的表名信息反馈给用户,以使所述用户基于所述目标表与所述历史数据表进行数据排查。
可选地,还包括:安装模块;
所述安装模块,用于为所述用户的客户端安装配置信息,所述配置信息包含用于访问HDFS回收站和Hive查询服务的访问信息。
可选地,所述访问信息包括访问权限信息与代理状态信息,所述访问权限信息包含Hive查询服务的访问权限与HDFS回收站的访问权限; 所述代理状态信息用于指示是否开启Hive查询服务代理;
所述扫描模块,具体用于当接收到所述用户发送的数据稽核请求、数据修复请求或数据恢复请求时,根据所述数据排查请求中的目标表的标识信息与Hive查询服务的访问权限,登录Hive查询服务,获得所述目标表在HDFS中的存储目录地址;根据所述代理状态信息获得所述用户对应的HDFS回收站的回收地址;对所述回收地址中的所述当前检查点目录与所述历史检查点目录进行扫描,获得对应的子目录列表;所述子目录列表包含至少一个HDFS回收站存储地址;将所述子目录列表与所述存储目录地址进行逐一匹配,将匹配成功的HDFS回收站存储地址作为所述目标目录地址。
第三方面,本申请实施例提供一种电子设备,包括:
存储器,用于存储一个或多个程序;
处理器;
当所述一个或多个程序被所述处理器执行时,实现如上述第一个方面中任一项所述的方法。
第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述第一个方面中任一项所述的方法。
相对于现有技术,本申请实施例所提供的一种数据排查方法、装置、电子设备、计算机可读存储介质及程序产品,在接收到用户的数据排查请求时,首先根据数据排查请求中的目标表的标识信息,扫描HDFS回收站中的当前检查点目录与历史检查点目录,以获得目标表在HDFS回收站中对应的目标目录地址。并且获取目标表的元数据。进而结合目标表的元数据与目标目录地址,构建目标表的历史数据表。通过提供该历史数据表,使得用户能够基于目标表与历史数据表进行数据排查。避免了用户使用HDFS相关命令对HDFS回收站的排查造成的作业复杂度。并且,由于该历史数据表是基于用户需求和HDFS回收站构建的,因此HDFS文件存储层无需通过冗余存储来全量存储目标表的备份表,从而降低了资源占用。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它相关的附图。
图1为一种HIVE逻辑架构示意图;
图2为基于HIVE逻辑架构的数据排查机制示意图;
图3为本发明实施例提供一种数据排查的逻辑架构示意图;
图4为本发明实施例提供一种数据排查方法的流程示意图;
图5为本发明实施例提供另一种数据排查方法的流程示意图;
图6为本发明实施例提供另一种数据排查方法的流程示意图;
图7为本发明实施例提供的一种数据排查装置的结构示意图;
图8为本发明实施例提供的另一种数据排查装置的结构示意图;
图9为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
在大数据生态系统中,现有的分析型系统,一般会将数据以文件的形式存储在分布式文件系统中,例如,海杜普分布式文件系统(Hadoop Distributed File System,HDFS)。然后在该HDFS文件的基础上,抽象出类似关系数据库管理系统(RelationalDatabase Management System, RDBMS)中的表的概念。进而将这种文件和表的映射关系以及表的其它元数据持久化到元数据引擎。
其中,其它元数据包括但不限于:表名、列名、列格式等。上述元数据引擎(也可以被称为表格式引擎),常见的是元数据访问服务HIVE Metatore Service(HMS)。
进而可以通过HIVE等查询引擎,基于SQL来清洗转换和汇总加工原始表中的数据以得到各种结果表数据,最后将结果表数据提供给外部进行各种业务上的分析和查询。
在日常作业处理过程中,为了处理延迟数据或调整业务处理逻辑,有时需要多次调度执行同一SQL作业以修复结果表数据。由于传统的HIVE不支持RDBMS的事务(并发读写以及commit/rollback)和记录级别的增删改,为确保结果表数据的完整性和整体数据质量,也为了确保SQL作业重复执行时的幂等性,一个常见的处理逻辑是通过 HIVE 的insertoverwrite 语句,使用新生成的结果表新数据覆盖旧数据。
但是旧数据被覆盖后无法查询,上述方法对后续数据质量问题的排查,或者误操作涉及到的数据修复,都带来了困扰。为应对这类数据稽核和数据修复问题,在现有技术中,不得不备份表数据;或者手动翻阅HDFS回收站垃圾文件。
进一步的,图1为一种HIVE逻辑架构示意图,参见图1,该HIVE逻辑架构包含:用户接口层、HS2 SQL解析编译层、HMS元数据层、YARN计算资源层以及HDFS文件存储层。
其中,用户接口层用于接收用户关于数据的相关操作,例如数据查询,数据插入,数据更新,数据删除,数据稽核、数据修复或数据恢复等。
HS2 SQL解析编译层,用于针对用户输入的SQL进行解析编译。
HMS元数据层,用于维护表和文件的映射关系,以及表的其它元数据,如表名,列表,列格式等。
YARN计算资源层,用于对作业运行所需的计算资源进行调度与管理。
HDFS文件存储层, 用于存储和管理表底层的文件。
其中,对于本发明涉及数据排查场景,图1中HS2 SQL解析编译层、HMS元数据层以及YARN计算资源层可以被统称为中间层。
结合图1所示的HIVE逻辑架构,下面对现有技术进行数据排查时的两种主要机制进行说明。具体的,图2为基于HIVE逻辑架构的数据排查机制示意图,参见图2,其中(a)为采用备份表的技术方案流程示意;(b)为人工针对HDFS进行数据排查的技术方案流程示意。
其中,无论(a)或(b),中间层对于用户均透明,即用户无需针对中间层进行操作。
对于(a),首先需要用户在用户接口层进行备份表的创建与管理。进而在HDFS文件存储层增加冗余存储,用于维护相关的目标表与备份表。该方案不仅会提高表格管理的成本。同时,因为备份表会加重系统集群的复杂,进而可能会影响其它作业的性能;另外备份表的存储时效性较为复杂,不同表对备份时长的要求可能是不同的,同一张表的备份时长也可能是动态的,所以在如何抉择备份表是保留1周1个月还是更长时间,并不好确定。
对于(b),排查人员不仅需要通过SQL进行历史数据表的创建与管理,还需要在了解HDFS命令的基础上,手动查询HDFS回收站中的垃圾文件来寻找需要排查的数据。当使用ORC/parquet等列示存储的非文本格式时,还需要借助一些额外的工具。此外,排查人员手动操作HDFS回收站的垃圾文件需要相关的高危权限。同时该方案技术要求高,排查人员需要掌握表与文件映射关系的技术细节。(b)对于数据排查的难度较大。
针对现有技术上述两种实现方式所产生的问题,本发明核心改进在于:利用HDFS回收站机制,使用结果表新数据覆盖旧数据后,旧数据对应的HDFS目录和文件会被移动并保存到当前操作用户的HDFS回收站中,而回收站中的数据会被保存一段时间。通过创建历史数据表,并将该历史数据表映射指向HDFS回收站中对应的目录,此后就可以通过 SQL查询对比目标表和其历史数据表,从而通过SQL轻松进行数据稽核和数据修复。
可选地,图3为本发明实施例提供一种数据排查的逻辑架构示意图,参见图3,用户接口层增设一数据排查装置。
该数据排查装置基于用户的数据排查请求,确定目标表;并创建历史数据表,并将该历史数据表映射指向HDFS回收站中对应的目录。用户通过SQL查询目标表与历史数据表,进而完成数据的排查。
在该方案中,对于用户接口层,用户无需掌握HDFS相关命令。数据排查请求、目标表与历史数据表通过新增的数据排查装置建立映射。
并且,在利用HDFS回收站机制时,对于HDFS文件存储层,不需要冗余存储来维护备份表。仅需要维护与数据排查请求相关的目标表,大幅降低了资源的占用情况。并且,由于HDFS回收站机制可以定期对文件进行删除,保证了资源的有效使用。
进一步的,下面对本发明提供的数据排查方法进行示例性说明。具体的,图4为本发明实施例提供一种数据排查方法的流程示意图,参见图4,该方法包括:
步骤101、当接收到用户的数据排查请求时,根据数据排查请求中的目标表的标识信息,扫描HDFS回收站中的当前检查点目录与历史检查点目录,以获得目标表在HDFS回收站中对应的目标目录地址。
步骤102、获取目标表的元数据。
可选地,该元数据可以通过Hive查询服务(如HiveServer2),基于HMS服务从图1所示HMS元数据层获得。
步骤103、根据目标表的元数据与目标目录地址,构建目标表的历史数据表。
步骤104、将历史数据表的表名信息反馈给用户,以使用户基于目标表与历史数据表进行数据排查。
本发明实施例提供的数据排查方法,在接收到用户的数据排查请求时,首先根据数据排查请求中的目标表的标识信息,扫描HDFS回收站中的当前检查点目录与历史检查点目录,以获得目标表在HDFS回收站中对应的目标目录地址。并且获取目标表的元数据。进而结合目标表的元数据与目标目录地址,构建目标表的历史数据表。通过提供该历史数据表,使得用户能够基于目标表与历史数据表进行数据排查。避免了用户使用HDFS相关命令对HDFS回收站的排查造成的作业复杂度。并且,由于该历史数据表是基于用户需求和HDFS回收站构建的,因此HDFS文件存储层无需通过冗余存储来全量存储目标表的备份表,从而降低了资源占用。
可选地,为了能够保证用户的数据排查请求获得上述示例中的元数据、目标目录地址,进而构建目标表的历史数据表。需要对访问权限进行配置。具体的,在图4的基础上,图5为本发明实施例提供另一种数据排查方法的流程示意图,参见图5,该方法包括:
步骤100、为用户的客户端配置安装配置信息。
该配置信息包含用于访问HDFS回收站和Hive查询服务的访问信息。
可选地,该访问信息包括访问权限信息与代理状态信息,访问权限信息包含Hive查询服务的访问权限与HDFS回收站的访问权限,而代理状态信息用于指示是否开启Hive查询服务代理。该Hive查询服务对应图1所示的HS2 SQL解析编译层;HDFS回收站中的数据存储于图1中HDFS文件存储层。
具体的,当Hive查询服务具体为“Hive Server2”即HS2时,该Hive查询服务的访问权限可以包含但不限于:HS2地址,HS2用户名,HS2密码。HDFS回收站的访问权限可以包含但不限于:HDFS文件系统地址。此外,其也可以包含HDFS系统的用户名与密码。
可选地,由于HS2是否开启代理,对于用户的HDFS回收站的回收地址会有影响,因此,该访问信息还可以保护指示HS2是否开启代理的代理状态信息。
可选地,如果用户所使用的系统还涉及安全认证,例如,kerberos安全认证。则访问权限信息还可以包含kerberos配置文件地址、kerberos用户名以及kerberoskeytab地址等信息。
在一种可能的实现方式中,上述配置过程,可以在用户安装系统时,通过配置文件“config.properties”实现。可选地,下表1为一种“config.properties”可能的示例。
表1:“config.properties” 示例
1.--HDFS文件系统地址
2.hdfs.url=hdfs://uf30-1:8020,hdfs://uf30-2:8020
3.--hs2地址
4.hive.url=jdbc:hive2://uf30-1:10000/;principal=hive/_HOST@ XXXXX.COM
5.--hs2用户名
6.hive.username=dap
7.--hs2用户密码
8.hive.passwd=hundsun
9.--kerberos配置文件地址
10.Kerberos.ConfFilePath=/home/hundsun/workspace/kerberos/kafka/krb5.conf
11.--kerberos用户名
12.Kerberos.Principal=dap@XXXXX.COM
13.--kerberoskeytab地址
14.Kerberos.KeytabFilePath=/home/hundsun/workspace/kerberos/dap/dap.keytab
下面结合Hive查询服务、HDFS回收站以及涉及的具体信息,对上文步骤101进行示例性说明。具体的,在图4的基础上,图6为本发明实施例提供另一种数据排查方法的流程示意图,参见图6,步骤101具体包括:
步骤101-1、当接收到用户发送的数据稽核请求、数据修复请求或数据恢复请求时,根据数据排查请求中的目标表的标识信息与Hive查询服务的访问权限,登录Hive查询服务,获得目标表在HDFS中的存储目录地址。
具体的,该数据稽核请求与数据修复请求可以为使用“insert overwrite”生成的结果表构成的。数据恢复请求可以针对通过“ DROP ”语句误删除的表数据进行恢复。
另外,该Hive查询服务可以为上文所述HS2,其通过前文所述访问权限中的“HS2地址、HS2用户名以及HS2密码”进行Hive查询服务的登陆。目标表的标识信息可以为目标表的表名。
在一种可能的实现方式中,指定目标表的表名可以通过action参数指定子命令为build,通过hive.tablename完成。下表2为目标表的表名调用示例:
1.shdataDebugAndFixHelper.sh--aciton=build--hive.tablename=my_db.my_table
其中,“my_db.my_table”为指定的目标表的表名。
进一步的,通过HS2地址、HS2用户名以及HS2密码,以及目标表的表名,登录HS2并执行SQL命令“desc extended my_db.my_table”,HS2在内部会从HMS元数据层获得目标表的详细信息。进而图3所示的数据排查装置解析上述详细信息获得该目标表的存储目录地址,例如“/user/hive/warehouse/my_db.db/my_table”。
步骤101-2、根据代理状态信息获得用户对应的HDFS回收站的回收地址。
具体的,该代理状态信息可以获取用户对应的HDFS回收站的回收地址。
可选地,由于是否开启HS2代理,会对应不同的HDFS回收站的回收地址。具体的,若开启HS2代理,则该用户的HDFS回收站的回收地址为HIVE系统用户的回收站地址,即“/user/hive/.Trash”。若未开启HIVE代理,则该用户的HDFS回收站的回收地址为HIVE业务用户的回收站地址,即“/user/${hive.username}/.Trash”。
步骤101-3、对回收地址中的当前检查点目录与历史检查点目录进行扫描,获得对应的子目录列表。
具体的,在确定了回收地址后,对其下的当前检查点目录,即“Current”目录以及历史检查点目录进行扫描。另外,该子目录列表可以包含至少一个HDFS回收站存储地址。
需要说明的是,HDFS提供的HDFS回收站机制,用户删除的目录和文件首先会被临时移动到当前操作用户的HDFS回收站的“Current”目录下,比如“/user/hdfs/.Trash/Current”。
步骤101-4、将子目录列表与存储目录地址进行逐一匹配,将匹配成功的HDFS回收站存储地址作为目标目录地址。
具体的,子目录列表与HDFS中的存储目录地址进行匹配,若匹配成功,则对应的数据,其HDFS中的存储目录地址即为目标表的历史数据在HDFS回收站中的具体地址。
需要说明的是,注意如果用户对目标表执行了多次“insert overwrite”,此时可能包含多个匹配成功的目标目录地址。例如,表4为目标目录地址的示例。
表4为目标目录地址的示例
1./user/hive/.Trash/Current/user/hive/warehouse/my_db.db/my_table
2./user/hive/.Trash/231221180000/user/hive/warehouse/my_db.db/my_table
3./user/hive/.Trash/231221190000/user/hive/warehouse/my_db.db/my_table
其中,“Current”对应上文“Current”目录的目标目录地址。“231221180000”为一个时刻下历史检查点目录对应的目标目录地址。“231221190000” 为另一个时刻下历史检查点目录对应的目标目录地址。
可选地,对于上文步骤103,即构建历史数据表,下面提供一种可能的实现方式。具体的:
在分别获得了目标目录地址与元数据后。可以通过执行SQL命令“create tablelike”来构建对应的历史数据表。可选地,如果该历史数据表为分区表,还可以通过执行命令“msck repair table”完成分区元数据的修复(没有执行该msck命令前,图1中HMS元数据层中不包含分区元数据,select查询不到分区数据)。进而在步骤104中将历史数据表反馈给用户。需要说明的是,如果用户对目标表执行了多次“insert overwrite”,则此时会返回多个历史数据表的表名信息。
可选地,表5为“create table like”与“msck repair table”的格式与调用示例:
1.--createtablelike语句格式
2.createtablexxxlikexxxlocation"hdfs://xx";
3.--msckrepairtable语句格式
4.msckrepairtablexxx;
5.--createtablelike语句示例调用,对应回收站Current目录下匹配的子目录(非分区表)
6.createtablemy_db.my_table_currentlikemy_db.my_tablelocation"hdfs:///user/hive/.Trash/Current/user/hive/warehouse/my_db.db/my_table";
7.--createtablelike语句示例调用,对应回收站历史检查点目录下匹配的子目录(非分区表)
8.createtablemy_db.my_table_231221180000likemy_db.my_tablelocation"hdfs:///user/hive/.Trash/231221180000/user/hive/warehouse/my_db.db/my_table";
9.--createtablelike语句示例调用,对应回收站Current目录下匹配的子目录(分区表)
10.createtablemy_db.my_table_pt_currentlikemy_db.my_table_ptlocation"/user/hive/.Trash/Current/user/hive/warehouse/my_db.db/my_table_pt";
11.--createtablelike语句示例调用,对应回收站历史检查点目录下匹配的子目录(分区表)
12.createtablemy_db.my_table_pt_231222110000likemy_db.my_table_ptlocation"/user/hive/.Trash/231222110000/user/hive/warehouse/my_db.db/my_table_pt";
13.--msckrepairtable语句示例调用
14.msckrepairtablemy_db.my_table_pt_current;
可选地,基于前文所述的HDFS回收站机制,本发明还提供一种机制:即根据预置过期时间,对已过期的历史数据表进行删除。
具体的,“NameNode”服务进程中有专门的垃圾清理守护线程 “TrashEmptier”,其会定期(通过fs.trash.checkpoint.interval指定频率)对所有用户回收站的“Current”目录(即当前检查点目录),采取重命名的方式来创建历史检查点目录(重命名后的历史检查点采用格式为yyMMddHHmmss的时间戳的方式进行命名),并删除之前创建的已经过期的历史检查点目录(通过参数fs.trash.interval指定过期时间,该过期时间从文件被移动到回收站的时间开始计算,而不是从最后一次修改访问该文件的时间开始计算),从而达到定期清理垃圾回收站中的过期数据的目的。
下面为了执行上述示例各个步骤与对应的技术效果,本发明还提供一种针对上述示例图3所示数据排查装置的可能的实现方式。具体的,图7为本发明实施例提供的一种数据排查装置的结构示意图,参见图7,该数据排查装置20,包括:扫描模块200、获取模块201、构建模块202以及反馈模块203;
扫描模块200,用于当接收到用户的数据排查请求时,根据数据排查请求中的目标表的标识信息,扫描HDFS回收站中的当前检查点目录与历史检查点目录,以获得目标表在HDFS回收站中对应的目标目录地址;
获取模块201,用于获取目标表的元数据;
构建模块202,用于根据目标表的元数据与目标目录地址,构建目标表的历史数据表;
反馈模块203了,用于将历史数据表的表名信息反馈给用户,以使用户基于目标表与历史数据表进行数据排查。
可选地,在图7的基础上,图8为本发明实施例提供的另一种数据排查装置的结构示意图,参见图8,该数据排查装置20,还包括:安装模块204。
安装模块204,用于为用户的客户端安装配置信息,配置信息包含用于访问HDFS回收站和Hive查询服务的访问信息。该访问信息包括访问权限信息与代理状态信息,访问权限信息包含Hive查询服务的访问权限与HDFS回收站的访问权限,而代理状态信息用于指示是否开启Hive查询服务代理。
扫描模块200,具体用于当接收到用户发送的数据稽核请求、数据修复请求或数据恢复请求时,根据数据排查请求中的目标表的标识信息与Hive查询服务的访问权限,登录Hive查询服务,获得目标表在HDFS中的存储目录地址;根据代理状态信息获得用户对应的HDFS回收站的回收地址;对回收地址中的当前检查点目录与历史检查点目录进行扫描,获得对应的子目录列表;子目录列表包含至少一个HDFS回收站存储地址;将子目录列表与存储目录地址进行逐一匹配,将匹配成功的HDFS回收站存储地址作为目标目录地址。
可选地,该获取模块201,具体用于通过HMS服务获得所述目标表的元数据。
可选地,构建模块202,还用于根据预置过期时间,对已过期的历史数据表进行删除。
可选地,本发明实施例还提供一种电子设备,其可以执行本发明实施例上述全部示例的步骤,以实现对应的技术效果。具体的,图9为本发明实施例提供的一种电子设备的结构示意图,参见图9,该电子设备30,包括:存储器301、处理器300;
存储器301,用于存储一个或多个程序;
处理器300;
当一个或多个程序被处理器执行时,当该电子设备30用于执行上述各个方法示例所示的步骤时,其可以实现各个步骤及对应技术效果。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以程序产品的形式体现出来,该程序产品存储在一个计算机可读存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本发明上述实施例,其具有如下技术效果:
一、该方案流程简单自动化程度高,技术要求低,问题排查速度快,且误操作风险低:该方案会自动检测识别文件和表的映射关系并自动创建表供排查人员分析排查数据,排查人员只需要用SQL即可进行数据稽核和修复,不需要手动操作HDFS文件,不需要相应的HDFS高危操作权限,也不需要掌握表与文件映射关系的技术细节,所以整体流程简单自动化程度高,技术要求低,问题排查速度快,且误操作风险低。
二、该方案具有良好的成本优势和性能优势:该方案利用了HDFS回收站的过期机制,在过期时间到达后,会自动清理文件彻底释放存储资源,所以不涉及备份表带来的额外的各种成本,如备份表的冗余数据的长期存储成本,备份表的数据生成成本,备份表的常规管理成本;同时该方案不会加重集群负载,不会影响正常业务流程中作业的性能。
另外,需要说明的是,该方案主要面向的场景是,Hive 表数据被 “insertoverwrite”覆盖或 drop误删除后的数据稽核和数据修复,而不是常规的业务上的数据备份,所以与业务上的备份表的方案并不冲突。
该方案底层基于HDFS回收站机制,在过期时间到达后,会自动清理回收站中的过期文件以彻底释放存储资源,所以用户使用该方案进行数据稽核或数据修复的有效时间窗口,是通过参数fs.trash.interval指定的HDFS回收站的过期时间(该过期时间从文件被移动到回收站的时间开始计算),所以集群管理员需要权衡业务需求和整体资源,合理配置该参数。
以上仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其它的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
Claims (10)
1.一种数据排查方法,其特征在于,包括:
当接收到用户的数据排查请求时,根据所述数据排查请求中的目标表的标识信息,扫描HDFS回收站中的当前检查点目录与历史检查点目录,以获得所述目标表在所述HDFS回收站中对应的目标目录地址;
获取所述目标表的元数据;
根据所述目标表的元数据与所述目标目录地址,构建所述目标表的历史数据表;
将所述历史数据表的表名信息反馈给用户,以使所述用户基于所述目标表与所述历史数据表进行数据排查。
2. 如权利要求1所述的方法,其特征在于, 在所述根据所述数据排查请求中的目标表的标识信息,扫描HDFS回收站中的当前检查点目录与历史检查点目录的步骤之前,还包括:
为所述用户的客户端安装配置信息,所述配置信息包含用于访问HDFS回收站和Hive查询服务的访问信息。
3. 如权利要求2所述的方法,其特征在于,所述访问信息包括访问权限信息与代理状态信息,所述访问权限信息包含Hive查询服务的访问权限与HDFS回收站的访问权限; 所述代理状态信息用于指示是否开启Hive查询服务代理;
所述当接收到用户的数据排查请求时,根据所述数据排查请求中的目标表的标识信息,扫描HDFS回收站中的当前检查点目录与历史检查点目录的步骤,包括:
当接收到所述用户发送的数据稽核请求、数据修复请求或数据恢复请求时,根据所述数据排查请求中的目标表的标识信息与Hive查询服务的访问权限,登录Hive查询服务,获得所述目标表在HDFS中的存储目录地址;
根据所述代理状态信息获得所述用户对应的HDFS回收站的回收地址;
对所述回收地址中的所述当前检查点目录与所述历史检查点目录进行扫描,获得对应的子目录列表;所述子目录列表包含至少一个HDFS回收站存储地址;
将所述子目录列表与所述存储目录地址进行逐一匹配,将匹配成功的HDFS回收站存储地址作为所述目标目录地址。
4. 如权利要求3所述的方法,其特征在于, 所述根据所述代理状态信息获得所述用户对应的HDFS回收站的回收地址的步骤,包括:
若所述代理状态信息指示开启Hive查询服务代理,则所述对应的HDFS回收站的回收地址为HIVE系统用户的回收站地址;
若所述代理状态信息指示未开启Hive查询服务代理,则所述对应的HDFS回收站的回收地址为HIVE业务用户的回收站地址。
5.如权利要求1所述的方法,其特征在于,所述获取所述目标表的元数据的步骤,包括:
通过Hive查询服务,基于HMS服务获得所述目标表的元数据。
6.如权利要求1所述的方法,其特征在于,还包括:
根据预置过期时间,对已过期的历史数据表进行删除。
7.一种数据排查装置,其特征在于,包括:扫描模块、获取模块、构建模块以及反馈模块;
所述扫描模块,用于当接收到用户的数据排查请求时,根据所述数据排查请求中的目标表的标识信息,扫描HDFS回收站中的当前检查点目录与历史检查点目录,以获得所述目标表在所述HDFS回收站中对应的目标目录地址;
所述获取模块,用于获取所述目标表的元数据;
所述构建模块,用于根据所述目标表的元数据与所述目标目录地址,构建所述目标表的历史数据表;
所述反馈模块,用于将所述历史数据表的表名信息反馈给用户,以使所述用户基于所述目标表与所述历史数据表进行数据排查。
8.一种电子设备,其特征在于,包括:
存储器,用于存储一个或多个程序;
处理器;
当所述一个或多个程序被所述处理器执行时,实现如权利要求1-6中任一项所述的方法。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-6中任一项所述的方法。
10.一种程序产品,其特征在于,所述程序产品被处理器执行时,实现如权利要求1-6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410431711.8A CN118035178B (zh) | 2024-04-11 | 2024-04-11 | 一种数据排查方法、装置、电子设备、计算机可读存储介质及程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410431711.8A CN118035178B (zh) | 2024-04-11 | 2024-04-11 | 一种数据排查方法、装置、电子设备、计算机可读存储介质及程序产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN118035178A true CN118035178A (zh) | 2024-05-14 |
CN118035178B CN118035178B (zh) | 2024-06-25 |
Family
ID=90989742
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410431711.8A Active CN118035178B (zh) | 2024-04-11 | 2024-04-11 | 一种数据排查方法、装置、电子设备、计算机可读存储介质及程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118035178B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020168692A1 (zh) * | 2019-02-22 | 2020-08-27 | 全球能源互联网研究院有限公司 | 海量数据共享方法、开放共享平台及电子设备 |
CN115098466A (zh) * | 2022-07-18 | 2022-09-23 | 重庆紫光华山智安科技有限公司 | 元数据管理方法、装置、存储节点及可读存储介质 |
CN116415218A (zh) * | 2023-06-08 | 2023-07-11 | 天津金城银行股份有限公司 | 数据权限管理方法、装置、电子设备及存储介质 |
-
2024
- 2024-04-11 CN CN202410431711.8A patent/CN118035178B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020168692A1 (zh) * | 2019-02-22 | 2020-08-27 | 全球能源互联网研究院有限公司 | 海量数据共享方法、开放共享平台及电子设备 |
CN115098466A (zh) * | 2022-07-18 | 2022-09-23 | 重庆紫光华山智安科技有限公司 | 元数据管理方法、装置、存储节点及可读存储介质 |
CN116415218A (zh) * | 2023-06-08 | 2023-07-11 | 天津金城银行股份有限公司 | 数据权限管理方法、装置、电子设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
GONZÁLEZ-RODRÍGUEZ等: "A web-based dashboard for RELION metadata visualization", 《ACTA CRYSTALLOGRAPHICA SECTION D-STRUCTURAL BIOLOGY》, 29 February 2024 (2024-02-29) * |
杨淙钧;艾中良;刘忠麟;李常宝;: "基于多级列式索引的海量数据高效查询设计", 软件, no. 03, 15 March 2016 (2016-03-15) * |
Also Published As
Publication number | Publication date |
---|---|
CN118035178B (zh) | 2024-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10599684B2 (en) | Data relationships storage platform | |
US10671642B2 (en) | Copying data changes to a target database | |
CN108804253B (zh) | 一种用于海量数据备份的并行作业备份方法 | |
CN107122355B (zh) | 数据迁移系统和方法 | |
US7933872B2 (en) | Database backup, refresh and cloning system and method | |
US8606752B1 (en) | Method and system of restoring items to a database while maintaining referential integrity | |
JP4598821B2 (ja) | データベース復旧中のスナップショットクエリのためのシステムおよび方法 | |
US7840539B2 (en) | Method and system for building a database from backup data images | |
US10621211B2 (en) | Language tag management on international data storage | |
US10417265B2 (en) | High performance parallel indexing for forensics and electronic discovery | |
US10606707B2 (en) | Enhancing robustness of a database application | |
US10133618B2 (en) | Diagnostic data set component | |
CN110209653B (zh) | HBase数据迁移方法及迁移装置 | |
WO2016079629A1 (en) | Optimizing database deduplication | |
US20130066869A1 (en) | Computer system, method of managing a client computer, and storage medium | |
US20100088271A1 (en) | Hsm two-way orphan reconciliation for extremely large file systems | |
US8818961B1 (en) | User restoration of workflow objects and elements from an archived database | |
CN103778176B (zh) | 用于mes系统中数据长期归档的系统、方法及计算机可用介质 | |
CN118035178B (zh) | 一种数据排查方法、装置、电子设备、计算机可读存储介质及程序产品 | |
US10061654B1 (en) | Depth first search of summary change log records for backup | |
US8868511B2 (en) | Archiving—safe replication of relational data | |
US20090055518A1 (en) | Method and apparatus for managing lightweight directory access protocol information | |
US11687564B2 (en) | Continuous real-time masked database replication | |
US20180173805A1 (en) | Application programming interface for detection and extraction of data changes | |
Data | User's Guide |
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 |