CN114610959B - 数据处理方法、装置、设备及存储介质 - Google Patents

数据处理方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN114610959B
CN114610959B CN202210511669.1A CN202210511669A CN114610959B CN 114610959 B CN114610959 B CN 114610959B CN 202210511669 A CN202210511669 A CN 202210511669A CN 114610959 B CN114610959 B CN 114610959B
Authority
CN
China
Prior art keywords
field
data table
node
processed
actuator
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
CN202210511669.1A
Other languages
English (en)
Other versions
CN114610959A (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.)
Hundsun Technologies Inc
Original Assignee
Hundsun Technologies Inc
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 Hundsun Technologies Inc filed Critical Hundsun Technologies Inc
Priority to CN202210511669.1A priority Critical patent/CN114610959B/zh
Publication of CN114610959A publication Critical patent/CN114610959A/zh
Application granted granted Critical
Publication of CN114610959B publication Critical patent/CN114610959B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3414Workload generation, e.g. scripts, playback
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K17/00Methods or arrangements for effecting co-operative working between equipments covered by two or more of main groups G06K1/00 - G06K15/00, e.g. automatic card files incorporating conveying and reading operations
    • G06K17/0022Methods or arrangements for effecting co-operative working between equipments covered by two or more of main groups G06K1/00 - G06K15/00, e.g. automatic card files incorporating conveying and reading operations arrangements or provisions for transferring data to distant stations, e.g. from a sensing device
    • 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)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供了一种数据处理方法、装置、设备及存储介质,应用于数据处理平台中多个执行器节点中每个执行器节点,数据处理平台中还具有驱动器节点,其中,该方法包括:采用驱动器节点获取待处理字段的信息,待处理字段的信息包括:待处理字段的字段名和对应的字段值,采用每个执行器节点,判断每个执行器节点的数据表中是否包括待处理字段的字段名,若多个执行器节点中目标执行器节点的数据表中包括待处理字段的字段名,则采用目标执行器节点,根据待处理字段的字段值,对目标执行器节点的数据表进行操作。无需进行数据迁移,采用多个执行器节点并行处理,提高了数据处理效率,并且适用于各种类型的关系型数据库。

Description

