CN108958959A - 检测hive数据表的方法和装置 - Google Patents

检测hive数据表的方法和装置 Download PDF

Info

Publication number
CN108958959A
CN108958959A CN201710352699.1A CN201710352699A CN108958959A CN 108958959 A CN108958959 A CN 108958959A CN 201710352699 A CN201710352699 A CN 201710352699A CN 108958959 A CN108958959 A CN 108958959A
Authority
CN
China
Prior art keywords
data
file
hive tables
record
hive
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
CN201710352699.1A
Other languages
English (en)
Other versions
CN108958959B (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.)
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information 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 Beijing Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201710352699.1A priority Critical patent/CN108958959B/zh
Publication of CN108958959A publication Critical patent/CN108958959A/zh
Application granted granted Critical
Publication of CN108958959B publication Critical patent/CN108958959B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例提供一种检测hive数据表的方法和装置,涉及计算机技术领域,能够快速准确地对hive数据表进行数据唯一性检测。本发明实施例的检测hive数据表的方法包括:针对被测hive数据表建立配置文件,配置文件的配置信息包括表名和主键;构建用于统计hive数据表中主键出现次数的data文件,data文件为键值对型,以hive数据表的数据记录的主键作为键,并且以hive数据表的主键出现次数作为值;在监测到有新增数据记录插入hive数据表的情况下,更新data文件;在data文件存在大于1的值的情况下,发出用于提醒数据重复的第一报警消息。

Description

