CN111831464A - 数据操作的控制方法及装置 - Google Patents

数据操作的控制方法及装置 Download PDF

Info

Publication number
CN111831464A
CN111831464A CN201910325465.7A CN201910325465A CN111831464A CN 111831464 A CN111831464 A CN 111831464A CN 201910325465 A CN201910325465 A CN 201910325465A CN 111831464 A CN111831464 A CN 111831464A
Authority
CN
China
Prior art keywords
data
operation target
task
code
current
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
Application number
CN201910325465.7A
Other languages
English (en)
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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201910325465.7A priority Critical patent/CN111831464A/zh
Publication of CN111831464A publication Critical patent/CN111831464A/zh
Pending legal-status Critical Current

Links

Images

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/0709Error 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 distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • 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/079Root cause analysis, i.e. error or fault diagnosis
    • 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/0793Remedial or corrective actions

Abstract

本申请公开了数据操作的控制方法及装置,其中,所述方法包括:接收用户输入的数据操作任务的数据操作代码,对输入的数据操作代码进行分析,确定当前操作目标信息;所述当前操作目标信息包括当前操作的元数据信息;确定所述当前操作目标信息相关联的操作目标,是否为被操作时会引起操作任务异常的数据对象;若确定所述操作目标为被操作时会引起操作任务异常的数据对象,则对所述当前操作目标信息对应的数据操作代码进行处理。通过该方法,可以在任务实际运行前减少或避免因数据对象导致数据操作任务出现异常或失败的可能性,避免集群计算资源的浪费,降低数据应用的开发运维成本,以及为数据处理任务的顺利进行提供有效的保障。

Description

