CN111475167A - 一种基于HQL语句的Shell脚本依赖关系抽取方法 - Google Patents

一种基于HQL语句的Shell脚本依赖关系抽取方法 Download PDF

Info

Publication number
CN111475167A
CN111475167A CN202010285105.1A CN202010285105A CN111475167A CN 111475167 A CN111475167 A CN 111475167A CN 202010285105 A CN202010285105 A CN 202010285105A CN 111475167 A CN111475167 A CN 111475167A
Authority
CN
China
Prior art keywords
shell script
shell
statement
dependency relationship
output
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
CN202010285105.1A
Other languages
English (en)
Other versions
CN111475167B (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 Shouqi Zhixing Technology Co Ltd
Original Assignee
Beijing Shouqi Zhixing 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 Shouqi Zhixing Technology Co Ltd filed Critical Beijing Shouqi Zhixing Technology Co Ltd
Priority to CN202010285105.1A priority Critical patent/CN111475167B/zh
Publication of CN111475167A publication Critical patent/CN111475167A/zh
Application granted granted Critical
Publication of CN111475167B publication Critical patent/CN111475167B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • G06F8/433Dependency analysis; Data or control flow analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/75Structural analysis for program understanding
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Machine Translation (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开的基于HQL语句的Shell脚本依赖关系抽取方法,涉及大数据技术领域,通过获取Shell脚本中的HQL语句,解析HQL语句,得到HQL语句的关键词,根据关键词获取HQL语句的输入表和输出表、输出表的Shell脚本路径信息,根据输入表和输出表之间的映射关系、输出表的Shell脚本路径信息,根据输出表和Shell脚本之间的映射关系,得到第一数据表中Shell脚本之间的依赖关系,根据第二数据表中Shell脚本之间的依赖关系,计算与指定Shell脚本具有前后依赖的Shell脚本,得到Shell脚本集合,降低了人力成本及时间成本,提高了效率。

Description

一种基于HQL语句的Shell脚本依赖关系抽取方法
技术领域
本发明涉及大数据技术领域,具体涉及一种基于HQL语句的Shell脚本依赖关系抽取方法。
背景技术
目前,大数据技术已经应用到了各行各业,应用场景非常广泛。在大数据平台上,每天都有海量的数据生成,大量的数据表之间的依赖关系将会给数据计算任务造成不小的影响,特别是问题数据的排查影响更大。通过人工构建数据表、计算脚本之间的依赖关系会非常耗时耗力,所以能够实现自动化构建依赖关系显得非常重要。
目前的解决方案为:面对不同的应用场景,利用HOOK技术获取HQL语句,以开源工具解析HQL语句(即Hive SQL语句),解析出数据表的血缘关系或者Hive脚本的依赖关系。但是针对这样一种应用场景,在Linux平台上,一个Shell脚本批处理计算任务中包含有大批量的Shell脚本,一个Shell脚本中又包含多个执行HQL语句的命令。当需要抽取数据表依赖关系和Shell脚本执行顺序的信息时,现有的技术方案不能很好地解决。
发明内容
为解决现有技术的不足,本发明实施例提供了一种基于HQL语句的Shell脚本依赖关系抽取方法,该方法包括:
获取Shell脚本中的HQL语句;
解析HQL语句,得到HQL语句的关键词,根据所述关键词获取所述HQL语句的输入表和输出表、所述输出表的Shell脚本路径信息并将所述输入表和所述输出表之间的映射关系、所述输出表的Shell脚本路径信息写入预设的第一数据表中;
根据所述输入表和所述输出表之间的映射关系、所述输出表的Shell脚本路径信息,得到所述输出表和Shell脚本之间的映射关系;
根据所述输出表和Shell脚本之间的映射关系,得到输入表映射的Shell脚本并将所述Shell脚本写入所述第一数据表中;
根据输出表映射的Shell脚本和输入表映射的Shell脚本之间的依赖关系,得到所述第一数据表中Shell脚本之间的依赖关系并将所述依赖关系写入预设的第二数据表;
根据所述第二数据表中Shell脚本之间的依赖关系,计算与指定的Shell脚本具有前后依赖的Shell脚本,得到Shell脚本集合。
优选地,在得到输入表映射的Shell脚本并将所述Shell脚本写入所述第一数据表中之后,所述方法还包括:
根据所述第一数据表中输入表和输出表之间的映射关系,计算与指定的数据表具有前后依赖的数据表,得到数据表集合。
优选地,所述第一数据表的内容包括:
输出表的shell脚本名称、输出表的名称、输入表的名称及输入表的shell脚本名称。
本发明实施例提供的基于HQL语句的Shell脚本依赖关系抽取方法具有以下有益效果:
能够有效地抽取数据表依赖关系和Shell脚本执行顺序,不需要通过人工构建数据表及计算脚本之间的依赖关系,降低了人力成本及时间成本,提高了效率。
具体实施方式
以下结合具体实施例对本发明作具体的介绍。
本发明实施例提供的基于HQL语句的Shell脚本依赖关系抽取方法包括以下步骤:
S101,获取Shell脚本中的HQL语句。
S102,解析HQL语句,得到HQL语句的关键词,根据关键词获取HQL语句的输入表和输出表、输出表的Shell脚本路径信息并将输入表和输出表之间的映射关系、输出表的Shell脚本路径信息写入预设的第一数据表中。
S103,根据输入表和输出表之间的映射关系、输出表的Shell脚本路径信息,得到输出表和Shell脚本之间的映射关系。
S104,根据输出表和Shell脚本之间的映射关系,得到输入表映射的Shell脚本并将Shell脚本写入第一数据表中。
S105,根据输出表映射的Shell脚本和输入表映射的Shell脚本之间的依赖关系,得到第一数据表中Shell脚本之间的依赖关系并将依赖关系写入预设的第二数据表;
S106,根据第二数据表中Shell脚本之间的依赖关系,计算与指定的Shell脚本具有前后依赖的Shell脚本,得到Shell脚本集合。
可选地,在得到输入表映射的Shell脚本并将Shell脚本写入第一数据表中之后,该方法还包括:
根据第一数据表中输入表和输出表之间的映射关系,计算与指定的数据表具有前后依赖的数据表,得到数据表集合。
作为一个具体的实施例,根据数据表的名称,计算与该数据表具有前后依赖的数据表。
可选地,第一数据表的内容包括:
输出表的shell脚本名称、输出表的名称、输入表的名称及输入表的shell脚本名称。
作为一个具体的实施例,根据shell脚本的名称,计算与该shell脚本具有前后依赖的数据表。
本发明实施例提供的基于HQL语句的Shell脚本依赖关系抽取方法,通过获取Shell脚本中的HQL语句,解析HQL语句,得到HQL语句的关键词,根据关键词获取HQL语句的输入表和输出表、输出表的Shell脚本路径信息并将输入表和输出表之间的映射关系、输出表的Shell脚本路径信息写入预设的第一数据表中,根据输入表和输出表之间的映射关系、输出表的Shell脚本路径信息,得到输出表和Shell脚本之间的映射关系,根据输出表和Shell脚本之间的映射关系,得到输入表映射的Shell脚本并将Shell脚本写入第一数据表中,根据输出表映射的Shell脚本和输入表映射的Shell脚本之间的依赖关系,得到第一数据表中Shell脚本之间的依赖关系并将依赖关系写入预设的第二数据表,根据第二数据表中Shell脚本之间的依赖关系,计算与指定的Shell脚本具有前后依赖的Shell脚本,得到Shell脚本集合,降低了人力成本及时间成本,提高了效率。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
可以理解的是,上述方法及装置中的相关特征可以相互参考。另外,上述实施例中的“第一”、“第二”等是用于区分各实施例,而并不代表各实施例的优劣。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
此外,存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (3)

1.一种基于HQL语句的Shell脚本依赖关系抽取方法,其特征在于,包括:
获取Shell脚本中的HQL语句;
解析HQL语句,得到HQL语句的关键词,根据所述关键词获取所述HQL语句的输入表和输出表、所述输出表的Shell脚本路径信息并将所述输入表和所述输出表之间的映射关系、所述输出表的Shell脚本路径信息写入预设的第一数据表中;
根据所述输入表和所述输出表之间的映射关系、所述输出表的Shell脚本路径信息,得到所述输出表和Shell脚本之间的映射关系;
根据所述输出表和Shell脚本之间的映射关系,得到输入表映射的Shell脚本并将所述Shell脚本写入所述第一数据表中;
根据输出表映射的Shell脚本和输入表映射的Shell脚本之间的依赖关系,得到所述第一数据表中Shell脚本之间的依赖关系并将所述依赖关系写入预设的第二数据表;
根据所述第二数据表中Shell脚本之间的依赖关系,计算与指定的Shell脚本具有前后依赖的Shell脚本,得到Shell脚本集合。
2.根据权利要求1所述的基于HQL语句的Shell脚本依赖关系抽取方法,其特征在于,在得到输入表映射的Shell脚本并将所述Shell脚本写入所述第一数据表中之后,所述方法还包括:
根据所述第一数据表中输入表和输出表之间的映射关系,计算与指定的数据表具有前后依赖的数据表,得到数据表集合。
3.根据权利要求1所述的基于HQL语句的Shell脚本依赖关系抽取方法,其特征在于,所述第一数据表的内容包括:
输出表的shell脚本名称、输出表的名称、输入表的名称及输入表的shell脚本名称。
CN202010285105.1A 2020-04-13 2020-04-13 一种基于HQL语句的Shell脚本依赖关系抽取方法 Active CN111475167B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010285105.1A CN111475167B (zh) 2020-04-13 2020-04-13 一种基于HQL语句的Shell脚本依赖关系抽取方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010285105.1A CN111475167B (zh) 2020-04-13 2020-04-13 一种基于HQL语句的Shell脚本依赖关系抽取方法

Publications (2)

Publication Number Publication Date
CN111475167A true CN111475167A (zh) 2020-07-31
CN111475167B CN111475167B (zh) 2023-06-23

Family

ID=71752278

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010285105.1A Active CN111475167B (zh) 2020-04-13 2020-04-13 一种基于HQL语句的Shell脚本依赖关系抽取方法

Country Status (1)

Country Link
CN (1) CN111475167B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112464050A (zh) * 2020-12-11 2021-03-09 中国人寿保险股份有限公司 一种基于python的数据血缘整理方法、装置及电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103902582A (zh) * 2012-12-27 2014-07-02 中国移动通信集团湖北有限公司 一种减少数据仓库数据冗余的方法和装置
US20170139997A1 (en) * 2015-11-18 2017-05-18 American Express Travel Related Services Company, System and method for reading and writing to big data storage formats
US20170199922A1 (en) * 2016-01-13 2017-07-13 American Express Travel Related Services Co., Inc. System and method for managing data and updates to a database structure
CN110321393A (zh) * 2019-06-28 2019-10-11 深圳前海微众银行股份有限公司 数据计算方法、装置、设备及可读存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103902582A (zh) * 2012-12-27 2014-07-02 中国移动通信集团湖北有限公司 一种减少数据仓库数据冗余的方法和装置
US20170139997A1 (en) * 2015-11-18 2017-05-18 American Express Travel Related Services Company, System and method for reading and writing to big data storage formats
US20170199922A1 (en) * 2016-01-13 2017-07-13 American Express Travel Related Services Co., Inc. System and method for managing data and updates to a database structure
CN110321393A (zh) * 2019-06-28 2019-10-11 深圳前海微众银行股份有限公司 数据计算方法、装置、设备及可读存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
KIMIO KURAMTISU: "《D-Script : Dependable scripting with DEOS process》", 《2013 IEEE INTERNATIONAL SYMPOSIUM ON SOFTWARE RELIABILITY ENGINEERING WORKSHOPS (ISSREW)》, pages 326 *
高新凯: "《基于Shell的作业批改软件在Linux系统教学中的应用》", 《电脑编程技巧与维护》, no. 7, pages 28 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112464050A (zh) * 2020-12-11 2021-03-09 中国人寿保险股份有限公司 一种基于python的数据血缘整理方法、装置及电子设备
CN112464050B (zh) * 2020-12-11 2024-05-28 中国人寿保险股份有限公司 一种基于python的数据血缘整理方法、装置及电子设备

Also Published As

Publication number Publication date
CN111475167B (zh) 2023-06-23

Similar Documents

Publication Publication Date Title
EP3353672B1 (en) Method and apparatus for transferring data between databases
CN108984652B (zh) 一种可配置数据清洗系统和方法
CN111078313A (zh) 一种业务参数配置方法
CN109918296B (zh) 软件自动化测试方法及装置
CN109033365B (zh) 一种数据处理方法及相关设备
CN110569330A (zh) 一种基于智能选词的文本标注系统及装置、设备、介质
CN110895544B (zh) 一种接口数据处理方法、装置、系统及存储介质
CN106648839B (zh) 数据处理的方法和装置
CN111475167A (zh) 一种基于HQL语句的Shell脚本依赖关系抽取方法
CN112860234A (zh) 一种前端页面代码生成方法及系统
CN108241620B (zh) 查询脚本的生成方法及装置
CN110928941A (zh) 一种数据分片抽取方法及装置
CN112347077A (zh) 一种数据查询方法
CN111478985A (zh) 一种服务域名基础信息动态配置方法
CN110968500A (zh) 一种测试用例的执行方法及装置
CN110019357B (zh) 数据库查询脚本生成方法及装置
CN110019497B (zh) 一种数据读取方法及装置
CN114253845A (zh) 异型架构集成体系的自动化测试方法和装置
CN112445600A (zh) 一种离线数据处理任务发布方法及系统
CN112860542A (zh) 一种ui自动化测试方法
CN113919683A (zh) 工艺工时的计算方法、装置、存储介质及处理器
CN110795421A (zh) 一种防止脏数据产生的方法
CN112749189A (zh) 数据查询方法及装置
CN116594917B (zh) Ui测试方法和装置、电子设备及机器可读存储介质
CN111062816B (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