检测hive数据表的方法和装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种检测hive数据表的方法和装置。
背景技术
在大数据时代下数据分析和数据应用已经是社会中很常见的一件事情了。数据分析和数据应用离不开大数据开发,现在大数据开发用的是hadoop架构,数据存储在分布式文件系统HDFS(Hadoop Distributed File System)上,日常的数据开发是通过hive将sql转换成MapReduce或者直接用MapReduce进行数据处理,与在关系型数据库上开发存在着很大的差异。Hive采用了sql的查询语句HQL,HQL与数据库sql最大的区别就是数据库sql支持数据更新,HQL却不支持,也就是HQL无法对数据进行update(更新)、delete(删除),只能通过insert(插入)变相实现update、delete。这个变相的实现过程容易导致数据出现异常,所以检测数据准确性是一项很重要的工作。数据准确性需要考虑以下几方面:数据唯一性;数据记录条数;数据值正确性。而如何快速高效检测出数据准确性是每个数据工程师都很关心的问题。
目前确定数据准确性常用的一种方法是通过编写HQL语句,根据HQL执行后返回的结果判断数据是否准确。关系型数据库可以通过自身特有的一些表属性可设置性,从另一个方面保证数据的准确性。
(1)数据唯一性
Hive无法创建主键,不能通过插入自动判断是否主键唯一来保证数据唯一性。只能编写HQL语句,结合sql语法中的group by和having用法,可以判断数据是否唯一。
(2)数据记录条数
编写HQL语句,用sql语法中的count进行数据条数汇总,主要用于判断新增数据条数是否为0,进而判断数据程序插入的数据为空。
(3)数据值正确性
编写HQL语句,用sql语法中的各种函数(比如count)结合日常的业务经验以及历史数据值的大小,综合判断当日新增数据值是否正确。
但是现有技术也具有一些缺点,具体体现在以下三个方面。
(1)效率低
现有技术主要就是通过HQL来实现,hive会将sql语句转换为MapReduce任务进行运行。MapReduce的优势在于处理复杂的大数据量的批量计算,对于简单的逻辑处理是没有优势比。MapReduce的执行框架是map->shuffle->reduce->map->shuffle->reduce…的模型,每次执行计算都需要花时间去计算sql会产生多少个map数,如果一个sql查询被编译成多轮的MapReduce,则会有很多中间结果,需要经过多轮先计算map数再执行计算。而数据准确性检测其实是一个简单逻辑sql处理,用MapReduce处理依然要先计算该sql会产生多少个map数,然后再进行真正意义上的计算,这样多花费时间再计算map数效率就很低了。
(2)存在滞后
现在这种通过hive sql的方式判断数据准确性都是等到数据程序执行完成,结果已经插入目标表以后才能进行判断,属于事后性监控,相当于错误已经发生了才知道已经错了,不能在程序的执行过程中实时监控反馈信息。
(3)数据文件导致的错误无法定位
有时候会发现插入的数据是正确的,但是查目标表的结果却是错误的。这种往往是因为存储了一些错误的数据文件导致最终表结果错误。而单纯的通过hive sql的方式查问题,是根本查不到的。
发明内容
有鉴于此,本发明实施例提供一种检测hive数据表的方法和装置,能够解决上述现有技术中存在的部分技术问题,能够快速准确地对hive数据表进行数据唯一性检测。
为实现上述目的,根据本发明的一个方面,提供了一种检测hive数据表的方法。
本发明实施例的一种检测hive数据表的方法包括:针对被测hive数据表建立配置文件,所述配置文件的配置信息包括表名和主键;构建用于统计hive数据表中主键出现次数的data文件,所述data文件为键值对型,以hive数据表的数据记录的主键作为键,并且以所述hive数据表的主键出现次数作为值;在监测到有新增数据记录插入所述hive数据表的情况下,更新所述data文件;在所述data文件存在大于1的值的情况下,发出用于提醒数据重复的第一报警消息。
可选地,所述更新所述data文件的步骤包括:在所述data文件中不存在所述新增数据记录的主键的情况下,新增一条键等于所述新增数据记录的主键、值等于1的data文件记录;在所述data文件中存在所述新增数据记录的主键的情况下,则将所述新增数据记录的主键对应的原有的data文件记录的值加1。
可选地,所述配置文件的配置信息还包括是否覆盖标识位和时间变量,该方法还包括:确认所述是否覆盖标志位为肯定形态;根据所述配置文件中的hive数据表更新前对应的所述时间变量和hive数据表更新后对应的所述时间变量确定的更新前后时差;在所述更新前后时差大于预设时差阈值的情况下发出用于提醒时差异常的第二报警提示。
可选地,在所述确认所述是否覆盖标志位为肯定形态的步骤之后,还包括:获取hive数据表更新过程中的真实更新文件大小和真实更新记录条数;根据所述配置文件中的hive数据表更新前对应的所述时间变量和hive数据表更新后对应的所述时间变量确定扫描文件时间范围,然后获取所述扫描文件时间范围内的扫描文件大小和扫描记录条数;计算所述扫描文件大小与hive数据表真实更新文件大小的第一偏差比例,并且计算所述扫描记录条数与hive数据表真实更新记录条数的第二偏差比例;在所述第一偏差比例或第二偏差比例超过预设变差比例的情况下,发出用于提醒文件异常的第三报警提示。
为实现上述目的,根据本发明的另一方面,提供了一种检测hive数据表的装置。
本发明的一种检测hive数据表的装置包括:配置模块,用于针对被测hive数据表建立配置文件,所述配置文件的配置信息包括表名和主键;构建模块,用于构建用于统计hive数据表中主键出现次数的data文件,所述data文件为键值对型,以hive数据表的数据记录的主键作为键,并且以所述hive数据表的主键出现次数作为值;监测模块,用于在监测到有新增数据记录插入所述hive数据表的情况下,更新所述data文件;第一报警模块,用于在所述data文件存在大于1的值的情况下,发出用于提醒数据重复的第一报警消息。
可选地,所述监测模块还用于:在所述data文件中不存在所述新增数据记录的主键的情况下,新增一条键等于所述新增数据记录的主键、值等于1的data文件记录;在所述data文件中存在所述新增数据记录的主键的情况下,则将所述新增数据记录的主键对应的原有的data文件记录的值加1。
可选地,所述配置文件的配置信息还包括是否覆盖标识位和时间变量,该装置还包括:标志位逻辑模块,用于确认所述是否覆盖标志位为肯定形态;时差模块,用于根据所述配置文件中的hive数据表更新前对应的所述时间变量和hive数据表更新后对应的所述时间变量确定的更新前后时差;第二报警模块,用于在所述更新前后时差大于预设时差阈值的情况下发出用于提醒时差异常的第二报警提示。
可选地,还包括:参数获取模块,用于获取hive数据表更新过程中的真实更新文件大小和真实更新记录条数;扫描模块,用于根据所述配置文件中的hive数据表更新前对应的所述时间变量和hive数据表更新后对应的所述时间变量确定扫描文件时间范围,然后获取所述扫描文件时间范围内的扫描文件大小和扫描记录条数;偏差比例模块,用于计算所述扫描文件大小与hive数据表真实更新文件大小的第一偏差比例,并且计算所述扫描记录条数与hive数据表真实更新记录条数的第二偏差比例;第三报警模块,用于在所述第一偏差比例或第二偏差比例超过预设变差比例的情况下,发出用于提醒文件异常的第三报警提示。
为实现上述目的,根据本发明的再一方面,提供了一种检测hive数据表的电子设备。
本发明的一种检测hive数据表的电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明提出的检测hive数据表的方法。
为实现上述目的,根据本发明的再一方面,提供了一种计算机可读存储介质。
本发明的一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现本发明提出的检测hive数据表的方法。
根据本发明的技术方案,上述发明中的一个实施例具有如下优点或有益效果:采用key-value技术快速判断数据唯一性,能够解决现有技术中的检测滞后性的技术问题,提前完成新增数据唯一性检测,具有快捷方便等优点。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的检测hive数据表的方法的主要步骤的示意图;
图2是根据本发明实施例的检测hive数据表的方法的完整流程原理示意图;
图3是根据本发明实施例的检测hive数据表的装置的主要部分的示意图;
图4是根据本发明实施例的检测hive数据表的电子设备的主要部分的示意图。
图5是本发明实施例可以应用于其中的示例性系统架构图;
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
为使本领域技术人员更好地理解本发明,现对部分术语解释如下。
Hadoop:Hadoop是一个由Apache基金会所开发的分布式系统基础架构,该框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。
SQL:结构化查询语言(Structured Query Language),一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
图1是根据本发明实施例的检测hive数据表的方法的主要步骤的示意图。如图1所示,本发明实施例的检测hive数据表的方法可以包括步骤S101至步骤S104。
步骤S101:针对被测hive数据表建立配置文件,配置文件的配置信息包括表名和主键。
步骤S102:构建用于统计hive数据表中主键出现次数的data文件,data文件为键值对型,以hive数据表的数据记录的主键作为键,并且以hive数据表的主键出现次数作为值。
步骤S103:在监测到有新增数据记录插入hive数据表的情况下,更新data文件。
步骤S104:在data文件存在大于1的值的情况下,发出用于提醒数据重复的第一报警消息。
本发明实施例的检测hive数据表的方法为数据文件建立了data文件,在data文件中采用key-value技术快速判断数据唯一性,能够解决现有技术中的检测滞后性的技术问题,提前完成新增数据唯一性检测,具有快捷方便等优点。
根据本发明实施例的检测hive数据表的方法,上述步骤C中的“更新data文件”的步骤具体过程可以包括:(1)在data文件中不存在新增数据记录的主键的情况下,新增一条键等于新增数据记录的主键、值等于1的data文件记录;(2)在data文件中存在新增数据记录的主键的情况下,则将新增数据记录的主键对应的原有的data文件记录的值加1。
根据本发明实施例的检测hive数据表的方法,配置文件的配置信息还可以包括是否覆盖标识位和时间变量。该实施例的方法还可以包括如下步骤:确认是否覆盖标志位为肯定形态;根据配置文件中的hive数据表更新前对应的时间变量和hive数据表更新后对应的时间变量确定的更新前后时差;在更新前后时差大于预设时差阈值的情况下发出用于提醒时差异常的第二报警提示。该实施例的检测hive数据表的方法能够监控数据更新过程耗费时长是否正常。
根据本发明实施例的检测hive数据表的方法,在确认是否覆盖标志位为肯定形态的步骤之后,还包括:获取hive数据表更新过程中的真实更新文件大小和真实更新记录条数;根据配置文件中的hive数据表更新前对应的时间变量和hive数据表更新后对应的时间变量确定扫描文件时间范围,然后获取扫描文件时间范围内的扫描文件大小和扫描记录条数;计算扫描文件大小与hive数据表真实更新文件大小的第一偏差比例,并且计算扫描记录条数与hive数据表真实更新记录条数的第二偏差比例;在第一偏差比例或第二偏差比例超过预设变差比例的情况下,发出用于提醒文件异常的第三报警提示。该实施例的检测hive数据表的方法能够结合数据文件和数据之间进行对照,通过数据文件信息快速定位数据更新时间是否异常,解决了现有技术中hive sql这种检验方式的低效率的技术问题,同时也解决了之前hive sql检验方式不能发现数据文件错误的问题。
为了使本领域技术人员更好地理解本发明实施例的检测hive数据表的方法,下面列举一个具体实施例并且结合图2进行详细说明。图2是根据本发明实施例的检测hive数据表的方法的完整流程原理示意图。如图2所示,完整流程可以分为新增数据唯一性检测部分和数据准确性校验部分。
假设当前需要检测的hive表的表名为tableA,表格内容示例如下。该tableA中的数据在随着外界输入而不断地增加。
Columna Columnb Columnc
张三 数学 90
张三 语文 88
李四 数学 98
李四 语文 85
一、新增数据唯一性检测部分
该部分代替现有技术的MapReduce检测数据唯一性;减少MapReduce中间的计算环节,并且在执行的过程中边检测边执行程序,解决滞后性问题,从而提高效率。该装置包含以下阶段。
(1)配置阶段
输入动态参数,动态参数包括表名(即tableA)、主键(选“Columna”和“Columnb”这个两个字段共同作为主键)、是否覆盖标志位这三项。然后建立配置文件1。配置文件1中的配置信息包括:表名、主键、是否覆盖和时间变量这四项。例如:tableA、columna columnb、1、2016-05-01。需要说明的是,配置文件只是记录程序启动时输入的参数信息。
(2)构建阶段
构建一个键值对性的data文件,该data文件用于统计hive表中主键出现的次数。data文件的键(key)即主键(columna columnb),值(value)即主键对应的出现次数。
(3)计数阶段
当检测到有数据在插入到hive数据表的过程中,采用key-value的技术方式,每插入一条数据就生成一个key-value键值对插入到data文件中。如果没有相同的key,则新建一条关于该key的记录。如已有相同key则直接value加1。这种方式直接进入计算阶段,省去了MapReduce统计map数的时间。
例如:程序计算过程中,往tableA表插入数据的同时,将插入主键的数值抽取出来,比如此刻要插入colunma,columnb字段的值是张三、数学,那么就把张三,数学记录到data文件中,作为一个key,因为“张三数学”插入了1次,那么就对应的记下value为数字1。那么data文件中的格式就是“张三数学:1”,同理依次类推,如果发现“张三数学”又插入到“columna columnb”中,那么就在data文件中“张三数学:1”的基础上,修改value的数字,将1变成2,记录为“张三数学:2”。
(4)报警阶段
程序循环扫描data文件,一旦发现有value大于1的数据,程序退出,发出数据重复警告。不需要等到整个程序执行完了,才发现数据不唯一。
二、数据准确性校验装置
(1)文件信息扫描阶段
根据配置文件1中获取时间变量进而判断需要扫描的文件范围。获取的更新时间、大小、记录条数。根据时间变量,获取临近一段时间范围内的文件大小、记录条数。
通过hadoop linux命令获取文件信息的速度很快,性能远高于执行一个hivesql。不用按照MapReduce那一长串框架执行计算。
(2)校验阶段
从配置文件1获取是否覆盖标志位。如果需要覆盖,则开始判定文件更新时差、文件大小、文件记录数量是否异常。
首先判断每个文件更新时间的前后时差有多少。如果文件更新前后的时间变量的差值,也就是时差超过预设时差阈值(例如1分钟)则发出数据文件异常警告。如果文件时间无异常,再进一步将文件大小和记录条数与临近时间范围内的文件大小、记录条数做比对,差异超过预设比例阈值,发出数据异常警告。预设时差阈值和预设比例阈值可根据实际业务的发展趋势变化而定。程序执行完成立马就能得知数据的准确性。
图3是根据本发明实施例的检测hive数据表的装置的主要部分的示意图。如图所示,本发明实施例的检测hive数据表的装置300可以包括:配置模块301、构建模块302、监测模块303和第一报警模块304。
配置模块301用于针对被测hive数据表建立配置文件,配置文件的配置信息包括表名和主键。
构建模块302用于构建用于统计hive数据表中主键出现次数的data文件,data文件为键值对型,以hive数据表的数据记录的主键作为键,并且以hive数据表的主键出现次数作为值。
监测模块303用于在监测到有新增数据记录插入hive数据表的情况下,更新data文件。
第一报警模块304用于在data文件存在大于1的值的情况下,发出用于提醒数据重复的第一报警消息。
本发明实施例的检测hive数据表的装置为数据文件建立了data文件,在data文件中采用key-value技术快速判断数据唯一性,能够解决现有技术中的检测滞后性的技术问题,提前完成新增数据唯一性检测,具有快捷方便等优点。
根据本发明实施例的检测hive数据表的装置,监测模块302还可以用于:在data文件中不存在新增数据记录的主键的情况下,新增一条键等于新增数据记录的主键、值等于1的data文件记录;在data文件中存在新增数据记录的主键的情况下,则将新增数据记录的主键对应的原有的data文件记录的值加1。
根据本发明实施例的检测hive数据表的装置,配置文件的配置信息还包括是否覆盖标识位和时间变量,该装置还可以包括:标志位逻辑模块、时差模块和第二报警模块。标志位逻辑模块用于确认是否覆盖标志位为肯定形态。时差模块用于根据配置文件中的hive数据表更新前对应的时间变量和hive数据表更新后对应的时间变量确定的更新前后时差。第二报警模块用于在更新前后时差大于预设时差阈值的情况下发出用于提醒时差异常的第二报警提示。该实施例的检测hive数据表的方法能够监控数据更新过程耗费时长是否正常。
根据本发明实施例的检测hive数据表的装置,还可以包括:参数获取模块,扫描模块、偏差比例模块和第三报警模块。参数获取模块用于获取hive数据表更新过程中的真实更新文件大小和真实更新记录条数。扫描模块用于根据配置文件中的hive数据表更新前对应的时间变量和hive数据表更新后对应的时间变量确定扫描文件时间范围,然后获取扫描文件时间范围内的扫描文件大小和扫描记录条数。偏差比例模块用于计算扫描文件大小与hive数据表真实更新文件大小的第一偏差比例,并且计算扫描记录条数与hive数据表真实更新记录条数的第二偏差比例。第三报警模块用于在第一偏差比例或第二偏差比例超过预设变差比例的情况下,发出用于提醒文件异常的第三报警提示。该实施例的检测hive数据表的方法能够结合数据文件和数据之间进行对照,通过数据文件信息快速定位数据更新时间是否异常,解决了现有技术中hive sql这种检验方式的低效率的技术问题,同时也解决了之前hive sql检验方式不能发现数据文件错误的问题。
根据本发明的实施例,本发明还提供了一种检测hive数据表的电子设备和一种可读存储介质。
下面参考图4,其示出了适于用来实现本申请实施例的电子设备400的结构示意图。图4示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图4所示,电子设备400包括中央处理单元(CPU)401,其可以根据存储在只读存储器(ROM)402中的程序或者从存储部分408加载到随机访问存储器(RAM)403中的程序而执行各种适当的动作和处理。在RAM 403中,还存储有系统400操作所需的各种程序和数据。CPU 401、ROM 402以及RAM 403通过总线404彼此相连。输入/输出(I/O)接口405也连接至总线404。
以下部件连接至I/O接口405:包括键盘、鼠标等的输入部分406;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分407;包括硬盘等的存储部分408;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分409。通信部分409经由诸如因特网的网络执行通信处理。驱动器410也根据需要连接至I/O接口405。可拆卸介质411,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器410上,以便于从其上读出的计算机程序根据需要被安装入存储部分408。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分409从网络上被下载和安装,和/或从可拆卸介质411被安装。在该计算机程序被中央处理单元(CPU)401执行时,执行本申请的系统中限定的上述功能。
需要说明的是,本申请所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括发送模块、获取模块、确定模块和第一处理模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,发送模块还可以被描述为“向所连接的服务端发送图片获取请求的模块”。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:采集服饰素材数据,所述服饰素材数据包括搭配搜索筛选项数据和搭配搜索非筛选项数据,所述搭配搜索非筛选项数据包括素材图片;根据所述搭配搜索筛选项数据建立索引文件并且根据所述搭配搜索数据建立非筛选项信息详情文件,然后将所述索引文件和所述信息详情文件建立映射关系表;根据获取到的所述用户画像数据确认索引字,然后根据所述索引字查询所述映射关系表,得到若干个推荐服饰商品对应的搭配搜索非筛选项数据;将所述若干个推荐服饰商品对应的搭配搜索非筛选项数据中的所述素材图片进行图形组合然后输出。
根据本发明实施例的技术方案,为数据文件建立了data文件,在data文件中采用key-value技术快速判断数据唯一性,能够解决现有技术中的检测滞后性的技术问题,提前完成新增数据唯一性检测,具有快捷方便等优点。
图5示出了可以应用本发明实施例的检测hive数据表的方法或装置的示例性系统架构500。
如图5所示,系统架构500可以包括终端设备501、502、503,网络504和服务器505。网络504用以在终端设备501、502、503和服务器505之间提供通信链路的介质。网络504可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备501、502、503通过网络504与服务器505交互,以接收或发送消息等。终端设备501、502、503上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备501、502、503可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器505可以是提供各种服务的服务器,例如对用户利用终端设备501、502、503所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息--仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的检测hive数据表的方法一般由服务器505执行,相应地,检测hive数据表的装置一般设置于服务器505中。
应该理解,图5中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (10)