数据操作的控制方法及装置
技术领域
本发明涉及数据库开发领域,特别涉及一种数据操作的控制方法及装置。
背景技术
数据逐渐成为众多信息化行业开展业务和提供服务的核心内容,实现优质的数据应用成为了提高业务效率的基础和关键条件。对于涉及到数据操作的应用,如在涉及数据库的应用程序开发,数据挖掘分析,机器学习,数据优化维护等应用中,常常需要操作难以想象的大量数据,数据库包含海量数据的特性,决定了进行数据处理时需要考虑相关的问题,例如在上亿条数据中如何进行查找以命中目标数据,其时间成本可能是算法设计需要首要考虑的。通常,以数据为中心的系统,数据库的设计开发到维护和应用,都需要在契合需求的同时具有较高的应用效率。
在大数据产品中,进行数据处理操作时经常遇到大数据处理相关的问题,例如数据倾斜。这些问题通常与数据库设计或业务操作相关。例如如果数据结构设计没有充分考虑实际需求,往往在数据形成过程中会造成某些数据表的数据倾斜,举例来说,在商品对象信息服务平台中,节假日前后(如圣诞节,中国农历春节)产生活动数据常常会远高于平日,如果这些时期的活动数据按与平日的数据表一样的时间长度进行水平分区,则可能造成相应数据的数据倾斜。数据倾斜的另一个方面是在业务数据操作时形成的数据倾斜,对于大型系统平台来说,数据处理经常是以分布式任务进行的,在进行数据处理时,如果各计算节点的数据分布不均匀,数据大量集中到一个或几个计算节点上,就会造成数据倾斜,此时,处理大量数据的少数任务节点会产生难以接受的延迟,严重降低整体任务效率,甚至计算节点中会产生内存溢出错误使整个任务失败。
综上,需要本领域技术人员解决的技术问题就在于,提供一种数据操作的控制方法,降低在大量数据处理过程中发生问题的概率,为数据处理任务的顺利进行提供有效的保障。
发明内容
本发明实施例提供了一种数据操作的控制方法及装置,能够在数据操作任务实际运行前,减少或避免因某些可能造成任务执行异常的数据对象导致数据操作任务出现异常甚至失败的可能性,从而避免集群计算资源的浪费以及降低数据应用的开发运维成本,为数据处理计算任务的顺利进行提供有效的保障。
本发明提供了如下方案:
一种数据操作的控制方法,包括:
接收用户输入的数据操作任务的数据操作代码,对输入的数据操作代码进行分析,确定当前操作目标信息;所述当前操作目标信息包括当前操作的元数据信息;
确定所述当前操作目标信息相关联的操作目标,是否为被操作时会引起操作任务异常的数据对象;
若确定所述操作目标为被操作时会引起操作任务异常的数据对象,则对所述当前操作目标信息对应的数据操作代码进行处理。
一种数据操作的控制方法,包括:
接收用户编写的进行数据操作任务的数据操作代码;所述数据操作代码包括执行数据操作任务的完整代码;
在所述数据操作代码被执行前对数据操作代码进行分析,确定数据操作代码中执行所述的数据操作任务的各操作目标信息;所述操作目标信息包括相应的元数据信息;
确定所述操作目标信息相关联的操作目标,是否为被操作时会引起操作任务异常的数据对象;
若确定所述操作目标为被操作时会引起操作任务异常的数据对象,则对数据对象相关联的数据操作代码进行处理。
一种数据操作的处理方法,包括:
提供操作界面;
接收用户通过所述操作界面输入的代码;
基于所接收代码,确定当前代码对应的关联操作目标,所述操作目标为操作的数据对象;
确定所述操作目标为被操作时会引起操作任务异常的数据对象情况下,在所述操作界面提供提示信息,以提示当前操作目标存在数据倾斜。
一种数据操作的控制装置,包括:
输入分析单元,用于接收用户输入的数据操作任务的数据操作代码,对输入的数据操作代码进行分析,确定当前操作目标信息;所述当前操作目标信息包括当前操作的元数据信息;
异常判定单元,用于确定所述当前操作目标信息相关联的操作目标,是否为被操作时会引起操作任务异常的数据对象;
结果处理单元,用于若确定所述操作目标为被操作时会引起操作任务异常的数据对象,则对所述当前操作目标信息对应的数据操作代码进行处理。
一种数据操作的控制装置,包括:
代码接收单元,用于接收用户编写的进行数据操作任务的数据操作代码;所述数据操作代码包括执行数据操作任务的完整代码;
目标分析单元,用于在所述数据操作代码被执行前对数据操作代码进行分析,确定数据操作代码中执行所述的数据操作任务的各操作目标信息;所述操作目标信息包括相应的元数据信息;
异常对象确定单元,用于确定所述操作目标信息相关联的操作目标,是否为被操作时会引起操作任务异常的数据对象;
处置单元,用于若确定所述操作目标为被操作时会引起操作任务异常的数据对象,则对数据对象相关联的数据操作代码进行处理。
一种数据操作的处理装置,包括:
界面提供单元,用于提供操作界面;
目标信息确定单元,用于接收用户通过所述操作界面输入的代码;
操作目标分析单元,用于基于所接收代码,确定当前代码对应的关联操作目标,所述操作目标为操作的数据对象;
信息提示单元,用于确定所述操作目标为被操作时会引起操作任务异常的数据对象情况下,在所述操作界面提供提示信息,以提示当前操作目标存在数据倾斜。
一种计算机系统,包括:
一个或多个处理器;以及
与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行如下操作:
接收用户输入的数据操作任务的数据操作代码,对输入的数据操作代码进行分析,确定当前操作目标信息;所述当前操作目标信息包括当前操作的元数据信息;
确定所述当前操作目标信息相关联的操作目标,是否为被操作时会引起操作任务异常的数据对象;
若确定所述操作目标为被操作时会引起操作任务异常的数据对象,则对所述当前操作目标信息对应的数据操作代码进行处理。
根据本申请提供的具体实施例,本申请公开了以下技术效果:
通过本申请,可以接收用户输入的数据操作任务的数据操作代码,对输入的数据操作代码进行分析,确定当前操作目标信息;确定当前操作目标信息相关联的操作目标是否为被操作时会引起操作任务异常的数据对象;若确定操作目标为被操作时会引起操作任务异常的数据对象,则对当前操作目标信息对应的数据操作代码进行处理。通过该方法,将数据研发和数据倾斜探查进行有效的整合,可以在进行数据操作过程中,例如在进行数据操作代码的编写过程中,实时的发现会引起操作任务异常的数据对象,进而对数据对象进行处理。可以在任务代码实际运行前,发现会引起操作任务异常的数据对象以对问题进行进一步的处理,将对引起操作任务异常的数据对象的探查任务,由数据操作计算任务执行出现异常后执行,变为数据操作计算任务执行前的预防性方案的执行,降低了数据操作代码实际执行过程中出现任务异常或失败的概率,减少或避免了因数据对象问题导致数据操作计算任务出现异常甚至失败的可能性,以预防型的方式避免集群计算资源的浪费以及降低了数据应用的开发运维成本。
当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的第一方法的流程图;
图2是本申请实施例提供的第一界面的示意图;
图3是本申请实施例提供的第二界面的示意图;
图4是本申请实施例提供的第二方法的流程图;
图5是本申请实施例提供的开发辅助系统的示意图;
图6是本申请实施例提供的第一装置的示意图;
图7是本申请实施例提供的第二装置的示意图;
图8是本申请实施例提供的第三方法的流程图;
图9是本申请实施例提供的第三装置的示意图;
图10本申请实施例提供的计算机系统的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
在大数据产品中,可以进行数据操作和计算相关的编码和运行等任务,因大数据操作和计算中涉及海量数据,数据处理的量级带来的处理复杂性,使得在进行任务设计时,例如进行数据操作计算任务的代码编写时,要考虑大数据处理领域所独有问题。诸如数据倾斜等问题会在涉及到大数据计算任务中造成任务严重延迟甚至失败,在进行数据开发时,应尽量避免产生此类问题。所述的数据倾斜问题,可以从两个方面来理解,一个是数据存储的角度,数据形成过程中可能会造成某些数据表的数据倾斜,这种数据倾斜常常与数据库结构设计相关;而另外一个角度的理解是计算任务执行时的数据倾斜,计算任务执行时的数据倾斜可以是与数据本身相关的或是与操作相关的。对于数据操作过程中的数据倾斜,现有技术方法通常是在代码运行失败后进行数据探查,得到运行异常或失败的相关对象及原因,经过分析得到数据操作代码运行失败的原因是否为数据倾斜。这种处理手段探查和处理数据倾斜的任务相对滞后,无法在数据操作计算任务执行前,例如在代码编写阶段,进行数据倾斜的检查,而数据操作计算任务常常需要大量的计算资源,如果操作的数据对象造成代码运行失败,这种探查和处理的滞后性会使得大量的计算资源会被白白的浪费掉。
本申请实施例提供的数据操作的控制方法,可以应用在大数据产品的数据操作和计算任务的设计,例如在数据操作代码的编码实现阶段,在开发人员使用大数据产品进行数据操作代码编写过程中,可以在所使用的工具中提供相关的功能或服务,通过所提供的功能或服务,在数据操作代码的编码设计过程中实时的对代码拟操作的数据对象进行检索分析,得到该操作下的数据对象是否存在数据倾斜等问题的检索分析结果,将数据研发和数据倾斜探查进行有效的整合,数据操作代码的编码阶段要先于代码的实际执行,因此该方法可以应用在数据操作代码实际执行前,发现、提示和排除问题,以预防型的方法降低或避免数据操作代码实际执行过程中出现的数据倾斜等问题,而使数据操作/计算任务出现异常甚至失败。以下将结合附图详细说明本申请实施例提供的数据操作的控制方法及装置。
实施例一
请参看图1,为本申请实施例提供的数据操作的控制方法的流程图,如图1所示,该方法可以包括以下步骤:
S101:接收用户输入的数据操作任务的数据操作代码,对输入的数据操作代码进行分析,确定当前操作目标信息;所述当前操作目标信息包括当前操作的元数据信息;
首先,可以接收用户编写代码过程中输入的数据操作代码,本申请实施例提供的方法可应用于大数据产品的数据操作和计算任务的设计,例如通过大数据产品进行数据的计算,管理,维护等任务的设计,可以在数据操作代码的编码实现阶段实施,用户可以是数据操作应用的开发人员或数据维护人员等,所使用的编程语言可以包括数据库操作相关的语言,例如结构化查询语言(Structured Query Language),简称SQL,SQL是一种特殊目的的编程语言,用于数据库查询和程序设计,可以用于存取数据以及查询、更新和管理关系数据库系统。在使用大数据产品进行数据操作或计算任务的设计编码时,可以通过产品提供的相关功能或服务,例如通过所使用的数据操作任务设计工具中提供相应的功能或服务,可以实时的分析所输入的数据操作代码所操作的对应操作对象,进而对该数据操作的操作对象进行分析检查,即在接收用户输入的数据操作任务的数据操作代码时,对输入的数据操作代码进行分析以确定数据操作代码当前的操作目标。在数据操作任务的设计编码过程中,操作目标信息通常可以包括关于操作数据的元数据信息。元数据信息是一种用来描述数据的数据,可以提供其它数据的描述信息,主要是描述数据的属性信息,可以用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。在本实施例中,当前操作目标信息相关联的操作目标可以以元数据信息描述,数据操作代码中的关于当前操作目标的元数据信息可以包括数据表信息,字段信息,以及分区信息。当然,在实际应用中,在不同系统设计中,数据组织形式,任务涉及的数据的描述方式等等方面都可能存在不同,关于当前操作目标的元数据信息也可以有不同的内容形式。
通过大数据产品在实现数据的管理和操作时,产品可以提供多编程语言支持,即可以支持多种不同类型的编程语言进行开发过程中对数据操作代码的调用和任务设计,在使用不同种类的开发语言时,涉及到数据操作的代码编写和计算任务设计,例如涉及到SQL语言进行时,都可以通过大数据产品对其数据库程序设计语言中的数据操作代码进行数据对象的提取和分析,得到和确定数据操作代码相关的当前操作目标信息。
接收用户数据操作任务输入的数据操作代码,对输入的数据操作代码进行分析,以确定当前操作目标信息,这个过程可以是是即时实现的,例如在大数据产品中提供的集成开发环境中输入数据操作代码时,可以在编码的过程中即时的分析和查询当前操作的目标的信息。具体实现时,可以预先建立匹配规则,例如预先将匹配规则编写为正则表达式,在用户输入数据操作代码的过程中,以表示匹配规则的正则表达式匹配用户输入的代码内容,即时的确定用户输入的数据操作代码中的操作目标,如数据关键字等。
在另一种实现方式下,也可以利用抽象语法树来实现。具体实现时,可以在产品中提供语法语义分析功能,例如在大数据产品中集成的实时输入内容的语法语义分析功能,通过该功能,可以将用户输入的代码进行语法语义分析,确定用户输入内容的内容单元及各内容单元的语法语义关系。输入内容的语法语义分析功能通常主要用以实现智能编码,例如在用户编码的过程中对编码语法语义内容进行识别,根据输入进行编码提示和纠错等,其实现效果可以见图2,图2中的部分代码进行了隐藏,但不影响以已展示的内容进行说明。在使用开发工具的编辑器进行代码编写时,可以根据语法和语义分析结果,来确定当前输入内容,输入内容的各对象可以以抽象语法树的形式存储,并根据当前内可以提示用户下一步的输入,以提高编码效率和准确度,例如图2中第11行输入的代码,经过语法语义分析确定了输入信息为表“stg_s_account”后,对下一步输入进行了提示,提供了“ca_id”等“字段”以供编码输入选择。本实施例提供的方法中,可以访问生成的抽象语法树中的内容,确定当前操作目标信息,具体的可以通过对计算任务编码设计过程中输入的数据操作代码进行语法语义分析,构建数据操作代码相应的抽象语法树;进而通过访问抽象语法树,可以确定当前操作目标信息,例如当前抽象语法树包括了表名“stg_s_account”下的字段“ca_id”时,可以根据如预设类型等信息将“ca_id”确定为当前操作目标信息。在类似于大数据产品组件中进行数据操作代码设计的过程中,可以即时的分析语法语义得到当前数据操作代码所操作的目标,例如图2中,当输入表名“stg_s_account”后,可以在抽象语法树中生成相应的内容,例如包括表名表“stg_s_account”,以及“数据表”属性等信息;假如用户在选择输入了表“stg_s_account”的字段“ca_id”后,同样可以在抽象语法树中保存记录相应的内容,例如字段名及其相应的“字段”属性信息等。这样,当需要获得当前操作目标信息时,只需要访问当前输入代码的抽象语法树,读取当前操作的目标信息即可,例如读取到当前操作目标信息为字段“ca_id”,其属于表“stg_s_account”。
在另一种实现方式下,还可以确定光标当前位置,结合所述光标当前位置对应的代码内容,访问抽象语法树,确定当前操作目标信息。前述示例中的表名和字段也体现了一种数据的存储层次关系,在代码输入的过程中,经常需要返回修改代码,例如当输入了如下内容:
=stg_s_account.ca_id
其中“stg_s_account”为表名,“ca_id”为该表的字段。输入时发现需要对表名进行修改,一般情况下用户会将光标定位到表名处,此时,输入代码的当前操作目标为表而非其中的字段“ca_id”。当然以上只是一种应用场景的举例,在类似的情况中,进行当前操作目标的确定,可以结合光标当前位置,以获得更加准确的确定结果。
当前操作目标信息可以包括当前操作的元数据信息,当前操作的元数据信息可以是以下信息的一种或任意几种的组合:数据表信息,字段信息,分区信息。其具体组合情况可以视具体的应用情况而定。这些元数据信息,可以作为检索依据进行分析检索,来确定操作目标信息是否存在数据倾斜的情况。
S102:确定所述当前操作目标信息相关联的操作目标,是否为被操作时会引起操作任务异常的数据对象;
在确定了操作目标信息之后,可以确定当前操作目标信息相关联的操作目标是否为被操作时会引起操作任务异常的数据对象。具体实现时,可以根据当前操作目标信息在数据库中进行实时的探查,以确定所述当前操作目标信息相关联的操作目标,是否为被操作时会引起操作任务异常的数据对象,然而在数据库中存储海量数据时,这种实时探查的方式势必会引起巨量的数据查询操作,对于节约计算资源,提高数据操作任务设计效率的需求是不利的,所以在另一种实时方式下,可以根据当前操作目标信息进行检索,例如可以根据当前操作目标信息在预置的数据对象集合中进行检索,确定当前操作目标信息是否属于预置的数据对象集合,在预置的数据对象集合中可以包括被操作时会引起操作任务异常的数据对象。操作目标信息可以是数据操作或计算任务的设计编码时要操作的数据对象,根据操作目标信息进行检索,来确定操作目标信息是否存在类似数据倾斜,数据类型不匹配等问题,确定操作目标是否为被操作时会引起操作任务异常的数据对象。数据对象集合在具体实现时可以以缓存数据cache的形式实现。例如,可以在缓存数据中保存存在数据倾斜等问题的元数据信息的记录。
数据对象集合中保存的会引起操作任务异常的数据对象可以通过数据探查来获取,数据探查是发现和分析数据源中数据异常的过程,数据探查可以发现不同类型的数据异常,为大数据产品使用者提供关于数据的多种类型的信息,例如数据的组成分布等,可以根据数据探查的结果分析相应的数据对象是否存在数据倾斜等问题。在大数据系统中保持了海量数据,数据探查任务一般不会独立执行,而是作为其他任务的一个阶段来进行,获得辅助性信息以帮助使用者发现一些现象或问题。在本申请实施例提供的方法中,数据探查任务一般在数据操作或计算任务执行时出现异常或失败后进行。
上述的数据对象集合保存的会引起操作任务异常的数据对象,可以根据数据操作任务的执行历史的运行结果获得,当数据操作计算任务运行历史中有任务产生异常时,可以对相应的数据进行数据探查,确定产生异常的原因,确定发生运行异常相关的数据对象。即数据操作任务是相对于当前任务的历史数据操作任务。数据探查分析得到的原因可能包括多种类型,当所确定产生异常的原因为任务相关的数据对象存在数据倾斜问题时,可以将数据对象的信息的存储到所述的数据对象集合中。对于运行异常相关的数据对象的探查分析,可以以对数据对象的统计数据作为依据,即可以在数据操作任务发生运行异常时,确定发生运行异常相关的数据对象;获取相关的数据对象的统计数据,根据统计数据,确定相关的数据对象是否为被操作时会引起操作任务异常的数据对象,将被操作时会引起操作任务异常的数据对象保存到所述数据对象集合。例如,具体实现时,可以统计确定所述相关的数据对象的行数,以及数据对象所在数据表的行数,确定数据对象的行数与数据表的行数的比值,若所确定的比值超过预置阈值,则确定相关的数据对象为被操作时会引起操作任务异常的数据对象。
此外,由于数据产品在应用的过程中,数据源通常会产生变化,例如业务型数据会随着业务的变化而变化,而一些数据计算,或管理维护操作也会经常产生新的数据,数据的存储结构也会经常发生变化,已发现存在数据倾斜等问题的元数据可能在一定的时间段后其问题已被解决,而数据对象集合中存储的会引起操作任务异常的数据对象信息就会失效。因此,在将被操作时会引起操作任务异常的数据对象的信息的记录到数据对象集合中时,可以记录相应的有效期信息,例如有效期信息的一个经验值可以是七天,数据对象集合中包括各数据对象相应的有效期信息,然后在根据当前操作目标信息在预置的数据对象集合中进行检索时,可以首先确定数据对象集合中各数据对象相应的有效期信息,根据当前操作目标信息对数据对象集合中有效期信息在预置期限阈值内的数据对象进行检索,确定当前操作目标信息是否属于预置的数据对象集合。
当前数据操作计算任务执行时,如果产生了超出预期的数据倾斜等问题,则可以进行数据探查以确定数据倾斜的元数据信息,并将相应信息存储到上述数据对象集合中,从而实现了任务执行到数据对象分析检查的闭环。元数据相关的数据表信息,字段信息,以及分区信息,反应了目标数据的存储结构,存储位置等信息,可以在将存在数据倾斜的元数据信息的记录到数据对象集合时,将存在数据倾斜等问题的元数据相关的数据表信息,字段信息,以及分区信息记录到数据对象集合,以便在用户编写代码输入的数据操作代码时,根据确定的元数据信息中的数据表信息,字段信息,分区信息等对数据对象集合的数据进行匹配和检索。根据当操作目标信息进行检索,可以确定当前数据操作下的操作目标是否操作目标,是否为被操作时会引起操作任务异常的数据对象。除了数据倾斜问题,即数据倾斜的数据对象会引起操作任务外,如果操作目标的数据类型与相应的数据操作要求的数据类型相匹配,也可能是数据操作或计算任务产生异常,这种异常可能产生的影响可以体现在无法获得满足预期的计算结果等问题上。这样的问题实际上也可以通过对数据操作任务的数据操作代码进行实时分析以避免,具体实现时,可以确定操作目标的数据类型是否与相应的数据操作要求的数据类型相匹配,若不匹配,则确定操作目标为作时会引起操作任务异常的数据对象,进而采取进一步的措施,例如提供提示信息等。
S103:若确定所述操作目标为被操作时会引起操作任务异常的数据对象,则对所述当前操作目标信息对应的数据操作代码进行处理。
如果确定操作目标为被操作时会引起操作任务异常的数据对象,可以对当前操作目标信息对应的数据操作代码进行处理。当确定操作目标为正常的,或被操作时不会引起操作任务异常的数据对象,可以不进行提示或者在诸如编辑器中给出类似于“元数据安全”的提示信息。而当确定操作目标为被操作时会引起操作任务异常的数据对象时,可以给出提示信息,以提示当前的操作目标被操作时可以引起操作任务异常,例如当前操作目标存在数据倾斜等问题,一种实现方式下,提示信息可以在编辑器中给出,如图3中所示的编辑器界面中,当前输入的数据操作代码为“stg_s_account.ca_id”,其中“stg_s_account”为表名,“ca_id”为该表的字段,经过分析确定该表的该字段的数据对象在当前数据操作下存在数据倾斜问题,则在编码器中给出了提示信息,提示信息包括“数据倾斜预警”的提示信息,以及代码的操作对象所在的数据表信息,字段信息,以及分区信息。
进一步的,在确定操作目标为被操作时会引起操作任务异常的数据对象时,可以根据操作目标信息等对操作目标信息的相关数据操作代码给出改写建议,例如改写建议可以根据预置的规则进行,例如将数据操作代码的当前操作替换为等效的其他操作,或将操作对象进行替换以将的源数据的计算任务分解为多个等效子任务,使各子任务在不同的计算节点进行计算后,再将计算结果汇总,以通过执行等效任务的方式,在获得正确的操作或计算结果的同时,避免实际实施计算任务时产生数据倾斜等异常问题。在另一种实现方式下,在获得授权的情况下,也可以在确定操作目标为被操作时会引起操作任务异常的数据对象时,对当前操作目标信息的相关数据操作代码进行自动改写。自动改写也可以根据前述的预置规则实现,在进行相关数据操作代码进行自动改写时,可以通过对数据操作代码进行自动改写,将操作目标信息的操作任务分解为多个子任务,以避免执行代码时出现与操作目标相关联的异常问题,例如数据倾斜。
以上对本申请实施例一提供的数据操作的控制方法进行了详细的介绍,通过该方法,可以接收用户输入的数据操作任务的数据操作代码,即时的对输入的数据操作代码进行分析,确定当前操作目标信息,包括当前操作目标的元数据信息,确定当前操作目标信息相关联的操作目标是否为被操作时会引起操作任务异常的数据对象,进而在确定所述操作目标为被操作时会引起操作任务异常的数据对象时,对当前操作目标信息对应的数据操作代码进行处理。通过该方法,将数据研发和数据对象的异常探查进行有效的整合,可以在数据操作任务的设计编码过程中,实时的发现会引起操作任务异常的数据对象,例如存在数据倾斜的目标对象,进而采取一定的措施进行处理。在任务代码实际运行前,发现会引起操作任务异常的数据对象以对问题进行进一步的处理,将数据对象的异常探查任务由任务执行出现异常后进行,变为任务执行前,例如在数据操作任务的设计编码阶段预防型执行,降低了数据操作代码实际执行过程中出现异常的概率,减少或避免了因数据对象相关问题导致数据操作计算任务出现异常甚至失败的可能性,避免集群计算资源的浪费以及降低了数据应用的开发运维成本。
实施例二
以上实施例一中数据操作的控制方法,达到的技术目的之一包括在数据操作代码实际运行前检查被操作时会引起操作任务异常的数据对象,将数据对象的异常探查任务由任务执行出现异常后执行,变为任务执行前预防型执行,避免实际运行时因数据对象问题导致任务执行延迟或失败,造成的资源浪费。本申请实施例二提供了另一种实现方式,可以是在代码提交阶段,即代码编写完成后和实际运行前的阶段,进行数据对象的数据倾斜分析检查,同样可以在一定程度上达到上述技术效果。如图4所示,为本申请实施例二所提供数据操作的控制方法的流程图,该方法可以包括以下步骤:
S401:接收用户编写的进行数据操作任务的数据操作代码;所述数据操作代码包括执行数据操作任务的完整代码;
首先,可以接收用户编写的进行数据操作任务的数据操作代码,本申请实施例二提供的方法可以应用在代码提交阶段,因此,数据操作代码可以包括执行数据操作任务的完整代码。
S402:在所述数据操作代码被执行前对数据操作代码进行分析,确定数据操作代码中执行所述的数据操作任务的各操作目标信息;所述操作目标信息包括相应的元数据信息;
接收用户编写的进行数据操作任务的数据操作代码后,可以在数据操作代码被执行前对数据操作代码进行分析,确定数据操作代码中执行的数据操作任务的各操作目标信息。操作目标信息可以包括元数据信息。具体实现时,也可以对代码进行来语法语义分析得到抽象语法树,进行访问该抽象语法树的对象来确定实现。
S403:确定所述操作目标信息相关联的操作目标,是否为被操作时会引起操作任务异常的数据对象;
在确定了待提交代码中的各操作目标信息之后,可以确定所述操作目标信息相关联的操作目标,是否为被操作时会引起操作任务异常的数据对象。其具体的确定方式可以参考实施例一中步骤S102中的相关内容,在此就不再赘述了。
S404:若确定所述操作目标为被操作时会引起操作任务异常的数据对象,则对数据对象相关联的数据操作代码进行处理。
确定操作目标为被操作时会引起操作任务异常的数据对象,则对数据对象相关联的数据操作代码进行处理。对数据对象相关联的数据操作代码进行处理,是在代码提交阶段,即代码编写完成后和实际运行前的阶段,代码处理可以包括代码的自动改写,可以在获得授权的情况下,由数据开发系统的相关组件对当前操作目标信息的相关数据操作代码进行自动改写。或者将所提交的代码返回给数据开发人员进行改写。当进行自动改写时,自动改写可以根据前述的预置规则实现,在进行相关数据操作代码进行自动改写时,可以通过对数据操作代码进行自动改写,将操作目标信息的操作任务分解为多个子任务,以避免执行代码时出现与操作目标相关联的异常问题。
以上对本申请实施例二中数据操作的控制方法进行了介绍,通过该方法,可以接收用户编写的进行数据操作任务的数据操作代码;其中,数据操作代码包括执行数据操作任务的完整代码,即数据操作任务编码完成时的完整代码。在数据操作代码被执行前对数据操作代码进行分析,确定数据操作代码中执行的数据操作任务的各操作目标信息,确定各操作目标信息相关联的操作目标是否为被操作时会引起操作任务异常的数据对象,若确定所述操作目标为被操作时会引起操作任务异常的数据对象,则对数据对象相关联的数据操作代码进行处理。通过该方法,可以在代码提交阶段,即代码编写完成后和实际运行前的阶段,进行数据对象的分析检查,发现会引起操作任务异常的数据对象,进而采取一定的措施进行处理,在任务代码实际运行前,发现会引起操作任务异常的数据对象以对问题进行进一步的处理,将数据对象的异常探查任务由任务执行出现异常后进行,变为任务执行前,例如在数据操作任务的设计编码阶段预防型执行,降低了数据操作代码实际执行过程中出现异常的概率,减少或避免了因数据倾斜导致数据操作计算任务出现异常甚至失败的可能性。
实施例三
本申请实施例三提供了一种数据操作代码开发辅助系统,如图5所示,该系统可以包括:
编辑器501,用于提供编辑界面,以及接收用户编写代码输入的数据操作代码;
代码分析单元502,用于对输入的数据操作代码进行分析,确定当前操作目标信息;所述当前操作目标信息包括当前操作的元数据信息;
目标检索单元503,用于根据所述操作目标信息进行检索,确定所述操作目标信息是否存在数据倾斜,获取判定结果;
处置单元504,用于根据判定结果,对存在数据倾斜的操作目标信息对应的数据操作代码进行处理。
存在数据倾斜的元数据信息可以记录到缓存,根据操作目标信息进行检索缓存来检索分析存在数据倾斜的元数据信息,在这种实施方式下,该系统还可以包括:
数据探查单元,用于当数据操作代码运行历史任务产生异常时,对相应的数据进行数据探查,确定产生异常的原因;以及,
数据缓存单元,用于在所确定产生异常的原因为任务相关的元数据存在数据倾斜时,将存在数据倾斜的元数据信息的记录到缓存中;
目标检索单元503,可以用于根据所述操作目标信息在所述缓存中进行检索,确定所述操作目标信息是否存在数据倾斜,获取判定结果。
处置单元504可以包括:
提示子单元,用于在判定结果为所述操作目标信息存在数据倾斜时,在编辑器501内提供提示信息。
在另一种实现方式下,处置单元504可以包括:
改写子单元,用于在具备授权的情况下,在编辑器501内对存在数据倾斜的操作目标信息的相关数据操作代码进行自动改写。
通过该系统,可以在用户编写代码时,编辑器提供编辑界面,接收用户编写代码输入的数据操作代码,进而即时的对输入的数据操作代码进行分析,确定当前操作目标信息,包括当前操作的元数据信息,根据操作目标信息进行检索,确定操作目标信息是否存在数据倾斜,进而根据判定结果,对存在数据倾斜的操作目标信息对应的数据操作代码进行处理。该系统可以以开发工具或开发工具服务组件的形式提供给开发者用户,通过该系统将数据研发和数据倾斜探查进行有效的整合,可以在进行数据操作代码的编码过程中,实时的分析发现存在数据倾斜的目标对象,进而采取一定的措施进行处理,在任务代码实际运行前,发现数据倾斜问题以对问题进行进一步的处理,将数据倾斜探查任务由任务执行出现异常后执行,变为任务执行前的编码阶段执行,降低了数据操作代码实际执行过程中出现数据倾斜的概率,减少或避免了因数据倾斜导致数据操作或计算任务出现异常甚至失败的可能性,避免集群计算资源的浪费以及降低了数据应用的开发运维成本。
实施例四
与本申请实施例一相对应,本申请实施例四提供了一种数据操作的控制装置,如图6所示,该装置可以包括:
输入分析单元601,用于接收用户输入的数据操作任务的数据操作代码,对输入的数据操作代码进行分析,确定当前操作目标信息;所述当前操作目标信息包括当前操作的元数据信息;
异常判定单元602,用于确定所述当前操作目标信息相关联的操作目标,是否为被操作时会引起操作任务异常的数据对象;以及,
结果处理单元603,用于若确定所述操作目标为被操作时会引起操作任务异常的数据对象,则对所述当前操作目标信息对应的数据操作代码进行处理。
其中,异常判定单元602可以包括:
检索子单元,用于根据当前操作目标信息在预置的数据对象集合中进行检索,确定当前操作目标信息是否属于预置的数据对象集合;数据对象集合中包括:被操作时会引起操作任务异常的数据对象。
其中,数据对象集合通过以下方式获得:
在数据操作任务发生运行异常时,确定发生运行异常相关的数据对象;
获取相关的数据对象的统计数据,根据统计数据,确定相关的数据对象是否为被操作时会引起操作任务异常的数据对象,将被操作时会引起操作任务异常的数据对象保存到数据对象集合。
其中,在获取相关的数据对象的统计数据,根据统计数据,确定相关的数据对象是否为被操作时会引起操作任务异常的数据对象时,可以统计确定相关的数据对象的行数,以及数据对象所在数据表的行数,确定数据对象的行数与数据表的行数的比值,若所确定的比值超过预置阈值,则确定相关的数据对象为被操作时会引起操作任务异常的数据对象。
数据操作任务可以包括相对于当前任务的历史数据操作任务。
在另一种实施方式下,异常判定单元602可以包括:
异常判定子单元,用于确定操作目标的数据类型是否与相应的数据操作要求的数据类型相匹配,若不匹配,则确定操作目标为作时会引起操作任务异常的数据对象。
输入分析单元601可以包括:
语法树建立子单元,用于对编写代码过程中输入的数据操作代码进行语法语义分析,构建数据操作代码相应的抽象语法树;
语法树访问子单元,用于访问抽象语法树,确定当前操作目标信息。
其中语法树访问子单元具体可以用于:
确定光标当前位置,结合光标当前位置对应的代码内容,访问抽象语法树,确定当前操作目标信息。
其中,当前操作的元数据信息,可以包括:数据表信息,字段信息,和/或分区信息。
数据对象集合还可以包括数据对象集合中各数据对象相应的有效期信息;
异常判定单元602可以用于:
确定数据对象集合中各数据对象相应的有效期信息,根据当前操作目标信息对数据对象集合中有效期信息在预置期限阈值内的数据对象进行检索,确定当前操作目标信息是否属于预置的数据对象集合。
结果处理单元603,可以通过不同的方式实现,例如结果处理单元603可以包括:
提示信息提供子单元,用于在确定操作目标为被操作时会引起操作任务异常的数据对象时,提供提示信息。
在另一种实现方式下,结果处理单元603可以包括:
代码改写子单元,用于若确定操作目标为被操作时会引起操作任务异常的数据对象,则对当前操作目标信息的相关数据操作代码进行自动改写。
代码改写子单元具体可以用于:
通过对数据操作代码进行自动改写,将操作目标信息的操作任务分解为多个子任务,以避免执行代码时出现与元数据信息相关联的数据倾斜。
以上对本申请实施例提供的数据操作的控制装置进行了详细的介绍,通过该装置,可以接收用户输入的数据操作任务的数据操作代码,即时的对输入的数据操作代码进行分析,确定当前操作目标信息,包括当前操作目标的元数据信息,确定当前操作目标信息相关联的操作目标是否为被操作时会引起操作任务异常的数据对象,进而在确定所述操作目标为被操作时会引起操作任务异常的数据对象时,对当前操作目标信息对应的数据操作代码进行处理。通过该装置,可以在数据操作任务的设计编码过程中,实时的发现会引起操作任务异常的数据对象,进而采取一定的措施进行处理。将数据对象的异常探查任务由任务执行出现异常后进行,变为任务执行前,降低了数据操作代码实际执行过程中出现异常的概率,减少或避免了因数据对象相关问题导致数据操作计算任务出现异常甚至失败的可能。
实施例五
与本申请实施例二相对应,本申请实施例五提供了另一种数据操作的控制装置,如图7所示,该装置可以包括:
代码接收单元701,用于接收用户编写的进行数据操作任务的数据操作代码;所述数据操作代码包括执行数据操作任务的完整代码;
目标分析单元702,用于在所述数据操作代码被执行前对数据操作代码进行分析,确定数据操作代码中执行所述的数据操作任务的各操作目标信息;所述操作目标信息包括相应的元数据信息;
异常对象确定单元703,用于确定所述操作目标信息相关联的操作目标,是否为被操作时会引起操作任务异常的数据对象;以及
处置单元704,用于若确定所述操作目标为被操作时会引起操作任务异常的数据对象,则对数据对象相关联的数据操作代码进行处理。
实施例六
本申请实施例六,从大数据产品在实际应用中进行交互实现的角度,提供了一种数据操作的处理方法,该方法可以应用于大数据处理等领域,如图8所示,该方法可以包括以下步骤:
S801:提供操作界面;
S802:接收用户通过所述操作界面输入的代码;
首先可以提供用户操作界面,接收通过用户通过操作界面输入的代码,用户通过操作界面输入的代码可以是数据操作任务的数据操作代码。具体实现时,可以在大数据产品中提供用户操作控制界面。大数据产品可以是包括大数据基础服务、数据分析及展现、数据应用服务的产品,通过大数据产品可以实现海量数据的生产,存储,管理,分析和维护等等操作,可以作为工具产品提供给相关人员或企业进行数据相关业务的研发等。可以在用户操作界面实现用户操作控制的相关交互功能,例如数据操作代码或指令编辑器等等。通过用户操作界面可以接收用户输入的数据操作任务的数据操作代码。
S803:基于所接收代码,确定当前代码对应的关联操作目标,所述操作目标为操作的数据对象;
基于所接收的代码,可以确定当前代码对应的关联操作目标,例如作为操作的数据对象的操作目标。在数据操作等代码被执行前可以对代码进行分析,分析和确定当前代码对应的关联操作目标信息。操作目标可以包括要操作的元数据信息。一般情况下,确定当前代码对应的关联操作目标可以基于当前操作的代码行进行。
进而可以确定当前代码对应的关联操作目标,是否为被操作时会引起操作任务异常的数据对象;数据对象可以包括因数据倾斜而引起操作任务异常的数据对象。具体实现时可以有多种实现方式,其中,可以根据当前代码对应的关联操作目标信息进行检索,例如可以根据当前代码对应的关联操作目标的信息在预置的数据对象集合中进行检索,确定当前代码对应的关联操作目标是否属于预置的数据对象集合,在预置的数据对象集合中可以包括被操作时会引起操作任务异常的数据对象。当前代码对应的关联操作目标可以是数据操作或计算任务的设计编码时要操作的数据对象,根据当前代码对应的关联操作目标信息进行检索,来确定当前代码对应的关联操作目标信息是否存在类似数据倾斜的问题,确定当前代码对应的关联操作目标是否为被操作时会引起操作任务异常的数据对象。
S804:确定所述操作目标为被操作时会引起操作任务异常的数据对象情况下,在所述操作界面提供提示信息,以提示当前操作目标存在数据倾斜。
若确定操作目标为被操作时会引起操作任务异常的数据对象,则可以在操作界面提供提示信息,以提示当前操作目标存在数据倾斜。例如可以在编码器中给出了提示信息,提示信息包括“数据倾斜”等字样,以及代码的操作对象所在的数据表信息,字段信息,以及分区信息,以便为使用者提供关于该数据对象的详细信息。当然,在确定操作目标为被操作时会引起操作任务异常的数据对象,也可以进行进一步的操作,例如给出改写建议等。
以上对本申请实施例六提供的数据操作的处理方法进行了详细的介绍,通过该方法,可以提供操作界面,接收用户通过操作界面输入的代码,代码可以是数据操作任务的数据操作代码;基于所接收的数据操作代码,基于所接收代码,确定当前代码对应的关联操作目标,操作目标可以是为操作的数据对象,确定操作目标为被操作时会引起操作任务异常的数据对象情况下,在操作界面提供提示信息,以提示当前操作目标存在数据倾斜。通过该方法,可以在用户使用操作界面进行数据操作任务的设计编码的过程中,实时的发现会引起操作任务异常的数据对象,例如存在数据倾斜的目标对象,进而及时的在操作界面提供相应的提示信息,以便大数据产品使用者能够及时的发现,定位和处理数据倾斜的数据对象。在任务代码实际运行前,发现会引起操作任务异常的数据对象以对问题进行进一步的处理,实现了一种数据操作任务的设计编码阶段的预防型的方案,降低了数据操作代码实际执行过程中出现异常的概率。
实施例七
与本申请实施例六相对应,还提供了一种大数据处理装置,请参看图9,本申请实施例七提供的大数据处理装置可以包括:
界面提供单元901,可以用于提供操作界面;通过操作界面用户可以输入的数据操作任务的数据操作代码;
目标信息确定单元902,可以用于接收用户通过操作界面输入的代码;基于所接收的数据操作代码,可以分析和确定当前操作目标信息。当前操作目标信息可以包括当前操作的元数据信息;
操作目标分析单元903,可以用于基于所接收代码,确定当前代码对应的关联操作目标,操作目标为操作的数据对象。进一步的,可以确定当前代码对应的关联操作目标,是否为被操作时会引起操作任务异常的数据对象;当前代码对应的关联数据对象是否为因数据倾斜而引起操作任务异常的数据对象;以及,
信息提示单元904,用于确定所述操作目标为被操作时会引起操作任务异常的数据对象情况下,在所述操作界面提供提示信息,以提示当前操作目标存在数据倾斜。若确定操作目标为被操作时会引起操作任务异常的数据对象,则在用户操作控制界面提供提示信息,以提示当前操作目标存在数据倾斜。
本申请实施例还提供了一种计算机系统,该计算机系统可以包括:
一个或多个处理器;以及
与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行如下操作:
接收用户输入的数据操作任务的数据操作代码,对输入的数据操作代码进行分析,确定当前操作目标信息;所述当前操作目标信息包括当前操作的元数据信息;
确定所述当前操作目标信息相关联的操作目标,是否为被操作时会引起操作任务异常的数据对象;
若确定所述操作目标为被操作时会引起操作任务异常的数据对象,则对所述当前操作目标信息对应的数据操作代码进行处理。
其中,图10示例性的展示出了计算机系统的架构,具体可以包括处理器1010,视频显示适配器1011,磁盘驱动器1012,输入/输出接口1013,网络接口1014,以及存储器1020。上述处理器1010、视频显示适配器1011、磁盘驱动器1012、输入/输出接口1013、网络接口1014,与存储器1020之间可以通过通信总线1030进行通信连接。
其中,处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本申请所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储用于控制计算机系统1000运行的操作系统1021,用于控制计算机系统1000的低级别操作的基本输入输出系统(BIOS)。另外,还可以存储网页浏览器1023,数据存储管理系统1024,以及图标字体处理系统1025等等。上述图标字体处理系统1025就可以是本申请实施例中具体实现前述各步骤操作的应用程序。总之,在通过软件或者固件来实现本申请所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1013用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
网络接口1014用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1030包括一通路,在设备的各个组件(例如处理器1010、视频显示适配器1011、磁盘驱动器1012、输入/输出接口1013、网络接口1014,与存储器1020)之间传输信息。
另外,该计算机系统1000还可以从虚拟资源对象领取条件信息数据库1041中获得具体领取条件的信息,以用于进行条件判断,等等。
需要说明的是,尽管上述设备仅示出了处理器1010、视频显示适配器1011、磁盘驱动器1012、输入/输出接口1013、网络接口1014,存储器1020,总线1030等,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本申请方案所必需的组件,而不必包含图中所示的全部组件。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上对本申请所提供的数据操作的控制方法及装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本申请的限制。

