CN110471994A - 复制数据的方法、装置、存储介质及电子设备 - Google Patents

复制数据的方法、装置、存储介质及电子设备 Download PDF

Info

Publication number
CN110471994A
CN110471994A CN201910662372.3A CN201910662372A CN110471994A CN 110471994 A CN110471994 A CN 110471994A CN 201910662372 A CN201910662372 A CN 201910662372A CN 110471994 A CN110471994 A CN 110471994A
Authority
CN
China
Prior art keywords
data
tables
directed acyclic
node
acyclic graph
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
CN201910662372.3A
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.)
Beijing Sankuai Online Technology Co Ltd
Original Assignee
Beijing Sankuai Online 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 Sankuai Online Technology Co Ltd filed Critical Beijing Sankuai Online Technology Co Ltd
Priority to CN201910662372.3A priority Critical patent/CN110471994A/zh
Publication of CN110471994A publication Critical patent/CN110471994A/zh
Pending legal-status Critical Current

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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • 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

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)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开涉及一种复制数据的方法、装置、存储介质及电子设备,可以获取关系数据库对应的有向无环图,所述有向无环图用于表示所述关系数据库中多个数据表之间的层级关系;获取用户在多个所述数据表中选择的起始数据表;若根据所述有向无环图确定存在待复制的下级数据表,按照目标数据表在所述有向无环图中的所述层级关系,复制所述目标数据表中的数据;所述目标数据表包括所述起始数据表和所述下级数据表;所述下级数据表包括目标节点在所述有向无环图中的下级节点对应的数据表,所述目标节点为所述起始数据表在所述有向无环图中对应的节点。

Description

