CN113127238B - 数据库中导出数据的方法及装置、介质和设备 - Google Patents

数据库中导出数据的方法及装置、介质和设备 Download PDF

Info

Publication number
CN113127238B
CN113127238B CN201911394068.1A CN201911394068A CN113127238B CN 113127238 B CN113127238 B CN 113127238B CN 201911394068 A CN201911394068 A CN 201911394068A CN 113127238 B CN113127238 B CN 113127238B
Authority
CN
China
Prior art keywords
data
database
operation part
data block
export
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
CN201911394068.1A
Other languages
English (en)
Other versions
CN113127238A (zh
Inventor
杨玉磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Yiyiyun Technology Co ltd
Original Assignee
Beijing Yiyiyun Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Yiyiyun Technology Co ltd filed Critical Beijing Yiyiyun Technology Co ltd
Priority to CN201911394068.1A priority Critical patent/CN113127238B/zh
Publication of CN113127238A publication Critical patent/CN113127238A/zh
Application granted granted Critical
Publication of CN113127238B publication Critical patent/CN113127238B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/0793Remedial or corrective actions
    • 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/25Integrating or interfacing systems involving database management systems
    • 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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/80Database-specific techniques
    • 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)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开提供了一种数据库中导出数据的方法及装置、介质和电子设备,涉及数据处理技术领域。该方法包括:在数据库中确定待输出的目标数据块,目标数据块包含至少两个数据行;划分目标数据块为运作部分和暂存部分;对运作部分执行数据导出操作,并判断运作部分的数据是否导出成功;若运作部分的数据导出失败,则划分运作部分为第一部分和第二部分,以将第一部分更新为运作部分以及通过第二部分更新暂存部分。本技术方案有利于提升对坏块的召回率,进而有利于提升数据库的数据的可用性,同时能够提升数据库的数据导出效率。

Description