Claims (19)

1.一种数据操作的控制方法,其特征在于,包括:
接收用户输入的数据操作任务的数据操作代码,对输入的数据操作代码进行分析,确定当前操作目标信息;所述当前操作目标信息包括当前操作的元数据信息;
确定所述当前操作目标信息相关联的操作目标,是否为被操作时会引起操作任务异常的数据对象;
若确定所述操作目标为被操作时会引起操作任务异常的数据对象,则对所述当前操作目标信息对应的数据操作代码进行处理。
2.根据权利要求1所述的方法,其特征在于,所述确定所述当前操作目标信息相关联的操作目标,是否为被操作时会引起操作任务异常的数据对象,包括:
根据所述当前操作目标信息在预置的数据对象集合中进行检索,确定所述当前操作目标信息是否属于所述预置的数据对象集合;所述数据对象集合中包括:被操作时会引起操作任务异常的数据对象。
3.根据权利要求2所述的方法,其特征在于,所述数据对象集合通过以下方式获得:
在数据操作任务发生运行异常时,确定发生运行异常相关的数据对象;
获取所述相关的数据对象的统计数据,根据所述统计数据,确定所述相关的数据对象是否为被操作时会引起操作任务异常的数据对象,将被操作时会引起操作任务异常的数据对象保存到所述数据对象集合。
4.根据权利要求3所述的方法,其特征在于,所述获取所述相关的数据对象的统计数据,根据所述统计数据,确定所述相关的数据对象是否为被操作时会引起操作任务异常的数据对象,包括:
统计确定所述相关的数据对象的行数,以及数据对象所在数据表的行数,确定数据对象的行数与数据表的行数的比值,若所确定的比值超过预置阈值,则确定所述相关的数据对象为被操作时会引起操作任务异常的数据对象。
5.根据权利要求3所述的方法,其特征在于,所述数据操作任务,包括:
相对于当前任务的历史数据操作任务。
6.根据权利要求1所述的方法,其特征在于,所述确定所述当前操作目标信息相关联的操作目标,是否为被操作时会引起操作任务异常的数据对象,包括:
确定所述操作目标的数据类型是否与相应的数据操作要求的数据类型相匹配,若不匹配,则确定所述操作目标为作时会引起操作任务异常的数据对象。
7.根据权利要求1所述的方法,其特征在于,所述对输入的数据操作代码进行分析,确定当前操作目标信息,包括:
对编写代码过程中输入的数据操作代码进行语法语义分析,构建数据操作代码相应的抽象语法树;
访问所述抽象语法树,确定当前操作目标信息。
8.根据权利要求7所述的方法,其特征在于,所述访问所述抽象语法树,确定当前操作目标信息,包括:
确定光标当前位置,结合所述光标当前位置对应的代码内容,访问所述抽象语法树,确定当前操作目标信息。
9.根据权利要求1所述的方法,其特征在于,所述当前操作的元数据信息,包括:数据表信息,字段信息,和/或分区信息。
10.根据权利要求2所述的方法,其特征在于,所述数据对象集合还包括:
所述数据对象集合中各数据对象相应的有效期信息;
所述根据所述当前操作目标信息在预置的数据对象集合中进行检索,确定所述当前操作目标信息是否属于所述预置的数据对象集合,包括:
确定所述数据对象集合中各数据对象相应的有效期信息,根据所述当前操作目标信息对所述数据对象集合中有效期信息在预置期限阈值内的数据对象进行检索,确定所述当前操作目标信息是否属于所述预置的数据对象集合。
11.根据权利要求1所述的方法,其特征在于,所述若确定所述操作目标为被操作时会引起操作任务异常的数据对象,则对所述当前操作目标信息对应的数据操作代码进行处理,包括:
若确定所述操作目标为被操作时会引起操作任务异常的数据对象,则提供提示信息。
12.根据权利要求1-11任一项所述的方法,其特征在于,所述若确定所述操作目标为被操作时会引起操作任务异常的数据对象,则对所述当前操作目标信息对应的数据操作代码进行处理,包括:
若确定所述操作目标为被操作时会引起操作任务异常的数据对象,则对所述当前操作目标信息的相关数据操作代码进行自动改写。
13.根据权利要求12所述的方法,其特征在于,所述对当前操作目标信息的相关数据操作代码进行自动改写,包括:
通过对所述数据操作代码进行自动改写,将操作目标信息的操作任务分解为多个子任务,以避免执行代码时出现与所述元数据信息相关联的数据倾斜。
14.一种数据操作的控制方法,其特征在于,包括:
接收用户编写的进行数据操作任务的数据操作代码;所述数据操作代码包括执行数据操作任务的完整代码;
在所述数据操作代码被执行前对数据操作代码进行分析,确定数据操作代码中执行所述的数据操作任务的各操作目标信息;所述操作目标信息包括相应的元数据信息;
确定所述操作目标信息相关联的操作目标,是否为被操作时会引起操作任务异常的数据对象;
若确定所述操作目标为被操作时会引起操作任务异常的数据对象,则对数据对象相关联的数据操作代码进行处理。
15.一种数据操作的处理方法,其特征在于,包括:
提供操作界面;
接收用户通过所述操作界面输入的代码;
基于所接收代码,确定当前代码对应的关联操作目标,所述操作目标为操作的数据对象;
确定所述操作目标为被操作时会引起操作任务异常的数据对象情况下,在所述操作界面提供提示信息,以提示当前操作目标存在数据倾斜。
16.一种数据操作的控制装置,其特征在于,包括:
输入分析单元,用于接收用户输入的数据操作任务的数据操作代码,对输入的数据操作代码进行分析,确定当前操作目标信息;所述当前操作目标信息包括当前操作的元数据信息;
异常判定单元,用于确定所述当前操作目标信息相关联的操作目标,是否为被操作时会引起操作任务异常的数据对象;
结果处理单元,用于若确定所述操作目标为被操作时会引起操作任务异常的数据对象,则对所述当前操作目标信息对应的数据操作代码进行处理。
17.一种数据操作的控制装置,其特征在于,包括:
代码接收单元,用于接收用户编写的进行数据操作任务的数据操作代码;所述数据操作代码包括执行数据操作任务的完整代码;
目标分析单元,用于在所述数据操作代码被执行前对数据操作代码进行分析,确定数据操作代码中执行所述的数据操作任务的各操作目标信息;所述操作目标信息包括相应的元数据信息;
异常对象确定单元,用于确定所述操作目标信息相关联的操作目标,是否为被操作时会引起操作任务异常的数据对象;
处置单元,用于若确定所述操作目标为被操作时会引起操作任务异常的数据对象,则对数据对象相关联的数据操作代码进行处理。
18.一种数据操作的处理装置,其特征在于,包括:
界面提供单元,用于提供操作界面;
目标信息确定单元,用于接收用户通过所述操作界面输入的代码;
操作目标分析单元,用于基于所接收代码,确定当前代码对应的关联操作目标,所述操作目标为操作的数据对象;
信息提示单元,用于确定所述操作目标为被操作时会引起操作任务异常的数据对象情况下,在所述操作界面提供提示信息,以提示当前操作目标存在数据倾斜。
19.一种计算机系统,其特征在于,包括:
一个或多个处理器;以及
与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行如下操作:
接收用户输入的数据操作任务的数据操作代码,对输入的数据操作代码进行分析,确定当前操作目标信息;所述当前操作目标信息包括当前操作的元数据信息;
确定所述当前操作目标信息相关联的操作目标,是否为被操作时会引起操作任务异常的数据对象;
若确定所述操作目标为被操作时会引起操作任务异常的数据对象,则对所述当前操作目标信息对应的数据操作代码进行处理。
CN201910325465.7A 2019-04-22 2019-04-22 数据操作的控制方法及装置 Pending CN111831464A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910325465.7A CN111831464A (zh) 2019-04-22 2019-04-22 数据操作的控制方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910325465.7A CN111831464A (zh) 2019-04-22 2019-04-22 数据操作的控制方法及装置