复制数据的方法、装置、存储介质及电子设备
技术领域
本公开涉及关系数据库的数据复制领域,具体地,涉及一种复制数据的方法、装置、存储介质及电子设备。
背景技术
关系数据库,是建立在关系模型基础上的数据库,现实世界中的各种实体以及实体之间的各种联系均可用关系模型来表示,在针对关系数据库做数据复制操作时,如果希望继续保留表与表之间的关系,却又不影响复制目标表及相关表的内容,需要把目标表及相关表的所有内容复制一遍,同时把复制后相关的主键、外键值修改为新的值。
相关技术中,在对关系数据库进行数据复制时,需要人工通过查询关系数据库中数据表的数据字典来确定各个数据表的层级关系,然后依据该层级关系人工复制该关系数据库中的数据,同时需要手动将上级数据表的主键值添加到下级数据表的外键中,这种做法不仅费时费力,并且会随着字段数、层级的增加容易出现复制错误,从而影响数据复制的效率。
发明内容
本公开的目的是提供一种复制数据的方法、装置、存储介质及电子设备。
第一方面,提供一种复制数据的方法,所述方法包括:获取关系数据库对应的有向无环图,所述关系数据库包括多个数据表,所述有向无环图包括多个节点,每个节点与所述关系数据库中的每个所述数据表一一对应,所述有向无环图用于表示多个所述数据表之间的层级关系,所述层级关系包括上级节点指向下级节点的指向关系;获取用户在多个所述数据表中选择的起始数据表;若根据所述有向无环图确定存在待复制的下级数据表,按照目标数据表在所述有向无环图中的所述层级关系,复制所述目标数据表中的数据;所述目标数据表包括所述起始数据表和所述下级数据表;所述下级数据表包括目标节点在所述有向无环图中的下级节点对应的数据表,所述目标节点为所述起始数据表在所述有向无环图中对应的节点。
可选地,所述按照目标数据表在所述有向无环图中的所述层级关系,复制所述目标数据表中的数据包括:复制所述起始数据表中的数据,以得到复制后的第一新数据;循环执行复制数据的步骤,直至将所述下级数据表中的数据复制完成;所述复制数据的步骤包括:建立主键对应关系,所述主键对应关系为所述起始数据表的主键值与根据所述第一新数据生成的新的主键值的对应关系;从所述下级数据表中确定所述起始数据表的下一级数据表;根据所述主键对应关系复制所述下一级数据表中的数据,以得到复制后的第二新数据;将所述下一级数据表,作为更新后的起始数据表,并将所述第二新数据作为更新后的第一新数据。
可选地,在所述按照目标数据表在所述有向无环图中的所述层级关系,复制所述目标数据表中的数据之前,所述方法还包括:确定所述有向无环图中是否存在冗余路径,所述冗余路径为与所述有向无环图中目标路径的起始节点和终止节点相同,并且仅包括所述起始节点和所述终止节点两个节点的路径,所述目标路径为所述有向无环图中的任一路径;若确定所述有向无环图中存在所述冗余路径,删除所述冗余路径。
可选地,所述获取关系数据库对应的有向无环图包括:获取所述关系数据库的外键配置信息和多个所述数据表中每个数据表的字段;所述外键配置信息用于记录关联字段和所述关联字段对应的相关数据表,所述关联字段用于表征所述相关数据表和所述关系数据库中除所述相关数据表外的其他数据表的关联关系;根据所述外键配置信息和每个数据表的字段生成所述有向无环图。
可选地,所述根据所述外键配置信息和每个数据表的字段生成所述有向无环图包括:根据多个所述数据表生成多个所述节点;确定所述外键配置信息中记录的所述关联字段是否包含待确定数据表的目标字段,所述待确定数据表为多个所述数据表的任一数据表,所述目标字段为所述待确定数据表的多个字段中的任一字段;若所述外键配置信息中记录的关联字段包含所述目标字段,确定所述目标字段在所述外键配置信息中对应的相关数据表为目标相关数据表;根据所述待确定数据表和所述目标相关数据表,以及多个所述节点生成所述有向无环图。
可选地,所述根据所述待确定数据表和所述目标相关数据表,以及多个所述节点生成所述有向无环图包括:将所述目标相关数据表对应的节点作为所述上级节点,将所述待确定数据表对应的节点作为所述下级节点,并按照所述上级节点指向所述下级节点的指向关系,生成所述有向无环图。
可选地,在所述获取关系数据库对应的有向无环图后,所述方法还包括:展示所述有向无环图。
第二方面,提供一种复制数据的装置,所述装置包括:第一获取模块,用于获取关系数据库对应的有向无环图,所述关系数据库包括多个数据表,所述有向无环图包括多个节点,每个节点与所述关系数据库中的每个所述数据表一一对应,所述有向无环图用于表示多个所述数据表之间的层级关系,所述层级关系包括上级节点指向下级节点的指向关系;第二获取模块,用于获取用户在多个所述数据表中选择的起始数据表;数据复制模块,用于若根据所述有向无环图确定存在待复制的下级数据表,按照目标数据表在所述有向无环图中的所述层级关系,复制所述目标数据表中的数据;所述目标数据表包括所述起始数据表和所述下级数据表;所述下级数据表包括目标节点在所述有向无环图中的下级节点对应的数据表,所述目标节点为所述起始数据表在所述有向无环图中对应的节点。
第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本公开第一方面所述方法的步骤。
第四方面,提供一种电子设备,包括:存储器,其上存储有计算机程序;处理器,用于执行所述存储器中的所述计算机程序,以实现本公开第一方面所述方法的步骤。
通过上述技术方案,获取关系数据库对应的有向无环图,所述关系数据库包括多个数据表,所述有向无环图包括多个节点,每个节点与所述关系数据库中的每个所述数据表一一对应,所述有向无环图用于表示多个所述数据表之间的层级关系,所述层级关系包括上级节点指向下级节点的指向关系;获取用户在多个所述数据表中选择的起始数据表;若根据所述有向无环图确定存在待复制的下级数据表,按照目标数据表在所述有向无环图中的所述层级关系,复制所述目标数据表中的数据;所述目标数据表包括所述起始数据表和所述下级数据表;所述下级数据表包括目标节点在所述有向无环图中的下级节点对应的数据表,所述目标节点为所述起始数据表在所述有向无环图中对应的节点,这样,可以根据有向无环图自动识别出关系数据库中各数据表的层级关系,无需人工查找该层级关系,从而可以根据该层级关系自动完成数据复制,提高复制效率。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1是根据一示例性实施例示出的第一种复制数据的方法的流程图;
图2是根据一示例性实施例示出的一种有向无环图的结构示意图;
图3是根据一示例性实施例示出的第二种复制数据的方法的流程图;
图4是根据一示例性实施例示出的一种对有向无环图进行剪枝优化的示意图;
图5是根据一示例性实施例示出的第三种复制数据的方法的流程图;
图6是根据一示例性实施例示出的一种复制数据的装置的框图;
图7是根据一示例性实施例示出的一种电子设备的结构框图。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
本公开主要应用于对关系数据库中的数据进行数据复制的场景中,为提高数据复制的效率,本公开提供一种复制数据的方法、装置、存储介质及电子设备,首先可以根据该关系数据库中的多个数据表,以及用于表征数据表之间关联关系的该关系数据库的外键配置信息生成有向无环图,以便通过该有向无环图表示该关系数据库中多个数据表之间的层级关系,之后,可以获取用户选择的起始数据表,这样,可以根据该起始数据表,按照目标数据表在该有向无环图中的该层级关系,复制该目标数据表中的数据,其中,该目标数据表为包括该起始数据表和该起始数据表的下级数据表,也就是说,本公开可以根据有向无环图自动识别出关系数据库中各数据表的层级关系,无需人工查找该层级关系,从而可以根据该层级关系自动完成数据复制,提高复制效率。
图1是根据一示例性实施例示出的一种复制数据的方法的流程图,如图1所示,该方法包括以下步骤:
在步骤101中,获取关系数据库对应的有向无环图,该关系数据库包括多个数据表,该有向无环图包括多个节点,每个节点与该关系数据库中的每个该数据表一一对应,该有向无环图用于表示多个该数据表之间的层级关系,该层级关系包括上级节点指向下级节点的指向关系。
在图论中,若一个有向图无法从某个顶点出发经过若干条边回到该点,则这个图是一个有向无环图,图2是根据一示例性实施例示出的一种关系数据库的有向无环图的结构示意图,如图2所示,该有向无环图分别以该关系数据库中的数据表:”page”、”analysis_theme_info”、”physical_model_page”、
”analysis_theme_dim”、”analysis_theme_dim_matrix_relation”、”analysis_theme_derived_index”、”filter_dim_hierarchy”、”derived_index_dsl_config”、”reference_value”、”derived_index_extra_config”、”reference_extend_dim_config”、”filter_dim_supplementary”、”filter_dim_map”、”filter_dim_modification”为节点,每个节点各对应一个数据表,如图2所示,若以该page节点为上级节点,该page节点指向的下级节点为analysis_theme_info节点、physical_model_page节点以及filter_dim_hierarchy节点,若以该analysis_theme_info节点为上级节点,该analysis_theme_info节点指向的下级节点为analysis_theme_dim节点、analysis_theme_dim_matrix_relation节点、analysis_theme_derived_index节点、reference_extend_dim_config节点、derived_index_dsl_config节点以及reference_value节点,该层级关系即为上级节点指向下级节点的指向关系,此处仅是举例说明,本公开对此不作限定。
在步骤102中,获取用户在多个该数据表中选择的起始数据表。
在实际应用场景中,用户可以根据自己数据复制的需求在该关系数据库的多个数据表中选择一个该起始数据表,这样,复制数据的终端可以根据用户的选择确定该起始数据表。
在步骤103中,若根据该有向无环图确定存在待复制的下级数据表,按照目标数据表在该有向无环图中的该层级关系,复制该目标数据表中的数据。
其中,该目标数据表包括该起始数据表和该下级数据表;该下级数据表包括目标节点在该有向无环图中的下级节点对应的数据表,该目标节点为该起始数据表在该有向无环图中对应的节点,例如,如图2所示,假设该起始数据表为”analysis_theme_info”表,在图2中”analysis_theme_info”表对应的节点即为该目标节点,此时,该目标节点在图2所示的有向无环图中的下级节点包括”analysis_theme_dim”表对应的节点、”analysis_theme_dim_matrix_relation”表对应的节点、”analysis_theme_derived_index”表对应的节点、”derived_index_dsl_config”表对应的节点、”reference_value”表对应的节点、”derived_index_extra_config”表对应的节点以及”reference_extend_dim_config”表对应的节点,该下级数据表即为上述列举的下级节点对应的数据表,上述仅是举例说明,本公开对此不作限定。
采用上述方法,可以根据有向无环图自动识别出关系数据库中各数据表的层级关系,无需人工查找该层级关系,从而可以根据该层级关系自动完成数据复制,提高复制效率。
图3是根据一示例性实施例示出的一种复制数据的方法的流程图,在本实施例中,可以通过执行步骤301至步骤304生成该关系数据库的有向无环图,其中,该有向无环图包括多个节点,每个节点与该关系数据库中的每个数据表一一对应,并且该有向无环图用于表示多个该数据表之间的层级关系,该层级关系包括上级节点指向下级节点的指向关系,然后通过执行步骤305对该有向无环图进行剪枝优化,最后通过执行步骤306至步骤308复制该关系数据库中的数据,如图3所示,该方法包括以下步骤:
在步骤301中,获取关系数据库的外键配置信息和多个数据表中每个数据表的字段。
其中,该外键配置信息用于记录关联字段和该关联字段对应的相关数据表,该关联字段用于表征该相关数据表和该关系数据库中除该相关数据表外的其他数据表的关联关系。
在一种可能的实现方式中,该关系数据库的外键配置信息可以“关联字段”:“相关数据表”的形式进行记录,例如,该关系数据库的部分外键配置信息可以为:
“page_id”:“page”;
“index_id”:index_matrix”;
“dim_id”:“dim_matrix”;
“root_dim_id”:“dim_matrix”;
“drill_id”:“drill_dim_hierarchy”;
“hierarchy_id”:“filter_dim_hierarchy”;
“analysis_theme_id”:“analysis_theme_info”;
“derived_index_id”:“analysis_theme_derived_index”
这样,以“page_id”:“page”这其中一条外键配置信息为例,“page_id”即为该关联字段,“page”即为与关联字段“page_id”对应的该相关数据表,假设关联数据库中的其中一个数据表A中的字段包括“page_id”字段,则数据表A即为与数据表“page”存在关联关系的数据表,此处仅是举例说明,本公开对此不作限定。
另外,在本步骤中,在获取该关系数据库中多个数据表中每个数据表的字段的过程中,可以通过查询该关系数据库的元数据信息确定每个数据表中包括的字段。
在步骤302中,根据多个该数据表生成多个该节点。
在本步骤中,可以将每个该数据表作为待生成的有向无环图的其中一个节点。
在步骤303中,若确定该外键配置信息中记录的该关联字段包含待确定数据表的目标字段,确定该目标字段在该外键配置信息中对应的相关数据表为目标相关数据表。
其中,该待确定数据表为多个该数据表的任一数据表,该目标字段为该待确定数据表的多个字段中的任一字段。
示例地,以步骤301中列出的部分外键配置信息为例,该外键配置信息中记录的该关联字段包括以下多个字段:“page_id”、“index_id”、“dim_id”、“root_dim_id”、“drill_id”、“hierarchy_id”、“analysis_theme_id”、“derived_index_id”,假设该待确定数据表为数据表B,通过查询该关系数据库的元数据信息可以确定数据表B的其中一个目标字段为“page_id”,而该外键配置信息中记录的上述多个关联字段中包括该目标字段“page_id”,并且在该外键配置信息中,该目标字段“page_id”对应的该相关数据表为“page”表,因此,与该目标字段“page_id”所在的数据表B存在关联关系的该目标相关数据表即为“page”表,上述示例仅是举例说明,本公开对此不作限定。
在步骤304中,将该目标相关数据表对应的节点作为该上级节点,将该待确定数据表对应的节点作为该下级节点,并按照该上级节点指向该下级节点的指向关系,生成该有向无环图。
继续以步骤303中的示例为例,在执行步骤303后,可以确定该目标相关数据表为“page”表,该待确定数据表为数据表B,这样,在本步骤中,可以将“page”表对应的节点作为上级节点,将数据表B对应的节点作为下级节点,并从该上级节点指向下级节点,例如,该数据表B可以为“physical_model_page”表,这样,如图2所示,可以从“page”表所在的节点指向“physical_model_page”表所在的节点,图2所示的有向无换图中的其它节点的指向关系同样可以按照上述方法进行确定,在此不再一一举例,这样,可以确定出该关系数据库中每个数据表之间的层级关系,从而可以生成该有向无环图,上述示例也仅是举例说明,本公开对此不作限定。
需要说明的是,在生成该有向无环图后,为便于用户可以更直观地查看该关系数据库中多个数据表之间的层级关系,可以向用户展示该有向无环图,这样,用户可以通过查看该有向无环图即可清楚、便捷地获知各数据表的层级关系,无需再通过查询数据字典的方式确定各数据表的层级关系,从而提高用户体验。
另外,在执行步骤301至步骤304后即可生成该关系数据库的有向无环图,需要说明的是,由于在有向无环图中可能存在“越级关联”和“重复关联”的情况,例如,若有向无环图中的A节点和C节点之间存在两条有向路径,其中一条路径为A节点指向B节点,且B节点指向C节点,另一条路径为A节点直接指向C节点,则A节点直接指向C节点的关联关系即为该越级关联,此时,为避免在复制数据时的冗余复制,进一步提高复制数据的效率,在一种可能的实现方式中,可以对该有向无环图进行剪枝优化,例如,可以将A节点直接指向C节点的路径视为越级关联的冗余路径删除掉,在本实施例中,可以通过执行步骤305对该有向无环图进行剪枝优化。
在步骤305中,若确定该有向无环图中存在冗余路径,删除该冗余路径。
其中,该冗余路径为与该有向无环图中目标路径的起始节点和终止节点相同,并且仅包括该起始节点和该终止节点两个节点的路径,该目标路径为该有向无环图中的任一路径。
示例地,以图2中”page”表所在的节点为该起始节点,”filter_dim_map”表所在的节点的该终止节点为例进行说明,该目标路径即为”page”表所在的节点和”filter_dim_map”表所在的节点之间的任一路径,如图2所示,”page”表所在的节点和”filter_dim_map”表所在的节点两个节点之间存在两条路径,第一条路径为”page”表所在的节点指向”filter_dim_hierarchy”表所在的节点,并且”filter_dim_hierarchy”表所在的节点指向”filter_dim_map”表所在的节点;第二条路径为”page”表所在的节点直接指向”filter_dim_map”表所在的节点,在这两条路径中,该第二条路径为与该目标路径的起始节点(”page”表所在的节点)和终止节点(”filter_dim_map”表所在的节点)相同,并且仅包括该起始节点和该终止节点两个节点的路径,因此,该第二条路径即为该有向无环图中的其中一条冗余路径,并且该第二条路径为“越级关联”的路径;
另外,以图2中”filter_dim_hierarchy”表所在的节点为该起始节点,”filter_dim_map”表所在的节点的该终止节点为例进行说明,如图2所示,”filter_dim_hierarchy”表所在的节点和”filter_dim_map”表所在的节点两个节点之间也存在两条路径,并且为两天重复的路径,这两条路径均是”filter_dim_hierarchy”表所在的节点指向”filter_dim_map”表所在的节点,这样,可以将上述两条重复路劲中的任一路径确定为该冗余路径,上述示例仅是举例说明,本公开对此不作限定。
图4是对图2所示的有向无环图进行剪枝优化的示意图,如图4所示,图中画×号的路径即为该冗余路径。
这样,在对该有向无环图进行剪枝优化后,可以通过执行下述步骤,按照目标数据表在优化后的有向无环图中的层级关系,复制该目标数据表中的数据。
其中,该目标数据表包括起始数据表和下级数据表,该下级数据表包括目标节点在该有向无环图中的下级节点对应的数据表,该目标节点为该起始数据表在该有向无环图中对应的节点,例如,如图4所示,假设该起始数据表为”analysis_theme_info”表,在图4中“analysis_theme_info”表对应的节点即为该目标节点,此时,该目标节点在图4所示的有向无环图中的下级节点包括“analysis_theme_dim”表对应的节点、“analysis_theme_dim_matrix_relation”表对应的节点、”analysis_theme_derived_index”表对应的节点、”derived_index_dsl_config”表对应的节点、”reference_value”表对应的节点、”derived_index_extra_config”表对应的节点以及”reference_extend_dim_config”表对应的节点,该下级数据表即为上述列举的下级节点对应的数据表,上述仅是举例说明,本公开对此不作限定。
在步骤306中,获取用户在多个该数据表中选择的起始数据表。
在实际应用场景中,用户可以根据自己数据复制的需求在该关系数据库的多个数据表中选择一个该起始数据表,这样,复制数据的终端可以根据用户的选择确定该起始数据表。
在步骤307中,复制该起始数据表中的数据,以得到复制后的第一新数据。
在本步骤中,可以基于现有的数据复制方法复制该起始数据表中的数据,从而可以得到复制后的该第一新数据。
在步骤308中,循环执行复制数据的步骤,直至将该下级数据表中的数据复制完成。
如图5所示,该复制数据的步骤可以包括以下步骤:
在步骤3081中,建立主键对应关系,该主键对应关系为该起始数据表的主键值与根据该第一新数据生成的新的主键值的对应关系。
由于关系数据库每个数据表都有一个主键值,在复制某个数据表,得到复制后的新数据后,新数据会生成一个新的主键值,因此,该起始数据表有一个主键值,在复制该起始数据表后,得到的该第一新数据也会生成一个新的主键值。
在步骤3082中,从该下级数据表中确定该起始数据表的下一级数据表。
在本步骤中,可以根据该有向无环图表示的各数据表的层级关系,确定该起始数据表的该下一级数据表,该下一级数据表通常是指该有向无环图中,该起始数据表所在的节点直接指向的下一级节点对应的数据表。
示例地,以图4所示的有向无环图为例,假设该起始数据表为“page”表,从图4所示的节点之间的指向关系可以确定,“page”表在图4中所在的节点直接指向的下级节点有“analysis_theme_info”表所在的节点、“physical_model_page”表所在的节点以及“filter_dim_hierarchy”表所在的节点,因此,该起始数据表“page”表的下一级数据表为“analysis_theme_info”表、“physical_model_page”表以及“filter_dim_hierarchy”表,上述示例仅是举例说明,本公开对此不作限定。
在步骤3083中,根据该主键对应关系复制该下一级数据表中的数据,以得到复制后的第二新数据。
在关系数据库中,该起始数据表的主键值与该起始数据表的下一级数据的外键值相等,当复制完该起始数据表中的数据后,得到的复制后的该第一新数据也会生成一个新的主键值(该新的主键值与该起始数据表的主键值不同),因此在复制该起始数据表的下一级数据表中的数据之前,需要根据上述主键对应关系将该下一级数据表旧的外键值(与该起始数据表的主键值相等)替换为新的外键值(与该第一新数据生成的新的主键值相等),这样可以保证复制数据表结构的一致性,因此,需要根据该主键对应关系复制该下一级数据表中的数据。
示例地,如步骤3082中的示例所述,该起始数据表为“page”表,该起始数据表“page”表的下一级数据表为“analysis_theme_info”表、“physical_model_page”表以及“filter_dim_hierarchy”表,下面以复制上述三个下一级数据表中其中一个数据表“analysis_theme_info”表中的数据为例进行说明,由于该下一级数据表的外键值等于该起始数据表的主键值,在复制完该起始数据表“page”表中的数据后,得到的复制后的该第一新数据会生成一个新的主键值,此时,为保证复制数据表结构的一致性,在复制下一级数据表“analysis_theme_info”表中的数据之前,需要根据该起始数据表“page”表的主键值与该第一新数据生成的新的主键值的对应关系,将下一级数据表“analysis_theme_info”表旧的外键值替换为新的外键值(该新的外键值等于该第一新数据生成的新的主键值),然后复制外键值替换后的“analysis_theme_info”表中的数据,得到复制后的该第二新数据,上述示例仅是举例说明,本公开对此不作限定。
需要说明的是,在复制该下一级数据表中的数据的过程中,若确定该下一级数据表不存在与之关联的再下一级的数据表,可以批量复制该下一级数据表中的数据,从而可以进一步提高数据的复制效率,例如,如图4所示,数据表“analysis_theme_derived_index”的下一级数据表为:
”derived_index_dsl_config”表、”reference_value”表、
”derived_index_extra_config”表以及”reference_extend_dim_config”表四个数据表,由图4所示的层级关系可以确定,该四个下级数据表均不存在与之关联的再下一级的数据表,因此,可以对上述四个数据表中的数据批量复制,无需单条复制,以此提高复制效率,此处仅是举例说明,本公开对此不作限定。
另外,由于用户指定的起始数据表通常为待复制的目标数据表中最上级的数据表,起始数据表不存在上级数据表,也就不需要依赖主键对应关系进行复制,直接按照现有的数据复制方法复制即可。
在步骤3084中,将该下一级数据表,作为更新后的起始数据表,并将该第二新数据作为更新后的第一新数据。
这样,通过循环执行步骤3081至步骤3084即可将该下级数据表中的数据复制完成。
采用上述方法,可以根据有向无环图自动识别出关系数据库中各数据表的层级关系,无需人工查找该层级关系,从而可以根据该层级关系自动完成数据复制,提高复制效率。
图6是根据一示例性实施例示出的一种复制数据的装置的框图,如图4所示,该装置包括:
第一获取模块601,用于获取关系数据库对应的有向无环图,该关系数据库包括多个数据表,该有向无环图包括多个节点,每个节点与该关系数据库中的每个该数据表一一对应,该有向无环图用于表示多个该数据表之间的层级关系,该层级关系包括上级节点指向下级节点的指向关系;
第二获取模块602,用于获取用户在多个该数据表中选择的起始数据表;
数据复制模块603,用于若根据该有向无环图确定存在待复制的下级数据表,按照目标数据表在该有向无环图中的该层级关系,复制该目标数据表中的数据;该目标数据表包括该起始数据表和该下级数据表;该下级数据表包括目标节点在该有向无环图中的下级节点对应的数据表,该目标节点为该起始数据表在该有向无环图中对应的节点。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
采用上述装置,可以根据有向无环图自动识别出关系数据库中各数据表的层级关系,无需人工查找该层级关系,从而可以根据该层级关系自动完成数据复制,提高复制效率。
图7是根据一示例性实施例示出的一种电子设备700的框图。如图7所示,该电子设备700可以包括:处理器701,存储器702。该电子设备700还可以包括多媒体组件703,输入/输出(I/O)接口704,以及通信组件705中的一者或多者。
其中,处理器701用于控制该电子设备700的整体操作,以完成上述的复制数据的方法中的全部或部分步骤。存储器702用于存储各种类型的数据以支持在该电子设备700的操作,这些数据例如可以包括用于在该电子设备700上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器702可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件703可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器702或通过通信组件705发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口704为处理器701和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件705用于该电子设备700与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near FieldCommunication,简称NFC),2G、3G、4G、NB-IOT、eMTC、或其他5G等等,或它们中的一种或几种的组合,在此不做限定。因此相应的该通信组件705可以包括:Wi-Fi模块,蓝牙模块,NFC模块等等。
在一示例性实施例中,电子设备700可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的复制数据方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的复制数据方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器702,上述程序指令可由电子设备700的处理器701执行以完成上述的复制数据方法。
在另一示例性实施例中,还提供一种计算机程序产品,该计算机程序产品包含能够由可编程的装置执行的计算机程序,该计算机程序具有当由该可编程的装置执行时用于执行上述的复制数据方法的代码部分。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。