1.一种检测hive数据表的方法,其特征在于,包括:
针对被测hive数据表建立配置文件,所述配置文件的配置信息包括表名和主键;
构建用于统计hive数据表中主键出现次数的data文件,所述data文件为键值对型,以hive数据表的数据记录的主键作为键,并且以所述hive数据表的主键出现次数作为值;
在监测到有新增数据记录插入所述hive数据表的情况下,更新所述data文件;
在所述data文件存在大于1的值的情况下,发出用于提醒数据重复的第一报警消息。
2.根据权利要求1所述的方法,其特征在于,所述更新所述data文件的步骤包括:
在所述data文件中不存在所述新增数据记录的主键的情况下,新增一条键等于所述新增数据记录的主键、值等于1的data文件记录;
在所述data文件中存在所述新增数据记录的主键的情况下,则将所述新增数据记录的主键对应的原有的data文件记录的值加1。
3.根据权利要求1所述的方法,其特征在于,所述配置文件的配置信息还包括是否覆盖标识位和时间变量,该方法还包括:
确认所述是否覆盖标志位为肯定形态;
根据所述配置文件中的hive数据表更新前对应的所述时间变量和hive数据表更新后对应的所述时间变量确定的更新前后时差;
在所述更新前后时差大于预设时差阈值的情况下发出用于提醒时差异常的第二报警提示。
4.根据权利要求3所述的方法,其特征在于,在所述确认所述是否覆盖标志位为肯定形态的步骤之后,还包括:
获取hive数据表更新过程中的真实更新文件大小和真实更新记录条数;
根据所述配置文件中的hive数据表更新前对应的所述时间变量和hive数据表更新后对应的所述时间变量确定扫描文件时间范围,然后获取所述扫描文件时间范围内的扫描文件大小和扫描记录条数;
计算所述扫描文件大小与hive数据表真实更新文件大小的第一偏差比例,并且计算所述扫描记录条数与hive数据表真实更新记录条数的第二偏差比例;
在所述第一偏差比例或第二偏差比例超过预设变差比例的情况下,发出用于提醒文件异常的第三报警提示。
5.一种检测hive数据表的装置,其特征在于,包括:
配置模块,用于针对被测hive数据表建立配置文件,所述配置文件的配置信息包括表名和主键;
构建模块,用于构建用于统计hive数据表中主键出现次数的data文件,所述data文件为键值对型,以hive数据表的数据记录的主键作为键,并且以所述hive数据表的主键出现次数作为值;
监测模块,用于在监测到有新增数据记录插入所述hive数据表的情况下,更新所述data文件;
第一报警模块,用于在所述data文件存在大于1的值的情况下,发出用于提醒数据重复的第一报警消息。
6.根据权利要求5所述的装置,其特征在于,所述监测模块还用于:
在所述data文件中不存在所述新增数据记录的主键的情况下,新增一条键等于所述新增数据记录的主键、值等于1的data文件记录;
在所述data文件中存在所述新增数据记录的主键的情况下,则将所述新增数据记录的主键对应的原有的data文件记录的值加1。
7.根据权利要求5所述的装置,其特征在于,所述配置文件的配置信息还包括是否覆盖标识位和时间变量,该装置还包括:
标志位逻辑模块,用于确认所述是否覆盖标志位为肯定形态;
时差模块,用于根据所述配置文件中的hive数据表更新前对应的所述时间变量和hive数据表更新后对应的所述时间变量确定的更新前后时差;
第二报警模块,用于在所述更新前后时差大于预设时差阈值的情况下发出用于提醒时差异常的第二报警提示。
8.根据权利要求7所述的装置,其特征在于,还包括:
参数获取模块,用于获取hive数据表更新过程中的真实更新文件大小和真实更新记录条数;
扫描模块,用于根据所述配置文件中的hive数据表更新前对应的所述时间变量和hive数据表更新后对应的所述时间变量确定扫描文件时间范围,然后获取所述扫描文件时间范围内的扫描文件大小和扫描记录条数;
偏差比例模块,用于计算所述扫描文件大小与hive数据表真实更新文件大小的第一偏差比例,并且计算所述扫描记录条数与hive数据表真实更新记录条数的第二偏差比例;
第三报警模块,用于在所述第一偏差比例或第二偏差比例超过预设变差比例的情况下,发出用于提醒文件异常的第三报警提示。
9.一种检测hive数据表的电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-4中任一所述的方法。
10.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-4中任一所述的方法。
CN201710352699.1A 2017-05-18 2017-05-18 检测hive数据表的方法和装置 Active CN108958959B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710352699.1A CN108958959B (zh) 2017-05-18 2017-05-18 检测hive数据表的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710352699.1A CN108958959B (zh) 2017-05-18 2017-05-18 检测hive数据表的方法和装置