数据处理方法、装置、设备及存储介质
技术领域
本申请涉及计算机技术领域,具体而言,涉及一种数据处理方法、装置、设备及存储介质。
背景技术
Spark是专为大规模数据处理而设计的快速通用的计算引擎,Spark支持操作多种类型的关系型数据库,比如支持从mysql、oralce、postgrsql等关系型数据库中读取和写入数据。
目前,基于Spark平台对关系型数据库执行插入更新操作往往使用合并(merge)的方法,其中,需要将数据落地,即将数据迁移至待执行插入更新的关系型数据库中,然后将该数据插入或更新到该关系型数据库中的数据表中。
然而,该方式不仅数据处理效率低下,并且由于不同数据库具有不同的限制条件,因此,该方式不适用于所有类型的关系型数据库,具有一定的局限性。
发明内容
有鉴于此,本申请实施例提供了一种数据处理方法、装置、设备及存储介质,以解决现有技术中数据处理效率低下,且具有一定局限性问题。
第一方面,本申请实施例提供了一种数据处理方法,应用于数据处理平台中多个执行器节点中每个执行器(Executor)节点,所述数据处理平台中还具有驱动器(Driver)节点,所述方法包括:
采用所述驱动器节点获取待处理字段的信息,所述待处理字段的信息包括:所述待处理字段的字段名和对应的字段值;
采用所述每个执行器节点,判断所述每个执行器节点的数据表中是否包括所述待处理字段的字段名,其中,所述每个执行器节点的数据表为将预设数据库的数据表分割为多个分区中的任一数据表;
若所述多个执行器节点中目标执行器节点的数据表中包括所述待处理字段的字段名,则采用所述目标执行器节点,根据所述待处理字段的字段值,对所述目标执行器节点的数据表进行操作。
在一可能的实现方式中,若所述多个执行器节点中目标执行器节点的数据表中包括所述待处理字段的字段名,则采用所述目标执行器节点,根据所述待处理字段的字段值,对所述目标执行器节点的数据表进行操作,包括:
若所述目标执行器节点的数据表中包括所述待处理字段的字段名,则采用所述目标执行器节点,比对所述目标执行器节点的数据表中所述待处理字段的数量和所述待处理字段的预设数量;
若数量比对结果为相同,则采用所述目标执行器节点,根据所述待处理字段的字段值,对所述目标执行器节点的数据表进行操作。
在一可能的实现方式中,所述方法还包括:
若所述数量比对结果为不相同,则采用所述目标执行器节点进行报错提示。
在一可能的实现方式中,所述判断所述每个执行器节点的数据表中是否包括所述待处理字段的字段名之前,所述方法还包括:
采用所述驱动器节点将至少一个所述预设数据库的数据存储至所述预设数据库的数据表;
采用所述驱动器节点对所述预设数据库的数据表进行分割,得到多个分区;
采用所述驱动器节点将所述多个分区分配至所述多个执行器节点。
在一可能的实现方式中,所述采用所述目标执行器节点,根据所述待处理字段的字段值,对所述目标执行器节点的数据表进行操作,包括:
采用所述目标执行器节点将所述待处理字段的信息存储至缓存数据表;
若所述缓存数据表中字段满足预设数量条件,则采用所述缓存数据表中字段对应的执行器节点,根据所述缓存数据表中字段的字段值,对所述缓存数据表中字段对应的执行器节点的数据表进行批量操作,其中,所述缓存数据表中字段对应的执行器节点包括:所述目标执行器节点。
在一可能的实现方式中,所述采用所述缓存数据表中字段对应的执行器节点,根据所述缓存数据表中字段的字段值,对所述缓存数据表中字段对应的执行器节点的数据表进行批量操作,包括:
若所述缓存数据表的字段包括待插入字段,则采用所述待插入字段对应的执行器节点,将所述待插入字段的字段值批量插入到所述待插入字段对应的执行器节点的数据表。
在一可能的实现方式中,所述采用所述缓存数据表中字段对应的执行器节点,根据所述缓存数据表中字段的字段值,对所述缓存数据表中字段对应的执行器节点的数据表进行批量操作,包括:
若所述缓存数据表中字段包括待更新字段,则采用所述待更新字段对应的执行器节点,根据所述待更新字段的字段值批量更新所述待更新字段对应的执行器节点的数据表。
第二方面,本申请实施例还提供了一种数据处理装置, 应用于数据处理平台中多个执行器(Executor)节点中每个执行器节点,所述数据处理平台中还具有驱动器(Driver)节点,所述装置包括:
获取模块,用于采用所述驱动器节点获取待处理字段的信息,所述待处理字段的信息包括:所述待处理字段的字段名和对应的字段值;
处理模块,用于采用所述每个执行器节点,判断所述每个执行器节点的数据表中是否包括所述待处理字段的字段名,其中,所述每个执行器节点的数据表为将预设数据库的数据表分割为多个分区中的任一数据表;
所述处理模块,用于若所述多个执行器节点中目标执行器节点的数据表中包括所述待处理字段的字段名,则采用所述目标执行器节点,根据所述待处理字段的字段值,对所述目标执行器节点的数据表进行操作。
在一可能的实现方式中,所述处理模块,具体用于:
若所述目标执行器节点的数据表中包括所述待处理字段的字段名,则采用所述目标执行器节点,比对所述目标执行器节点的数据表中所述待处理字段的数量和所述待处理字段的预设数量;
若数量比对结果为相同,则采用所述目标执行器节点,根据所述待处理字段的字段值,对所述目标执行器节点的数据表进行操作。
在一可能的实现方式中,处理模块,还用于:
若所述数量比对结果为不相同,则采用所述目标执行器节点进行报错提示。
在一可能的实现方式中,处理模块,还用于采用所述驱动器节点将至少一个所述预设数据库的数据存储至所述预设数据库的数据表;
采用所述驱动器节点对所述预设数据库的数据表进行分割,得到多个分区;
采用所述驱动器节点将所述多个分区分配至所述多个执行器节点。
在一可能的实现方式中,处理模块,具体用于:
采用所述目标执行器节点将所述待处理字段的信息存储至缓存数据表;
若所述缓存数据表中字段满足预设数量条件,则采用所述缓存数据表中字段对应的执行器节点,根据所述缓存数据表中字段的字段值,对所述缓存数据表中字段对应的执行器节点的数据表进行批量操作,其中,所述缓存数据表中字段对应的执行器节点包括:所述目标执行器节点。
在一可能的实现方式中,处理模块,具体用于:
若所述缓存数据表的字段包括待插入字段,则采用所述待插入字段对应的执行器节点,将所述待插入字段的字段值批量插入到所述待插入字段对应的执行器节点的数据表。
在一可能的实现方式中,处理模块,具体用于:
若所述缓存数据表中字段包括待更新字段,则采用所述待更新字段对应的执行器节点,根据所述待更新字段的字段值批量更新所述待更新字段对应的执行器节点的数据表。
第三方面,本申请实施例还提供了一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述处理器执行所述机器可读指令,以执行第一方面任一项所述的数据处理方法。
第四方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行第一方面中任一项所述的数据处理方法。
本申请提供的数据处理方法、装置、设备及存储介质,应用于数据处理平台中多个执行器节点中每个执行器节点,数据处理平台中还具有驱动器节点,其中,该方法包括:采用驱动器节点获取待处理字段的信息,待处理字段的信息包括:待处理字段的字段名和对应的字段值,采用每个执行器节点,判断每个执行器节点的数据表中是否包括待处理字段的字段名,其中,每个执行器节点的数据表为将预设数据库的数据表分割为多个分区中的任一数据表,若多个执行器节点中目标执行器节点的数据表中包括待处理字段的字段名,则采用目标执行器节点,根据待处理字段的字段值,对目标执行器节点的数据表进行操作。无需进行数据迁移,采用多个执行器节点并行处理,提高了数据处理效率,并且适用于各种类型的关系型数据库。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的数据处理平台的架构示意图;
图2为本申请实施例提供的数据处理方法的流程示意图一;
图3为本申请实施例提供的数据处理方法的流程示意图二;
图4为本申请实施例提供的数据处理方法的流程示意图三;
图5为本申请实施例提供的数据处理方法的流程示意图四;
图6为本申请实施例提供的数据处理装置的结构示意图;
图7为本申请实施例提供的电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
Spark支持操作多种类型的关系型数据库,比如支持从mysql、oralce、postgrsql等关系型数据库中读取和写入数据,原生的Spark在向数据库写入数据时只支持增加(appened)、存在不插入(ignore)、插入存在数据则错误报警(error)和重新写入(overwrite),并不支持插入更新(upsert)。当前使用Sperk的原生接口写入数据库时,只是一个执行器节点使用一个连接将一个表格型的数据结构(dataframe)中的数据向关系型数据库中写入,没有充分利用Spark的高并发特性,限制了Spark写入数据库的性能。
目前,基于Spark平台常用的插入更新的方式是逐条进行更新,但该方式严重限制了数据处理的时效性,而且没有判断数据是否存在重复的情况,没有提供更新数据错误告警等,还有一种是使用合并(merge)的方法,其中,需要将数据落地,即将数据迁移至待执行插入更新的关系型数据库中,然后将该数据插入或更新到该关系型数据库,但由于进行数据落地,降低了数据处理效率,而且不同数据库还有主键约束等限制条件,没有一种统一的针对所有类型的关系型数据库的解决方案,具有一定的局限性。
基于此,本申请提供了一种数据处理方法,无需进行数据迁移,采用多个执行器节点并行处理,提高了数据处理效率,并且适用于各种类型的关系型数据库,另外,还可以进行批量处理,提高了数据处理效率和时效性,并且还可以判断是否存在重复数据,以进行报错提示。
下面结合几个具体实施例对本申请的数据处理方法进行详细说明。
图1为本申请实施例提供的数据处理平台的架构示意图,该架构节点包括:多个执行器(Executor)节点(Executor即Worker节点中的执行器)和驱动器(Driver)节点,其中,该数据处理平台可以为Spark平台,该数据处理平台可以设置于电子设备,电子设备例如可以为笔记本电脑、台式电脑等具备数据处理能力的设备。
驱动器节点可以从不同数据库读取表格数据并基于读取的表格数据创建一个包含表格结构(schema)结构信息的数据表格(即预设数据库的数据表),将读取的表格数据缓存至预设数据库的数据表,还可以对读取的表格数据进行聚合(Join)操作,并将Join操作后的数据缓存至预设数据库的数据表,驱动器节点将预设数据库的数据表进行分割,得到多个数据表,采用驱动器节点将多个数据表分配至多个执行器节点,其中该不同的数据库可以为关系型数据库。
在应用过程中,若要对待处理字段的字段值进行插入更新操作,则采用驱动器节点获取待处理字段的信息,待处理字段的信息包括:待处理字段的字段名和对应的字段值,然后采用每个执行器节点,判断每个执行器节点的数据表中是否包括待处理字段的字段名,若目标执行器节点的数据表中包括待处理字段的字段名,则采用目标执行器节点,根据待处理字段的字段值,对目标执行器节点的数据表进行插入或者更新操作。
图2为本申请实施例提供的数据处理方法的流程示意图一,应用于图1数据处理平台中多个执行器节点中每个执行器节点,该数据处理平台还具有驱动器节点。
如图2所示,该方法可以包括:
S101、采用驱动器节点获取待处理字段的信息。
其中,待处理字段可以为待插入更新的字段,具体可以根据实际需求设置,本实施例对此不做限定。
采用驱动器节点获取待处理字段的信息,其中,待处理字段的信息包括:待处理字段的字段名和对应的字段值,该对应的字段值为针对待处理字段指定的字段值,例如,若需要对待处理字段的字段值进行插入或者更新,则需要指定待处理字段的字段值。
S102、采用每个执行器节点,判断每个执行器节点的数据表中是否包括待处理字段的字段名。
采用每个执行器节点判断每个执行器节点的数据表中是否包括待处理字段的字段名,每个执行器节点的数据表为将预设数据库的数据表分割为多个分区中的任一数据表,也就是说,对预设数据库的数据表分割得到多个分区,即多个数据表,每个执行器节点的数据表为该多个数据表中的任意一个数据表,且每个执行器节点的数据表不相同,多个执行器节点并行判断各自的数据表中是否包括待处理字段的字段名。
其中,预设数据库可以为任意类型的关系型数据库,预设数据库的数量包括但不限于一个,预设数据库的数据表为从预设数据库中读取的表格数据所存储的数据表,每个执行器节点的数据表为该预设数据库的数据表的子数据表,其中,表格数据中包括多个字段名,多个字段名中的部分字段名可能具有字段值,多个字段名中的另一部分字段名可能不具有字段值。
需要说明的是,采用驱动器节点获取待处理字段的信息之后,采用驱动器节点还可以将待处理字段的信息广播到每个执行器节点,以便每个执行器节点获知待处理字段的字段名和对应的字段值。
S103、若多个执行器节点中目标执行器节点的数据表中包括待处理字段的字段名,则采用目标执行器节点,根据待处理字段的字段值,对目标执行器节点的数据表进行操作。
若多个执行器节点中目标执行器节点的数据表中包括待处理字段的字段名,则采用目标执行器节点,根据待处理字段的字段值对目标执行器节点的数据表进行操作,也就是说,若目标执行器节点的数据表中只存在待处理字段的字段名,则可以将针对待处理字段指定的字段值插入到目标执行器节点的数据表中,若目标执行器节点的数据表中同时存在待处理字段的字段名和对应的字段值,则可以采用针对待处理字段指定的字段值更新目标执行器节点的数据表中待处理字段的字段值。
例如,预设数据库包括三个,分别存储有一年级学生、二年级学生、三年级学生在1月份的成绩的表格,从预设数据库中读取表格数据,即一年级学生、二年级学生、三年级学生在1月份的成绩,并创建临时表(即预设数据库的数据表),并将读取到的表格数据存储至预设数据库的数据表中,对预设数据库的数据表进行分割得到多个数据表,并将多个数据表分配至多个执行器节点,得到每个执行器节点的数据表,若在2月份考试结束,需要对学生的成绩进行插入或更新,假设待处理字段为“张三”,对应的字段值为“90”,若多个执行器节点中的目标执行器节点的数据表中包括“张三”,且目标执行器节点的数据表中不包括“张三”的字段值,说明1月份没有录入“张三”的成绩,则可将“90”作为“张三”的字段值插入到目标执行器节点的数据表中,若目标执行器节点的数据表中不包括“张三”的字段值,且为“80”,则将目标执行器节点的数据表中“张三”的字段值由“80”更新为“90”,以此类推,对所有学生成绩均按照该方式进行插入更新后,还可以将插入更新后的数据还原至预设数据库中,即预设数据库分别存储一年级学生、二年级学生、三年级学生在2月份的成绩的表格。
在本实施例的数据处理方法中,采用驱动器节点获取待处理字段的信息,待处理字段的信息包括:待处理字段的字段名和对应的字段值,采用每个执行器节点,判断每个执行器节点的数据表中是否包括待处理字段的字段名,其中,每个执行器节点的数据表为将预设数据库的数据表分割为多个分区中的任一数据表,若多个执行器节点中目标执行器节点的数据表中包括待处理字段的字段名,则采用目标执行器节点,根据待处理字段的字段值,对目标执行器节点的数据表进行操作。无需进行数据迁移,采用多个执行器节点并行处理,提高了数据处理效率,并且适用于各种类型的关系型数据库。
在一可选的实现方式中,在步骤S103中,对目标执行器节点的数据表进行操作的一种实现方式中,还可以对比目标执行器节点的数据表中待处理字段的数量和待处理字段的预设数量,以确定目标执行器节点的数据表中是否存在重复的待处理字段(即多个相同的待处理字段),以及排查存在操作异常的情况。下面结合图3进行说明。
图3为本申请实施例提供的数据处理方法的流程示意图二,如图3所示,若多个执行器节点中目标执行器节点的数据表中包括待处理字段的字段名,则采用目标执行器节点,根据待处理字段的字段值,对目标执行器节点的数据表进行操作,包括:
S201、若目标执行器节点的数据表中包括待处理字段的字段名,则采用所述目标执行器节点,比对目标执行器节点的数据表中待处理字段的数量和待处理字段的预设数量。
若目标执行器节点的数据表中包括待处理字段的字段名,则采用目标执行器节点比对目标执行器节点的数据表中待处理字段的数量和待处理字段的预设数量,其中,待处理字段的预设数量为待插入是否更新的待处理字段的数量。
需要说明的是,目标执行器节点将待处理字段的字段名读取到内存,可以采用左连接和分组结构化查询语言(Structured Query Language,SQL)的方式判断目标执行器节点的数据表中是否存在多个待处理字段,并比对目标执行器节点的数据表中待处理字段的数量和待处理字段的预设数是否相同,其中,左连接用于匹配确定是否存在重复数据(即多个待处理字段),分组SQL用于进行数据筛选。
S202、若数量比对结果为相同,则采用目标执行器节点,根据待处理字段的字段值,对目标执行器节点的数据表进行操作。
若数量比对结果为相同,说明目标执行器节点的数据表中待处理字段的数量和待处理字段的预设数量相同,则可以采用目标执行器节点,根据待处理字段的字段值,对目标执行器节点的数据表进行操作,以图1的示例为例,若待处理字段的字段名为“张三”,且“张三”的数量为两个,说明存在重名的学生,若目标执行器节点的数据表中包括“张三”,且“张三”的数量为两个,则可以采用“张三”的两个字段值分别对目标节点的数据表进行插入或更新操作,若目标执行器节点的数据表中“张三”不具有字段值,则将“张三”指定的字段值如97、87分别插入到目标执行器节点的数据表中。
S203、若数量比对结果为不相同,则采用目标执行器节点进行报错提示。
若数量比对结果为不相同,说明目标执行器节点的数据表中待处理字段的数量和待处理字段的预设数量不相同,则可以采用目标执行器节点进行报错提示,以图1的示例为例,若待处理字段的字段名为“张三”,且“张三”的数量为两个,若目标执行器节点的数据表中包括“张三”,且“张三”的数量为一个,则这时不确定应该插入更新哪一个字段值到目标执行器节点的数据表中,则采用目标执行器节点进行报错提示,以避免单个数据插入更新不准确的问题。
在本实施例的数据处理方法中,若目标执行器节点的数据表中包括待处理字段的字段名,则比对目标执行器节点的数据表中待处理字段的数量和待处理字段的预设数量,若数量比对结果为相同,则采用目标执行器节点,根据待处理字段的字段值,对目标执行器节点的数据表进行操作。通过数量比对,能够确定目标执行器节点的数据表中是否存在重复数据,并在数量比对结果为不相同时,还可以进行报错提示,以避免数据插入更新错误。
在一可选的实现方式中,在步骤S102, 采用每个执行器节点,判断每个执行器节点的数据表中是否包括待处理字段的字段名之前,还可以对不同预设数据库的数据进行存储和分割。下面结合图4进行说明。
图4为本申请实施例提供的数据处理方法的流程示意图三,如图4所示,判断每个执行器节点的数据表中是否包括待处理字段的字段名之前,该方法还包括:
S301、采用驱动器节点将至少一个预设数据库的数据存储至预设数据库的数据表。
其中,不同预设数据库中存储有不同数据源的数据,该数据中包括多个字段名,多个字段名中的部分字段名可能具有字段值,多个字段名中的另一部分字段名可能不具有字段值。
预设数据库可以为任意类型的关系型数据库,为对任意类型的关系型数据进行插入更新操作,首先采用驱动器节点可以拉取不同数据源的数据,然后将至少一个预设数据库的数据存储至预设数据库的数据表中。
在一种可能的实现中,可以从至少一个预设数据库中分布式读取数据,具体可以包括如下几个步骤:
(1)分布式读取数据:基于配置的Java数据库连接(Java DatabaseConnectivity,JDBC)连接信息,采用Spark平台的驱动器节点可以从不同数据源读取表格数据,若表格数据中的表格字段具有主键索引,则可以分区并发读取。
(2)创建临时表(预设数据库的数据表):基于Spark平台将读取的表格数据存储至内存中包含表格结构的数据表中,并进行缓存,这样可防止任务执行失败后表格数据丢失而导致重新读取数据。
(3)聚合(Join)操作:编写SQL语句对临时表中的数据进行聚合操作,以对数据进行清洗,将不需要操作的数据剔除,解决了跨数据源进行数据清洗的问题。
S302、采用驱动器节点对预设数据库的数据表进行分割,得到多个分区。
S303、采用驱动器节点将多个分区分配至多个执行器节点。
采用驱动器节点对预设数据库的数据表进行分割得到多个分区数据表(即多个数据表),并采多个驱动器节点将多个分区分配至多个执行器节点,其中,每个执行器节点对应多个分区中的一个数据表。
需要说明的是,在聚合操作过程之后,采用驱动器节点可以通过Spark平台的集群资源管理系统向不同的执行器节点分发数据表,同时每个执行器节点的数据表分区可以通过连接池与预设数据库建立多个连接,以便每个执行器节点在接收到待处理字段的信息之后,执行数据处理任务,也即数据插入更新任务。
在本实施例的数据处理方法中,采用驱动器节点将至少一个预设数据库的数据存储至预设数据库的数据表,采用驱动器节点对预设数据库的数据表进行分割,得到多个分区,采用驱动器节点将多个分区分配至多个执行器节点。通过数据表分区,实现执行器节点并行进行数据处理,提高了数据处理效率,并且适用于各种类型的关系型数据库。
在上述实施例的基础上,在步骤S103的实现中还可以实现数据的批量插入更新,下面结合图5进行说明。
图5为本申请实施例提供的数据处理方法的流程示意图四,如图5所示,采用目标执行器节点,根据待处理字段的字段值,对目标执行器节点的数据表进行操作,包括:
S401、采用目标执行器节点将待处理字段的信息存储至缓存数据表。
驱动器节点将待处理字段的信息广播至每个执行器节点,若目标执行器节点的数据表中包括待处理字段的字段名,则采用目标执行器节点将待处理字段的信息存储至缓存数据表,该缓存数据表可以为临时数据表,以将该待处理字段作为批量数据处理的依据。
S402、若缓存数据表中字段满足预设数量条件,则采用缓存数据表中字段对应的执行器节点,根据缓存数据表中字段的字段值,对缓存数据表中字段对应的执行器节点的数据表进行批量操作。
若缓存数据表中字段满足预设数量条件,说明缓存数据表中存储的字段的数量达到一定条件,则可以进行批量处理,即采用缓存数据表中字段对应的执行器节点,根据缓存数据表中字段的字段值,对缓存数据表中字段对应的执行器节点的数据表进行批量操作,其中,缓存数据表中字段对应的执行器节点包括:目标执行器节点,缓存数据表中字段对应的执行器节点为数据表中包括缓存数据表中字段的字段名的执行器节点。
也就是说,采用目标执行器节点,根据缓存数据表中待处理字段的字段值,对缓存数据表中待处理字段对应的执行器节点(即目标执行器节点)的数据表进行处理,并采用其他执行器节点,根据缓存数据表中其他字段的字段值,对缓存数据表中其他字段对应的执行器节点的数据表进行处理。
在一可选的实现方式中,步骤S402,采用所述缓存数据表中字段对应的执行器节点,根据所述缓存数据表中字段的字段值,对所述缓存数据表中字段对应的执行器节点的数据表进行批量操作,包括:
若所述缓存数据表的字段包括待插入字段,则采用所述待插入字段对应的执行器节点,将所述待插入字段的字段值批量插入到所述待插入字段对应的执行器节点的数据表。
其中,待插入字段指的是待插入字段对应的执行器节点的数据表中不具有字段值的字段,待插入字段对应的执行器节点为数据表中包括待插入字段的字段名的执行器节点。
若缓存数据表中的字段包括待插入字段,则采用待插入字段对应的执行器节点,将待插入字段的字段值插入到待插入字段对应的执行器节点的数据表,也就是说,将数据表中不存在的字段值进行插入。
在一可选的实现方式中,步骤S402,采用所述缓存数据表中字段对应的执行器节点,根据所述缓存数据表中字段的字段值,对所述缓存数据表中字段对应的执行器节点的数据表进行批量操作,还包括:
若所述缓存数据表中字段包括待更新字段,则采用所述待更新字段对应的执行器节点,根据所述待更新字段的字段值批量更新所述待更新字段对应的执行器节点的数据表。
其中,待更新字段指的是待更新字段对应的执行器节点的数据表中具有字段值的字段,待更新字段对应的执行器节点为数据表中包括待更新字段的字段名和字段值的执行器节点。
若缓存数据表中的字段包括待更新字段,则采用待更新字段对应的执行器节点,根据待更新字段的字段值批量更新待更新字段对应的执行器节点的数据表,也就是说,将数据表中存在的字段值进行更新。
在一种可能的实现中,还可以将待插入段的信息存储到一个临时表中,分布式分区批量进行写入,将待更新字段的信息存储到另一个临时表中,分布式分区批量进行更新操作。
在本实施例的数据处理方法中,通过分布式分区批量进行数据处理,和目前单条数据更新的方式相比,除去大字段(clob)特殊情况外,100万级以上数据相同服务器条件下至少可以提升20%以上的效率,并且实现基于spark对数据库进行插入更新数据功能,充分利用Spark集群性能对数据库实现高并发式批量插入更新操作,提高了数据处理效率。
图6为本申请实施例提供的数据处理装置的结构示意图,应用于数据处理平台中多个执行器节点中每个执行器节点,所述数据处理平台中还具有驱动器节点。如图6所示,该装置包括:
获取模块501,用于采用所述驱动器节点获取待处理字段的信息,所述待处理字段的信息包括:所述待处理字段的字段名和对应的字段值;
处理模块502,用于采用所述每个执行器节点,判断所述每个执行器节点的数据表中是否包括所述待处理字段的字段名,其中,所述每个执行器节点的数据表为将预设数据库的数据表分割为多个分区中的任一数据表;
所述处理模块502,用于若所述多个执行器节点中目标执行器节点的数据表中包括所述待处理字段的字段名,则采用所述目标执行器节点,根据所述待处理字段的字段值,对所述目标执行器节点的数据表进行操作。
在一可能的实现方式中,所述处理模块502,具体用于:
若所述目标执行器节点的数据表中包括所述待处理字段的字段名,则采用所述目标执行器节点,比对所述目标执行器节点的数据表中所述待处理字段的数量和所述待处理字段的预设数量;
若数量比对结果为相同,则采用所述目标执行器节点,根据所述待处理字段的字段值,对所述目标执行器节点的数据表进行操作。
在一可能的实现方式中,处理模块502,还用于:
若所述数量比对结果为不相同,则采用所述目标执行器节点进行报错提示。
在一可能的实现方式中,处理模块502,还用于采用所述驱动器节点将至少一个所述预设数据库的数据存储至所述预设数据库的数据表;
采用所述驱动器节点对所述预设数据库的数据表进行分割,得到多个分区;
采用所述驱动器节点将所述多个分区分配至所述多个执行器节点。
在一可能的实现方式中,处理模块502,具体用于:
采用所述目标执行器节点将所述待处理字段的信息存储至缓存数据表;
若所述缓存数据表中字段满足预设数量条件,则采用所述缓存数据表中字段对应的执行器节点,根据所述缓存数据表中字段的字段值,对所述缓存数据表中字段对应的执行器节点的数据表进行批量操作,其中,所述缓存数据表中字段对应的执行器节点包括:所述目标执行器节点。
在一可能的实现方式中,处理模块502,具体用于:
若所述缓存数据表的字段包括待插入字段,则采用所述待插入字段对应的执行器节点,将所述待插入字段的字段值批量插入到所述待插入字段对应的执行器节点的数据表。
在一可能的实现方式中,处理模块502,具体用于:
若所述缓存数据表中字段包括待更新字段,则采用所述待更新字段对应的执行器节点,根据所述待更新字段的字段值批量更新所述待更新字段对应的执行器节点的数据表。
在本实施例的数据处理装置中,实现过程和实现原理可以参见上述方法实施例,在此不再赘述。
图7为本申请实施例提供的电子设备的结构示意图,如图7所示,该设备包括:处理器601、存储器602和总线603,所述存储器602存储有所述处理器601可执行的机器可读指令,当电子设备运行时,所述处理器601与所述存储器602之间通过总线603通信,所述处理器601执行所述机器可读指令,以执行上述方法实施例。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例。
在本申请实施例中,该计算机程序被处理器运行时还可以执行其它机器可读指令,以执行如实施例中其它所述的方法,关于具体执行的方法步骤和原理参见实施例的说明,在此不再详细赘述。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围。都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (9)