Claims (10)

1.一种复制数据的方法,其特征在于,所述方法包括:
获取关系数据库对应的有向无环图,所述关系数据库包括多个数据表,所述有向无环图包括多个节点,每个节点与所述关系数据库中的每个所述数据表一一对应,所述有向无环图用于表示多个所述数据表之间的层级关系,所述层级关系包括上级节点指向下级节点的指向关系;
获取用户在多个所述数据表中选择的起始数据表;
若根据所述有向无环图确定存在待复制的下级数据表,按照目标数据表在所述有向无环图中的所述层级关系,复制所述目标数据表中的数据;所述目标数据表包括所述起始数据表和所述下级数据表;所述下级数据表包括目标节点在所述有向无环图中的下级节点对应的数据表,所述目标节点为所述起始数据表在所述有向无环图中对应的节点。
2.根据权利要求1所述的方法,其特征在于,所述按照目标数据表在所述有向无环图中的所述层级关系,复制所述目标数据表中的数据包括:
复制所述起始数据表中的数据,以得到复制后的第一新数据;
循环执行复制数据的步骤,直至将所述下级数据表中的数据复制完成;
所述复制数据的步骤包括:
建立主键对应关系,所述主键对应关系为所述起始数据表的主键值与根据所述第一新数据生成的新的主键值的对应关系;
从所述下级数据表中确定所述起始数据表的下一级数据表;
根据所述主键对应关系复制所述下一级数据表中的数据,以得到复制后的第二新数据;
将所述下一级数据表,作为更新后的起始数据表,并将所述第二新数据作为更新后的第一新数据。
3.根据权利要求1或2所述的方法,其特征在于,在所述按照目标数据表在所述有向无环图中的所述层级关系,复制所述目标数据表中的数据之前,所述方法还包括:
确定所述有向无环图中是否存在冗余路径,所述冗余路径为与所述有向无环图中目标路径的起始节点和终止节点相同,并且仅包括所述起始节点和所述终止节点两个节点的路径,所述目标路径为所述有向无环图中的任一路径;
若确定所述有向无环图中存在所述冗余路径,删除所述冗余路径。
4.根据权利要求1所述的方法,其特征在于,所述获取关系数据库对应的有向无环图包括:
获取所述关系数据库的外键配置信息和多个所述数据表中每个数据表的字段;所述外键配置信息用于记录关联字段和所述关联字段对应的相关数据表,所述关联字段用于表征所述相关数据表和所述关系数据库中除所述相关数据表外的其他数据表的关联关系;
根据所述外键配置信息和每个数据表的字段生成所述有向无环图。
5.根据权利要求4所述的方法,其特征在于,所述根据所述外键配置信息和每个数据表的字段生成所述有向无环图包括:
根据多个所述数据表生成多个所述节点;
确定所述外键配置信息中记录的所述关联字段是否包含待确定数据表的目标字段,所述待确定数据表为多个所述数据表的任一数据表,所述目标字段为所述待确定数据表的多个字段中的任一字段;
若所述外键配置信息中记录的关联字段包含所述目标字段,确定所述目标字段在所述外键配置信息中对应的相关数据表为目标相关数据表;
根据所述待确定数据表和所述目标相关数据表,以及多个所述节点生成所述有向无环图。
6.根据权利要求5所述的方法,其特征在于,所述根据所述待确定数据表和所述目标相关数据表,以及多个所述节点生成所述有向无环图包括:
将所述目标相关数据表对应的节点作为所述上级节点,将所述待确定数据表对应的节点作为所述下级节点,并按照所述上级节点指向所述下级节点的指向关系,生成所述有向无环图。
7.根据权利要求4至6任一项所述的方法,其特征在于,在所述获取关系数据库对应的有向无环图后,所述方法还包括:
展示所述有向无环图。
8.一种复制数据的装置,其特征在于,所述装置包括:
第一获取模块,用于获取关系数据库对应的有向无环图,所述关系数据库包括多个数据表,所述有向无环图包括多个节点,每个节点与所述关系数据库中的每个所述数据表一一对应,所述有向无环图用于表示多个所述数据表之间的层级关系,所述层级关系包括上级节点指向下级节点的指向关系;
第二获取模块,用于获取用户在多个所述数据表中选择的起始数据表;
数据复制模块,用于若根据所述有向无环图确定存在待复制的下级数据表,按照目标数据表在所述有向无环图中的所述层级关系,复制所述目标数据表中的数据;所述目标数据表包括所述起始数据表和所述下级数据表;所述下级数据表包括目标节点在所述有向无环图中的下级节点对应的数据表,所述目标节点为所述起始数据表在所述有向无环图中对应的节点。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-7中任一项所述方法的步骤。
10.一种电子设备,其特征在于,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现权利要求1-7中任一项所述方法的步骤。
CN201910662372.3A 2019-07-22 2019-07-22 复制数据的方法、装置、存储介质及电子设备 Pending CN110471994A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910662372.3A CN110471994A (zh) 2019-07-22 2019-07-22 复制数据的方法、装置、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910662372.3A CN110471994A (zh) 2019-07-22 2019-07-22 复制数据的方法、装置、存储介质及电子设备