Publications (2)

Publication Number Publication Date
CN108958959A true CN108958959A (zh) 2018-12-07
CN108958959B CN108958959B (zh) 2022-04-12

Family

ID=64462840

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710352699.1A Active CN108958959B (zh) 2017-05-18 2017-05-18 检测hive数据表的方法和装置

Country Status (1)

Country Link
CN (1) CN108958959B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110196858A (zh) * 2019-06-05 2019-09-03 浪潮软件集团有限公司 一种基于Hive Mutation API进行数据更新的方法
CN110442585A (zh) * 2019-06-21 2019-11-12 中国平安财产保险股份有限公司 数据更新方法、数据更新装置、计算机设备及存储介质
CN110457300A (zh) * 2019-07-15 2019-11-15 中国平安人寿保险股份有限公司 一种公共测试库的清理方法及装置、电子设备
CN112115148A (zh) * 2020-09-28 2020-12-22 中国建设银行股份有限公司 一种确定数据比对结果的方法、装置及设备
CN112231181A (zh) * 2020-12-08 2021-01-15 平安科技(深圳)有限公司 数据异常更新检测方法、装置、计算机设备及存储介质
CN112612839A (zh) * 2020-12-28 2021-04-06 中国农业银行股份有限公司 一种数据处理方法及装置
CN113420040A (zh) * 2021-08-25 2021-09-21 西安热工研究院有限公司 存储大小报警组状态的方法、装置及存储介质
CN113763097A (zh) * 2020-12-14 2021-12-07 北京沃东天骏信息技术有限公司 一种物品信息更新的方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101727648A (zh) * 2009-12-01 2010-06-09 中国建设银行股份有限公司 服务系统中的超时控制方法及服务系统
CN104268272A (zh) * 2014-10-14 2015-01-07 青岛海尔软件有限公司 一种数据唯一性检查方法及装置
CN106648446A (zh) * 2015-10-30 2017-05-10 阿里巴巴集团控股有限公司 一种用于时序数据的存储方法、装置及电子设备
US20170132071A1 (en) * 2013-10-31 2017-05-11 Microsoft Technology Licensing, Llc Crash recovery using non-volatile memory

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101727648A (zh) * 2009-12-01 2010-06-09 中国建设银行股份有限公司 服务系统中的超时控制方法及服务系统
US20170132071A1 (en) * 2013-10-31 2017-05-11 Microsoft Technology Licensing, Llc Crash recovery using non-volatile memory
CN104268272A (zh) * 2014-10-14 2015-01-07 青岛海尔软件有限公司 一种数据唯一性检查方法及装置
CN106648446A (zh) * 2015-10-30 2017-05-10 阿里巴巴集团控股有限公司 一种用于时序数据的存储方法、装置及电子设备

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110196858A (zh) * 2019-06-05 2019-09-03 浪潮软件集团有限公司 一种基于Hive Mutation API进行数据更新的方法
CN110442585A (zh) * 2019-06-21 2019-11-12 中国平安财产保险股份有限公司 数据更新方法、数据更新装置、计算机设备及存储介质
CN110442585B (zh) * 2019-06-21 2024-04-30 中国平安财产保险股份有限公司 数据更新方法、数据更新装置、计算机设备及存储介质
CN110457300A (zh) * 2019-07-15 2019-11-15 中国平安人寿保险股份有限公司 一种公共测试库的清理方法及装置、电子设备
CN110457300B (zh) * 2019-07-15 2024-02-02 中国平安人寿保险股份有限公司 一种公共测试库的清理方法及装置、电子设备
CN112115148A (zh) * 2020-09-28 2020-12-22 中国建设银行股份有限公司 一种确定数据比对结果的方法、装置及设备
CN112115148B (zh) * 2020-09-28 2024-09-10 中国建设银行股份有限公司 一种确定数据比对结果的方法、装置及设备
CN112231181A (zh) * 2020-12-08 2021-01-15 平安科技(深圳)有限公司 数据异常更新检测方法、装置、计算机设备及存储介质
CN113763097A (zh) * 2020-12-14 2021-12-07 北京沃东天骏信息技术有限公司 一种物品信息更新的方法和装置
CN112612839A (zh) * 2020-12-28 2021-04-06 中国农业银行股份有限公司 一种数据处理方法及装置
CN113420040A (zh) * 2021-08-25 2021-09-21 西安热工研究院有限公司 存储大小报警组状态的方法、装置及存储介质