1.一种数据处理方法,其特征在于,应用于数据处理平台中多个执行器节点中每个执行器节点,所述数据处理平台中还具有驱动器节点,所述方法包括:
采用所述驱动器节点获取待处理字段的信息,所述待处理字段的信息包括:所述待处理字段的字段名和对应的字段值;
采用所述每个执行器节点,判断所述每个执行器节点的数据表中是否包括所述待处理字段的字段名,其中,所述每个执行器节点的数据表为将预设数据库的数据表分割为多个分区中的任一数据表;
若所述多个执行器节点中目标执行器节点的数据表中包括所述待处理字段的字段名,则采用所述目标执行器节点,根据所述待处理字段的字段值,对所述目标执行器节点的数据表进行操作;
所述若所述多个执行器节点中目标执行器节点的数据表中包括所述待处理字段的字段名,则采用所述目标执行器节点,根据所述待处理字段的字段值,对所述目标执行器节点的数据表进行操作,包括:
若所述目标执行器节点的数据表中包括所述待处理字段的字段名,则采用所述目标执行器节点,比对所述目标执行器节点的数据表中所述待处理字段的数量和所述待处理字段的预设数量;
若数量比对结果为相同,则采用所述目标执行器节点,根据所述待处理字段的字段值,对所述目标执行器节点的数据表进行操作。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述数量比对结果为不相同,则采用所述目标执行器节点进行报错提示。
3.根据权利要求1所述的方法,其特征在于,所述判断所述每个执行器节点的数据表中是否包括所述待处理字段的字段名之前,所述方法还包括:
采用所述驱动器节点将至少一个所述预设数据库的数据存储至所述预设数据库的数据表;
采用所述驱动器节点对所述预设数据库的数据表进行分割,得到多个分区;
采用所述驱动器节点将所述多个分区分配至所述多个执行器节点。
4.根据权利要求1所述的方法,其特征在于,所述采用所述目标执行器节点,根据所述待处理字段的字段值,对所述目标执行器节点的数据表进行操作,包括:
采用所述目标执行器节点将所述待处理字段的信息存储至缓存数据表;
若所述缓存数据表中字段满足预设数量条件,则采用所述缓存数据表中字段对应的执行器节点,根据所述缓存数据表中字段的字段值,对所述缓存数据表中字段对应的执行器节点的数据表进行批量操作,其中,所述缓存数据表中字段对应的执行器节点包括:所述目标执行器节点。
5.根据权利要求4所述的方法,其特征在于,所述采用所述缓存数据表中字段对应的执行器节点,根据所述缓存数据表中字段的字段值,对所述缓存数据表中字段对应的执行器节点的数据表进行批量操作,包括:
若所述缓存数据表的字段包括待插入字段,则采用所述待插入字段对应的执行器节点,将所述待插入字段的字段值批量插入到所述待插入字段对应的执行器节点的数据表。
6.根据权利要求4或5所述的方法,其特征在于,所述采用所述缓存数据表中字段对应的执行器节点,根据所述缓存数据表中字段的字段值,对所述缓存数据表中字段对应的执行器节点的数据表进行批量操作,包括:
若所述缓存数据表中字段包括待更新字段,则采用所述待更新字段对应的执行器节点,根据所述待更新字段的字段值批量更新所述待更新字段对应的执行器节点的数据表。
7.一种数据处理装置,其特征在于,应用于数据处理平台中多个执行器节点中每个执行器节点,所述数据处理平台中还具有驱动器节点,所述装置包括:
获取模块,用于采用所述驱动器节点获取待处理字段的信息,所述待处理字段的信息包括:所述待处理字段的字段名和对应的字段值;
处理模块,用于采用所述每个执行器节点,判断所述每个执行器节点的数据表中是否包括所述待处理字段的字段名,其中,所述每个执行器节点的数据表为将预设数据库的数据表分割为多个分区中的任一数据表;
所述处理模块,用于若所述多个执行器节点中目标执行器节点的数据表中包括所述待处理字段的字段名,则采用所述目标执行器节点,根据所述待处理字段的字段值,对所述目标执行器节点的数据表进行操作;
所述处理模块,具体用于:
若所述目标执行器节点的数据表中包括所述待处理字段的字段名,则采用所述目标执行器节点,比对所述目标执行器节点的数据表中所述待处理字段的数量和所述待处理字段的预设数量;
若数量比对结果为相同,则采用所述目标执行器节点,根据所述待处理字段的字段值,对所述目标执行器节点的数据表进行操作。
8.一种电子设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述处理器执行所述机器可读指令,以执行权利要求1-6任一项所述的数据处理方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行权利要求1-6任一项所述的数据处理方法。
CN202210511669.1A 2022-05-12 2022-05-12 数据处理方法、装置、设备及存储介质 Active CN114610959B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210511669.1A CN114610959B (zh) 2022-05-12 2022-05-12 数据处理方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210511669.1A CN114610959B (zh) 2022-05-12 2022-05-12 数据处理方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN114610959A CN114610959A (zh) 2022-06-10
CN114610959B true CN114610959B (zh) 2022-08-16