Publications (1)

Publication Number Publication Date
CN111831464A true CN111831464A (zh) 2020-10-27

Family

ID=72912183

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910325465.7A Pending CN111831464A (zh) 2019-04-22 2019-04-22 数据操作的控制方法及装置

Country Status (1)

Country Link
CN (1) CN111831464A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114238286A (zh) * 2022-02-28 2022-03-25 连连(杭州)信息技术有限公司 一种数据仓库数据处理方法、装置、电子设备及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008090707A (ja) * 2006-10-04 2008-04-17 Katsumi Ikeda ソフトウェアメタデータ解析装置およびその方法
US20080114388A1 (en) * 1996-08-15 2008-05-15 Culp Jerry A Surgical tool system with a powred handpiece and a console, the console able to provide energization signals to the handpiece in either a motor drive mode or a direct drive mode
US20110258421A1 (en) * 2010-04-19 2011-10-20 International Business Machines Corporation Architecture Support for Debugging Multithreaded Code
US20140282444A1 (en) * 2013-03-15 2014-09-18 ArtinSoft Corporation Programming language transformations with abstract syntax tree extensions
CN106708897A (zh) * 2015-11-17 2017-05-24 阿里巴巴集团控股有限公司 一种数据仓库质量保障方法、装置和系统
CN108345542A (zh) * 2018-02-28 2018-07-31 腾讯科技(深圳)有限公司 一种应用程序中异常处理方法及装置
CN109344173A (zh) * 2018-09-10 2019-02-15 阿里巴巴集团控股有限公司 数据管理方法和装置、数据结构

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080114388A1 (en) * 1996-08-15 2008-05-15 Culp Jerry A Surgical tool system with a powred handpiece and a console, the console able to provide energization signals to the handpiece in either a motor drive mode or a direct drive mode
JP2008090707A (ja) * 2006-10-04 2008-04-17 Katsumi Ikeda ソフトウェアメタデータ解析装置およびその方法
US20110258421A1 (en) * 2010-04-19 2011-10-20 International Business Machines Corporation Architecture Support for Debugging Multithreaded Code
US20140282444A1 (en) * 2013-03-15 2014-09-18 ArtinSoft Corporation Programming language transformations with abstract syntax tree extensions
CN106708897A (zh) * 2015-11-17 2017-05-24 阿里巴巴集团控股有限公司 一种数据仓库质量保障方法、装置和系统
CN108345542A (zh) * 2018-02-28 2018-07-31 腾讯科技(深圳)有限公司 一种应用程序中异常处理方法及装置
CN109344173A (zh) * 2018-09-10 2019-02-15 阿里巴巴集团控股有限公司 数据管理方法和装置、数据结构

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张立勇;陈平;: "基于代码生成的Web信息系统工程化开发方法", 计算机科学, no. 05, 25 May 2008 (2008-05-25) *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114238286A (zh) * 2022-02-28 2022-03-25 连连(杭州)信息技术有限公司 一种数据仓库数据处理方法、装置、电子设备及存储介质
CN114238286B (zh) * 2022-02-28 2022-08-05 连连(杭州)信息技术有限公司 一种数据仓库数据处理方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
US11182204B2 (en) System and method for batch evaluation programs
CN107491485B (zh) 生成执行计划的方法、计划单元装置和分布式NewSQL数据库系统
JP7360328B2 (ja) 異種にプログラムされたデータ処理システムの自動依存性アナライザ
US9542176B2 (en) Predicting software build errors
Machado et al. DOD-ETL: distributed on-demand ETL for near real-time business intelligence
US11144311B2 (en) Static analysis of higher-order merge conflicts in large software development projects
CN111797157B (zh) 一种数据处理方法、系统及电子设备和存储介质
US11556537B2 (en) Query plan generation and execution based on single value columns
CN112579586A (zh) 数据处理方法、装置、设备及存储介质
CN110807016A (zh) 一种应用于金融业务的数据仓库构建方法、装置和电子设备
CN111831464A (zh) 数据操作的控制方法及装置
CN113127460B (zh) 数据清洗框架的评估方法及其装置、设备及存储介质
US10713150B1 (en) Accurate test coverage of generated code
Almeida et al. Performance analysis and optimization techniques for Oracle Relational Databases
CN111191106B (zh) Dsl的构建方法、系统、电子设备和介质
WO2022159391A1 (en) Handling system-characteristics drift in machine learning applications
CN103713987A (zh) 基于关键词的日志处理
JP2018028776A (ja) ソフトウェア資産管理装置、ソフトウェア資産管理方法、および、ソフトウェア資産管理プログラム
CN117033497B (zh) 数据湖上数据更新与读取的方法及相关设备
US11513862B2 (en) System and method for state management of devices
GB2525572A (en) Method and system for mining patterns in a dataset
CN113505119B (zh) 一种基于多数据源的etl方法及装置
Kahraman et al. A Performance Improvement Model for Market Surveillance Application
JP2013105349A (ja) 動的リンクライブラリの更新、実行方法
US10311128B2 (en) Analytic system for fast quantile computation with improved memory consumption strategy

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