Publications (1)

Publication Number Publication Date
CN110471994A true CN110471994A (zh) 2019-11-19

Family

ID=68508251

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910662372.3A Pending CN110471994A (zh) 2019-07-22 2019-07-22 复制数据的方法、装置、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN110471994A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111949662A (zh) * 2020-08-13 2020-11-17 北京字节跳动网络技术有限公司 数据展示方法和装置、存储介质和电子设备
CN113176975A (zh) * 2021-03-30 2021-07-27 东软集团股份有限公司 监控数据的处理方法、装置、存储介质和电子设备
CN113448777A (zh) * 2021-07-08 2021-09-28 京东科技控股股份有限公司 一种数据恢复方法及装置
CN113468186A (zh) * 2021-09-02 2021-10-01 四川大学华西医院 数据表主键关联方法、装置、计算机设备及可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102799570A (zh) * 2012-07-20 2012-11-28 中山大学 一种数据表关联分析方法
US20130332449A1 (en) * 2012-06-06 2013-12-12 Revitas, Inc. Generating data processing code from a directed acyclic graph
CN107609068A (zh) * 2017-08-30 2018-01-19 苏州朗动网络科技有限公司 一种数据无感迁移方法
CN109117429A (zh) * 2017-06-22 2019-01-01 北京嘀嘀无限科技发展有限公司 数据库查询方法、装置和电子设备
CN109635037A (zh) * 2018-11-19 2019-04-16 中山大学 一种关系型分布式数据库的分片存储方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130332449A1 (en) * 2012-06-06 2013-12-12 Revitas, Inc. Generating data processing code from a directed acyclic graph
CN102799570A (zh) * 2012-07-20 2012-11-28 中山大学 一种数据表关联分析方法
CN109117429A (zh) * 2017-06-22 2019-01-01 北京嘀嘀无限科技发展有限公司 数据库查询方法、装置和电子设备
CN107609068A (zh) * 2017-08-30 2018-01-19 苏州朗动网络科技有限公司 一种数据无感迁移方法
CN109635037A (zh) * 2018-11-19 2019-04-16 中山大学 一种关系型分布式数据库的分片存储方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
朱科支: "无冗余数据集成和数据迁移", 《万方数据知识服务平台》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111949662A (zh) * 2020-08-13 2020-11-17 北京字节跳动网络技术有限公司 数据展示方法和装置、存储介质和电子设备
CN113176975A (zh) * 2021-03-30 2021-07-27 东软集团股份有限公司 监控数据的处理方法、装置、存储介质和电子设备
CN113176975B (zh) * 2021-03-30 2023-10-31 东软集团股份有限公司 监控数据的处理方法、装置、存储介质和电子设备
CN113448777A (zh) * 2021-07-08 2021-09-28 京东科技控股股份有限公司 一种数据恢复方法及装置
CN113468186A (zh) * 2021-09-02 2021-10-01 四川大学华西医院 数据表主键关联方法、装置、计算机设备及可读存储介质
CN113468186B (zh) * 2021-09-02 2021-12-21 四川大学华西医院 数据表主键关联方法、装置、计算机设备及可读存储介质