Family

ID=81870641

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210511669.1A Active CN114610959B (zh) 2022-05-12 2022-05-12 数据处理方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN114610959B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116107572A (zh) * 2023-04-07 2023-05-12 苏州万店掌网络科技有限公司 一种批量操作持久化对象方法、装置、计算机设备和介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113792039A (zh) * 2021-03-15 2021-12-14 北京京东振世信息技术有限公司 数据处理方法及装置、电子设备、存储介质
CN114416723A (zh) * 2021-12-15 2022-04-29 北京达佳互联信息技术有限公司 一种数据的处理方法、装置、设备及存储介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7143076B2 (en) * 2000-12-12 2006-11-28 Sap Aktiengesellschaft Method and apparatus for transforming data
US10503718B2 (en) * 2016-07-06 2019-12-10 Micro Focus Llc Parallel transfers of electronic data
US10521440B2 (en) * 2016-08-02 2019-12-31 Aetna Inc. High performance data profiler for big data
CN109033109B (zh) * 2017-06-09 2020-11-27 杭州海康威视数字技术股份有限公司 数据处理方法及系统
CN107885779A (zh) * 2017-10-12 2018-04-06 北京人大金仓信息技术股份有限公司 一种Spark并行访问MPP数据库的方法
CN110750515A (zh) * 2019-09-25 2020-02-04 浙江大华技术股份有限公司 数据库查询方法及处理装置
CN112668287B (zh) * 2019-09-30 2024-07-26 北京国双科技有限公司 数据表确定方法、系统及装置
CN111506569B (zh) * 2020-03-02 2024-03-01 平安科技(深圳)有限公司 数据存储方法、装置、电子装置
CN111459982A (zh) * 2020-03-27 2020-07-28 中国平安人寿保险股份有限公司 一种数据查询方法、装置、终端设备及存储介质
CN111475584B (zh) * 2020-06-19 2021-01-22 阿里云计算有限公司 数据处理方法、系统以及装置
CN114218256B (zh) * 2022-02-21 2022-05-27 恒生电子股份有限公司 访问语句处理方法、装置、设备及存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113792039A (zh) * 2021-03-15 2021-12-14 北京京东振世信息技术有限公司 数据处理方法及装置、电子设备、存储介质
CN114416723A (zh) * 2021-12-15 2022-04-29 北京达佳互联信息技术有限公司 一种数据的处理方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN114610959A (zh) 2022-06-10

