CN110928941B - 一种数据分片抽取方法及装置 - Google Patents
一种数据分片抽取方法及装置 Download PDFInfo
- Publication number
- CN110928941B CN110928941B CN201911195281.XA CN201911195281A CN110928941B CN 110928941 B CN110928941 B CN 110928941B CN 201911195281 A CN201911195281 A CN 201911195281A CN 110928941 B CN110928941 B CN 110928941B
- Authority
- CN
- China
- Prior art keywords
- data
- fragmented
- field
- information
- data table
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
Abstract
本申请提供一种数据分片抽取方法和装置,所述方法包括:获取针对待分片数据表中的数据信息的查询语句;执行查询语句以基于查询语句中的计算逻辑确定分片依据字段的数据信息对应的计算结果,计算结果包括分片依据字段的数据信息的正整数形式的求余运算结果,或者分片依据字段的数据信息的求余运算结果的正整数值;根据计算结果的取值配置分片数量的数据抽取任务。通过本申请的技术方案可以解决相关技术中数据查询方法单一、数据抽取效率低下的技术问题。
Description
技术领域
本申请涉及网络技术领域,具体涉及一种数据分片抽取方法及装置。
背景技术
ETL(Extract-Transform-Load,抽取-转换-加载)描述了数据从源端经过抽取(extract)、转换(transform)、加载(load)之后至目的端的过程,实现对企业的业务系统中分散、凌乱、标准不统一的数据的整合,整合后的数据能够为企业的决策提供数据分析和决策的依据。可见实现ETL功能的处理装置是运转各种与数据有关的应用中的基础功能的组件,其起到了为上层应用提供数据支撑的重要作用,因而,ETL的实现过程将在极大程度上决定上层应用的运行。
随着数字化技术的发展,数据量愈来愈大,实现ETL的任务过程首先将面临到对海量数据的抽取过程,相关技术中通过单一的查询语句获取数据的过程已无法满足对日益剧增的数据的高效抽取的需求,不仅造成数据抽取效率低下,甚至影响到整个数据整合的进展。
发明内容
有鉴于此,本申请提供一种数据分片抽取方法及装置,以解决相关技术中数据查询方法单一、数据抽取效率低下的技术问题。
为实现上述目的,本申请提供技术方案如下:
根据本申请的第一方面,提出了一种数据分片抽取方法,所述方法包括:
获取针对待分片数据表中的数据信息的查询语句,所述查询语句包含目标字段、分片依据字段、分片数量和针对所述分片依据字段的计算逻辑;
执行所述查询语句,以基于所述计算逻辑确定所述分片依据字段的数据信息对应的计算结果,其中,所述计算结果包括所述分片依据字段的数据信息的正整数形式的求余运算结果,或者所述分片依据字段的数据信息的求余运算结果的正整数值;
根据计算结果的取值配置所述分片数量的数据抽取任务,以使得所述数据抽取任务并行地对目标字段在所述待分片数据表中对应的数据信息进行抽取。
根据本申请的第二方面,提出了一种数据分片抽取装置,所述装置包括:
获取单元,获取针对待分片数据表中的数据信息的查询语句,所述查询语句包含目标字段、分片依据字段、分片数量和针对所述分片依据字段的计算逻辑;
执行单元,执行所述查询语句,以基于所述计算逻辑确定所述分片依据字段的数据信息对应的计算结果,其中,所述计算结果包括所述分片依据字段的数据信息的正整数形式的求余运算结果,或者所述分片依据字段的数据信息的求余运算结果的正整数值;
配置单元,根据计算结果的取值配置所述分片数量的数据抽取任务,以使得所述数据抽取任务并行地对目标字段在所述待分片数据表中对应的数据信息进行抽取。
根据本申请的第三方面,提出了一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为可执行指令以实现如上述第一方面中任一项所述的方法。
根据本申请的第四方面,提供一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如上述第一方面中任一所述方法的步骤。
由以上技术方案可见,对待分片数据表中的分片依据字段对应的数据信息基于不同于相关技术中的计算逻辑进行运算,从而获得待分片数据表中分片依据字段的数据信息的正整数形式的求余运算结果,或者求余运算结果的正整数值,进而可以根据计算结果的取值配置分片数量的数据抽取任务,使得各个数据抽取任务并行地对目标字段在待分片数据表中的数据信息进行抽取,消除了相关技术中因数据查询方法单一导致对于正负浮点数、负整数无法进行分片处理的问题,解决了相关技术中数据查询方法单一、数据抽取效率低下的技术问题,解决了相关技术中因数据查询方法的单一导致对于浮点数、负整数等非正整数形式的数据信息无法进行分片处理而仅能由单一任务进行数据抽取问题,提高了数据抽取效率。
附图说明
图1是根据本申请一示例性实施例提供的一种数据分片抽取方法的流程图;
图2是根据本申请一示例性实施例提供的另一种数据分片抽取方法的流程图;
图3是根据本申请一示例性实施例提供的一种待分片数据表的确定方法的流程图;
图4是根据本申请一示例性实施例中的一种电子设备的示意结构图;
图5是根据本申请一示例性实施例中的一种数据分片抽取装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
商业智能(Business Intelligence,简称:BI),又称商业智慧或商务智能,描述了一系列的概念和方法,通过应用基于事实的支持系统来辅助商业决策的制定,即用现代数据仓库技术、线上分析处理技术、数据挖掘和数据展现技术进行数据分析以将以使已有的业务系统数据实现商业价值。
ETL过程是商业智能中的重要的一个环节,是进行数据分析的基础,即仅在数据仓库构建好后,才有可能基于数据仓库来构建分析模型进而根据需求展现最终的结果,甚至ETL过程的质量将直接决定到商业智能的决策能否成功,当然,ETL并不仅仅局限于实现商业智慧的应用中。
ETL过程的首要步骤便是从源数据系统中抽取目的数据源系统需要的数据,数据抽取过程的效率对整个ETL过程实现效率有着重要的影响。然而,源数据系统的数据类型不尽相同,原本单一的、固定的数据查询语句已无法满足对类型多样化的数据信息的查询过程,使得对于诸如浮点数、负整数类型的数据信息抽取失败,造成ETL过程中断。
有鉴于此,本申请提供一种数据分片抽取方法及装置,以解决相关技术中数据查询方法单一、数据抽取过程效率低下的技术问题。
图1是根据本申请一示例性实施例提供的一种数据分片抽取方法的流程图,如图1所示,该方法可以包括以下步骤:
步骤101,获取针对待分片数据表中的数据信息的查询语句,所述查询语句包含目标字段、分片依据字段、分片数量和针对所述分片依据字段的计算逻辑。
在一实施例中,判断数据缓存存储区中是否存在与接收到的查询语句匹配的执行计划,若存在,则直接调用执行计划进行数据查询,从而节省了执行计划的编译时间,提高了数据查询效率;否则,执行对所获取的查询语句的校验过程,以基于完成校验过程的查询语句进行数据查询,而对于未通过校验过程的查询语句则结束查询操作,进一步的可以生成并发送相应的提示信息,从而使得接收到提示信息的用户明确查询语句未通过校验的原因,提高了对查询语句的纠正效率。
在另一实施例中,在获取针对待分片数据表中的数据信息的查询语句之前,还可以包括:在待分片数据表首次被执行数据抽取任务的情况下,将记载待分片数据表中的全量数据信息的数据表确定为待分片的数据表。
在待分片数据表非首次被执行数据抽取任务的情况下,确定待分片数据表中的预设时长内新增的数据信息;将记载新增的数据信息的数据表确定为待分片的数据表。
进一步的,在确定待分片数据表中的预设时长内新增的数据信息的过程中,可以确定进行过数据抽取任务的历史查询用户中与当前进行数据查询的用户相同的用户,进而确定该用户的历史数据抽取任务信息,在确定历史数据抽取任务信息的过程可以通过数据库日志或者系统日志记录进行查询等。
在存在归属于当前查询用户的历史数据抽取任务信息的情况下,确定该历史数据抽取任务信息中最近一次的数据抽取记录,并在数据抽取记录与当前查询用户的数据抽取任务中涉及到相同的目标字段的情况下,确定待分片数据表中与该目标字段对应的数据信息中在预设时长内新增的数据信息,进而确定记载预设时长内新增的数据信息的数据表为待分片的数据表,从而数据抽取用户仅需针对待分片的数据表进行增量抽取,提高了数据抽取效率。
在又一实施例中,查询语句中的分片依据字段可以为待分片数据表中的任一标签信息对应的数据信息。通过本申请,可以确定待分片数据表中的任一标签信息对应的数据信息的正整数形式的求余运算结果,或者任一标签信息对应的数据信息的求余运算结果的正整数值,进而基于所确定的数值结果配置数据抽取任务,解决了相关技术中因数据查询方法单一导致对于浮点数、负整数等非正整数形式的数据信息无法进行分片处理的问题。
步骤102,执行查询语句,以基于查询语句中的计算逻辑确定分片依据字段的数据信息对应的计算结果,其中,计算结果包括分片依据字段的数据信息的正整数形式的求余运算结果,或者分片依据字段的数据信息的求余运算结果的正整数值。
在一实施例中,查询语句中的计算逻辑包括按照任意顺序执行下述多个运算:取整数运算、取绝对值运算和求余运算,进一步的,在通过包含取整数运算、取绝对值运算和求余运算的任一顺序过程对分片依据字段的数据信息进行处理后,相应的,计算结果可以包括分片依据字段对应的数据信息的正整数形式的求余运算结果,或者分片依据字段求余运算结果的正整数值。
步骤103,根据计算结果的取值配置所述分片数量的数据抽取任务,以使得所述数据抽取任务并行地对目标字段在所述待分片数据表中对应的数据信息进行抽取。
在一实施例中,通过按照计算结果的取值创建分片数量的进程,以由执行数据查询的节点中的不同进程同时对分片依据字段中的数据信息进行逻辑计算,进而根据逻辑计算的结果确定归属于进程自身的数据抽取任务的数据信息。
在另一实施例中,可以将分片数量的数据抽取任务下发至多个处理节点,进而由多个处理节点同时对分片依据字段对应的数据信息进行逻辑计算。具体的,可以由多个处理节点对不超过阈值的数据抽取任务进行处理,使得由多个处理节点同时对分片依据字段对应的数据信息进行数据抽取,进而最后由分配数据抽取任务的节点汇总多个处理节点的抽取结果。
通过上述实施例,获取针对待分片数据表中的数据信息的查询语句后,对待分片数据表中的分片依据字段对应的数据信息基于不同于相关技术中的计算逻辑进行运算,从而获得待分片数据表中分片依据字段的数据信息的正整数形式的求余运算结果,或者求余运算结果的正整数值,进而可以根据计算结果的取值配置分片数量的数据抽取任务,使得各个数据抽取任务并行地对目标字段在待分片数据表中的数据信息进行抽取,消除了相关技术中因数据查询方法单一导致对于正负浮点数、负整数等非正整数形式的数据信息无法进行分片处理的问题,从而解决了相关技术中数据查询方法单一、数据抽取效率低下的技术问题,提高了数据抽取效率。
为对本申请进行进一步说明,请参考下列实施例:
图2是根据本申请一示例性实施例提供的另一种数据分片抽取方法的流程图,如图2所示,该方法可以包括以下步骤:
步骤201,确定用户输入的查询信息对应的查询语句。
在一实施例中,用户可以根据业务查询需求输入数据库查询语句,所输入的查询语句可以是用户基于业务查询需求自定义的语句。
在另一实施例中,用户可以仅输入待查询的字段信息,以由接收到字段信息的设备自动生成匹配该字段信息的可执行的标准查询语句,诸如业务系统可执行的标准的查询语句。
进一步的,用户可以输入与待查询的字段信息相匹配的模糊字段,接收到模糊字段的设备基于预配置的映射关系确定该模糊字段对应的待查询字段,进而根据所确定的待查询字段自动生成对应于该待查询字段的查询语句。
基于用户输入的查询信息而生成的查询语句中可以包括查询信息对应的待分片数据表的标识信息和用于进行分片的目标字段,具体的,目标字段为待分片数据表中待进行数据抽取的数据信息,在实际应用过程中,目标字段可以为待分片数据表中待进行数据抽取的标签信息以及该标签信息对应的全部数据信息,或者目标字段可以为待分片数据表中待进行数据抽取的标签信息以及该标签信息对应的部分数据信息。
以下表1为例,表1仅用于解释本申请的发明原理,并不用于限定本申请的技术方案,作为一示例性的数据表table*,数据表中的数据信息抽象为data_xy,数据信息的标签信息抽象为field_x,则表1中示出了一个含有数据表标识信息table*的数据表,且该数据表中包含n行、m列的数据信息,在该数据表中数据信息data_11~data_n1的标签信息为field_1,数据信息data_1m~data_nm的标签信息为field_n,在实际应用中,标签信息可以为姓名、年龄、性别等业务数据信息的标识名称,数据信息可以为标签信息对应的具体的业务数据信息,诸如在标签信息field_1为年龄的情况下,数据信息data_11~data_n1可以为张三、李四.....王五等。
表1
在确定查询语句的过程中,若根据用户输入的查询信息匹配到table*中的field_1、field_2、field_3字段,则所确定的查询语句中可以包含查询信息对应的待分片数据表的标识信息table*和基于查询信息确定的字段field_1、field_2、field_3,在查询语句中仅包含字段field_1、field_2、field_3的情况下,查询语句所查询的目标字段包括字段field_1、field_2、field_3分别对应的全部数据信息;进一步的,可以对于目标字段做进一步的限制,即在目标字段后添加所要抽取的数据信息的抽取范围,进而查询语句所查询的目标字段包括待分片数据表中字段field_1、field_2、field_3分别对应的与抽取范围匹配的部分数据信息。
所生成的查询语句中还可以包括分片数量、分片依据字段和针对分片依据字段的计算逻辑。具体的,分片数量可以为用户通过所输入的查询信息进行自定义的数量;或者接收到用户输入的查询信息的设备自动根据预配置的指令信息确定出的数量,以由所确定的任务分片数量的子任务并行地执行查询操作任务。
进一步的,接收到用户输入的查询信息的设备可以根据设备自身的运行状况而确定具有与设备当前运行状况具有针对性的分片数量。具体的,设备可以根据设备自身当前运行负载所超过的阈值确定该阈值对应的数量为分片数量,诸如在由设备自身完成对所有的数据信息进行分片的情况下,可以配置在设备运行负载不高时,确定的分片数量越小;可以配置在设备运行负载过高时,确定的分片数量越大。进一步的,设备当前运行负载状况可以为所有总处理器利用率、活动进程占用的物理内存、物理驱动器的总利用率等,本申请对设备的运行状况不做限制。
查询语句中的分片依据字段可以根据用户在待分片数据中所指定的标签信息而定,或者由接收到用户输入的查询请求的设备自动选定。
具体的,分片依据字段可以为待分片数据表中的任一标签信息,诸如在接收到用户所输入的查询请求中包含标签信息field_1、field_2、field_3的情况下,相应的,用户在输入信息的过程中可以在查询请求包含的标签信息中选择用于确定分片依据字段的标签信息,诸如用户将查询请求中的标签信息field_2选定为用于确定分片依据字段的标签信息。
在另一实施例中,设备在接收到用户输入的查询请求后按照预配置的选择规则自动将查询请求中的标签信息确定为用于确定分片依据字段的标签信息,预配置的选择规则可以为将查询请求中的首个标签信息确定为用于确定分片依据字段的标签信息,诸如在查询请求中包含标签信息field_1、field_2、field_3的情况下,可以自动确定首个标签信息为用于确定分片依据字段的标签信息,即field_1。
在又一实施例中,将查询请求中所涉及的数据信息之和最少的标签信息确定为用于确定分片依据字段的标签信息,以提高设备在分片过程中的运算效率,诸如在接收到用户所输入的查询请求中包含field_1、field_2、field_3的情况下,可以分别确定各个标签信息对应的数据信息之和,即标签信息field_1对应的数据信息data_11至data_n1、标签信息field_2对应的数据信息data_12至data_n2、标签信息field_3对应的数据信息data_13至data_n3。进一步的,若数据信息data_11至data_n1的数据量之和为x1、数据信息data_12至data_n2的数据量之和为x2、数据信息data_13至data_n3的数据量之和为x3,且x2<x1<x3,则可以将数据量之和最小的数据信息data_12至data_n2对应的标签信息field_2自动确定为用于确定分片依据字段的标签信息。
针对于所确定的分片依据字段,所生成的查询语句中还可以包括用于对该分片依据字段进行计算处理的逻辑规则,具体的,针对于相关技术中无法直接进行取余计算的分片依据字段,本申请中除了对分片依据字段进行取余计算之外,还增加对分片依据字段的取整数计算和取绝对值计算,以对于待抽取的数据为非正整数的情况下,亦可进行被分片抽取。
进一步的,对于分片依据字段的各个计算处理过程不受运算顺序的限制,在针对分片依据字段执行计算逻辑的过程中,可以按照任意顺序执行下述多个运算过程:取整数运算、取绝对值运算和求余运算,诸如在确定field_2为用于确定分片依据字段的标签信息的情况下,可以优先对field_2对应的数据信息进行取整数运算、其次进行取绝对值运算、进而再进行求余运算;或者可以优先对field_2对应的数据信息进行取绝对值运算、其次进行取整数运算、进而再进行求余运算;或者可以优先对field_2对应的数据信息进行取余运算、其次进行取整数运算、进而再进行取绝对值运算;或者可以优先对field_2对应的数据信息进行求余运算、其次进行取绝对值运算、进而再进行取整数运算;或者可以优先对field_2对应的数据信息进行取整数运算、其次进行求余运算、最后进行取绝对值运算;或者可以优先对field_2对应的数据信息进行取绝对值运算、其次进行求余运算、最后进行取整数运算。
具体的,本申请中提及到的取整数运算可以为Oracle中的trunc(data)函数、round(data)函数、ceil(data)函数、floor(data)函数等,取绝对值运算可以为abs(data)函数、fabs(data)函数等。
以在数据表table*中以field_2为用于确定分片依据字段的标签信息,标签信息field_1、field_2、field_3对应的数据信息为待进行抽取的目标字段为例,对上述可以按照任意顺序执行下述多个运算过程:取整数运算、取绝对值运算和求余运算进行举例说明:
在优先对标签信息field_2对应的数据信息进行求余运算、其次进行取绝对值运算、进而再进行取整数运算的情况下,对应的查询语句可以为:SELECT field_1,field_2,field_3 FROM table*WHERE TRUNC(ABS(MOD(field_2,p)))=n,其中,p为分片的数量,n为子任务编号。
当然,也可以优先对标签信息field_2对应的数据信息进行取绝对值运算、其次进行取整数运算、进而再进行求余运算,相应的查询语句可以为:SELECT field_1,field_2,field_3 FROM table*WHERE MOD(TRUNC(ABS(field_2)),p)=n,其中,p为分片的数量,n为子任务编号。
类似的,还可以为优先对标签信息field_2对应的数据信息进行取整数运算、其次进行取绝对值运算、进而再进行求余运算,相应的查询语句可以为:SELECT field_1,field_2,field_3 FROM table*WHERE MOD(ABS(TRUNC(field_2)),p)=n,其中,p为分片的数量,n为子任务编号。
这里通过一个应用实例对上述查询语句中的分片的数量p和子任务编号n进行举例:在拆分任务的总数为4的情况下,即p=4时,子任务编号n对应的取值可以为0、1、2、3,相应的,由四个子任务task[0]、task[1]、task[2]、task[3]分别进行处理的查询语句在n的取值上存在不同,即四个子任务task[0]、task[1]、task[2]、task[3]对应的查询语句中n分别取值为0、1、2、3。
以查询语句SELECT field_1,field_2,field_3 FROM table*WHERE MOD(TRUNC(ABS(field_2)),p)=n为例,四个子任务task[0]、task[1]、task[2]、task[3]分别对应的查询语句为:
Task[0]:
SELECT field_1,field_2,field_3 FROM table*WHERE MOD(TRUNC(ABS(field_2)),p)=0;
Task[1]:
SELECT field_1,field_2,field_3 FROM table*WHERE MOD(TRUNC(ABS(field_2)),p)=1;
Task[2]:
SELECT field_1,field_2,field_3 FROM table*WHERE MOD(TRUNC(ABS(field_2)),p)=2;
Task[3]:
SELECT field_1,field_2,field_3 FROM table*WHERE MOD(TRUNC(ABS(field_2)),p)=3。
步骤202,判断数据缓存存储区中是否存在与接收到的查询语句相匹配的执行计划,若存在,进入步骤203;否则,进入步骤206。
步骤203,直接调用数据缓存存储区中的执行计划进行数据查询。
在针对所确定的查询语句进行执行之前,可以优先判断数据缓存存储区中是否存在与所确定的查询语句相匹配的执行计划,若存在,则直接调用数据缓存存储区中已经编译好的执行计划,从而节省了执行计划的编译时间,提高了数据查询效率。
步骤204,执行对查询语句的校验过程,在所述查询语句完成校验过程的情况下,进入步骤205,针对完成校验的查询语句进行数据查询;否则,发送提示信息。
在数据缓存存储区中不存在与所确定的查询语句相匹配的执行计划的情况下,可以在对查询语句完成校验的情况下,针对通过校验的查询语句进行数据查询,对于未通过校验的查询语句,则结束查询操作,进一步的,生成并发送提示信息。
对查询语句所执行的校验过程可以涉及到语法校验、语义校验、查询权限校验中的一个或多个过程的组合。语法校验过程可以涉及到对查询语句中是否存在无法识别的词语、是否存在无法识别符号、是否存在歧义的词语;语义校验过程可以涉及到对查询语句中提及到的表名、字段信息等对象是否真实存在,是否为可识别的查询对象或者是否为可执行的计算逻辑等;查询权限校验过程可以涉及到对发送查询信息的用户的权限验证,使得仅向具备查询权限的用户返回查询结果,而对于不具备查询权限的用户则不执行查询操作。
在基于语法校验、语义校验对所确定的查询语句的语法、语义进行校准,并在语法、语义或者查询权限存在错误的情况下,可以生成关于该错误的提示信息并将该提示信息返回至调用查询语句的查询功能的应用程序,进而呈现给输入查询信息的用户,向用户所返回的提示信息中,可以包括查询报错原因,诸如语法校验错误、语义校验错误、查询权限校验错误等,进一步的,可以精确到查询报错原因中的准确的校验失败原因,诸如存在的无法识别的词语、无法识别的符号、存在歧义的词语等,使得接收到提示信息的用户能够获知与接收到的查询报错有关的具体校验失败的原因,进而提高对校验失败的情况的处理效率。
在查询语句完成校验过程的情况下,可以针对已完成校验的查询语句确定对应的执行计划,同时将所确定的执行计划保存在数据缓存存储区中,以便及时响应对同一执行计划的调用需求,而无需进行重复编译。
步骤206,确定查询语句对应的待分片数据表。
在一实施例中,可以根据查询语句中所涉及的表的标识信息确定查询语句对应的待分片数据表,诸如在所确定的查询语句中包含表名为table*,则可以确定查询语句对应的待分片数据表的表名为table*的数据表。
在另一实施例中,可以结合查询语句与历史查询情况实时确定待分片数据表,可以参考图3,图3是根据本申请一示例性实施例提供的一种待分片数据表的确定方法的流程图,如图3所示,对待分片数据表的确定方法可以涉及下述具体步骤:
步骤301,判断查询语句对应的待分片数据表是否首次被执行数据抽取任务,若是,进入步骤302;否则,进入步骤303。
步骤302,将记载待分片数据表中的全量数据信息的数据表确定为待分片的数据表。
在本申请中可以对与所确定的查询语句对应的待分片数据表是否为首次被执行数据抽取任务的数据表进行确认,进而在待分片数据表为首次被执行数据抽取任务的情况下,将记载待分片数据表中的全量数据信息确定为待分片的数据表,从而对于所确定的待分片的数据表中的数据信息进行分片抽取。
步骤303,确定待分片数据表中的预设时长内新增的数据信息;将记载新增的数据信息的数据表确定为待分片的数据表。
在确定待分片数据表中的预设时长内新增的数据信息的过程中,可以确定进行过数据抽取任务的历史查询用户中与当前进行数据查询的用户相同的用户,进而确定该用户的历史数据抽取任务信息,在确定历史数据抽取任务信息的过程可以通过数据库日志或者系统日志记录进行查询等。
在存在归属于当前查询用户的历史数据抽取任务信息的情况下,确定该历史数据抽取任务信息中最近一次的数据抽取记录,并在数据抽取记录与当前查询用户的数据抽取任务中涉及到数据表中的相同的标签信息或者标签信息对应相同的数据信息的情况下,确定与该标签信息对应的数据信息中在预设时长内新增的数据信息,进而确定记载预设时长内新增的数据信息的数据表为待分片的数据表,从而数据抽取用户仅需针对待分片的数据表进行增量抽取,提高了数据抽取效率。
步骤207,确定查询语句对应的待分片数据表中的目标字段。
筛选待分片数据表中与查询语句中的目标字段对应的数据信息,进而将待分片数据表中对应于查询语句中的目标字段的数据信息确定为与查询语句对应的目标字段。
步骤208,针对所确定的待分片数据表中的分片依据字段执行计算逻辑。
针对所确定的待分片数据表中的分片依据字段执行计算逻辑,以确定分片依据字段对应的计算结果,在本申请中通过包含取整数运算、取绝对值运算和求余运算的任一顺序过程对分片依据字段的数据信息进行处理后,相应的,计算结果可以包括分片依据字段对应的数据信息的正整数形式的求余运算结果,或者分片依据字段求余运算结果的正整数值。
步骤209,根据计算结果的取值配置分片数量的数据抽取任务,以由数据抽取任务并行地对待分片数据表中的目标字段进行抽取。
通过按照计算结果的取值配置分片数量的数据抽取任务,使得所配置的数据抽取任务能够并行地对待分片数据表中的目标字段进行抽取。
在一实施例中,通过按照计算结果的取值创建分片数量的进程,以由执行数据查询的节点中的不同进程同时对分片依据字段进行逻辑计算,进而根据逻辑计算的结果确定归属于进程自身的数据抽取任务的数据信息。
在另一实施例中,可以将分片数量的数据抽取任务下发至多个处理节点,进而由多个处理节点同时对分片依据字段进行逻辑计算。
在确定处理节点的过程中,可以根据分片的数量确定节点的数量,从而将分片数量的数据抽取任务分别下发至相应数量的处理节点,使得各个处理节点仅对于接收到的一项数据抽取任务进行处理,在该种情况下,可以理解为待接收数据抽取任务的处理节点的数据抽取任务阈值为1,相应的,各个处理节点仅对于一个数据抽取任务进行处理;或者,根据处理节点中预配置的数据抽取任务量对分片数量的数据抽取任务进行下发,诸如在处理节点预配置的数据抽取任务量为3的情况下,则向该节点下发小于等于3的数据抽取任务,使得各个处理节点对于不超过阈值的数据抽取任务进行抽取,并在各个处理节点完成对数据抽取任务的处理的情况下,由下发数据抽取任务的节点对各个处理节点的数据处理结果进行汇总。
通过上述实施例,通过确定与接收到用户输入的查询信息对应的查询语句,并在所确定的查询语句不存在于数据缓存存储区且查询语句通过校验的情况下,确定查询语句对应的待分片数据表,以及待分片数据表中与查询语句对应的数据信息,进而针对所确定的待分片数据表中的分片依据字段对应的数据信息执行计算逻辑,从而根据计算结果的取值配置分片数量的数据抽取任务,以由所配置的数据抽取任务并行对目标字段进行数据抽取,提高了数据抽取效率;此外,在配置和下发数据抽取任务之前,基于用户输入的查询信息确定适用于多种字段类型(诸如负整数、正浮点数、负浮点数)的查询语句,并根据查询语句对待分片数据表中的目标字段进行处理,解决了相关技术中数据查询方法单一、数据抽取效率低下的技术问题。
图4是根据本申请一示例性实施例中的一种电子设备的示意结构图。请参考图4,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成数据分片抽取装置。当然,除了软件实现方式之外,本申请并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
请参考图5,图5是根据本申请一示例性实施例中的一种数据分片抽取装置的框图,如图5所示,在软件实施方式中,该数据分片抽取装置可以包括:
获取单元501,获取针对待分片数据表中的数据信息的查询语句,所述查询语句包含目标字段、分片依据字段、分片数量和针对所述分片依据字段的计算逻辑;
执行单元502,执行所述查询语句,以基于所述计算逻辑确定所述分片依据字段的数据信息对应的计算结果,其中,所述计算结果包括所述分片依据字段正整数形式的求余运算结果,或者所述分片依据字段求余运算结果的正整数值;
配置单元503,根据计算结果的取值配置所述分片数量的数据抽取任务,以使得所述数据抽取任务并行地对目标字段在所述待分片数据表中对应的数据信息进行抽取。
可选的,所述执行单元具体用于:
按照任意顺序执行下述多个运算:取整数运算、取绝对值运算和取余运算。
可选的,还包括:
发送单元504,将所述分片数量的数据抽取任务下发至多个处理节点,以由多个处理节点对不超过阈值的数据抽取任务进行处理;
汇总单元505,汇总所述多个处理节点的抽取结果。
可选的,在所述获取针对待分片数据表中的数据信息的查询语句之前,还包括:
第一确定单元506,在所述待分片数据表首次被执行数据抽取任务的情况下,将记载所述待分片数据表中的全量数据信息的数据表确定为待分片的数据表;
第二确定单元507,在所述待分片数据表非首次被执行数据抽取任务的情况下,确定所述待分片数据表中的预设时长内新增的数据信息;将记载所述新增的数据信息的数据表确定为待分片的数据表。
可选的,在所述获取针对待分片数据表中的数据信息的查询语句之前,还包括:
判断单元508,判断数据缓存存储区中是否存在与接收到的查询语句匹配的执行计划;
查询单元509,若存在,则直接调用所述执行计划进行数据查询;否则,执行对所述查询语句的校验过程,以基于完成校验过程的查询语句进行数据查询。
所述装置与上述方法相对应,更多相同的细节不再一一赘述。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
虽然本说明书包含许多具体实施细节,但是这些不应被解释为限制任何发明的范围或所要求保护的范围,而是主要用于描述特定发明的具体实施例的特征。本说明书内在多个实施例中描述的某些特征也可以在单个实施例中被组合实施。另一方面,在单个实施例中描述的各种特征也可以在多个实施例中分开实施或以任何合适的子组合来实施。此外,虽然特征可以如上所述在某些组合中起作用并且甚至最初如此要求保护,但是来自所要求保护的组合中的一个或多个特征在一些情况下可以从该组合中去除,并且所要求保护的组合可以指向子组合或子组合的变型。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (11)
1.一种数据分片抽取方法,其特征在于,所述方法包括:
获取针对待分片数据表中的数据信息的查询语句,所述查询语句包含目标字段、分片依据字段、分片数量和针对所述分片依据字段的计算逻辑;所述计算逻辑,包括按照任意顺序执行下述多个运算:取整数运算、取绝对值运算和求余运算;所述分片依据字段的确定方式包括:将所述待分片数据表中数据信息之和最少的标签信息,确定为分片依据字段;所述分片数量是根据设备当前运行负载确定的;
执行所述查询语句,以基于所述计算逻辑确定所述分片依据字段的数据信息对应的计算结果,其中,所述计算结果包括所述分片依据字段的数据信息的正整数形式的求余运算结果,或者所述分片依据字段的数据信息的求余运算结果的正整数值;
根据计算结果的取值配置所述分片数量的数据抽取任务,以使得所述数据抽取任务并行地对目标字段在所述待分片数据表中对应的数据信息进行抽取。
2.根据权利要求1所述方法,其特征在于,还包括:
将所述分片数量的数据抽取任务下发至多个处理节点,以由多个处理节点对不超过阈值的数据抽取任务进行处理;
汇总所述多个处理节点的抽取结果。
3.根据权利要求1所述方法,其特征在于,在所述获取针对待分片数据表中的数据信息的查询语句之前,还包括:
在所述待分片数据表首次被执行数据抽取任务的情况下,将记载所述待分片数据表中的全量数据信息的数据表确定为待分片的数据表;
在所述待分片数据表非首次被执行数据抽取任务的情况下,确定所述待分片数据表中的预设时长内新增的数据信息;将记载所述新增的数据信息的数据表确定为待分片的数据表。
4.根据权利要求1所述方法,其特征在于,在所述获取针对待分片数据表中的数据信息的查询语句之前,还包括:
判断数据缓存存储区中是否存在与接收到的查询语句匹配的执行计划,若存在,则直接调用所述执行计划进行数据查询;否则,执行对所述查询语句的校验过程,以基于完成校验过程的查询语句进行数据查询。
5.根据权利要求1所述方法,其特征在于,所述分片依据字段为所述待分片数据表中的任一标签信息对应的数据信息。
6.一种数据分片抽取装置,其特征在于,所述装置包括:
获取单元,获取针对待分片数据表中的数据信息的查询语句,所述查询语句包含目标字段、分片依据字段、分片数量和针对所述分片依据字段的计算逻辑;所述计算逻辑,包括按照任意顺序执行下述多个运算:取整数运算、取绝对值运算和求余运算;所述分片依据字段的确定方式包括:将所述待分片数据表中数据信息之和最少的标签信息,确定为分片依据字段;所述分片数量是根据设备当前运行负载确定的;
执行单元,执行所述查询语句,以基于所述计算逻辑确定所述分片依据字段的数据信息对应的计算结果,其中,所述计算结果包括所述分片依据字段的数据信息的正整数形式的求余运算结果,或者所述分片依据字段的数据信息的求余运算结果的正整数值;
配置单元,根据计算结果的取值配置所述分片数量的数据抽取任务,以使得所述数据抽取任务并行地对目标字段在所述待分片数据表中对应的数据信息进行抽取。
7.根据权利要求6所述装置,其特征在于,还包括:
发送单元,将所述分片数量的数据抽取任务下发至多个处理节点,以由多个处理节点对不超过阈值的数据抽取任务进行处理;
汇总单元,汇总所述多个处理节点的抽取结果。
8.根据权利要求6所述装置,其特征在于,所述装置还包括:
第一确定单元,在所述待分片数据表首次被执行数据抽取任务的情况下,将记载所述待分片数据表中的全量数据信息的数据表确定为待分片的数据表;
第二确定单元,在所述待分片数据表非首次被执行数据抽取任务的情况下,确定所述待分片数据表中的预设时长内新增的数据信息;将记载所述新增的数据信息的数据表确定为待分片的数据表。
9.根据权利要求6所述装置,其特征在于,所述装置还包括:
判断单元,判断数据缓存存储区中是否存在与接收到的查询语句匹配的执行计划;
查询单元,若存在,则直接调用所述执行计划进行数据查询;否则,执行对所述查询语句的校验过程,以基于完成校验过程的查询语句进行数据查询。
10.一种电子设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为可执行指令以实现如权利要求1-5中任一项所述的方法。
11.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,该指令被处理器执行时实现如权利要求1-5中任一项所述方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911195281.XA CN110928941B (zh) | 2019-11-28 | 2019-11-28 | 一种数据分片抽取方法及装置 |
CN202311665771.8A CN117763024A (zh) | 2019-11-28 | 2019-11-28 | 一种数据分片抽取方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911195281.XA CN110928941B (zh) | 2019-11-28 | 2019-11-28 | 一种数据分片抽取方法及装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311665771.8A Division CN117763024A (zh) | 2019-11-28 | 2019-11-28 | 一种数据分片抽取方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110928941A CN110928941A (zh) | 2020-03-27 |
CN110928941B true CN110928941B (zh) | 2023-10-27 |
Family
ID=69847604
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311665771.8A Pending CN117763024A (zh) | 2019-11-28 | 2019-11-28 | 一种数据分片抽取方法及装置 |
CN201911195281.XA Active CN110928941B (zh) | 2019-11-28 | 2019-11-28 | 一种数据分片抽取方法及装置 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311665771.8A Pending CN117763024A (zh) | 2019-11-28 | 2019-11-28 | 一种数据分片抽取方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN117763024A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113688159B (zh) * | 2021-09-08 | 2024-04-05 | 京东科技控股股份有限公司 | 一种数据抽取方法与装置 |
CN115935090B (zh) * | 2023-03-10 | 2023-06-16 | 北京锐服信科技有限公司 | 一种基于时间分片的数据查询方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106294886A (zh) * | 2016-10-17 | 2017-01-04 | 北京集奥聚合科技有限公司 | 一种从HBase中全量抽取数据的方法及系统 |
CN107391508A (zh) * | 2016-05-16 | 2017-11-24 | 顺丰科技有限公司 | 数据加载方法和系统 |
CN107436883A (zh) * | 2016-05-26 | 2017-12-05 | 北京京东尚科信息技术有限公司 | 基于求余的数据抽取的方法、装置及系统 |
-
2019
- 2019-11-28 CN CN202311665771.8A patent/CN117763024A/zh active Pending
- 2019-11-28 CN CN201911195281.XA patent/CN110928941B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107391508A (zh) * | 2016-05-16 | 2017-11-24 | 顺丰科技有限公司 | 数据加载方法和系统 |
CN107436883A (zh) * | 2016-05-26 | 2017-12-05 | 北京京东尚科信息技术有限公司 | 基于求余的数据抽取的方法、装置及系统 |
CN106294886A (zh) * | 2016-10-17 | 2017-01-04 | 北京集奥聚合科技有限公司 | 一种从HBase中全量抽取数据的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110928941A (zh) | 2020-03-27 |
CN117763024A (zh) | 2024-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200356901A1 (en) | Target variable distribution-based acceptance of machine learning test data sets | |
EP3353672B1 (en) | Method and apparatus for transferring data between databases | |
US9886670B2 (en) | Feature processing recipes for machine learning | |
US10878335B1 (en) | Scalable text analysis using probabilistic data structures | |
US20150379424A1 (en) | Machine learning service | |
CN111026568B (zh) | 数据和任务关系构建方法、装置、计算机设备及存储介质 | |
CN110019298B (zh) | 数据处理方法和装置 | |
US10915533B2 (en) | Extreme value computation | |
KR20180002758A (ko) | 데이터 처리 방법 및 시스템 | |
US11562078B2 (en) | Assessing and managing computational risk involved with integrating third party computing functionality within a computing system | |
CN110928941B (zh) | 一种数据分片抽取方法及装置 | |
CN109033365B (zh) | 一种数据处理方法及相关设备 | |
KR101772333B1 (ko) | 이종 NoSQL 데이터베이스들간의 지능적 조인 전략 제공 방법 및 시스템 | |
CN112597151A (zh) | 数据处理方法、装置、设备和存储介质 | |
US11222036B1 (en) | Data warehouse access reporting | |
CN110019357B (zh) | 数据库查询脚本生成方法及装置 | |
US20160292282A1 (en) | Detecting and responding to single entity intent queries | |
CN112749197B (zh) | 数据分片刷新方法、装置、设备及存储介质 | |
CN114691496A (zh) | 单元测试方法、装置、计算设备及介质 | |
CN114818458A (zh) | 系统参数优化方法、装置、计算设备及介质 | |
US10397312B2 (en) | Automated server deployment platform | |
US20230010147A1 (en) | Automated determination of accurate data schema | |
US11561979B2 (en) | Dynamically detecting and correcting errors in queries | |
CN113965389B (zh) | 一种基于防火墙日志的网络安全管理方法、设备及介质 | |
US20220309384A1 (en) | Selecting representative features for machine learning models |
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 |