Similar Documents

Publication Publication Date Title
CN110471994A (zh) 复制数据的方法、装置、存储介质及电子设备
US7769719B2 (en) File system dump/restore by node numbering
JP2007213592A (ja) 文字処理装置、方法、プログラムおよび記録媒体
JPH11504451A (ja) データベース構造に適したオブジェクトのモデリング、リレーショナルデータベース構造への翻訳、それらへの流動的なサーチ
WO2019047480A1 (zh) 程序更新方法、计算机可读存储介质、终端设备及装置
CN110515896B (zh) 模型资源管理方法、模型文件制作方法、装置和系统
CN109829145A (zh) 业务表单的绘制方法、装置、存储介质和电子设备
CN110245145A (zh) 关系型数据库到Hadoop数据库的结构同步方法和装置
CN108446398A (zh) 一种数据库的生成方法及装置
AU2017265144A1 (en) Information retrieval
JP2008165432A (ja) クエリ制御プログラム、クエリ制御装置およびクエリ制御方法
CN109871233B (zh) 一种云编程文件管理方法及装置、设备、存储介质
CN110109951B (zh) 一种关联查询的方法、数据库应用系统及服务器
CN107784055A (zh) 基于非关系型数据库的事务处理方法和装置
CN110347643A (zh) 一种磁盘间ntfs卷克隆方法及装置
CN103678349A (zh) 一种垃圾数据过滤方法和装置
CN104636471A (zh) 一种程序代码的查找方法及装置
CN109189467A (zh) 一种分布式环境下软件版本控制方法
CN108255486A (zh) 用于表单设计的视图转换方法、装置和电子设备
CN107357836A (zh) 一种vnf包以及其引用的镜像文件删除方法和设备
JP7279524B2 (ja) データ管理プログラム、データ管理方法およびデータ管理システム
JP6323887B2 (ja) ルートノードを変更するための方法および変更装置
JP2014056307A (ja) テストパス中に複数の参照アクセスをもつテスト用のデータ生成装置及び方法及びプログラム
US11188422B2 (en) Techniques for preserving clone relationships between files
CN105069174A (zh) 一种可配置的a+b模式的记录导航方法

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