CN111626585B - 脚本数据提取方法、装置、计算机设备和存储介质 - Google Patents

脚本数据提取方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN111626585B
CN111626585B CN202010435056.5A CN202010435056A CN111626585B CN 111626585 B CN111626585 B CN 111626585B CN 202010435056 A CN202010435056 A CN 202010435056A CN 111626585 B CN111626585 B CN 111626585B
Authority
CN
China
Prior art keywords
data
regular expression
script
extracting
script data
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.)
Active
Application number
CN202010435056.5A
Other languages
English (en)
Other versions
CN111626585A (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.)
Southern Power Grid Digital Grid Research Institute Co Ltd
Guangxi Power Grid Co Ltd
Original Assignee
Southern Power Grid Digital Grid Research Institute Co Ltd
Guangxi Power Grid 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 Southern Power Grid Digital Grid Research Institute Co Ltd, Guangxi Power Grid Co Ltd filed Critical Southern Power Grid Digital Grid Research Institute Co Ltd
Priority to CN202010435056.5A priority Critical patent/CN111626585B/zh
Publication of CN111626585A publication Critical patent/CN111626585A/zh
Application granted granted Critical
Publication of CN111626585B publication Critical patent/CN111626585B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0639Performance analysis of employees; Performance analysis of enterprise or organisation operations
    • G06Q10/06393Score-carding, benchmarking or key performance indicator [KPI] analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24564Applying rules; Deductive queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2462Approximate or statistical queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/06Energy or water supply
    • 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
    • Y04INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
    • Y04SSYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
    • Y04S10/00Systems supporting electrical power generation, transmission or distribution
    • Y04S10/50Systems or methods supporting the power network operation or management, involving a certain degree of interaction with the load-side end user applications

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Economics (AREA)
  • Strategic Management (AREA)
  • Development Economics (AREA)
  • Educational Administration (AREA)
  • Marketing (AREA)
  • Tourism & Hospitality (AREA)
  • Computational Linguistics (AREA)
  • General Business, Economics & Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Health & Medical Sciences (AREA)
  • Probability & Statistics with Applications (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Public Health (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Fuzzy Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Primary Health Care (AREA)
  • Water Supply & Treatment (AREA)
  • Game Theory and Decision Science (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及一种脚本数据提取方法、装置、计算机设备和存储介质。所述方法包括:获取脚本数据,提取脚本数据对应的正则表达式规则逻辑,基于正则表达式规则逻辑,生成正则表达式、并根据正则表达式提取脚本数据的底层数据和输出结果字段,根据预设文件名匹配模型,将提取出的底层数据和输出结果字段输出至预设文件名匹配模型对应的数据集合。采用本方法,只需获取正则表达的规则逻辑,便能构造正则表达式的特定扩展以获得成功的匹配,快速地从大量的脚本数据中查找到底层数据和脚本数据中包含的输出结果字段。既节省大量人力去搜寻数据,又极大的避免了由于人力查找出现缺漏而导致的数据质量问题,提高数据提取效率,降低审计工作的难度。

Description

脚本数据提取方法、装置、计算机设备和存储介质
技术领域
本申请涉及电力电网技术领域,特别是涉及一种脚本数据提取方法、装置、计算机设备和存储介质。
背景技术
随着信息化技术的发展,电子化的业务流、资金流和信息流已逐渐成为数据审计工作的主流,海量的数据审计需要借助信息化手段和大数据支持。其中,营销域审计模型涉及源表及模型成果输出数据集繁多,在相关表及数据集的匹配提取整合工作存在巨大的工作量挑战。电网行业的营销域涉及的脚本的数量过多,脚本间的关联关系也较为复杂,其中也包含多个伪表。
目前,传统的营销域审计模型源表及结果整合的数据提取方式主要依托于***原厂商提供和审计分析规则明确输出结果集的数据字典,通过人工设置过滤字段,提取目标的源表及结果表,然后查看具体的数据库实际数据进行复核,最终输出数据集并进行整合。
上述数据提取方式,依靠人工进行数据提取,不仅耗费大量人力和时间,若遇到缺表或者表名称写错的情况,会导致数据提取结果出现纰漏,严重影响数据质量,由此可见,传统的审计模型源表及结果整合的提取方式存在数据提取效率过低的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高数据提取效率的脚本数据提取方法、装置、计算机设备和存储介质。
一种脚本数据提取方法,所述方法包括:
获取脚本数据;
提取脚本数据对应的正则表达式规则逻辑;
基于正则表达式规则逻辑,生成正则表达式、并根据正则表达式提取脚本数据的底层数据和输出结果字段;
根据预设文件名匹配模型,将提取出的底层数据和输出结果字段输出至预设文件名匹配模型对应的数据集合。
在其中一个实施例中,基于正则表达式规则逻辑,生成正则表达式、并采用正则表达式提取脚本数据的底层数据包括:
导出当前数据库中数据表的表名称和表名称对应的注释数据,注释数据包括表名称对应的预设格式的表名称;
读取表名称和表名称对应的注释数据,存入至对应的变量数据;
基于正则表达式规则逻辑,生成第一正则表达式;
根据第一正则表达式,从脚本数据中匹配出底层数据表、并将底层数据表添加至预设数据结构;
遍历预设数据结构,根据变量数据提取出底层数据表的预设格式的表名称。
在其中一个实施例中,遍历预设数据结构,根据变量数据提取出底层数据表的预设格式的表名称之后,还包括:
拼接底层数据表的表名称以及底层数据表的预设格式的表名称,得到结果字段。
在其中一个实施例中,基于正则表达式规则逻辑,生成正则表达式、并根据正则表达式提取输出结果字段包括:
基于正则表达式规则逻辑,生成第二正则表达式;
基于第二正则表达式,采用贪婪匹配模式算法,提取出输出结果字段。
在其中一个实施例中,获取脚本数据包括:
获取待提取脚本数据的目录文件名;
根据目录文件名,提取出对应的脚本数据。
在其中一个实施例中,提取脚本数据对应的正则表达式规则逻辑之前,还包括:
对脚本数据进行数据读取缓存处理、数据格式统一处理、以及冗余数据消除处理。
在其中一个实施例中,基于正则表达式规则逻辑,生成正则表达式、并根据正则表达式提取脚本数据的底层数据和输出结果字段之前,还包括:
去除脚本数据中的脚本注释数据。
一种脚本数据提取装置,其特征在于,装置包括:
数据获取模块,用于获取脚本数据;
规则逻辑获取模块,用于提取脚本数据对应的正则表达式规则逻辑;
数据提取模块,用于基于正则表达式规则逻辑,生成正则表达式、并根据正则表达式提取脚本数据的底层数据和输出结果字段;
数据输出模块,用于根据预设文件名匹配模型,将提取出的底层数据和输出结果字段输出至预设文件名匹配模型对应的数据集合。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取脚本数据;
提取脚本数据对应的正则表达式规则逻辑;
基于正则表达式规则逻辑,生成正则表达式、并根据正则表达式提取脚本数据的底层数据和输出结果字段;
根据预设文件名匹配模型,将提取出的底层数据和输出结果字段输出至预设文件名匹配模型对应的数据集合。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取脚本数据;
提取脚本数据对应的正则表达式规则逻辑;
基于正则表达式规则逻辑,生成正则表达式、并根据正则表达式提取脚本数据的底层数据和输出结果字段;
根据预设文件名匹配模型,将提取出的底层数据和输出结果字段输出至预设文件名匹配模型对应的数据集合。
上述脚本数据提取方法、装置、计算机设备和存储介质,获取脚本数据,提取脚本数据对应的正则表达式规则逻辑,基于正则表达式规则逻辑,生成正则表达式、并根据正则表达式提取脚本数据的底层数据和输出结果字段,根据预设文件名匹配模型,将提取出的底层数据和输出结果字段输出至预设文件名匹配模型对应的数据集合。上述方案,针对大批量脚本数据,采用正则表达式的方式提取对底层数据和输出结果字段,只需获取正则表达的规则逻辑,便能构造正则表达式的特定扩展以获得成功的匹配,快速地从大量的脚本数据中查找到底层数据和脚本数据中包含的输出结果字段,一方面,可以节省大量人力去搜寻数据,一方面也极大的避免了由于人力查找出现缺漏而导致的数据质量问题,提高数据提取效率,降低审计工作的难度。
附图说明
图1为一个实施例中脚本数据提取方法的应用环境图;
图2为一个实施例中脚本数据提取方法的流程示意图;
图3为另一个实施例中脚本数据提取方法的详细流程示意图;
图4为一个实施例中提取脚本数据的底层数据和输出结果字段步骤的流程示意图;
图5为一个实施例中脚本数据提取装置的结构框图;
图6为另一个实施例中脚本数据提取装置的结构框图;
图7为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的脚本数据提取方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。服务器104上的数据库存储有电网行业营销域开发项目的数据,其中包括大量的SQL(Structured Query Language,结构化查询语言)脚本数据。用户通过在终端102进行操作,发送脚本数据提取请求至服务器104,服务器104响应该请求,获取脚本数据,提取脚本数据对应的正则表达式规则逻辑,基于正则表达式规则逻辑,生成正则表达式、并根据正则表达式提取脚本数据的底层数据和输出结果字段,根据预设文件名匹配模型,将提取出的底层数据和输出结果字段输出至预设文件名匹配模型对应的数据集合。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种脚本数据提取方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
步骤202,获取脚本数据。
在实际应用中,以电网行业的营销域为例,脚本数据可以是营销域模型开发的500个模型的脚本数据。具体的,脚本数据为SQL文件脚本数据,其中涉及较多的表,且表之间的关联关系复杂。脚本数据的获取可以是通过遍历文件夹的方式查找到需要处理的文件脚本数据。
在其中一个实施例中,步骤202包括:步骤222,获取待提取脚本数据的目录文件名,根据目录文件名,提取出对应的脚本数据。
具体实施时,可以是用户通过终端102发送脚本数据提取请求,该脚本数据提取请求中携带待提取脚本数据的目录文件名,响应该脚本数据提取请求,获取其中的待提取脚本数据的目录文件名,根据目录文件名,从数据库中提取出需要处理的脚本数据。具体的,可以是基于目录文件名,使用Python语言的文件遍历函数和指定后缀结尾函数对文件夹进行遍历。具体的,文件遍历函数可以是os.listdir()方法(函数),该方法用于返回指定的文件夹包含的文件或文件夹的名字的列表。这个列表以字母顺序为准,其不包括'.'和'..',即使它在文件夹中。具体的,listdir()方法语法格式可以如下:os.listdir(path),其中,参数path--需要列出的目录路径;返回值:返回指定路径下的文件和文件夹列表。指定后缀结尾函数可以是Python endswith()方法,该方法用于判断字符串是否以指定后缀结尾,如果以指定后缀结尾返回True,否则返回False。可选参数"start"与"end"为检索字符串的开始与结束位置。具体的,方法语法可以是:str.endswith(suffix[,start[,end]]),其中,参数:suffix--该参数可以是一个字符串或者是一个元素;start--字符串中的开始位置;end--字符中结束位置。返回值:如果字符串含有指定的后缀返回True,否则返回False。本实施例中,通过目录文件名遍历文件夹,能够快速获取到需要处理的脚本数据。
步骤204,提取脚本数据对应的正则表达式规则逻辑。
正则表达式,又称正规表示式、正规表示法等,是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些匹配某个模式的文本。本实施例中的正则表达式规则逻辑即指适用于大量SQL脚本数据的通用的正则表达式的编写规则逻辑,根据该正则表达式规则逻辑,能够进一步编写或构造正则表达式。具体的,可以是采用Python对脚本数据进行预处理,分析得到脚本数据的通用的正则表达式规则逻辑。可以理解的是,正则表达式的规则逻辑可以是计算机基于脚本数据进行分析得到,也可以是反馈脚本数据给开发人员,接收开发人员针对脚本数据分析得到的正则表达式规则逻辑。
步骤206,基于正则表达式规则逻辑,生成正则表达式、并根据正则表达式提取脚本数据的底层数据和输出结果字段。
本实施例中,提取底层数据和输出结果字段涉及的正则表达式有多个。在得到正则表达式规则逻辑后,可进一步编写或构造相应的正则表达式,再根据正则表达式提取脚本数据的底层数据和输出结果字段。其中,底层数据包括脚本数据中的底层数据库原表及其中文名称。
步骤208,根据预设文件名匹配模型,将提取出的底层数据和输出结果字段输出至预设文件名匹配模型对应的数据集合。
在实际应用中,预设文件名匹配模型即指采用文件名通配符匹配算法构建的模型,用于进行文件名匹配。具体实施时,在提取出脚本数据中的底层数据和输出结果字段后,可根据文件名匹配模型将提取出的底层数据和输出结果字段输出至对应的模型规范的Excel中。
上述脚本数据提取方法中,获取脚本数据,提取脚本数据对应的正则表达式规则逻辑,基于正则表达式规则逻辑,生成正则表达式、并根据正则表达式提取脚本数据的底层数据和输出结果字段,根据预设文件名匹配模型,将提取出的底层数据和输出结果字段输出至预设文件名匹配模型对应的数据集合。上述方案,针对大批量脚本数据,采用正则表达式的方式提取对底层数据和输出结果字段,只需获取正则表达的规则逻辑,便能构造正则表达式的特定扩展以获得成功的匹配,快速地从大量的脚本数据中查找到底层数据和脚本数据中包含的输出结果字段。一方面,可以节省大量人力去搜寻数据,一方面也极大的避免了由于人力查找出现缺漏而导致的数据质量问题,提高数据提取效率,降低审计工作的难度。
在其中一个实施例中,提取脚本数据对应的正则表达式规则逻辑之前包括:对脚本数据进行数据读取缓存处理、数据格式统一处理、以及冗余数据消除处理。
在实际应用中,由于SQL脚本并非是一个人开发的,每个人有不同的编码***台的功能,并提供了相关python函数来导航、创建、删除和修改文件和文件夹。具体的,数据预处理包括:
①SQL文本数据的读取缓存。即将SQL文件读取到服务器中,方便后期数据的处理和提取,可以实现自动化的内容批量处理,不需要人力去处理文本内容,这里用到python的一个文本读取函数open。python open()函数用于打开一个文件,创建一个file对象,相关的方法才可以调用它进行读写。具体的,函数语法:open(name[,mode[,buffering]]),参数说明:name:一个包含了你要访问的文件名称的字符串值。mode:mode决定了打开文件的模式:只读,写入,追加等。所有可取值见如下的完全列表。这个参数是非强制的,默认文件访问模式为只读(r)。buffering:如果buffering的值被设为0,就不会有寄存。如果buffering的值取1,访问文件时会寄存行。如果将buffering的值设为大于1的整数,表明了这就是的寄存区的缓冲大小。如果取负值,寄存区的缓冲大小则为***默认。
②SQL文本内容大小写处理。由于不同的编码习惯会导致文本出现大小写混杂的情况,这样的数据不利于查询匹配表名称,且可能会出现部分缺表名称的情况,因此,将文本内容处理为一致的大小写,统一文本数据的格式是很有必要的。具体的,可以是采用Python upper()方法将字符串中的小写字母转为大写字母。语法:upper(),方法语法:str.upper(),参数:NA。返回值:返回小写字母转为大写字母的字符串。
③冗余数据消除。数据冗余指数据之间的重复,也可以说是同一数据存储在不同数据文件中的现象。数据冗余会妨碍数据库中数据的完整性(integrality),也会造成存贮空间的浪费。因此,消除冗余数据对于信息资源管理是非常重要的。具体的,可采用数据去重技术等去除数据库表中的冗余数据,增加数据的独立性。本实施例中,通过对脚本数据进行数据读取缓存处理、数据格式统一处理、以及冗余数据消除处理,能够提高数据的规范性,方便后期的数据匹配和数据提取。
如图3所示,步骤206之前,还包括:步骤205,去除脚本数据中的脚本注释数据。
实际应用中,由于数据库开发工程师的编码习惯,方便后期代码的阅读,在开发的过程或多或少会给脚本增添注释。如此一来,对于提取底层数据(底层原表)会有影响,可能会导致得到一些来自于注释内容的错误原表,从而影响数据原表的准确性,因此,在进行数据提取处理之前,需要去除脚本数据中的脚本注释数据。具体的,数据库脚本的注释一般都有固定规律,本实施例中,可通过正则表达式进行数据匹配,去除脚本注释数据。通过去除脚本注释数据,再匹配和查找底层数据和输出结果字段可以提高数据质量。
如图4所示,在其中一个实施例中,基于正则表达式规则逻辑,生成正则表达式、并根据正则表达式提取脚本数据的底层数据包括:
步骤216,导出当前数据库中数据表的表名称和表名称对应的注释数据,注释数据包括表名称对应的预设格式的表名称;
步骤226,读取表名称和表名称对应的注释数据,存入至对应的变量数据;
步骤236,基于正则表达式规则逻辑,生成第一正则表达式;
步骤246,根据第一正则表达式,从脚本数据中匹配出底层数据表、并将底层数据表添加至预设数据结构;
步骤256,遍历预设数据结构,根据变量数据提取出底层数据表的预设格式的表名称。
具体实施时,底层数据包括脚本数据中的底层数据库原表及底层数据库原表的中文名称。具体的,底层数据的提取包括:导出当前数据库中所有数据表的表名称(英文名称)和表名称对应的注释数据(即英文表名称的中文注释),将导出的表名称及其注释数据以Excel表格形式输出展示(具体可参见表1),然后,利用Python的pandas模块读取Excel文件,将Excel文件的表名称和注释读取进去服务器缓存中,存取成N个变量,进而,基于正则表达式规则逻辑,构造第一正则表达式,通过第一正则表达式提取出所有的底层数据表,并将提取出的底层数据表放入一个list组中,遍历整个list组的内容,根据变量数据,匹配(提取)出对应的底层数据表的中文名称。更具体的,采用正则表达式提取底层数据表及其中文名称过程中,还包括去除自定义表名和临时表。进一步的,处理的过程中还包括一些特殊处理,例如一些供电单位名称等伪表是营销***没有的中间表,则将此类表忽略,后期标注出来。本实施例中,通过正则表达式提取需要处理的底层数据表及其中文名称,使得数据查找不局限于人工查找,能够实现大数据量大批量的数据处理,且也提高了数据准备性。
在其中一个实施例中,遍历预设数据结构,根据变量数据提取出底层数据表的预设格式的表名称之后,还包括:拼接底层数据表的表名称以及底层数据表的预设格式的表名称,得到结果字段。通过将表名称和表名称对应的中文名称拼接成结果字段,能够方便后续数据输出,提高输出数据的可读性。
在其中一个实施例中,基于正则表达式规则逻辑,采用正则表达式提取输出结果字段包括:基于正则表达式规则逻辑,生成第二正则表达式;基于第二正则表达式,采用贪婪匹配模式算法,提取出输出结果字段。
具体实施时,输出结果字段的提取可以是根据前述得到的正则表达式规则逻辑,构造第二正则表达式,通过第二正则表达式匹配脚本数据中最后一个select输出脚本,从中提取所有的输出结果字段。本实施例中,可采用正则表达的贪婪匹配模式算法。正则表达式通常用于在文本中查找匹配的字符串。Python里数量词默认是贪婪的(在少数语言里也可能是默认非贪婪),总是尝试匹配尽可能多的字符;非贪婪则相反,总是尝试匹配尽可能少的字符。贪婪模式下字符串查找会直接从字符串结尾开始去匹配,如果不相等就向前寻找,这一过程称为回溯。非贪婪模式下会自左向右查找,逐个匹配不会出现回溯的情况。可在"*","?","+","{m,n}"后面加上?,使贪婪模式变成非贪婪模式。本实施例中,通过正则表达式运行“贪婪”匹配回溯算法,以指定顺序测试正则表达式的所有可能的扩展并接受第N个匹配项,构造正则表达式的特定扩展以获得成功的匹配,使得可以捕获子表达式匹配和匹配的反向引用,且可以多次访问完全相同的状态(如果通过不同的路径到达该状态)。
应该理解的是,虽然图2-4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-4中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图5所示,提供了一种脚本数据提取装置,包括:数据获取模块510、规则逻辑获取模块520、数据提取模块530和数据输出模块540,其中:
数据获取模块510,用于获取脚本数据;
规则逻辑获取模块520,用于提取脚本数据对应的正则表达式规则逻辑;
数据提取模块530,用于基于正则表达式规则逻辑,生成正则表达式、并根据正则表达式提取脚本数据的底层数据和输出结果字段;
数据输出模块540,用于根据预设文件名匹配模型,将提取出的底层数据和输出结果字段输出至预设文件名匹配模型对应的数据集合。
在其中一个实施例中,数据提取模块530还用于导出当前数据库中数据表的表名称和表名称对应的注释数据,注释数据包括表名称对应的预设格式的表名称,读取表名称和表名称对应的注释数据,存入至对应的变量数据,基于正则表达式规则逻辑,生成第一正则表达式,根据第一正则表达式,从脚本数据中匹配出底层数据表、并将底层数据表添加至预设数据结构,遍历预设数据结构,根据变量数据提取出底层数据表的预设格式的表名称。
如图6所示,在其中一个实施例中,装置还包括数据拼接模块550,用于拼接底层数据表的表名称以及底层数据表的预设格式的表名称,得到结果字段。
在其中一个实施例中,数据提取模块530还用于基于正则表达式规则逻辑,生成第二正则表达式,基于第二正则表达式,采用贪婪匹配模式算法,提取出输出结果字段。
在其中一个实施例中,数据获取模块510还用于获取待提取脚本数据的目录文件名,根据目录文件名,提取出对应的脚本数据。
在其中一个实施例中,装置还包括数据预处理模块560,用于对脚本数据进行数据读取缓存处理、数据格式统一处理、以及冗余数据消除处理。
如图6所示,在其中一个实施例中,装置还包括注释数据去除模块570,用于去除脚本数据中的脚本注释数据。
关于脚本数据提取装置的具体限定可以参见上文中对于脚本数据提取方法的限定,在此不再赘述。上述脚本数据提取装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图7所示。该计算机设备包括通过***总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***、计算机程序和数据库。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的数据库用于存储脚本数据、文件名匹配模型等。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种脚本数据提取方法。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在其中一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:获取脚本数据,提取脚本数据对应的正则表达式规则逻辑,基于正则表达式规则逻辑,生成正则表达式、并根据正则表达式提取脚本数据的底层数据和输出结果字段,根据预设文件名匹配模型,将提取出的底层数据和输出结果字段输出至预设文件名匹配模型对应的数据集合。
在其中一个实施例中,处理器执行计算机程序时还实现以下步骤:导出当前数据库中数据表的表名称和表名称对应的注释数据,注释数据包括表名称对应的预设格式的表名称,读取表名称和表名称对应的注释数据,存入至对应的变量数据,基于正则表达式规则逻辑,生成第一正则表达式,根据第一正则表达式,从脚本数据中匹配出底层数据表、并将底层数据表添加至预设数据结构,遍历预设数据结构,根据变量数据提取出底层数据表的预设格式的表名称。
在其中一个实施例中,处理器执行计算机程序时还实现以下步骤:拼接底层数据表的表名称以及底层数据表的预设格式的表名称,得到结果字段。
在其中一个实施例中,处理器执行计算机程序时还实现以下步骤:基于正则表达式规则逻辑,生成第二正则表达式,基于第二正则表达式,采用贪婪匹配模式算法,提取出输出结果字段。
在其中一个实施例中,处理器执行计算机程序时还实现以下步骤:获取待提取脚本数据的目录文件名,根据目录文件名,提取出对应的脚本数据。
在其中一个实施例中,处理器执行计算机程序时还实现以下步骤:对脚本数据进行数据读取缓存处理、数据格式统一处理、以及冗余数据消除处理。
在其中一个实施例中,处理器执行计算机程序时还实现以下步骤:去除脚本数据中的脚本注释数据。
在其中一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取脚本数据,提取脚本数据对应的正则表达式规则逻辑,基于正则表达式规则逻辑,生成正则表达式、并根据正则表达式提取脚本数据的底层数据和输出结果字段,根据预设文件名匹配模型,将提取出的底层数据和输出结果字段输出至预设文件名匹配模型对应的数据集合。
在其中一个实施例中,计算机程序被处理器执行时还实现以下步骤:导出当前数据库中数据表的表名称和表名称对应的注释数据,注释数据包括表名称对应的预设格式的表名称,读取表名称和表名称对应的注释数据,存入至对应的变量数据,基于正则表达式规则逻辑,生成第一正则表达式,根据第一正则表达式,从脚本数据中匹配出底层数据表、并将底层数据表添加至预设数据结构,遍历预设数据结构,根据变量数据提取出底层数据表的预设格式的表名称。
在其中一个实施例中,计算机程序被处理器执行时还实现以下步骤:拼接底层数据表的表名称以及底层数据表的预设格式的表名称,得到结果字段。
在其中一个实施例中,计算机程序被处理器执行时还实现以下步骤:基于正则表达式规则逻辑,生成第二正则表达式,基于第二正则表达式,采用贪婪匹配模式算法,提取出输出结果字段。
在其中一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取待提取脚本数据的目录文件名,根据目录文件名,提取出对应的脚本数据。
在其中一个实施例中,计算机程序被处理器执行时还实现以下步骤:对脚本数据进行数据读取缓存处理、数据格式统一处理、以及冗余数据消除处理。
在其中一个实施例中,计算机程序被处理器执行时还实现以下步骤:去除脚本数据中的脚本注释数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种脚本数据提取方法,其特征在于,所述方法包括:
获取脚本数据;
提取所述脚本数据对应的正则表达式规则逻辑;
基于所述正则表达式规则逻辑,生成正则表达式、并根据所述正则表达式提取所述脚本数据的底层数据和输出结果字段;
根据预设文件名匹配模型,将提取出的底层数据和输出结果字段输出至所述预设文件名匹配模型对应的数据集合;
其中,基于所述正则表达式规则逻辑,生成正则表达式、并根据所述正则表达式提取所述脚本数据的底层数据包括:导出当前数据库中数据表的表名称和所述表名称对应的注释数据,所述注释数据包括所述表名称对应的预设格式的表名称,读取表名称和所述表名称对应的注释数据,存入至对应的变量数据,基于所述正则表达式规则逻辑,生成第一正则表达式,根据所述第一正则表达式,从所述脚本数据中匹配出底层数据表、并将所述底层数据表添加至预设数据结构,遍历所述预设数据结构,根据所述变量数据提取出所述底层数据表的预设格式的表名称。
2.根据权利要求1所述的方法,其特征在于,所述遍历所述预设数据结构,根据所述变量数据提取出所述底层数据表的预设格式的表名称之后,还包括:
拼接所述底层数据表的表名称以及所述底层数据表的预设格式的表名称,得到结果字段。
3.根据权利要求1所述的方法,其特征在于,基于所述正则表达式规则逻辑,生成正则表达式、并根据所述正则表达式提取所述输出结果字段包括:
基于所述正则表达式规则逻辑,生成第二正则表达式;
基于所述第二正则表达式,采用贪婪匹配模式算法,提取出所述输出结果字段。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述获取脚本数据包括:
获取待提取脚本数据的目录文件名;
根据所述目录文件名,提取出对应的脚本数据。
5.根据权利要求1至3任一项所述的方法,其特征在于,所述提取所述脚本数据对应的正则表达式规则逻辑之前,还包括:对所述脚本数据进行数据读取缓存处理、数据格式统一处理、以及冗余数据消除处理。
6.根据权利要求至1至3任一项所述的方法,其特征在于,所述基于所述正则表达式规则逻辑,生成正则表达式、并根据所述正则表达式提取所述脚本数据的底层数据和输出结果字段之前,还包括:
去除所述脚本数据中的脚本注释数据。
7.一种脚本数据提取装置,其特征在于,所述装置包括:
数据获取模块,用于获取脚本数据;
规则逻辑获取模块,用于提取所述脚本数据对应的正则表达式规则逻辑;
数据提取模块,用于基于所述正则表达式规则逻辑,生成正则表达式、并根据所述正则表达式提取所述脚本数据的底层数据和输出结果字段,其中,基于所述正则表达式规则逻辑,生成正则表达式、并根据所述正则表达式提取所述脚本数据的底层数据包括:导出当前数据库中数据表的表名称和所述表名称对应的注释数据,所述注释数据包括所述表名称对应的预设格式的表名称,读取表名称和所述表名称对应的注释数据,存入至对应的变量数据,基于所述正则表达式规则逻辑,生成第一正则表达式,根据所述第一正则表达式,从所述脚本数据中匹配出底层数据表、并将所述底层数据表添加至预设数据结构,遍历所述预设数据结构,根据所述变量数据提取出所述底层数据表的预设格式的表名称;
数据输出模块,用于根据预设文件名匹配模型,将提取出的底层数据和输出结果字段输出至预设文件名匹配模型对应的数据集合。
8.根据权利要求7所述的脚本数据提取装置,其特征在于,数据提取模块还用于基于所述正则表达式规则逻辑,生成第二正则表达式,基于所述第二正则表达式,采用贪婪匹配模式算法,提取出所述输出结果字段。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
CN202010435056.5A 2020-05-21 2020-05-21 脚本数据提取方法、装置、计算机设备和存储介质 Active CN111626585B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010435056.5A CN111626585B (zh) 2020-05-21 2020-05-21 脚本数据提取方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010435056.5A CN111626585B (zh) 2020-05-21 2020-05-21 脚本数据提取方法、装置、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN111626585A CN111626585A (zh) 2020-09-04
CN111626585B true CN111626585B (zh) 2022-11-08

Family

ID=72272787

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010435056.5A Active CN111626585B (zh) 2020-05-21 2020-05-21 脚本数据提取方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN111626585B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105141590A (zh) * 2015-08-06 2015-12-09 福建天晴数码有限公司 外挂样本提取的方法及***
CN105718477A (zh) * 2014-12-03 2016-06-29 ***通信集团重庆有限公司 一种获取目标文件的方法及装置
CN106126684A (zh) * 2016-06-29 2016-11-16 联想(北京)有限公司 一种生成网络爬虫配置文件的方法及装置
CN108173844A (zh) * 2017-12-27 2018-06-15 成都数成科技有限公司 一种网络协议解码脚本的定义方法
CN108600192A (zh) * 2018-04-03 2018-09-28 南京越博动力***股份有限公司 一种基于正则表达式的dbc文件解析及报文分析方法
CN109144997A (zh) * 2018-06-11 2019-01-04 玖富金科控股集团有限责任公司 数据关联方法、装置及存储介质
CN110019441A (zh) * 2017-08-31 2019-07-16 北京京东尚科信息技术有限公司 一种将网页中数据导出的方法和装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105718477A (zh) * 2014-12-03 2016-06-29 ***通信集团重庆有限公司 一种获取目标文件的方法及装置
CN105141590A (zh) * 2015-08-06 2015-12-09 福建天晴数码有限公司 外挂样本提取的方法及***
CN106126684A (zh) * 2016-06-29 2016-11-16 联想(北京)有限公司 一种生成网络爬虫配置文件的方法及装置
CN110019441A (zh) * 2017-08-31 2019-07-16 北京京东尚科信息技术有限公司 一种将网页中数据导出的方法和装置
CN108173844A (zh) * 2017-12-27 2018-06-15 成都数成科技有限公司 一种网络协议解码脚本的定义方法
CN108600192A (zh) * 2018-04-03 2018-09-28 南京越博动力***股份有限公司 一种基于正则表达式的dbc文件解析及报文分析方法
CN109144997A (zh) * 2018-06-11 2019-01-04 玖富金科控股集团有限责任公司 数据关联方法、装置及存储介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Python正则表达式非贪婪、多行匹配功能示例;damotiansheng;《脚本之家(https://www.jb51.net/article/120600.htm)》;20170808;第1页 *
Regular expressions on the web;Renáta Hodován等;《2010 12th IEEE International Symposium on Web Systems Evolution (WSE)》;20101109;第Ⅱ章 *
天文学英语新词自动提取***;余恒等;《天文研究与技术》;20150731;第12卷(第3期);第375-379页 *

Also Published As

Publication number Publication date
CN111626585A (zh) 2020-09-04

Similar Documents

Publication Publication Date Title
CN113032362B (zh) 数据血缘分析方法、装置、电子设备和存储介质
WO2021258848A1 (zh) 数据字典生成方法、数据查询方法、装置、设备及介质
CN110532347B (zh) 一种日志数据处理方法、装置、设备和存储介质
CN113204571B (zh) 涉及写入操作的sql执行方法、装置及存储介质
WO2019161645A1 (zh) 基于Shell的数据表提取方法、终端、设备及存储介质
KR20210097347A (ko) 인공지능 기반 이미지 검색 방법 및 장치
CN112540862A (zh) 一种接口文档数据生成方法、装置、设备及存储介质
JP4237813B2 (ja) 構造化文書管理システム
CN111475150B (zh) 一种跨语言绑定方法、装置、设备及存储介质
CN111626585B (zh) 脚本数据提取方法、装置、计算机设备和存储介质
CN115599388B (zh) 一种api接口文档生成方法、存储介质及电子设备
CN110795915B (zh) xml文件批量修改方法、***、设备和计算机可读存储介质
CN114185958B (zh) 血缘关系生成方法、装置、计算机设备和存储介质
CN113010550B (zh) 结构化数据的批处理对象生成、批处理方法和装置
CN114816364A (zh) 基于Swagger动态生成范本文件的方法、装置及应用
JP4527697B2 (ja) 漏洩個人情報検索システム、漏洩個人情報検索方法、漏洩個人情報検索装置およびプログラム
CN111651531A (zh) 数据导入方法、装置、设备及计算机存储介质
CN111881220A (zh) 列表存储下的数据操作方法、装置、电子设备和存储介质
CN112434018B (zh) 报表生成方法、装置、计算机设备和存储介质
CN118034777B (zh) 基于fttr的日志管理与版本控制方法、装置、设备及介质
CN113703777B (zh) 基于数据库表的代码生成方法、装置、存储介质和设备
CN115237936B (zh) 检测sql语句中字段的方法、装置、存储介质和设备
CN111581184B (zh) 基于数据库迁移的语义对比方法及装置
CN110825376B (zh) 一种解析带注释json文件的方法、存储介质及装置
JP4160627B2 (ja) 構造化文書管理システム及びプログラム

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