数据库中导出数据的方法及装置、介质和设备
技术领域
本公开涉及数据处理技术领域,具体而言,涉及一种数据库中导出数据的方法及装置,以及计算机可读介质和电子设备。
背景技术
关系数据库在各种信息化系统中应用广泛,尤其是在目前的大数据和人工智能时代,数据的重要性凸显,因此需要对关系型数据库中的数据进行各种计算和挖掘。具体的,需从数据库中导出数据到适合数据计算的大数据平台上进行数据价值挖掘。
现有技术中,在数据导出过程中若遇到损坏的数据块(记作:坏块),即无法读取这一部分数据的内容。在技术层面表现即分块执行报错,无法返回结果。一般采用的处理方式为:在坏块中,逐一获取各整行数据,并试图读取每个整行数据。若读取执行成功,并导出坏块中的此行数据;若读取执行识别,则舍弃本行数据。
然而,现有技术提供的数据库中数据导出效率低。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开实施例的目的在于提供一种数据库中导出数据的方法、数据库中导出数据的装置,以及实现上述方法的计算机可读介质和电子设备,进而至少在一定程度上数据库中数据导出效率。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开实施例的第一方面,提供了一种数据库中导出数据的方法,该方法包括:
在数据库中确定待输出的目标数据块,所述目标数据块包含至少两个数据行;
划分所述目标数据块为运作部分和暂存部分;
对所述运作部分执行数据导出操作,并判断所述运作部分的数据是否导出成功;
若所述运作部分的数据导出失败,则划分所述运作部分为第一部分和第二部分,以将所述第一部分更新为所述运作部分以及通过所述第二部分更新所述暂存部分。
在示例性的实施例中,基于前述方案,所述方法还包括:
若所述运作部分的数据导出成功,则将所述暂存部分更新为所述运作部分,以对更新后的运作部分执行数据导出操作。
在示例性的实施例中,基于前述方案,划分所述目标数据块为运作部分和暂存部分,包括:
获取所述目标数据块的第一上界和第一下界,并计算所述第一上界和所述第一下界的第一中值;
将所述第一上界至所述第一中值划分为运作部分,以及将所述第一中值至所述第一下界划分为所述运作部分。
在示例性的实施例中,基于前述方案,若所述运作部分的数据导出失败,则划分所述运作部分为第一部分和第二部分,包括:
获取所述运作部分的第二上界和第二下界,并计算所述第二上界和所述第二下界的第二中值;
将所述第二上界至所述第二中值划分为所述第一部分,以及将所述第二中值至所述第二下界划分为所述第二部分。
在示例性的实施例中,基于前述方案,将所述第一部分更新为所述运作部分以及通过所述第二部分更新所述暂存部分,包括:
将所述第一部分更新为所述运作部分,以对更新后的运作部分执行数据导出操作;
将所述第二部分和所述暂存部分作为更新后的暂存部分。
在示例性的实施例中,基于前述方案,在划分所述运作部分为第一部分和第二部分之前,所述方法还包括:
确定所述运作部分包含至少两个数据行;
若所述运作部分仅包含一个数据行,则舍弃所述运作部分。
在示例性的实施例中,基于前述方案,在数据库中确定待输出的目标数据块,包括:
在数据库中确定选取目标列作为分片键;
根据预设的输出数据块的并发度,将所述分片建划分为多个子分片键;
将每个所述子分片键对应的数据行作为一个待输出的数据块,以采用多线程并行执行数据导出,并将任意一个坏块作为所述目标数据块。
根据本公开实施例的第二方面,提供了一种数据库中导出数据的装置,该装置包括:目标数据块确定单元、第一划分单元、导出判断单元和第二划分单元。
其中,上述目标数据块确定单元,被配置为:在数据库中确定待输出的目标数据块,所述目标数据块包含至少两个数据行;
上述第一划分单元,被配置为:划分所述目标数据块为运作部分和暂存部分;
上述导出判断单元,被配置为:对所述运作部分执行数据导出操作,并判断所述运作部分的数据是否导出成功;以及,
上述第二划分单元,被配置为:若所述运作部分的数据导出失败,则划分所述运作部分为第一部分和第二部分,以将所述第一部分更新为所述运作部分以及通过所述第二部分更新所述暂存部分。
根据本公开实施例的第三方面,提供了一种计算机可读介质,其上存储有计算机程序,上述程序被处理器执行时实现如上述实施例第一方面任意一种技术方案所述的数据库中导出数据的方法。
根据本公开实施例的第四方面,提供一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当上述一个或多个程序被上述一个或多个处理器执行时,使得上述一个或多个处理器实现如上述实施例第一方面任意一种技术方案所述的数据库中导出数据的方法。
本公开实施例提供的技术方案可以包括以下有益效果:
在本公开的一些实施例中,将待输出的目标数据块(坏块)划分为两部分,记作:运作部分和暂存部分;然后,对上述运作部分执行数据导出操作,并判断是否导出成功;若导出失败,说明上述运作部分包含至少一个坏行。本技术方案将划分该运作部分为第一部分和第二部分,并将该第一部分更新为上述运作部分,以对更新后的运作部分再次执行数据导出操作。同时,通过上述第二部分更新上述暂存部分。本技术方案通过不断更新上述运作部分和暂存部分来试探性导出当前运作部分的数据,有利于提升对坏块的召回率,进而有利于提升数据库的数据的可用性,同时能够提升数据库的数据导出效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示出本公开示例性实施例中用于实现数据库中导出数据的方法及装置的系统架构示意图;
图2示出了根据本公开的一实施例的数据库中导出数据的方法的流程示意图;
图3示出了根据本公开的一实施例的目标数据块的确定方法的流程示意图;
图4示出了根据本公开的一实施例的目标数据块的划分方法的流程示意图;
图5示出了根据本公开的又一实施例的数据库中导出数据的方法的流程示意图;
图6示出了根据本公开的一实施例的数据块中运作部分的划分方法的流程示意图;
图7示出了根据本公开的一实施例的数据块中运作部分的更新方法的流程示意图;
图8示出了根据本公开的一实施例的数据库中导出数据的装置的结构示意图;
图9示出本公开示例性实施例中计算机存储介质的结构示意图;以及,
图10示出本公开示例性实施例中电子设备的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本公开的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
本示例实施方式中首先提供了一种用于实现数据库中导出数据的方法的系统架构,可以应用于各种数据处理场景。参考图1所示,该系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送请求指令等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如图片处理应用、购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器105可以是在数据库中确定待输出的目标数据块,所述目标数据块包含至少两个数据行(仅为示例)。服务器105划分所述目标数据块为运作部分和暂存部分(仅为示例)。服务器105若所述运作部分的数据导出失败,则划分所述运作部分为第一部分和第二部分,以将所述第一部分更新为所述运作部分以及通过所述第二部分更新所述暂存部分。
示例性的,数据库导出数据的应用场景可以是用于联机事务处理过程(On-LineTransaction Processing,简称:OLTP),也称为面向交易的处理过程。其基本特征是前台接收的用户数据可以立即传送到计算中心进行处理,并在很短的时间内给出处理结果,是对用户操作快速响应的方式之一。鉴于OLTP的响应速度,可见应用场景为OLTP的关系型数据库不适合直接进行数据挖掘计算。
然而,在数据库导出数据的过程中常遇到数据导出失败的问题,影响导出整体数据的程序的正常运行。目前一般只有对坏行、坏列数据的丢弃方案,对于坏块数据要么丢弃要么尝试从数据源修复。然而,若对坏块数据直接丢弃则将造成数据库中有效数据被浪费;若按照相关技术的方式从数据源修复,则存在数据导出效率低的问题。
为了在一定程度上解决上述问题,本技术方案提供了一种数据库中导出数据的方法及装置,计算机存储介质和电子设备,以在保证有效数据导出率的情况下,能够提升数据库的数据导出效率。以下先对数据库中导出数据的方法进行说明:
图2示出了根据本公开的实施例的数据库中导出数据的方法的流程示意图。本实施例提供的数据库中导出数据的方法。参考图2,本实施例提供的数据库中导出数据的方法,包括:
步骤S210,在数据库中确定待输出的目标数据块,所述目标数据块包含至少两个数据行;
步骤S220,划分所述目标数据块为运作部分和暂存部分;
步骤S230,对所述运作部分执行数据导出操作;
步骤S240,判断所述运作部分的数据是否导出成功;以及,
步骤S250,若所述运作部分的数据导出失败,则划分所述运作部分为第一部分和第二部分,以将所述第一部分更新为所述运作部分以及通过所述第二部分更新所述暂存部分。
在图2所示实施例提供的技术方案中,将待输出的目标数据块(坏块)划分为两部分,可记作:运作部分workingSplit和暂存部分remainingSplit;然后,对上述运作部分执行数据导出操作,并判断是否导出成功;若导出失败,说明上述运作部分包含至少一个坏行。本技术方案将划分该运作部分为第一部分和第二部分,并将该第一部分更新为上述运作部分,以对更新后的运作部分再次执行数据导出操作。同时,通过上述第二部分更新上述暂存部分。本技术方案通过不断更新上述运作部分和暂存部分来试探性导出当前运作部分的数据,有利于提升对坏块的召回率,进而有利于提升数据库的数据的可用性,还能够提升数据库的数据导出效率。
在示例性的实施例中,若所述运作部分的数据导出成功,则在步骤S260中,则将所述暂存部分更新为所述运作部分,以对更新后的运作部分执行数据导出操作。从而,通过不断更新的“运作部分”以及不断更新的“暂存部分”,实现试探性导出当前运作部分的数据。
以下对图2所示技术方案的各个步骤的具体实施方式进行解释说明:
在步骤S210中,在数据库中确定待输出的目标数据块,所述目标数据块包含至少两个数据行。
在示例性的实施例中,上述数据库可以是关系型数据库,其中,关系型数据库是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户理解,关系型数据库这一系列的行和列被称为表,一组表组成了数据库。
本技术方案中所涉及的“坏行”,是指数据库表的某一行数据损坏,无法读取到行的内容。“坏列”,是指数据库表的某一行的某一列数据损坏,无法读取到列的内容。“数据块(也可以称作:数据分片、片、块)”是指数据库表的某一部分行数据。示例性的,获取数据库中数据块的结构化查询语言(Structured Query Language,简称:SQL)可以表示为:select*from xxx_table where<split_key>>=small_value and<split_key><big_value返回的全体数据。其中,“split_key”表示从xxx_table中选出的分块列,“xxx_table”表示某个要导出数据的表的名字。其中,本技术方案中将损坏的数据块记作“坏块”,即无法读取这一部分数据的整体内容。
在示例性的实施例中,图3示出了根据本公开的一实施例的目标数据块的确定方法的流程示意图,具体可以作为步骤S210的一种具体实施方式。参考图3,该图所提供的方法包括步骤S310-步骤S330。
在步骤S310中,在数据库中确定选取目标列作为分片键。
示例性的,上述目标列即分块列,是指数据库中待导出表中的某列,用于导出时对待导出的整个表进行分块。示例性的,般选择主键列或有唯一索引的列,列的类型可以是整数类型、浮点型或字符串型。其中,唯一索引是一种索引,添加到某列上时不允许此列有值相同的行,从而根据一个索引值能唯一确定一行数据。
示例性的,上述分片键即主关键字(primary key),是表中的一个或多个字段,它的值用于唯一地标识表中的某一条记录。
在示例性的实施例中,从关系型数据库的表(记作:xxx_table)中导出其全部数据,示例性的,获取数据库中数据块的SQL可以表示为::select*from xxx_table。为了提高导出效率,首先从表中选取一个适合的列作为分片键,然后采用多线程或多进程并行执行导出。本实施例中分片键记作:split_col。
在步骤S320中,根据预设的输出数据块的并发度,将所述分片建划分为多个子分片键。
仍以上述实施例为例:获取分批案件split_col的最大值max_value和最小值min_value;以及,根据预先设置的输出数据块的并发度cc_num,进而,计算单个数据块的步长(即上述子分片键的长度)的一种实施方式为:split_length=(max_value–min_value)/cc_num
在步骤S330中,将每个所述子分片键对应的数据行作为一个待输出的数据块,以采用多线程并行执行数据导出,并将任意一个坏块作为所述目标数据块。
仍以上述实施例为例:计算出每个数据块的上界、下界:[min_value,min_value+split_length],[min_value+split_length,min_value+2*split_length],…[max_value-split_length,max_value]。进一步地,将其中任意一个数据块作为上述目标数据块作为研究对象,以在步骤S220中,划分所述目标数据块为运作部分和暂存部分。
在示例性的实施例中,相较于相关技术中直接输出数据块所引起的有效数据导出率低/数据库的数据导出效率低,本技术方案先将上述目标数据块进行分界,整个块分成两部分运作部分(workingSplit)和暂存部分(remainingSplit);并尝试读workingSplit的结果,如果还报错则workingSplit上界折半并试探读取,直到workingSplit变成最小块(如,有且只有一行)为止。最小块还报错则丢弃。
在示例性的实施例中,图4示出了根据本公开的一实施例的目标数据块的划分方法的流程示意图,具体可以作为步骤S220的一种具体实施方式。参考图4,该图所提供的方法包括:
步骤S410,获取所述目标数据块的第一上界和第一下界,并计算所述第一上界和所述第一下界的第一中值;以及,步骤S420,将所述第一上界至所述第一中值划分为运作部分,以及将所述第一中值至所述第一下界划分为所述运作部分。具体地:
假设上述目标数据块的分块键上界值(即第一上界)和下界值(即第一下界)分别是:small_valueA和big_valueA。计算上述第一上界和上述第一下界的第一中值middle_valueA=(small_valueA–small_valueA)/2。进一步地,将[small_valueA,middle_valueA]划分为该目标数据块的“运作部分”,并将该目标数据块中除了运作部分的数据部分[middle_valueA,big_valueA]划分作为上述“暂存部分”。
将上述目标数据块划分为上述运作部分和暂存部分的原因在于:在采用折半试探的方法对运作部分执行数据导出。从而通过不断地缩小导出的数据范围以保证有效数据能够高概率导出。
继续参考图2,在步骤S230和步骤S240中,对所述运作部分执行数据导出操作,并判断所述运作部分的数据是否导出成功。
示例性的,若所述运作部分的数据导出失败,则执行步骤S250;若所述运作部分的数据导出成功,则执行步骤S260。并且,在通过步骤S250、步骤S260之后,均继续执行步骤S230,即以试探的方法对运作部分执行数据导出。可见,本技术方案通过当前运作部分是否能够导出成功来确定不同的方式更新“运作部分”和“暂存部分”。
在示例性的实施例中,在执行步骤S250之前,图5示出了根据本公开的又一实施例的数据库中导出数据的方法的流程示意图。
参考图5,鉴于该图所提供的方法是在图2的基础上进行的,以下仅对步骤S241和步骤S242进行解释说明,具体的:
在步骤S241中,判断所述运作部分包含至少两个数据行;若所述运作部分仅包含一个数据行,则执行步骤S242,舍弃所述运作部分。从而终止对“运作部分”的更新。若所述运作部分仅至少两个数据行,则执行步骤S250。
也就是说,当运作部分中仅包含一个数据行且为坏行时,则舍弃本数据行。当然,也可以采用从数据源修复的方式来试图修复该数据行。
在示例性的实施例中,在步骤S250中,划分所述运作部分为第一部分和第二部分。其具体的实施方式如图6所示,包括:
步骤S610,获取所述运作部分的第二上界和第二下界,并计算所述第二上界和所述第二下界的第二中值;以及,步骤S620,将所述第二上界至所述第二中值划分为所述第一部分,以及将所述第二中值至所述第二下界划分为所述第二部分。
本实施例中,对当前运作部分的采用折中划分,具体地:假设当前运作部分workingSplit的分块键上界值(即第二上界)和下界值(即第二下界)分别是:small_valueB和big_valueB。计算上述第二上界和上述第二下界的第二中值middle_valueB=(small_valueB–small_valueB)/2。进一步地,将[small_valueB,middle_valueB]划分为当前运作部分workingSplit的第一部分,并将当前运作部分workingSplit中除了第一部分的数据部分[middle_valueB,big_valueB]划分作为第二部分。
进一步地,将上述第一部分更新为当前运作部分workingSplit,并通过上述第二部分更新所述暂存部分remainingSplit。
在示例性的实施例中,图7示出了根据本公开的一实施例的数据块中运作部分的更新方法的流程示意图。参考图7,该图所示方法包括:
步骤S710,将所述第一部分更新为所述运作部分,以对更新后的运作部分执行数据导出操作;以及,步骤S720,将所述第二部分和所述暂存部分作为更新后的暂存部分。
示例性的,如果当前运作部分的第一部分导出成功,则移动下一导出块为当前运作部分的第二部分(即移动下一导出块的下界值为刚导出的块的上标,下一导出块的上界值为目标数据块的上界值)。如果当前运作部分的第一部分导出失败,则进一步进行折中划分处理,一直试探到最小块为止。然后采用上述方法进行剩余块数据的导出。其中,在workingSplit上界折半缩小时,remainingSplit始终代表整个块中除了workingSplit的部分,用于记录本块尚未处理的部分。
本技术方案适用于各类医疗大数据业务的导出,其中,待导出的底层数据来源于关系数据库中存储的数据。示例性的,CacheDB存在很多数据损坏的情况又无法从源表修复。针对此问题,相关技术中:一方面,投入多个工时进行原表修复但基本没有效果;继而采用先导出全表的主键列,再逐一行导出的方式;但需要人为编写实现代码,执行导出效率也低,费时费力。采用本技术方案提供的方法后,99.9%的数据表都可无人工干预自动完成导出,并没有发现任何格式良好的可用数据未导出的情况。也就是说,本技术方案能够大幅提高数据库的数据可用性,同时避免大量人为介入。
本领域技术人员可以理解实现上述实施方式的全部或部分步骤被实现为由处理器,包含中央处理器(central processing unit,CPU)和图形处理器(GraphicsProcessing Unit,GPU)执行的计算机程序。在该计算机程序被CPU或GPU执行时,执行本公开提供的上述方法所限定的上述功能。所述的程序可以存储于一种计算机可读存储介质中,该存储介质可以是只读存储器,磁盘或光盘等。
此外,需要注意的是,上述附图仅是根据本公开示例性实施方式的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
以下介绍本公开的数据库中导出数据的装置实施例,可以用于执行本公开上述实施例提供的数据库中导出数据的方法。
图8示出了根据本公开的实施例的数据库中导出数据的装置的结构示意图,参考图8,本实施例提供的数据库中导出数据的装置800,包括:目标数据块确定单元801、第一划分单元802、导出判断单元803和第二划分单元804。
其中,上述目标数据块确定单元801,被配置为:在数据库中确定待输出的目标数据块,所述目标数据块包含至少两个数据行;
上述第一划分单元802,被配置为:划分所述目标数据块为运作部分和暂存部分;
上述导出判断单元803,被配置为:对所述运作部分执行数据导出操作,并判断所述运作部分的数据是否导出成功;以及,
上述第二划分单元804,被配置为:若所述运作部分的数据导出失败,则划分所述运作部分为第一部分和第二部分,以将所述第一部分更新为所述运作部分以及通过所述第二部分更新所述暂存部分。
在本公开的一种实施例中,基于前述方案,上述数据库中导出数据的装置800,还包括:第一更新单元。
其中,上述第一更新单元被配置为:若所述运作部分的数据导出成功,则将所述暂存部分更新为所述运作部分,以对更新后的运作部分执行数据导出操作。
在本公开的一种实施例中,基于前述方案,上述第一划分单元802,被具体配置为:
获取所述目标数据块的第一上界和第一下界,并计算所述第一上界和所述第一下界的第一中值;将所述第一上界至所述第一中值划分为运作部分,以及将所述第一中值至所述第一下界划分为所述运作部分。
在本公开的一种实施例中,基于前述方案,上述第二划分单元804,被具体配置为:
获取所述运作部分的第二上界和第二下界,并计算所述第二上界和所述第二下界的第二中值;将所述第二上界至所述第二中值划分为所述第一部分,以及将所述第二中值至所述第二下界划分为所述第二部分。
在本公开的一种实施例中,基于前述方案,上述数据库中导出数据的装置800,还包括:第二更新单元。
其中,上述第二更新单元被配置为:将所述第一部分更新为所述运作部分,以对更新后的运作部分执行数据导出操作;将所述第二部分和所述暂存部分作为更新后的暂存部分。
在本公开的一种实施例中,基于前述方案,上述导出判断单元803,还被配置为:
在划分所述运作部分为第一部分和第二部分之前,确定所述运作部分包含至少两个数据行;若所述运作部分仅包含一个数据行,则舍弃所述运作部分。
在本公开的一种实施例中,基于前述方案,上述目标数据块确定单元801,被配置为:
在数据库中确定选取目标列作为分片键;根据预设的输出数据块的并发度,将所述分片建划分为多个子分片键;将每个所述子分片键对应的数据行作为一个待输出的数据块,以采用多线程并行执行数据导出,并将任意一个坏块作为所述目标数据块。
由于本公开的示例性的实施例的数据库中导出数据的装置的各个功能模块与上述数据库中导出数据的方法的示例实施例的步骤对应,因此对于本公开数据库中导出数据的装置实施例中未披露的细节,请参照本公开上述的数据库中导出数据的方法的实施例。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的方法。
在本公开示例性实施方式中,还提供了一种能够实现上述方法的计算机存储介质。其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施例中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当上述程序产品在终端设备上运行时,上述程序代码用于使上述终端设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。
参考图9所示,描述了根据本公开的实施方式的用于实现上述方法的程序产品900,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
上述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RandomAccess Memory,RAM)、只读存储器(Read-Only Memory,ROM)、可擦式可编程只读存储器(erasable programmable read-only memory,EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(Local AreaNetwork,LAN)或广域网(Wide Area Network,WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,在本公开的示例性实施例中,还提供了一种能够实现上述方法的电子设备。
所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
下面参照图10来描述根据本公开的这种实施方式的电子设备1000。图10显示的电子设备1000仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图10所示,电子设备1000以通用计算设备的形式表现。电子设备1000的组件可以包括但不限于:上述至少一个处理单元1010、上述至少一个存储单元1020、连接不同系统组件(包括存储单元1020和处理单元1010)的总线1030。
其中,上述存储单元存储有程序代码,上述程序代码可以被上述处理单元1010执行,使得上述处理单元1010执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。例如,上述处理单元1010可以执行如图2中所示的:步骤S210,在数据库中确定待输出的目标数据块,所述目标数据块包含至少两个数据行;步骤S220,划分所述目标数据块为运作部分和暂存部分;步骤S230,对所述运作部分执行数据导出操作;步骤S240,判断所述运作部分的数据是否导出成功;以及,步骤S250,若所述运作部分的数据导出失败,则划分所述运作部分为第一部分和第二部分,以将所述第一部分更新为所述运作部分以及通过所述第二部分更新所述暂存部分。
示例性的,上述处理单元1010还可以执行如图3至图7中任意一图所示的数据库中导出数据的方法。
存储单元1020可以包括易失性存储单元形式的可读介质,例如:随机存取存储单元(Random Access Memory,RAM)10201和/或高速缓存存储单元10202,还可以进一步包括只读存储单元只读存储器(Read-Only Memory,ROM)10203。
存储单元1020还可以包括具有一组(至少一个)程序模块10205的程序/实用工具10204,这样的程序模块10205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线1030可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备1000也可以与一个或多个外部设备1100(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备1000交互的设备通信,和/或与使得该电子设备1000能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(Input/Output,I/O)接口1050进行。进一步地,I/O接口1050与显示单元1040连接,以通过I/O接口1050将待显示内容传输至显示单元1040,以供用户查看。
并且,电子设备1000还可以通过网络适配器1060与一个或者多个网络(例如局域网(Local Area Network,LAN),广域网(Wide Area Network,WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器1060通过总线1030与电子设备1000的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备1000使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
此外,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施例。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。

Claims (8)

1.一种数据库中导出数据的方法,其特征在于,所述方法包括:
在数据库中选取目标列作为分片键,根据预设的输出数据块的并发度,将所述分片键划分为多个子分片键,将每个所述子分片键对应的数据行作为一个待输出的数据块,以采用多线程并行执行数据导出,并将任意一个坏块确定为待输出的目标数据块,所述目标数据块包含至少两个数据行;
划分所述目标数据块为运作部分和暂存部分;
对所述运作部分执行数据导出操作,并判断所述运作部分的数据是否导出成功;
若所述运作部分的数据导出失败,则获取所述运作部分的第二上界和第二下界,并计算所述第二上界和所述第二下界的第二中值,将所述第二上界至所述第二中值划分为第一部分,以及将所述第二中值至所述第二下界划分为第二部分,以将所述第一部分更新为所述运作部分以及通过所述第二部分更新所述暂存部分。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述运作部分的数据导出成功,则将所述暂存部分更新为所述运作部分,以对更新后的运作部分执行数据导出操作。
3.根据权利要求1所述的方法,其特征在于,划分所述目标数据块为运作部分和暂存部分,包括:
获取所述目标数据块的第一上界和第一下界,并计算所述第一上界和所述第一下界的第一中值;
将所述第一上界至所述第一中值划分为运作部分,以及将所述第一中值至所述第一下界划分为所述运作部分。
4.根据权利要求1所述的方法,其特征在于,将所述第一部分更新为所述运作部分以及通过所述第二部分更新所述暂存部分,包括:
将所述第一部分更新为所述运作部分,以对更新后的运作部分执行数据导出操作;
将所述第二部分和所述暂存部分作为更新后的暂存部分。
5.根据权利要求1所述的方法,其特征在于,在划分所述运作部分为第一部分和第二部分之前,所述方法还包括:
确定所述运作部分包含至少两个数据行;
若所述运作部分仅包含一个数据行,则舍弃所述运作部分。
6.一种数据库中导出数据的装置,其特征在于,所述装置包括:
目标数据块确定单元,被配置为:在数据库中选取目标列作为分片键,根据预设的输出数据块的并发度,将所述分片键划分为多个子分片键,将每个所述子分片键对应的数据行作为一个待输出的数据块,以采用多线程并行执行数据导出,并将任意一个坏块确定为待输出的目标数据块,所述目标数据块包含至少两个数据行;
第一划分单元,被配置为:划分所述目标数据块为运作部分和暂存部分;
导出判断单元,被配置为:对所述运作部分执行数据导出操作,并判断所述运作部分的数据是否导出成功;
第二划分单元,被配置为:若所述运作部分的数据导出失败,则获取所述运作部分的第二上界和第二下界,并计算所述第二上界和所述第二下界的第二中值,将所述第二上界至所述第二中值划分为第一部分,以及将所述第二中值至所述第二下界划分为第二部分,以将所述第一部分更新为所述运作部分以及通过所述第二部分更新所述暂存部分。
7.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1至5中任意一项所述的数据库中导出数据的方法。
8.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至5中任意一项所述的数据库中导出数据的方法。
CN201911394068.1A 2019-12-30 2019-12-30 数据库中导出数据的方法及装置、介质和设备 Active CN113127238B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911394068.1A CN113127238B (zh) 2019-12-30 2019-12-30 数据库中导出数据的方法及装置、介质和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911394068.1A CN113127238B (zh) 2019-12-30 2019-12-30 数据库中导出数据的方法及装置、介质和设备

Publications (2)

Publication Number Publication Date
CN113127238A CN113127238A (zh) 2021-07-16
CN113127238B true CN113127238B (zh) 2024-02-09

Family

ID=76768047

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911394068.1A Active CN113127238B (zh) 2019-12-30 2019-12-30 数据库中导出数据的方法及装置、介质和设备

Country Status (1)

Country Link
CN (1) CN113127238B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150000358A (ko) * 2013-06-24 2015-01-02 삼성전자주식회사 메모리 시스템 및 이의 독출 방법
CN107992268A (zh) * 2017-11-24 2018-05-04 郑州云海信息技术有限公司 一种坏块标记的方法及相关装置
CN108304330A (zh) * 2018-02-26 2018-07-20 腾讯科技(深圳)有限公司 内容提取方法、装置和计算机设备
CN108536389A (zh) * 2017-03-06 2018-09-14 北京兆易创新科技股份有限公司 基于nand闪存的列替换方法、装置和nand存储设备
CN109445977A (zh) * 2018-11-01 2019-03-08 新疆凯力智慧电子科技有限公司 一种硬盘坏块信息的获取方法及装置
CN109582488A (zh) * 2018-12-03 2019-04-05 郑州云海信息技术有限公司 一种固态硬盘的错误预防方法及相关装置
CN110363826A (zh) * 2019-07-16 2019-10-22 上海联影医疗科技有限公司 医学图像重建方法、装置、系统及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110002169A1 (en) * 2009-07-06 2011-01-06 Yan Li Bad Column Management with Bit Information in Non-Volatile Memory Systems
US10037329B2 (en) * 2015-11-18 2018-07-31 American Express Travel Related Services Company, Inc. System and method for automatically capturing and recording lineage data for big data records

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150000358A (ko) * 2013-06-24 2015-01-02 삼성전자주식회사 메모리 시스템 및 이의 독출 방법
CN108536389A (zh) * 2017-03-06 2018-09-14 北京兆易创新科技股份有限公司 基于nand闪存的列替换方法、装置和nand存储设备
CN107992268A (zh) * 2017-11-24 2018-05-04 郑州云海信息技术有限公司 一种坏块标记的方法及相关装置
CN108304330A (zh) * 2018-02-26 2018-07-20 腾讯科技(深圳)有限公司 内容提取方法、装置和计算机设备
CN109445977A (zh) * 2018-11-01 2019-03-08 新疆凯力智慧电子科技有限公司 一种硬盘坏块信息的获取方法及装置
CN109582488A (zh) * 2018-12-03 2019-04-05 郑州云海信息技术有限公司 一种固态硬盘的错误预防方法及相关装置
CN110363826A (zh) * 2019-07-16 2019-10-22 上海联影医疗科技有限公司 医学图像重建方法、装置、系统及存储介质

Also Published As

Publication number Publication date
CN113127238A (zh) 2021-07-16

Similar Documents

Publication Publication Date Title
CN110502519B (zh) 一种数据聚合的方法、装置、设备及存储介质
US10387389B2 (en) Data de-duplication
CN109471851B (zh) 数据处理方法、装置、服务器和存储介质
CN111709527A (zh) 运维知识图谱库的建立方法、装置、设备及存储介质
CN111247518A (zh) 数据库分片
US11074146B2 (en) Method, device and computer program product for managing redundant arrays of independent drives
CN107733894B (zh) 逻辑接口报文的比对方法、系统、设备及存储介质
US20110235909A1 (en) Analyzing documents using stored templates
US10169053B2 (en) Loading a web page
CN110555150B (zh) 一种数据监控方法、装置、设备和存储介质
CN107016115B (zh) 数据导出方法、装置、计算机可读存储介质及电子设备
US10235401B2 (en) Method and system for handling binary large objects
US20150378835A1 (en) Managing data storage system
CN110413413A (zh) 一种数据写入方法、装置、设备及存储介质
CN111177143A (zh) 键值数据存储方法、装置、存储介质与电子设备
US8855938B2 (en) Minimization of surprisal data through application of hierarchy of reference genomes
CN109614411B (zh) 数据存储方法、设备和存储介质
CN113127238B (zh) 数据库中导出数据的方法及装置、介质和设备
US10761940B2 (en) Method, device and program product for reducing data recovery time of storage system
CN114547086A (zh) 数据处理方法、装置、设备及计算机可读存储介质
CN109918231B (zh) 数据重整的异常修复方法、装置、设备和存储介质
US11144518B2 (en) Detecting data mapping relationship within database system and optimizing data operation
CN114201729A (zh) 一种矩阵运算方式的选择方法、装置、设备以及存储介质
CN110750268A (zh) 文件清理方法、装置、计算机可读存储介质及电子设备
US11940975B2 (en) Database distribution to avoid contention

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