Similar Documents

Publication Publication Date Title
US8832159B2 (en) Systems and methods for asynchronous schema changes
CN111708804B (zh) 数据处理方法、装置、设备及介质
WO2017151194A1 (en) Atomic updating of graph database index structures
US20180144061A1 (en) Edge store designs for graph databases
US11327999B2 (en) Reorganization of partition by growth space with LOB columns
CN110442585B (zh) 数据更新方法、数据更新装置、计算机设备及存储介质
CN111143368A (zh) 一种关系型数据库数据对比方法及系统
US11055306B2 (en) Table-per-partition
CN108062314B (zh) 动态分表数据处理方法和装置
CN108763341B (zh) 电子装置、自动化建表方法及存储介质
US8312050B2 (en) Avoiding database related joins with specialized index structures
CN114610959B (zh) 数据处理方法、装置、设备及存储介质
US10599614B1 (en) Intersection-based dynamic blocking
US20070174329A1 (en) Presenting a reason why a secondary data structure associated with a database needs rebuilding
WO2022179122A1 (zh) 基于大数据的数据存储方法、装置、电子设备及存储介质
US20070174264A1 (en) Three-dimensional data structure for storing data of multiple domains and the management thereof
CN112486532A (zh) 配置文件的管理方法、装置、电子设备及存储介质
US20180144060A1 (en) Processing deleted edges in graph databases
US11556519B2 (en) Ensuring integrity of records in a not only structured query language database
CN111639087A (zh) 数据库中数据更新方法、装置和电子设备
CN116340290A (zh) 数据迁移方法、装置、电子设备及存储介质
CN114610644A (zh) 测试数据库的方法及装置
CN111538713A (zh) 面向Hive的多模式数据处理方法、装置及电子设备
US8296336B2 (en) Techniques for efficient dataloads into partitioned tables using swap tables
US10353920B2 (en) Efficient mirror data re-sync

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