Also Published As

Publication number Publication date
CN108958959B (zh) 2022-04-12

Similar Documents

Publication Publication Date Title
CN108958959A (zh) 检测hive数据表的方法和装置
CN105183912B (zh) 异常日志确定方法和装置
CN109284323B (zh) 检测数据的管理方法及装置
CN109947788A (zh) 数据查询方法和装置
CN104750771B (zh) 利用域信息进行上下文数据分析的方法和系统
CN112052138A (zh) 业务数据质量检测方法、装置、计算机设备及存储介质
CN110674117A (zh) 数据建模方法、装置、计算机可读介质及电子设备
CN110019214A (zh) 对数据拆分结果进行校验的方法和装置
CN110309142A (zh) 规则管理的方法和装置
CN114741392A (zh) 数据查询方法、装置、电子设备及存储介质
CN112181967A (zh) 源数据质量的监测方法、装置、计算机设备及介质
CN112672370A (zh) 网元指标数据的自动检测方法及系统、设备和存储介质
CN112434009A (zh) 端到端的数据探查方法、装置、计算机设备和存储介质
CN109753424A (zh) Ab测试的方法和装置
CN108959294A (zh) 一种访问搜索引擎的方法和装置
CN111008865A (zh) 优惠券同步展示方法、装置、服务器及存储介质
JP2020053044A (ja) オフラインブリーフケース同期
CN110110153A (zh) 一种节点搜索的方法和装置
CN108694172B (zh) 信息输出方法和装置
CN109240916A (zh) 信息输出控制方法、装置及计算机可读存储介质
CN111488386A (zh) 数据查询方法和装置
EP3001336A1 (en) Presenting publisher data sets in context
CN105808628A (zh) 网页转码方法、装置及系统
CN104881455B (zh) 一种基于mysql的结构差异处理方法及系统
CN110109947A (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
GR01 Patent grant
GR01 Patent grant