CN117370202A - 数仓全链路测试方法、装置、设备及存储介质 - Google Patents
数仓全链路测试方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117370202A CN117370202A CN202311417925.1A CN202311417925A CN117370202A CN 117370202 A CN117370202 A CN 117370202A CN 202311417925 A CN202311417925 A CN 202311417925A CN 117370202 A CN117370202 A CN 117370202A
- Authority
- CN
- China
- Prior art keywords
- link
- full
- data
- bin
- test
- 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
- 238000012360 testing method Methods 0.000 title claims abstract description 182
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000003860 storage Methods 0.000 title claims abstract description 15
- 238000012545 processing Methods 0.000 claims abstract description 62
- 238000013515 script Methods 0.000 claims description 49
- 238000013507 mapping Methods 0.000 claims description 39
- 238000001514 detection method Methods 0.000 claims description 38
- 238000013524 data verification Methods 0.000 claims description 15
- 238000012795 verification Methods 0.000 claims description 15
- 238000010276 construction Methods 0.000 claims description 11
- 238000004458 analytical method Methods 0.000 claims description 7
- 238000010998 test method Methods 0.000 claims description 6
- 238000011068 loading method Methods 0.000 description 9
- 238000006243 chemical reaction Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 238000013075 data extraction Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 230000002159 abnormal effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000004140 cleaning Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013506 data mapping Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3692—Test management for test results analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及数据处理技术领域,尤其涉及一种数仓全链路测试方法、装置、设备及存储介质,本发明通过根据数仓全链路测试请求预先搭建全链路测试环境,并获取待测试数据和对应的预期结果,再通过搭建好的全链路测试环境预测待测试数据对应的测试结果,最后通过对预期结果和测试结果进行数据验证,从而实现数仓内数据的直接测试,无需数仓产出数据等步骤,简化了数仓数据验证测试的流程,减小了验证周期,避免了现有技术中数仓数据测试的成本较高且需要人工配合的技术问题,提高了数仓数据的测试效率。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种数仓全链路测试方法、装置、设备及存储介质。
背景技术
在数据仓库产出的数据报表进行验证时,传统的验证测试方法,主要是在业务系统发生真实交易后,数据仓库抽取源系统数据并加载至数仓内,通过对数仓作业产出的数据进行测试验证,在此种方法中需要相关技术人员全程高度协同配合,才能实现准确的数仓数据验证测试,且耗时较长,人力成本和时间成本都相对较高。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供一种数仓全链路测试方法、装置、设备及存储介质,旨在解决现有技术中数仓数据测试的成本较高且需要人工配合的技术问题。
为实现上述目的,本发明提供了一种数仓全链路测试方法,所述方法包括以下步骤:
在接收到数仓全链路测试请求时,根据所述数仓全链路测试请求搭建全链路测试环境;
获取待测试数据和对应的预期结果;
通过所述全链路测试环境生成所述待测试数据对应的测试结果;
对所述预期结果和所述测试结果进行数据验证,得到目标测试结果。
可选地,所述根据所述数仓全链路测试请求搭建全链路测试环境,包括:
根据所述数仓全链路测试请求获取链路环境代码和产品代码库;
对所述链路环境代码和所述产品代码库中的代码进行一致性检测;
在一致性检测通过时,获取本地视图数据和表数据;
根据所述本地视图数据和表数据生成目标检测脚本;
根据所述数仓全链路测试请求搭建全链路测试环境。
可选地,所述根据所述本地视图数据和表数据生成目标检测脚本,包括:
根据所述本地视图数据和表数据生成初始检测脚本;
获取所述初始检测脚本的执行日志;
根据所述执行日志确定执行成功的检测脚本;
控制所述执行成功的检测脚本进行空跑,并生成空跑执行日志;
根据所述空跑执行日志确定目标检测脚本。
可选地,所述根据所述数仓全链路测试请求搭建全链路测试环境之前,还包括:
根据所述数仓全链路测试请求获取仓内初始作业清单和对应的作业源码;
解析所述作业源码,得到所述初始作业清单的输入-输出关系和字段加工信息;
根据所述输入-输出关系生成目标加工链路模板;
根据所述字段加工信息和所述目标加工链路模板生成预设仓内全链路加工过程分析结果。
可选地,所述解析所述作业源码,包括:
解析所述作业源码,得到所述作业源码对应的初始作业输入-输出关系;
根据所述初始作业输入-输出关系确定待使用视图数据和表数据;
在存在新增的待使用视图数据和表数据时,根据新增的待使用视图数据和表数据确定更新初始作业清单,得到目标作业清单,并解析所述目标作业清单对应的作业源码,以得到对应的输入-输出关系;
在不存在新增的待使用视图数据和表数据时,解析所述作业源码,以得到对应的输入-输出关系。
可选地,所述根据所述输入-输出关系生成目标加工链路模板,包括:
根据所述输入-输出关系构建初始加工链路;
基于预设源系统信息和所述初始加工链路生成目标加工链路模板,所述目标加工链路模板为字段级别的加工链路模板。
可选地,获取待测试数据的步骤,包括:
获取业务系统中的环境信息;
基于所述全链路测试环境抽取目标表清单,并根据所述目标表清单得到仓内-仓外映射关系表;
将所述环境信息配置到仓内-仓外映射关系表,得到目标映射关系表;
根据所述目标映射关系表构建入库脚本;
根据所述入库脚本将所述目标映射关系表进行入库,并进行入库表数据量检查;
在检查无误时,从数据库中获取待测试数据。
此外,为实现上述目的,本发明还提出一种数仓全链路测试装置,所述数仓全链路测试装置包括:
构建模块,用于在接收到数仓全链路测试请求时,根据所述数仓全链路测试请求搭建全链路测试环境;
获取模块,用于获取待测试数据和对应的预期结果;
测试模块,用于通过所述全链路测试环境生成所述待测试数据对应的测试结果;
验证模块,用于对所述预期结果和所述测试结果进行数据验证,得到目标测试结果。
此外,为实现上述目的,本发明还提出一种数仓全链路测试设备,所述数仓全链路测试设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数仓全链路测试程序,所述数仓全链路测试程序配置为实现如上文所述的数仓全链路测试方法的步骤。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有数仓全链路测试程序,所述数仓全链路测试程序被处理器执行时实现如上文所述的数仓全链路测试方法的步骤。
本发明公开了一种数仓全链路测试方法,所述数仓全链路测试方法包括:在接收到数仓全链路测试请求时,根据所述数仓全链路测试请求搭建全链路测试环境;获取待测试数据和对应的预期结果;通过所述全链路测试环境生成所述待测试数据对应的测试结果;对所述预期结果和所述测试结果进行数据验证,得到目标测试结果,与现有技术相比,本发明通过根据数仓全链路测试请求预先搭建全链路测试环境,并获取待测试数据和对应的预期结果,再通过搭建好的全链路测试环境预测待测试数据对应的测试结果,最后通过对预期结果和测试结果进行数据验证,从而实现数仓内数据的直接测试,无需数仓产出数据等步骤,简化了数仓数据验证测试的流程,减小了验证周期,避免了现有技术中数仓数据测试的成本较高且需要人工配合的技术问题,提高了数仓数据的测试效率。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的数仓全链路测试设备的结构示意图;
图2为本发明数仓全链路测试方法第一实施例的流程示意图;
图3为本发明数仓全链路测试方法第二实施例的流程示意图;
图4为本发明数仓全链路测试方法第三实施例的流程示意图;
图5为本发明数仓全链路测试装置第一实施例的结构框图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的数仓全链路测试设备结构示意图。
如图1所示,该数仓全链路测试设备可以包括:处理器1001,例如中央处理器(Central Processing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(Wireless-Fidelity,Wi-Fi)接口)。存储器1005可以是高速的随机存取存储器(RandomAccess Memory,RAM),也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对数仓全链路测试设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及数仓全链路测试程序。
在图1所示的数仓全链路测试设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明数仓全链路测试设备中的处理器1001、存储器1005可以设置在数仓全链路测试设备中,所述数仓全链路测试设备通过处理器1001调用存储器1005中存储的数仓全链路测试程序,并执行本发明实施例提供的数仓全链路测试方法。
本发明实施例提供了一种数仓全链路测试方法,参照图2,图2为本发明一种数仓全链路测试方法第一实施例的流程示意图。
本实施例中,所述数仓全链路测试方法包括以下步骤:
步骤S10:在接收到数仓全链路测试请求时,根据所述数仓全链路测试请求搭建全链路测试环境。
需要说明的是,本实施例方法的执行主体可以是具有数据处理、程序运行以及通信传输等功能的设备,例如:服务器集群或者控制计算机集群等,还可以是其他可以实现相同或者相似功能的设备,本实施例对此不做具体限制,在本实施例以及下述实施例中,以服务器集群为例进行说明。
应当说明的是,现有的数仓全链路数据测试方法主要依赖于目前业务系统已经发生的真实交易,无法验证尚未发生交易对数据报表的影响。常规的测试环境全链路验证,能够通过准备交易数据来验证未发生交易对数据报表结果的影响,但是搭建及维护成本高,导致在实际项目测试过程中难以应用。
可以理解的是,数仓全链路测试请求是指对整个数据仓库的数据流程进行end-to-end的测试,包含从数据抽取、清洗、转换,到数据加载和数据分发等环节的测试。
数仓全链路测试的目的是确保数据仓库中的数据在经过各个环节处理后的准确性、完整性和一致性,通过进行全链路测试,可以发现并修复数据仓库中可能存在的问题,提高数据质量和可靠性。
在进行数仓全链路测试时,需要模拟真实的数据源,并验证数据在不同环节的传输和转换过程中是否出现数据丢失、数据错误或数据不一致的情况。同时,还需要验证数据加载到目标系统后是否符合预期的结果,并进行数据质量的评估和监控。
为了有效地进行数仓全链路测试,可以采用自动化测试工具来模拟数据流,并编写测试脚本来验证每个环节的数据处理和转换规则。此外,还应该制定详细的测试计划和测试策略,包括确定测试范围、优先级和测试数据集等。
此外,数仓全链路测试请求是指仓内末端的作业测试人员提出的环境搭载请求,用于提醒并控制数仓进行全链路测试环境搭建,并将业务系统测试人员梳理出来的业务场景及数据报表的预期结果整合到全链路搭建文档中,本实施例对此不做具体限制。
步骤S20:获取待测试数据和对应的预期结果。
应当理解的是,待测试数据是指各个业务场景下的数据报表,例如:用户信用评分时,用户的从业经历、历史评分记录以及收入状态等信息,本实施例对此不做具体限制。
在具体实现中,为了实现高效准确的仓内数据测试,本实施例可以通过预先对各待测试数据进行标记,得到各待测试数据对应的预期结果。
进一步地,获取待测试数据的步骤,包括:
获取业务系统中的环境信息;
基于所述全链路测试环境抽取目标表清单,并根据所述目标表清单得到仓内-仓外映射关系表;
将所述环境信息配置到仓内-仓外映射关系表,得到目标映射关系表;
根据所述目标映射关系表构建入库脚本;
根据所述入库脚本将所述目标映射关系表进行入库,并进行入库表数据量检查;
在检查无误时,从数据库中获取待测试数据。
在具体实现中,基于全链路环境搭建结果,抽取数据加载层(Extract-Transform-Load,ETL)的表清单,并与仓内表与仓外表的映射表做匹配,对于不存在的映射关系加入到“仓内表和仓外表的映射关系”中,再根据获取的业务系统的环境信息,将环境信息配置到“仓内表和仓外表的映射关系”,最后通过抽取数据落地到文本文件,基于导出的文件及内容构建入库脚本进行入库,并产出数据抽及加载报告,实现存储有仓内数据的数据库,以便于后续根据目标结果表或者关键字从数据库中读取相关的待测试数据。
可以理解的是,将环境信息配置到仓内-仓外映射关系表是指管理和跟踪系统中不同环境之间的对应关系的方法,通过建立一个映射关系表,可以清晰地记录仓库内部环境和外部环境之间的关联,以便在不同环境之间进行配置和数据的映射。
在配置到仓内-仓外映射关系表时,可以考虑以下信息:环境名称、环境类型、仓内配置项、仓外配置项、映射关系描述以及更新日期等,其中,环境名称为记录仓库内部和外部环境的名称或标识符,以便识别和区分不同的环境;环境类型是指定环境的类型,如开发环境、测试环境、预生产环境和生产环境等;仓内配置项为数据库连接信息、API密钥、文件路径等;仓外配置项:是指外部数据库的连接信息、外部API服务的URL等;映射关系描述包括特定配置项的映射关系、数据传输规则等;更新日期用于记录映射关系表的更新日期和版本信息,以确保及时维护和更新。
通过维护仓内-仓外映射关系表,可以方便地管理和跟踪不同环境之间的配置和数据映射情况。这对于支持多个环境、多个部署场景或多个客户需求的系统非常有用,可以确保在不同环境中的配置一致性,并提高环境配置的可维护性和可追溯性。
步骤S30:通过所述全链路测试环境生成所述待测试数据对应的测试结果。
需要说明的是,通过全链路测试环境生成待测试数据对应的测试结果具体是指通过采用预设工具对全链路搭建文档中的数据或者脚本程序等进行抽取、加载、跑数并记录其运行结果,例如:针对一段故障检测程序,记录故障检测程序的运行结果,是否存在故障,以及处理方式等信息。
步骤S40:对所述预期结果和所述测试结果进行数据验证,得到目标测试结果。
可以理解的是,对预期结果和测试结果进行数据验证是指比较预期结果和测试结果,可以是计算两者之间的相似度、覆盖率等数据,在相似度或者覆盖率高于一定阈值时,完成数据验证,若是低于一定阈值则向用户反馈又异常的数据,并对该异常数据进行排查,若是脚本运行故障为输出测试结果,则需要修复脚本的故障,重新跑数,以保证各个脚本都存在有效测试结果。
本实施例通过根据数仓全链路测试请求预先搭建全链路测试环境,并获取待测试数据和对应的预期结果,再通过搭建好的全链路测试环境预测待测试数据对应的测试结果,最后通过对预期结果和测试结果进行数据验证,从而实现数仓内数据的直接测试,无需数仓产出数据等步骤,简化了数仓数据验证测试的流程,减小了验证周期,避免了现有技术中数仓数据测试的成本较高且需要人工配合的技术问题,提高了数仓数据的测试效率。
参考图3,图3为本发明一种数仓全链路测试方法第二实施例的流程示意图。
基于上述第一实施例,在本实施例中,所述步骤S10,包括:
步骤S101:根据所述数仓全链路测试请求获取链路环境代码和产品代码库。
需要说明的是,由于本发明是通过搭建数仓全链路测试环境模拟真实的数仓环境产品,为了保证全链路测试环境测试时的准确性,本实施例可以分别获取用于搭建测试环境的链路环境代码和产品代码库,以便于后续进行环境代码的验证。
步骤S102:对所述链路环境代码和所述产品代码库中的代码进行一致性检测。
在具体实现中,对所述链路环境代码和所述产品代码库中的代码进行一致性检测是指:检测链路环境的代码是否与产品代码库中的部分代码一致,或者在产品代码库中是否可以找到链路环境代码,若一致则可以执行后续步骤,若不一致则需要对差异部分代码进行重新分析,并更新本地保存的源码文件和作业调度等相关的信息。
步骤S103:在一致性检测通过时,获取本地视图数据和表数据。
可以理解的是,本地视图数据和表数据是指本地保存的视图数据和表格数据等,本地视图数据和表数据主要记载有数仓中各个业务场景的相关数据。
步骤S104:根据所述本地视图数据和表数据生成目标检测脚本。
应当理解的是,目标检测脚本用于对数仓测试环境进行检测和验证视图数据和表数据的真实性和有效性。
进一步地,所述根据所述本地视图数据和表数据生成目标检测脚本,包括:
根据所述本地视图数据和表数据生成初始检测脚本;
获取所述初始检测脚本的执行日志;
根据所述执行日志确定执行成功的检测脚本;
控制所述执行成功的检测脚本进行空跑,并生成空跑执行日志;
根据所述空跑执行日志确定目标检测脚本。
在具体实现中,根据所述本地视图数据和表数据生成目标检测脚本是指基于本地保存的本地视图数据和表数据,生成数仓测试环境的检测sql,并自动化执行,基于返回的执行日志进行分析排查,直到检测sql都执行成功为止,在执行成功后,可以将初始检测脚本的脚本代码拷贝到执行库中,并将该执行库中的脚本代码进行空跑,得到各个脚本代码的空跑执行日志,针对空跑成功的脚本代码,将其确定为目标检测脚本;对于执行异常的作业,可以通过人工分析排查并解决问题,例如:代码运行逻辑故障或者参数映射错误等问题。
步骤S105:根据所述数仓全链路测试请求搭建全链路测试环境。
本实施例通过在进行数仓数据的测试验证之前,通过本地视图数据和表数据搭建全链路测试环境,以便于后续仓内数据的自动化验证测试,提高数仓数据的验证测试效率。
参考图4,图4为本发明一种数仓全链路测试方法第三实施例的流程示意图。
基于上述第一实施例,在本实施例中,所述步骤S10之前,还包括:
步骤S01:根据所述数仓全链路测试请求获取仓内初始作业清单和对应的作业源码。
需要说明的是,在获取仓内初始作业清单时,可以根据数仓全链路测试请求中包括的目标结果表或者代码关键字在数仓内进行索引,从而查询到仓内需要进行初始跑数的作业清单,该作业清单就是仓内初始作业清单,其中,跑数是指在数据仓库中运行数据抽取、清洗、转换和加载等过程,将源系统中的数据导入到目标系统中,这个过程通常是定期执行的,以保证数据仓库中的数据与源系统保持同步。
此外,跑数的具体步骤可以根据具体的数据仓库架构和需求来确定,主要包括:数据抽取、数据清洗和转换、数据加载、数据校验以及错误处理和日志记录等步骤,其中,数据抽取是指从源系统中抽取需要的数据。可以使用各种方式进行数据抽取,例如使用ETL工具、API调用或者直接连接数据库进行数据查询;数据清洗和转换是指对抽取的数据进行清洗和转换操作,以确保数据的质量和格式符合目标系统的要求。这可能涉及数据去重、格式转换、数据字段映射等处理,数据加载是指将清洗和转换后的数据加载到目标系统中。可以使用批量加载或者增量加载的方式,将数据写入到数据仓库中的相应表或文件,数据校验是指在跑数完成后,进行数据校验以确保数据的准确性和完整性。可以通过比对源系统和目标系统中相同数据集的结果来进行校验,或者使用事先定义好的规则和指标进行检查,错误处理和日志记录是指在跑数过程中,如果出现错误或异常情况,需要进行相应的错误处理,并记录日志以便后续排查和分析。
作业源码可以是基于获得的仓内初始作业清单从存储有各个功能代码的代码库中查询到对应的源码内容,并整理后得到作业源码。
步骤S02:解析所述作业源码,得到所述初始作业清单的输入-输出关系和字段加工信息。
应当说明的是,解析所述作业源码分为两次解析过程,其一时通过解析所有的作业源码获取作业的输入和输出之间的映射关系,并基于输入-输出关系构建目标表或者关键字的完整加工链路,
进一步地,所述解析所述作业源码,包括:
解析所述作业源码,得到所述作业源码对应的初始作业输入-输出关系;
根据所述初始作业输入-输出关系确定待使用视图数据和表数据;
在存在新增的待使用视图数据和表数据时,根据新增的待使用视图数据和表数据确定更新初始作业清单,得到目标作业清单,并解析所述目标作业清单对应的作业源码,以得到对应的输入-输出关系;
在不存在新增的待使用视图数据和表数据时,解析所述作业源码,以得到对应的输入-输出关系。
在具体实现中,基于作业清单,从代码库中获取对应的源码内容,解析源码,获取作业的输入输出关系,从而获取需要使用的上游表和视图,并下载表和视图的定义,若本次有新增的表,对于新增的表,查询代码库获取产出该表数据的所有作业清单,并返回解析源码,获取作业的输入输出关系的步骤;若本次均没有新增作业,则解析所有的作业源码,获取作业的输入的输出关系。
步骤S03:根据所述输入-输出关系生成目标加工链路模板。
进一步地,所述根据所述输入-输出关系生成目标加工链路模板,包括:
根据所述输入-输出关系构建初始加工链路;
基于预设源系统信息和所述初始加工链路生成目标加工链路模板,所述目标加工链路模板为字段级别的加工链路模板。
可以理解的是,基于上述过程中获得的输入-输出关系构建目标表或者关键字的初始完整加工链路,并在获得完整加工链路之后,通过对加工链路信息进行简化,只保留与源系统信息有关的作业链路,同时根据产出的最后结果表的表定义,构建字段级别的加工链路模板;同时对作业源码进行分析(包括工具解析源码的字段输入输出关系,并进行人工确认),产出字段级别的加工过程、与字段加工有关的作业调度顺序,作为全链路环境搭建的依据。
步骤S04:根据所述字段加工信息和所述目标加工链路模板生成预设仓内全链路加工过程分析结果。
本实施例通过在搭建全链路测试环境之前,通过对作业源码进行多次分析,以获得各个脚本输入-输出之间的映射关系,并通过输入-输出之间的映射关系构建对伊宁的加工链路模板,同时输出字段级别的作业调度顺序,作为后续全链路环境搭建的基础,降低全链路环境搭建的难度。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有数仓全链路测试程序,所述数仓全链路测试程序被处理器执行时实现如上文所述的数仓全链路测试方法的步骤。
由于本存储介质采用了上述所有实施例的全部技术方案,因此至少具有上述实施例的技术方案所带来的所有有益效果,在此不再一一赘述。
参照图5,图5为本发明数仓全链路测试装置第一实施例的结构框图。
如图5所示,本发明实施例提出的数仓全链路测试装置包括:
构建模块10,用于在接收到数仓全链路测试请求时,根据所述数仓全链路测试请求搭建全链路测试环境。
获取模块20,用于获取待测试数据和对应的预期结果。
测试模块30,用于通过所述全链路测试环境生成所述待测试数据对应的测试结果。
验证模块40,用于对所述预期结果和所述测试结果进行数据验证,得到目标测试结果。
在一实施例中,所述构建模块10,还用于根据所述数仓全链路测试请求获取链路环境代码和产品代码库;对所述链路环境代码和所述产品代码库中的代码进行一致性检测;在一致性检测通过时,获取本地视图数据和表数据;根据所述本地视图数据和表数据生成目标检测脚本;根据所述数仓全链路测试请求搭建全链路测试环境。
在一实施例中,所述构建模块10,还用于根据所述本地视图数据和表数据生成初始检测脚本;获取所述初始检测脚本的执行日志;根据所述执行日志确定执行成功的检测脚本;控制所述执行成功的检测脚本进行空跑,并生成空跑执行日志;根据所述空跑执行日志确定目标检测脚本。
在一实施例中,所述构建模块10,还用于根据所述数仓全链路测试请求获取仓内初始作业清单和对应的作业源码;解析所述作业源码,得到所述初始作业清单的输入-输出关系和字段加工信息;根据所述输入-输出关系生成目标加工链路模板;根据所述字段加工信息和所述目标加工链路模板生成预设仓内全链路加工过程分析结果。
在一实施例中,所述构建模块10,还用于解析所述作业源码,得到所述作业源码对应的初始作业输入-输出关系;根据所述初始作业输入-输出关系确定待使用视图数据和表数据;在存在新增的待使用视图数据和表数据时,根据新增的待使用视图数据和表数据确定更新初始作业清单,得到目标作业清单,并解析所述目标作业清单对应的作业源码,以得到对应的输入-输出关系;在不存在新增的待使用视图数据和表数据时,解析所述作业源码,以得到对应的输入-输出关系。
在一实施例中,所述构建模块10,还用于根据所述输入-输出关系构建初始加工链路;基于预设源系统信息和所述初始加工链路生成目标加工链路模板,所述目标加工链路模板为字段级别的加工链路模板。
在一实施例中,所述获取模块20,还用于获取业务系统中的环境信息;基于所述全链路测试环境抽取目标表清单,并根据所述目标表清单得到仓内-仓外映射关系表;将所述环境信息配置到仓内-仓外映射关系表,得到目标映射关系表;根据所述目标映射关系表构建入库脚本;根据所述入库脚本将所述目标映射关系表进行入库,并进行入库表数据量检查;
在检查无误时,从数据库中获取待测试数据。
本实施例通过根据数仓全链路测试请求预先搭建全链路测试环境,并获取待测试数据和对应的预期结果,再通过搭建好的全链路测试环境预测待测试数据对应的测试结果,最后通过对预期结果和测试结果进行数据验证,从而实现数仓内数据的直接测试,无需数仓产出数据等步骤,简化了数仓数据验证测试的流程,减小了验证周期,避免了现有技术中数仓数据测试的成本较高且需要人工配合的技术问题,提高了数仓数据的测试效率。
应该理解的是,虽然本申请实施例中的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
应当理解的是,以上仅为举例说明,对本发明的技术方案并不构成任何限定,在具体应用中,本领域的技术人员可以根据需要进行设置,本发明对此不做限制。
需要说明的是,以上所描述的工作流程仅仅是示意性的,并不对本发明的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部来实现本实施例方案的目的,此处不做限制。
另外,未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的数仓全链路测试方法,此处不再赘述。
此外,需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器(Read Only Memory,ROM)/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种数仓全链路测试方法,其特征在于,所述数仓全链路测试方法包括:
在接收到数仓全链路测试请求时,根据所述数仓全链路测试请求搭建全链路测试环境;
获取待测试数据和对应的预期结果;
通过所述全链路测试环境生成所述待测试数据对应的测试结果;
对所述预期结果和所述测试结果进行数据验证,得到目标测试结果。
2.如权利要求1所述的数仓全链路测试方法,其特征在于,所述根据所述数仓全链路测试请求搭建全链路测试环境,包括:
根据所述数仓全链路测试请求获取链路环境代码和产品代码库;
对所述链路环境代码和所述产品代码库中的代码进行一致性检测;
在一致性检测通过时,获取本地视图数据和表数据;
根据所述本地视图数据和表数据生成目标检测脚本;
根据所述数仓全链路测试请求搭建全链路测试环境。
3.如权利要求2所述的数仓全链路测试方法,其特征在于,所述根据所述本地视图数据和表数据生成目标检测脚本,包括:
根据所述本地视图数据和表数据生成初始检测脚本;
获取所述初始检测脚本的执行日志;
根据所述执行日志确定执行成功的检测脚本;
控制所述执行成功的检测脚本进行空跑,并生成空跑执行日志;
根据所述空跑执行日志确定目标检测脚本。
4.如权利要求1所述的数仓全链路测试方法,其特征在于,所述根据所述数仓全链路测试请求搭建全链路测试环境之前,还包括:
根据所述数仓全链路测试请求获取仓内初始作业清单和对应的作业源码;
解析所述作业源码,得到所述初始作业清单的输入-输出关系和字段加工信息;
根据所述输入-输出关系生成目标加工链路模板;
根据所述字段加工信息和所述目标加工链路模板生成预设仓内全链路加工过程分析结果。
5.如权利要求4所述的数仓全链路测试方法,其特征在于,所述解析所述作业源码,包括:
解析所述作业源码,得到所述作业源码对应的初始作业输入-输出关系;
根据所述初始作业输入-输出关系确定待使用视图数据和表数据;
在存在新增的待使用视图数据和表数据时,根据新增的待使用视图数据和表数据确定更新初始作业清单,得到目标作业清单,并解析所述目标作业清单对应的作业源码,以得到对应的输入-输出关系;
在不存在新增的待使用视图数据和表数据时,解析所述作业源码,以得到对应的输入-输出关系。
6.如权利要求4所述的数仓全链路测试方法,其特征在于,所述根据所述输入-输出关系生成目标加工链路模板,包括:
根据所述输入-输出关系构建初始加工链路;
基于预设源系统信息和所述初始加工链路生成目标加工链路模板,所述目标加工链路模板为字段级别的加工链路模板。
7.如权利要求1所述的数仓全链路测试方法,其特征在于,获取待测试数据的步骤,包括:
获取业务系统中的环境信息;
基于所述全链路测试环境抽取目标表清单,并根据所述目标表清单得到仓内-仓外映射关系表;
将所述环境信息配置到仓内-仓外映射关系表,得到目标映射关系表;
根据所述目标映射关系表构建入库脚本;
根据所述入库脚本将所述目标映射关系表进行入库,并进行入库表数据量检查;
在检查无误时,从数据库中获取待测试数据。
8.一种数仓全链路测试装置,其特征在于,所述数仓全链路测试装置包括:
构建模块,用于在接收到数仓全链路测试请求时,根据所述数仓全链路测试请求搭建全链路测试环境;
获取模块,用于获取待测试数据和对应的预期结果;
测试模块,用于通过所述全链路测试环境生成所述待测试数据对应的测试结果;
验证模块,用于对所述预期结果和所述测试结果进行数据验证,得到目标测试结果。
9.一种数仓全链路测试设备,其特征在于,所述数仓全链路测试设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数仓全链路测试程序,所述数仓全链路测试程序配置为实现如权利要求1至7中任一项所述的数仓全链路测试方法。
10.一种存储介质,其特征在于,所述存储介质上存储有数仓全链路测试程序,所述数仓全链路测试程序被处理器执行时实现如权利要求1至7任一项所述的数仓全链路测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311417925.1A CN117370202A (zh) | 2023-10-26 | 2023-10-26 | 数仓全链路测试方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311417925.1A CN117370202A (zh) | 2023-10-26 | 2023-10-26 | 数仓全链路测试方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117370202A true CN117370202A (zh) | 2024-01-09 |
Family
ID=89396280
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311417925.1A Pending CN117370202A (zh) | 2023-10-26 | 2023-10-26 | 数仓全链路测试方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117370202A (zh) |
-
2023
- 2023-10-26 CN CN202311417925.1A patent/CN117370202A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110287052B (zh) | 一种异常任务的根因任务确定方法及装置 | |
CN107665171B (zh) | 自动回归测试方法及装置 | |
US8782609B2 (en) | Test failure bucketing | |
CN102073640B (zh) | Sql语句的检测方法、系统及服务器 | |
CN108763091B (zh) | 用于回归测试的方法、装置及系统 | |
CN112506807B (zh) | 服务于多系统的接口自动化测试系统 | |
CN112506894A (zh) | 基于链路追踪的服务链日志处理方法、装置和计算机设备 | |
CN111382070B (zh) | 兼容性测试方法、装置、存储介质和计算机设备 | |
CN108009080B (zh) | 一种代码扫描工具的评估方法及装置 | |
CN113868498A (zh) | 数据存储方法、电子装置、装置及可读存储介质 | |
CN113326247A (zh) | 云端数据的迁移方法、装置及电子设备 | |
CN108399125A (zh) | 自动化测试方法、装置、计算机设备和存储介质 | |
WO2021262283A1 (en) | Reduced processing loads via selective validation specifications | |
CN116866242A (zh) | 一种交换机回归测试方法、设备及介质 | |
CN117370202A (zh) | 数仓全链路测试方法、装置、设备及存储介质 | |
CN113050925B (zh) | 区块链智能合约修复方法及装置 | |
CN115576831A (zh) | 一种测试案例推荐方法、装置、设备及存储介质 | |
CN115438026A (zh) | 一种数据库扫描方法、装置、设备、存储介质及产品 | |
CN114676054A (zh) | 一种测试数据生成方法、装置、设备、介质及产品 | |
CN109783105B (zh) | 企业服务平台的编码统计方法、设备、存储介质及装置 | |
CN113886262A (zh) | 软件自动化测试方法、装置、计算机设备和存储介质 | |
CN112612773A (zh) | 数据库同步测试方法、装置、计算机设备及存储介质 | |
CN111767222A (zh) | 数据模型的验证方法、装置、电子设备、存储介质 | |
CN115545677B (zh) | 基于自动化用例执行情况的上线流程规范检测方法和系统 | |
CN112115046B (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 |