CN116136859A - 一种数据处理方法、装置、设备及存储介质 - Google Patents
一种数据处理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN116136859A CN116136859A CN202111355370.3A CN202111355370A CN116136859A CN 116136859 A CN116136859 A CN 116136859A CN 202111355370 A CN202111355370 A CN 202111355370A CN 116136859 A CN116136859 A CN 116136859A
- Authority
- CN
- China
- Prior art keywords
- target data
- target
- data
- rule
- data processing
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24561—Intermediate data storage techniques for performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24564—Applying rules; Deductive queries
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种数据处理方法、装置、设备及存储介质,其中,该数据处理方法包括:将从数据库中抽取出的目标数据同步至Hive创建的临时表中,其中,所述临时表的表结构与所述数据库中存储所述目标数据的目标表的表结构相同;判断所述临时表中的第一目标数据是否符合为所述第一目标数据预设的完整性规则和一致性规则;若符合所述完整性规则且符合所述一致性规则,将所述第一目标数据导入所述Hive中。通过上述方法,有利于简化目标数据导入Hive的过程,从而有利于提高目标数据导入Hive的效率。
Description
技术领域
本申请涉及大数据处理技术领域,具体而言,涉及一种数据处理方法、装置、设备及存储介质。
背景技术
目前大多数据存储在数据库中,当用户想要使用数据库中的某种数据进行业务处理时,该用户需要先从数据库存储的大量数据中找到需要使用的目标数据,但是当目标数据的使用次数增加时,用户对数据库中目标数据的查询次数也相应增加,这会影响数据库的正常存储业务;为了不影响数据库的正常存储业务,通常采用Hive(数据仓库工具)作为数据库的数据仓库来处理待使用的目标数据,所以需要先将目标数据从数据库导入到Hive中。
发明内容
有鉴于此,本申请实施例提供了一种数据处理方法、装置、设备及存储介质,以简化目标数据导入Hive的过程,从而提高目标数据导入Hive的效率。
主要包括以下几个方面:
第一方面,本申请实施例提供了一种数据处理方法,所述数据处理方法包括以下步骤:
步骤S1:将从数据库中抽取出的目标数据同步至Hive创建的临时表中,其中,所述临时表的表结构与所述数据库中存储所述目标数据的目标表的表结构相同;
步骤S2:判断所述临时表中的第一目标数据是否符合为所述第一目标数据预设的完整性规则和一致性规则;
步骤S3:若符合所述完整性规则且符合所述一致性规则,将所述第一目标数据导入所述Hive中。
可选的,所述数据处理方法基于SQL语句,在所述步骤S1之前,所述数据处理方法还包括:
对所述SQL语句中用于表示抽取操作的目标SQL语句进行封装。
可选的,判断所述第一目标数据是否符合所述完整性规则,包括以下至少一种:
判断所述第一目标数据的总行数与所述目标表中的第二目标数据的总行数是否相同,若相同,则所述第一目标数据符合所述完整性规则;
判断所述第一目标数据的每一行所包括的每一个第一预设字段是否为空,若各所述第一预设字段均不为空,则所述第一目标数据符合所述完整性规则。
可选的,针对所述第一目标数据的每一行所包括的每一个第二预设字段,判断所述第一目标数据是否符合所述一致性规则,包括:
当该第二预设字段包括数值时,判断所述数值是否位于预设范围内,以及判断所述数值与第三预设字段包括的数值是否相同,若所述数值位于所述预设范围内且所述数值与所述第三预设字段包括的数值相同,则所述第一目标数据符合所述一致性规则,其中,所述第三预设字段在所述目标表中的位置与该第二预设字段在所述临时表中的位置相同;
当该第二预设字段包括日期时,判断所述日期的格式与所述第三预设字段包括的日期的格式是否相同,以及判断所述日期所指示的时间点与所述第三预设字段包括的日期所指示的时间点是否相同,若所述日期的格式与所述第三预设字段包括的日期的格式相同且所述日期所指示的时间点与所述第三预设字段包括的日期所指示的时间点相同,则所述第一目标数据符合所述一致性规则。
可选的,若所述第一目标数据不符合所述完整性规则或者所述一致性规则,所述数据处理方法还包括:
对所述目标表的表名、所述目标表中的目标数据的总数据量、所述第一目标数据的总数据量进行记录,得到记录日志;
为所述记录日志添加标签,其中,所述标签包括当前时间。
可选的,若所述第一目标数据不符合所述完整性规则或者所述一致性规则,所述数据处理方法还包括:
生成用于表示数据处理失败的提示信息;
对所述提示信息进行推送。
可选的,若所述第一目标数据不符合所述完整性规则或者所述一致性规则,所述数据处理方法还包括:
重复执行所述步骤S1至所述步骤S2,直至达到预设的最大迭代次数或者所述第一目标数据符合所述完整性规则且符合所述一致性规则。
第二方面,本申请实施例提供了一种数据处理装置,所述数据处理装置包括:
同步模块,用于将从数据库中抽取出的目标数据同步至Hive创建的临时表中,其中,所述临时表的表结构与所述数据库中存储所述目标数据的目标表的表结构相同;
判断模块,用于判断所述临时表中的第一目标数据是否符合为所述第一目标数据预设的完整性规则和一致性规则;
处理模块,用于若符合所述完整性规则且符合所述一致性规则,将所述第一目标数据导入所述Hive中。
可选的,所述数据处理装置基于SQL语句,在所述同步模块用于将从数据库中抽取出的目标数据同步至Hive创建的临时表中之前,所述数据处理装置还包括:
封装模块,用于对所述SQL语句中用于表示抽取操作的目标SQL语句进行封装。
可选的,所述判断模块在用于判断所述第一目标数据是否符合所述完整性规则时,具体用于以下至少一种:
判断所述第一目标数据的总行数与所述目标表中的第二目标数据的总行数是否相同,若相同,则所述第一目标数据符合所述完整性规则;
判断所述第一目标数据的每一行所包括的每一个第一预设字段是否为空,若各所述第一预设字段均不为空,则所述第一目标数据符合所述完整性规则。
可选的,针对所述第一目标数据的每一行所包括的每一个第二预设字段,所述判断模块在用于判断所述第一目标数据是否符合所述一致性规则时,具体用于:
当该第二预设字段包括数值时,判断所述数值是否位于预设范围内,以及判断所述数值与第三预设字段包括的数值是否相同,若所述数值位于所述预设范围内且所述数值与所述第三预设字段包括的数值相同,则所述第一目标数据符合所述一致性规则,其中,所述第三预设字段在所述目标表中的位置与该第二预设字段在所述临时表中的位置相同;
当该第二预设字段包括日期时,判断所述日期的格式与所述第三预设字段包括的日期的格式是否相同,以及判断所述日期所指示的时间点与所述第三预设字段包括的日期所指示的时间点是否相同,若所述日期的格式与所述第三预设字段包括的日期的格式相同且所述日期所指示的时间点与所述第三预设字段包括的日期所指示的时间点相同,则所述第一目标数据符合所述一致性规则。
可选的,若所述第一目标数据不符合所述完整性规则或者所述一致性规则,所述数据处理装置还包括:
记录模块,用于对所述目标表的表名、所述目标表中的目标数据的总数据量、所述第一目标数据的总数据量进行记录,得到记录日志;
添加模块,用于为所述记录日志添加标签,其中,所述标签包括当前时间。
可选的,若所述第一目标数据不符合所述完整性规则或者所述一致性规则,所述数据处理装置还包括:
生成模块,用于生成用于表示数据处理失败的提示信息;
推送模块,用于对所述提示信息进行推送。
可选的,若所述第一目标数据不符合所述完整性规则或者所述一致性规则,所述数据处理装置还包括:
执行模块,用于重复执行步骤S1至步骤S2,直至达到预设的最大迭代次数或者所述第一目标数据符合所述完整性规则且符合所述一致性规则,其中,所述步骤S1为:将从数据库中抽取出的目标数据同步至Hive创建的临时表中,所述步骤S2为:判断所述临时表中的第一目标数据是否符合为所述第一目标数据预设的完整性规则和一致性规则。
第三方面,本申请实施例提供了一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面中任一所述的数据处理方法的步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述第一方面中任一所述的数据处理方法的步骤。
本申请的实施例提供的技术方案可以包括以下有益效果:
本申请实施例提供的数据处理方法,通过Hive创建的临时表将从数据库中抽取出的用户需要使用的目标数据导入到Hive中,在此过程中,Hive创建的临时表所支持的数据类型与数据库所支持的数据类型相同,所以目标数据导入Hive的过程不需要进行数据转换,且该过程不需要本地设备的参与,有利于简化目标数据导入Hive的过程,从而有利于提高目标数据导入Hive的效率。此外,本申请在将目标数据同步到临时表后,对临时表中的目标数据进行检验,即:判断该目标数据是否符合预设的完整性规则和一致性规则,若符合完整性规则且符合一致性规则,说明该目标数据无误,此时将该目标数据导入Hive中,能够保证导入到Hive中的目标数据是正确无误的。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例一所提供的一种数据处理方法的流程图;
图2示出了本申请实施例一所提供的一种目标数据的同步示例图;
图3示出了本申请实施例二所提供的一种数据处理装置的结构示意图;
图4示出了本申请实施例三所提供的一种计算机设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
现有技术中,需要先通过Hive所在的本地设备将数据库中的目标数据存储在该本地设备的文本文件中,再将文本文件中的目标数据导入Hive中,在上述过程中,由于数据库支持的数据类型与本地的文本文件所支持的数据类型不同,且Hive支持的数据类型也与本地的文本文件所支持的数据类型不同,所以在将目标数据导入本地的文本文件时,需要进行一次数据转换,且在将文本文件中的目标数据导入Hive时,也需要进行一次数据转换;该方式导致目标数据导入Hive的过程较复杂,从而使得目标数据的导入效率较低。
基于此,本申请实施例提供了一种数据处理方法、装置、设备及存储介质,下面通过实施例进行描述。
实施例一
图1示出了本申请实施例一所提供的一种数据处理方法的流程图,如图1所示,该数据处理方法可以通过以下步骤实现:
步骤S101:将从数据库中抽取出的目标数据同步至Hive创建的临时表中,其中,所述临时表的表结构与所述数据库中存储所述目标数据的目标表的表结构相同。
具体的,上述数据库包括至少一个种类的数据,不同种类的数据存储在不同的表中,所以数据库包括至少一个表,不同的表用于存储不同种类的数据,比如:存储个人信息的表、存储操作日志的表和存储应用数据的表等等。目标数据指的是用户指定的需要从数据库中抽取的数据,数据库中存储该目标数据的表为目标表,上述临时表为Hive通过Spark(计算引擎)创建的用于临时存储抽取出的目标数据的表,其中,该临时表的表结构与上述目标表的表结构相同,以使Hive在通过Spark抽取出目标表中目标数据后,可以将该目标数据同步至临时表,同时,为了分辨临时表中存储的目标数据,该临时表的名称可以与上述目标表的名称相同。
举例说明,图2示出了本申请实施例一所提供的一种目标数据的同步示例图,如图2所示,在数据库中的目标表201中,包括该目标表的名称,即:客户信息表,除了目标表201的名称外,还包括五个字段(列),分别为序号、姓名、性别、年龄和级别,针对该目标表201中存储的每一个客户的客户信息,各字段对应的具体信息是不同的,即:当序号为1时:姓名为A,性别为女,年龄为20,级别为P1;当序号为2时:姓名为B,性别为男,年龄为39,级别为P3;当序号为3时:姓名为C,性别为男,年龄为28,级别为P1;当序号为4时:姓名为D,性别为男,年龄为37,级别为P2。对该目标表201进行全量抽取并将抽取出的数据同步到临时表202中,同步后的临时表202包括该临时表202的名称,即:客户信息表,此外,还包括五个字段(列),分别为序号、姓名、性别、年龄和级别,其中,该临时表202中存储的每一个客户信息与上述目标表201中存储的客户信息一致,即:当序号为1时:姓名为A,性别为女,年龄为20,级别为P1;当序号为2时:姓名为B,性别为男,年龄为39,级别为P3;当序号为3时:姓名为C,性别为男,年龄为28,级别为P1;当序号为4时:姓名为D,性别为男,年龄为37,级别为P2。
需要说明的是,上述抽取包括全量抽取和增量抽取,当上述抽取为全量抽取是,第一目标数据包括目标表中存储的全部数据;当上述抽取为增量抽取时,第一目标数据包括目标表中新增的全部数据。
需要再次说明的是,可以按照预设时间间隔对上述数据库中的数据进行抽取。
步骤S102:判断所述临时表中的第一目标数据是否符合为所述第一目标数据预设的完整性规则和一致性规则。
具体的,在将目标数据同步到临时表中后,得到临时表中的第一目标数据,为了确定该同步是否成功,需要确定同步后的临时表中的第一目标数据是否同步完整,即:判断该第一目标数据是否符合预设的完整性规则;以及确定该第一目标数据与目标表中的目标数据是一致,即:判断该第一目标数据是否符合预设的一致性规则。
步骤S103:若符合所述完整性规则且符合所述一致性规则,将所述第一目标数据导入所述Hive中。
具体的,若该第一目标数据既符合完整性规则,又符合一致性规则,说明目标数据同步成功,该临时表中的第一目标数据是完整且正确的,所以可以将该第一目标数据导入Hive中。
需要说明的是,由于该临时表是由Hive通过Spark创建的,Hive可以通过创建该临时表确定目标数据中的列分隔符和行分隔符,从而可以对该目标数据进行后续解析处理操作;此外,在将第一目标数据从临时表中导入Hive中时,只需要将该目标数据移动到Hive中该临时表所在的目录中即可。
图一提供的数据处理方法,通过Hive创建的临时表将从数据库中抽取出的用户需要使用的目标数据导入到Hive中,在此过程中,Hive创建的临时表所支持的数据类型与数据库所支持的数据类型相同,所以目标数据导入Hive的过程不需要进行数据转换,且该过程不需要本地设备的参与,有利于简化目标数据导入Hive的过程,从而有利于提高目标数据导入Hive的效率。此外,本申请在将目标数据同步到临时表后,对临时表中的目标数据进行检验,即:判断该目标数据是否符合预设的完整性规则和一致性规则,若符合完整性规则且符合一致性规则,说明该目标数据无误,此时将该目标数据导入Hive中,能够保证导入到Hive中的目标数据是正确无误的。
在另一种可行的实施方案中,在执行上述步骤S101前,上述数据处理方法还包括:确定目标表的名称与表结构,并在通过Spark的JDBC(Java DataBase Connectivity,java数据库连接)接口连接数据后,通过上述Spark创建上述临时表。
在另一种可行的实施方案中,在执行上述步骤S103后,上述数据处理方法还包括:上述Hive通过Spark对该Hive中导入的第一目标数据进行转换,并将转换后得到的数据导入目标数据管理系统中,以供该目标数据管理系统使用。需要说明的是,该目标数据管理系统可以根据实际情况进行设定,比如:RdbMS(Relational Database Management System,关系数据库管理系统),有关具体的目标数据管理系统,在此不做具体限定。
在一种可行的实施方案中,所述数据处理方法基于SQL语句,在执行上述步骤S101之前,所述数据处理方法还包括:对所述SQL语句中用于表示抽取操作的目标SQL语句进行封装。
具体的,上述数据处理方法是由Hive在Spark工具上使用SQL(Structured QueryLanguage,结构化查询语言)语句实现的,该SQL语句包括用于表示执行操作的SQL语句和用于表示操作对象的SQL语句,其中,上述执行操作指的是ETL(Extract-Transform-Load,数据仓库技术),所以上述用于表示执行操作的SQL语句包括用于表示抽取操作的SQL语句、用于表示转换操作的SQL语句和用于表示加载操作的SQL语句;若上述执行操作为抽取操作,上述操作对象为抽取对象(即:数据库中存储不同种类的数据的表),上述用于表示抽取对象的SQL语句包括该抽取对象的相关参数(比如:需要抽取的表的名称、表中需要抽取的数据字段以及抽取的该数据字段需要满足的预设条件)。
由于数据库中不同的表存储不同种类的数据,使得每个表(抽取对象)的相关参数是不同的,但Hive对每个表的抽取步骤相同,为了提高数据抽取的灵活度和效率,对SQL语句中用于表示抽取操作的目标SQL语句进行封装,使得在对目标表中的目标数据进行抽取时,只需要结合封装后的目标SQL语句和该目标表的相关参数,就可以根据结合后的SQL语句实现对该目标表中的目标数据的抽取操作。
在一种可行的实施方案中,在执行上述步骤S102中判断所述第一目标数据是否符合所述完整性规则时,可以通过以下至少一种方式实现:
方式一:判断所述第一目标数据的总行数与所述目标表中的第二目标数据的总行数是否相同,若相同,则所述第一目标数据符合所述完整性规则。
具体的,当上述抽取为全量抽取时,该第一目标数据为抽取出的目标表中的全部数据,第二目标数据为目标表中的全部数据;若第一目标数据符合完整性规则,则该第一目标数据需要包括目标表中存储的全部数据,由于上述临时表的表结构与目标表的表结构相同,所以可以判断第一目标数据在上述临时表中所占的总行数与第二目标数据在目标表中所占的总行数是否相同,若相同,则说明该第一目标数据包括目标表中存储的全部数据,即:第一目标数据符合完整性规则。
当上述抽取为增量抽取时,该第一目标数据为抽取出的目标表中新增的数据,第二目标数据为该目标表中新增的数据;若第一目标数据符合完整性规则,则该第一目标数据需要包括目标表中新增的数据,由于上述临时表的表结构与目标表的表结构相同,所以可以判断第一目标数据在上述临时表中所占的总行数与第二目标数据在目标表中所占的总行数是否相同,若相同,则说明该第一目标数据包括目标表中新增的数据,即:第一目标数据符合完整性规则。
方式二:判断所述第一目标数据的每一行所包括的每一个第一预设字段是否为空,若各所述第一预设字段均不为空,则所述第一目标数据符合所述完整性规则。
具体的,第一预设字段指的是第一目标数据中预设类型的内容信息,该第一预设字段是用户根据需要抽取的目标表进行设定的,比如:第一目标数据包括若干客户的个人信息,第一预设字段包括姓名和性别;由于第一目标数据在临时表中占有至少一行,在每一行中,均包括预设类型的内容信息,即:每一行均包括第一预设字段,若各行的第一预设字段均不为空,则说明临时表中的该第一目标数据是完整的,符合完整性规则。
举例说明,如图2所示,临时表202中的第一目标数据为各客户的个人信息,如果第一预设字段包括姓名和级别,在该临时表202的每一行中,表示姓名和级别的信息均不为空,该临时表202中的第一目标数据符合完整性规则。
在一种可行的实施方案中,针对所述第一目标数据的每一行所包括的每一个第二预设字段,在执行上述步骤S102中判断所述第一目标数据是否符合所述一致性规则时,包括以下至少一种情况:
情况一:当该第二预设字段包括数值时,判断所述数值是否位于预设范围内,以及判断所述数值与第三预设字段包括的数值是否相同,若所述数值位于所述预设范围内且所述数值与所述第三预设字段包括的数值相同,则所述第一目标数据符合所述一致性规则,其中,所述第三预设字段在所述目标表中的位置与该第二预设字段在所述临时表中的位置相同;
具体的,第二预设字段也指的是第一目标数据中预设类型的内容信息,所以针对第二预设字段的说明可以参见上述对第一预设字段的说明,在此不再进行赘述。需要说明的是,第二预设字段与第一预设字段可以相同,也可以不同。
针对具体内容时,该第二预设字段可以是数值,当该第二预设字段为数值时,若第一目标数据符合一致性规则,需要该数值位于预设范围内且该数值与第三预设字段包括的数值是相同的。
针对第三预设字段,由于临时表的表结构与目标表的表结构相同,所以该第三预设字段在目标表中的位置与该第二预设字段在临时表中的位置相同,比如图2中,若该第二预设字段为临时表202中第5行第4列的年龄数值,即:28,则第三预设字段为目标表201中第5行第4列的年龄数值,即:28。
需要说明的是,当该数值为小数时,若该小数与第三预设字段包括的小数相同,则该小数的精度(小数点之后的位数)与第三预设字段包括的小数的精度相同。
情况二:当该第二预设字段包括日期时,判断所述日期的格式与所述第三预设字段包括的日期的格式是否相同,以及判断所述日期所指示的时间点与所述第三预设字段包括的日期所指示的时间点是否相同,若所述日期的格式与所述第三预设字段包括的日期的格式相同且所述日期所指示的时间点与所述第三预设字段包括的日期所指示的时间点相同,则所述第一目标数据符合所述一致性规则。
具体的,针对具体内容时,该第二预设字段可以是日期,当该第二预设字段为日期时,若第一目标数据符合一致性规则,需要该日期的格式与第三预设字段包括的日期的格式相同,且该日期所指示的时间点与该第三预设字段包括的日期所指示的时间点相同。比如:第二预设字段包括的日期为2021年10月12日18:00,第三预设字段包括的日期为2021年10月12日18:00,这两个日期的格式相同,以及这两个日期所指示的时间点相同。
在另一种可行的实施方案中,在判断第一目标数据是否符合一致性规则前,也可以在第一目标数据中随机筛选部分第一目标数据,针对筛选出的部分第一目标数据,判断该部分第一目标数据中包括的每一个第二预设字段是否满足上述情况一或者满足上述情况二,若各第二预设字段均满足情况一和情况二中的至少一种情况,则说明上述第一目标数据符合一致性规则。
在另一种可行的实施方案中,在判断第一目标数据是否符合一致性规则前,针对临时表中的每一个第二预设字段,可以根据该第二预设字段的标识信息在目标表中确定第三预设字段,其中,该标识信息包括位置信息、主键信息、满足的预设条件信息等信息。
在一种可行的实施方案中,若所述第一目标数据不符合所述完整性规则或者所述一致性规则,所述数据处理方法还包括:
对所述目标表的表名、所述目标表中的目标数据的总数据量、所述第一目标数据的总数据量进行记录,得到记录日志。
为所述记录日志添加标签,其中,所述标签包括当前时间。
具体的,第一目标数据不符合完整性规则或者一致性规则包括:该第一目标数据不符合完整性规则但符合一致性规则、该第一目标数据不符合一致性规则但符合完整性规则、该第一目标数据既不符合完整性规则也不符合一致性规则。
当该第一目标数据不符合完整性规则或者一致性规则时,为了便于用户跟踪和查询原因,需要记录第一目标数据不符合完整性规则或者一致性规则的事件,具体记录:目标表的表名、该目标表中需要抽取的目标数据的总数据量以及临时表中的第一目标数据的总数据量,并将记录该事件文件作为记录日志;为了辨别该记录日志,需要为该记录日志添加便于识别的标签,该标签可以包括当前时间,也可以包括序号,还可以包括文本说明信息,有关标签的具体内容,可以根据实际情况进行设定,在此不做具体限定。
需要说明的是,总数据量包括目标数据所占的行数和每一行包括的字段数量等信息。
需要再次说明的是,该记录日志的日志级别可以根据实际情况进行设定,比如可以是warn(警告)级别,也可以是error(错误)级别,有关具体的日志级别,在此不做具体限定。
在一种可行的实施方案中,若所述第一目标数据不符合所述完整性规则或者所述一致性规则,所述数据处理方法还包括:
生成用于表示数据处理失败的提示信息;
对所述提示信息进行推送。
具体的,当第一目标数据不符合完整性规则或者一致性规则时,生成提示信息,并对该提示信息进行推送,以提醒用户进行相关处理操作。
需要说明的是,该提示信息的内容可以根据实际情况进行设定,比如该提示信息的内容可以是“目标表抽取失败”,也可以是包括目标表的表名、目标表中的目标数据的总数据量和第一目标数据的总数据量的记录日志,有关具体的提示信息的内容,在此不做具体限定。
需要再次说明的是,上述提示信息的推送方式可以根据实际情况进行设定,比如可以是在控制平台的界面上进行显示,也可以是通过邮件或者短信的方式发送到用户的移动客户端上,有关具体的推送方式,在此不做具体限定。
在一种可行的实施方案中,若所述第一目标数据不符合所述完整性规则或者所述一致性规则,所述数据处理方法还包括:
重复执行所述步骤S101至所述步骤S102,直至达到预设的最大迭代次数或者所述第一目标数据符合所述完整性规则且符合所述一致性规则。
具体的,当第一目标数据不符合完整性规则或者一致性规则时,可以重试预设次数,即:重复执行上述步骤S101至步骤S102,直至到达预设的最大迭代次数或者第一目标数据符合所述完整性规则且符合所述一致性规则,其中,最大迭代次数指的是预设的重试次数。
实施例二
图3示出了本申请实施例二所提供的一种数据处理装置的结构示意图,如图3所示,所述数据处理装置包括:
同步模块301,用于将从数据库中抽取出的目标数据同步至Hive创建的临时表中,其中,所述临时表的表结构与所述数据库中存储所述目标数据的目标表的表结构相同;
判断模块302,用于判断所述临时表中的第一目标数据是否符合为所述第一目标数据预设的完整性规则和一致性规则;
处理模块303,用于若符合所述完整性规则且符合所述一致性规则,将所述第一目标数据导入所述Hive中。
在一种可行的实施方案中,所述数据处理装置基于SQL语句,在所述同步模块301用于将从数据库中抽取出的目标数据同步至Hive创建的临时表中之前,所述数据处理装置还包括:
封装模块,用于对所述SQL语句中用于表示抽取操作的目标SQL语句进行封装。
在一种可行的实施方案中,所述判断模块302在用于判断所述第一目标数据是否符合所述完整性规则时,具体用于以下至少一种:
判断所述第一目标数据的总行数与所述目标表中的第二目标数据的总行数是否相同,若相同,则所述第一目标数据符合所述完整性规则;
判断所述第一目标数据的每一行所包括的每一个第一预设字段是否为空,若各所述第一预设字段均不为空,则所述第一目标数据符合所述完整性规则。
在一种可行的实施方案中,针对所述第一目标数据的每一行所包括的每一个第二预设字段,所述判断模块302在用于判断所述第一目标数据是否符合所述一致性规则时,具体用于:
当该第二预设字段包括数值时,判断所述数值是否位于预设范围内,以及判断所述数值与第三预设字段包括的数值是否相同,若所述数值位于所述预设范围内且所述数值与所述第三预设字段包括的数值相同,则所述第一目标数据符合所述一致性规则,其中,所述第三预设字段在所述目标表中的位置与该第二预设字段在所述临时表中的位置相同;
当该第二预设字段包括日期时,判断所述日期的格式与所述第三预设字段包括的日期的格式是否相同,以及判断所述日期所指示的时间点与所述第三预设字段包括的日期所指示的时间点是否相同,若所述日期的格式与所述第三预设字段包括的日期的格式相同且所述日期所指示的时间点与所述第三预设字段包括的日期所指示的时间点相同,则所述第一目标数据符合所述一致性规则。
在一种可行的实施方案中,若所述第一目标数据不符合所述完整性规则或者所述一致性规则,所述数据处理装置还包括:
记录模块,用于对所述目标表的表名、所述目标表中的目标数据的总数据量、所述第一目标数据的总数据量进行记录,得到记录日志;
添加模块,用于为所述记录日志添加标签,其中,所述标签包括当前时间。
在一种可行的实施方案中,若所述第一目标数据不符合所述完整性规则或者所述一致性规则,所述数据处理装置还包括:
生成模块,用于生成用于表示数据处理失败的提示信息;
推送模块,用于对所述提示信息进行推送。
在一种可行的实施方案中,若所述第一目标数据不符合所述完整性规则或者所述一致性规则,所述数据处理装置还包括:
执行模块,用于重复执行步骤S101至步骤S102,直至达到预设的最大迭代次数或者所述第一目标数据符合所述完整性规则且符合所述一致性规则,其中,所述步骤S101为:将从数据库中抽取出的目标数据同步至Hive创建的临时表中,所述步骤S102为:判断所述临时表中的第一目标数据是否符合为所述第一目标数据预设的完整性规则和一致性规则。
本申请实施例所提供的装置可以为设备上的特定硬件或者安装于设备上的软件或固件等。本申请实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,前述描述的系统、装置和单元的具体工作过程,均可以参考上述方法实施例中的对应过程,在此不再赘述。
实施例三
本申请实施例还提供了一种计算机设备400,图4示出了本申请实施例三所提供的一种计算机设备的结构示意图,如图4所示,该设备包括存储器401、处理器402及存储在该存储器401上并可在该处理器402上运行的计算机程序,其中,上述存储器401和上述处理器402通过总线进行通信连接,上述处理器402执行上述计算机程序时实现上述数据处理方法。
具体地,上述存储器401和处理器402能够为通用的存储器和处理器,这里不做具体限定,当处理器402运行存储器401存储的计算机程序时,能够执行上述数据处理方法,解决了现有技术中目标数据导入Hive的过程较复杂,使得目标数据的导入Hive的效率较低的问题。
实施例四
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述数据处理方法的步骤。
具体地,该存储介质能够为通用的存储介质,如移动磁盘、硬盘等,该存储介质上的计算机程序被运行时,能够执行上述数据处理方法,解决了现有技术中目标数据导入Hive的过程较复杂,使得目标数据的导入Hive的效率较低的问题。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围。都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种数据处理方法,其特征在于,所述数据处理方法包括以下步骤:
步骤S1:将从数据库中抽取出的目标数据同步至Hive创建的临时表中,其中,所述临时表的表结构与所述数据库中存储所述目标数据的目标表的表结构相同;
步骤S2:判断所述临时表中的第一目标数据是否符合为所述第一目标数据预设的完整性规则和一致性规则;
步骤S3:若符合所述完整性规则且符合所述一致性规则,将所述第一目标数据导入所述Hive中。
2.如权利要求1所述的数据处理方法,其特征在于,所述数据处理方法基于SQL语句,在所述步骤S1之前,所述数据处理方法还包括:
对所述SQL语句中用于表示抽取操作的目标SQL语句进行封装。
3.如权利要求1所述的数据处理方法,其特征在于,判断所述第一目标数据是否符合所述完整性规则,包括以下至少一种:
判断所述第一目标数据的总行数与所述目标表中的第二目标数据的总行数是否相同,若相同,则所述第一目标数据符合所述完整性规则;
判断所述第一目标数据的每一行所包括的每一个第一预设字段是否为空,若各所述第一预设字段均不为空,则所述第一目标数据符合所述完整性规则。
4.如权利要求1所述的数据处理方法,其特征在于,针对所述第一目标数据的每一行所包括的每一个第二预设字段,判断所述第一目标数据是否符合所述一致性规则,包括:
当该第二预设字段包括数值时,判断所述数值是否位于预设范围内,以及判断所述数值与第三预设字段包括的数值是否相同,若所述数值位于所述预设范围内且所述数值与所述第三预设字段包括的数值相同,则所述第一目标数据符合所述一致性规则,其中,所述第三预设字段在所述目标表中的位置与该第二预设字段在所述临时表中的位置相同;
当该第二预设字段包括日期时,判断所述日期的格式与所述第三预设字段包括的日期的格式是否相同,以及判断所述日期所指示的时间点与所述第三预设字段包括的日期所指示的时间点是否相同,若所述日期的格式与所述第三预设字段包括的日期的格式相同且所述日期所指示的时间点与所述第三预设字段包括的日期所指示的时间点相同,则所述第一目标数据符合所述一致性规则。
5.如权利要求1所述的数据处理方法,其特征在于,若所述第一目标数据不符合所述完整性规则或者所述一致性规则,所述数据处理方法还包括:
对所述目标表的表名、所述目标表中的目标数据的总数据量、所述第一目标数据的总数据量进行记录,得到记录日志;
为所述记录日志添加标签,其中,所述标签包括当前时间。
6.如权利要求1所述的数据处理方法,其特征在于,若所述第一目标数据不符合所述完整性规则或者所述一致性规则,所述数据处理方法还包括:
生成用于表示数据处理失败的提示信息;
对所述提示信息进行推送。
7.如权利要求1所述的数据处理方法,其特征在于,若所述第一目标数据不符合所述完整性规则或者所述一致性规则,所述数据处理方法还包括:
重复执行所述步骤S1至所述步骤S2,直至达到预设的最大迭代次数或者所述第一目标数据符合所述完整性规则且符合所述一致性规则。
8.一种数据处理装置,其特征在于,所述数据处理装置包括:
同步模块,用于将从数据库中抽取出的目标数据同步至Hive创建的临时表中,其中,所述临时表的表结构与所述数据库中存储所述目标数据的目标表的表结构相同;
判断模块,用于判断所述临时表中的第一目标数据是否符合为所述第一目标数据预设的完整性规则和一致性规则;
处理模块,用于若符合所述完整性规则且符合所述一致性规则,将所述第一目标数据导入所述Hive中。
9.一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1-7中任一项所述的数据处理方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器运行时执行上述权利要求1-7中任一项所述的数据处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111355370.3A CN116136859A (zh) | 2021-11-16 | 2021-11-16 | 一种数据处理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111355370.3A CN116136859A (zh) | 2021-11-16 | 2021-11-16 | 一种数据处理方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116136859A true CN116136859A (zh) | 2023-05-19 |
Family
ID=86332600
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111355370.3A Pending CN116136859A (zh) | 2021-11-16 | 2021-11-16 | 一种数据处理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116136859A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117971984A (zh) * | 2024-03-29 | 2024-05-03 | 天津南大通用数据技术股份有限公司 | 分布式数据库集群间表数据的同步方法及系统 |
-
2021
- 2021-11-16 CN CN202111355370.3A patent/CN116136859A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117971984A (zh) * | 2024-03-29 | 2024-05-03 | 天津南大通用数据技术股份有限公司 | 分布式数据库集群间表数据的同步方法及系统 |
CN117971984B (zh) * | 2024-03-29 | 2024-06-21 | 天津南大通用数据技术股份有限公司 | 分布式数据库集群间表数据的同步方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102426609B (zh) | 一种基于MapReduce编程架构的索引生成方法和装置 | |
CN110472068B (zh) | 基于异构分布式知识图谱的大数据处理方法、设备及介质 | |
US8924365B2 (en) | System and method for range search over distributive storage systems | |
CN106570086B (zh) | 数据迁移系统及数据迁移方法 | |
US10402402B2 (en) | Method, device, server and storage apparatus of reviewing SQL | |
KR101999409B1 (ko) | 예시에 의한 데이터 포매팅 기법 | |
CN107515874B (zh) | 一种分布式非关系型数据库中同步增量数据的方法与设备 | |
CN101650742B (zh) | 一种对英文检索的检索条件进行提示的系统及方法 | |
CN104899295B (zh) | 一种异构数据源数据关联分析方法 | |
CN111324610A (zh) | 一种数据同步的方法及装置 | |
CN110489475B (zh) | 一种多源异构数据处理方法、系统及相关装置 | |
CN110969517B (zh) | 一种招投标生命周期关联方法、系统、存储介质及计算机设备 | |
CN116136859A (zh) | 一种数据处理方法、装置、设备及存储介质 | |
Huang et al. | R-HBase: A multi-dimensional indexing framework for cloud computing environment | |
CN111625596B (zh) | 新能源实时消纳调度的多源数据同步共享方法及系统 | |
CN114036914A (zh) | 一种表格数据处理方法、装置、电子设备及存储介质 | |
CN116701355A (zh) | 数据视图处理方法、装置、计算机设备及可读存储介质 | |
CN115544975B (zh) | 一种日志格式转换方法及设备 | |
CN114840497B (zh) | 一种数据库的行迁移预处理方法、系统、装置及存储介质 | |
CN114625751A (zh) | 基于区块链的数据溯源查询方法及装置 | |
CN113868138A (zh) | 测试数据的获取方法、系统、设备及存储介质 | |
CN111949728A (zh) | 一种动态数据差异比对方法与系统 | |
WO2020101470A1 (en) | System and method for tree based graph indexing and query processing | |
CN111813773B (zh) | 一种电网抄表数据存储方法、上传方法、装置和存储装置 | |
CN113486113B (zh) | 一种基于Kettle的增量同步数据的方法及终端 |
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 |