CN112800136A - 一种数据选择性级联同步工具及其同步方法 - Google Patents

一种数据选择性级联同步工具及其同步方法 Download PDF

Info

Publication number
CN112800136A
CN112800136A CN202110131925.XA CN202110131925A CN112800136A CN 112800136 A CN112800136 A CN 112800136A CN 202110131925 A CN202110131925 A CN 202110131925A CN 112800136 A CN112800136 A CN 112800136A
Authority
CN
China
Prior art keywords
synchronization
data
user
scripts
sql
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
CN202110131925.XA
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.)
Shanghai Baoqi Information Technology Co ltd
Original Assignee
Shanghai Baoqi Information 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 Shanghai Baoqi Information Technology Co ltd filed Critical Shanghai Baoqi Information Technology Co ltd
Priority to CN202110131925.XA priority Critical patent/CN112800136A/zh
Publication of CN112800136A publication Critical patent/CN112800136A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • 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/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明适用于数据同步技术领域,提供了一种数据选择性级联同步工具及其同步方法,通过设置用户图形界面和DB数据同步引擎,并依次通过初始化基本数据库信息;通过用户图形界面记录用户选择;通过元数据结构检测从属行;为每个选择生成SQL脚本;批量执行所述脚本并将它们提交到数据库,从而实现数据同步,本发明提供了一种合理的方法来选择性地维护数据,并且在具有相同方案的数据库之间采用级联方式。它使选择性的行粒度迁移数据成为可能。

Description

一种数据选择性级联同步工具及其同步方法
技术领域
本发明属于数据同步技术领域,尤其涉及一种数据选择性级联同步工具及其同步方法。
背景技术
项目生命周期中应该存在一个生产环境数据库(DB-Product)和测试环境数据库(DB-Staging)。从业务角度考虑,需要手工将DB Staging中的特定数据而不是整个表数据同步到DB-Product。而数据库方案很复杂,表之间的关系是沿着潜在的深层层次结构组织的。将新数据从DB-Staging迁移到DB-Product 是一项非常危险的工作。随着数据中心的集中化,数据库管理权限将被管制,安全策略将阻止SSIS包、附件或分离等操作的执行。
发明内容
本发明提供一种数据选择性级联同步工具及其同步方法,旨在解决现有技术存在的问题。
本发明是这样实现的,一种数据选择性级联同步工具,包括用户图形界面和DB数据同步引擎;
所述用户图形界面用于供用户选择表中需要同步的表或行;
所述DB数据同步引擎用于:
自动检测表之间的关系并绑定相关行;
根据用户图形界面的选择生成SQL脚本;
逐个执行所述SQL脚本。
一种数据选择性级联同步方法,包括以下步骤:
S1、初始化基本数据库信息;
S2、通过用户图形界面记录用户选择;
S3、通过不同的动作检测从属行;
S4、为每个选择生成SQL脚本;
S5、批量执行所述脚本并将它们提交到数据库。
优选的,所述初始化基本数据库信息,具体为:初始化SQL Server 2005 数据库中有关工具目标的以下信息:
每个表的标识文件名;
每个表的字段列表;
添加和删除表时的同步顺序;
外键和参考键信息;
主键和唯一键信息;
约束信息优先。
优选的,所述通过用户图形界面记录用户选择,具体为:
用户自由地从每个表中选择数据,结果将保存在名为“SynchronizationScirpt”的临时表中;在用户图形界面中,列出了表,用户可以单击“表名”来显示表的内容以及两个数据库之间的区别;
在用户图形界面中,显示有多少行只存在于临时数据库中,并且可以用于其他操作;还显示有多少行是不同的或删除可用的。
优选的,所述通过不同的动作检测从属行中,所述动作包括:
删除;
添加/更新。
优选的,所述生成SQL脚本,具体为:生成保存在表“SynchronizationScirpt”中的SQL脚本。
优选的,所述批量执行所述脚本,具体为:
启动一个线程,在“SynchronizationScirpt”表中提取SQL脚本,然后在一个SQL事务中逐个执行,记录执行结果,并将其标记为高亮显示,以便于日志和分析;如果脚本失败,将在每个脚本之后记录详细的失败消息;
如果所有脚本执行成功,工具将提交并在出现错误时进行回调;
同时需要一个唯一的同步批处理ID来标识当前的同步操作。
与现有技术相比,本发明的有益效果是:本发明的一种数据选择性级联同步工具及其同步方法,通过设置用户图形界面和DB数据同步引擎,并依次通过初始化基本数据库信息;通过用户图形界面记录用户选择;通过元数据结构检测从属行;为每个选择生成SQL脚本;批量执行所述脚本并将它们提交到数据库,从而实现数据同步,本发明提供了一种合理的方法来选择性地维护数据,并且在具有相同方案的数据库之间采用级联方式。它使选择性的行粒度迁移数据成为可能。
附图说明
图1为本发明的一种数据选择性级联同步工具的整体结构示意图。
图2为本发明的由SQL Server 2005生成的依赖关系示意图。
图3为本发明具体实施例的元数据初始化后的依赖关系示意图。
图4为本发明的用户图形界面示意图。
图5为本发明的检测从属行操作界面示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种技术方案:一种数据选择性级联同步工具及其同步方法。如图1所示,同步工具包括用户图形界面和DB数据同步引擎。
所述用户图形界面用于供用户选择表中需要同步的表或行。
所述DB数据同步引擎用于:自动检测表之间的关系并绑定相关行;根据用户图形界面的选择生成SQL脚本;逐个执行所述SQL脚本。
在实施数据同步前,建立一个简单的数据库进行演示。图2中所示的依赖关系图是由SQL Server 2005生成的。
本发明的一种数据选择性级联同步方法,适用于上述同步工具,包括以下步骤:
S1、级联同步要求我们分析表之间的关系,获取表的相关信息,并对其进行合理的组织。
幸运的是,我们可以在SQL Server 2005中使用一些元数据,如下所示:
表syscolumns为每个表和视图中的每一列包含一行,并为数据库中存储过程中的每个参数包含一行。
表sysconstraints包含约束到数据库中拥有约束的对象的映射。
表Sysindexes为当前数据库中的每个索引和表包含一行。此视图不支持XML索引。
表sysobjects为数据库中创建的每个对象(如约束、默认值、日志、规则和存储过程)包含一行。
表sysreferences包含外键约束定义到数据库中被引用列的映射。
元数据对于检索和操作多维数据的应用程序至关重要。初始化SQL Server 2005数据库中有关工具目标的以下信息:
每个表的标识文件名;
每个表的字段列表;
添加和删除表时的同步顺序;
外键和参考键信息;
主键和唯一键信息;
约束信息优先。
表依赖信息的初始化是最关键的,比如表A依赖于哪个表,哪个字段,同步中的序列id应该根据它正确设置。只有这样我们才能同步相关的数据,避免相关性的产生。
另外,数据库数据同步使用linkserver从DB产品端获取DB Staging数据。所以我们应该建立一个链接服务器。通过访问元数据初始化后,依赖关系如图 3所示。
S2、通过用户图形界面记录用户选择。
用户图形界面(GUI)允许用户自由地从每个表中选择数据,如图4所示。结果将保存在名为“SynchronizationScirpt”的临时表中。
在左侧面板中,列出了表,用户可以单击“表名”来显示表的内容以及两个数据库之间的区别。
在右侧面板中,用户可以看到有多少行只存在于临时数据库中,并且可以用于其他操作。用户还可以看到有多少行是不同的或删除可用的。它有不同的颜色。
S3、通过不同的动作检测从属行。在通常的操作中有三种类型的操作:添加、更新和删除。不同的检测逻辑将采用不同的动作。用户选择后,我们将分析每个表中的动作序列,以避免集成冲突。
Figure DEST_PATH_IMAGE001
其中,删除操作可以参见图3的左面板:
如果我们想从“Customers”表中删除一些行,我们将搜索依赖于“Orders”表中列“CustomerID”的行,结果会找到一个包含“OrderID”的列表。其次,我们将根据表“OrderDetails”中最后一步结果中的列“OrderID”来搜索行。
删除表的顺序是OrderDetails->Orders->Customers。它可以用在第一步初始化的SequenceID表示为3->2->0。
添加/更新的操作可以参见图3的右面板:
如果我们想在“OrderDetail”表中添加一些行,那么在将行插入“OrderDetails”表之前,应该将“Products”和“Orders”表中被引用的行添加进来并执行。图5将帮助我们更好地理解它。
S4、为每个选择生成SQL脚本。
此步骤将生成保存在表“SynchronizationScirpt”中的脚本。
删除示例结果为:
从CustomerID=1的订单中删除
从CustomerID=1的客户中删除
加法示例结果为:
--添加表“Suppliers”和“categories”行
--……
将IDENTITY_INSERT[Employees]设置为
插入[EmployeeID]([EmployeeID]、[LastName]、[FirstName]、[Title])值 (7,'King'、'Robert'、'Sales Representative'、 'Mr.')
关闭IDENTITY_INSERT[Employees]
将IDENTITY_INSERT[Customers]设置为
--插入表“Customers”的行
将[客户]设置为关闭
将IDENTITY_INSERT[Orders]设置为ON
--插入表“Orders”行
关闭标识插入[命令]
将IDENTITY_INSERT[Products]设置为ON
--插入表格“Products”的行
关闭IDENTITY_INSERT[Products]
将IDENTITY_INSERT[OrderDetails]设置为ON;
--插入表“OrderDetails”的行
将IDENTITY\u INSERT[OrderDetails]设置为OFF
……
请注意,语句“Set IDENTITY_INSERT[TableName]ON”用于保持标识字段值的同步,并且不允许跨链接服务器运行,例如:
Set IDENTITY_INSERT[链接服务器-名称.DBName.OrderDetails]打开。
这就是为什么我们把DB产品作为主数据库,并在它的一侧初始化信息。
S5、批量执行所述脚本并将它们提交到数据库。
应该启动一个线程,在“SynchronizationScirpt”表中提取SQL脚本,然后在一个SQL事务中逐个执行,记录执行结果,并将其标记为高亮显示,以便于日志和分析。如果脚本失败,将在每个脚本之后记录详细的失败消息。
如果所有脚本执行成功,工具将提交并在出现错误时进行回调。
需要一个唯一的同步批处理ID来标识当前的同步操作,以便我们可以找到在该操作中迁移了多少数据。如果发生意外错误并且工具同步崩溃,我们该怎么办?未完成的选择结果将影响新同步。不用担心,因为我们有唯一的同步批处理ID来防止它发生。所有同步操作只执行批处理ID等于最新批处理ID的脚本,所有SQL脚本都将在一个事务中执行,错误发生时会调用回滚操作,并正确记录错误点或脚本,有助于调查异常原因。
另外,还可以继续进行单元测试和验证建议:
必须进行必要的单元测试,以验证工具的准确性。在实际应用中应结合一些简单的方法。在上一个版本中,我是这样做的:从DB-Staging中删除每个表中的所有行,并将所有的行添加回DB-Staging中,它覆盖了大部分的数据迁移情况,并且会出现一些明显的错误并得到修复。
应实现数据库比较机制,以帮助查找数据库产品和数据库暂存之间的差异。它也是一个条目,用于在同步完成后检查同步是否准确。
本发明的一种数据选择性级联同步工具及其同步方法,通过设置用户图形界面和DB数据同步引擎,并依次通过初始化基本数据库信息;通过用户图形界面记录用户选择;通过元数据结构检测从属行;为每个选择生成SQL脚本;批量执行所述脚本并将它们提交到数据库,从而实现数据同步,本发明提供了一种合理的方法来选择性地维护数据,并且在具有相同方案的数据库之间采用级联方式。它使选择性的行粒度迁移数据成为可能。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (7)

1.一种数据选择性级联同步工具,其特征在于:包括用户图形界面和DB数据同步引擎;
所述用户图形界面用于供用户选择表中需要同步的表或行;
所述DB数据同步引擎用于:
自动检测表之间的关系并绑定相关行;
根据用户图形界面的选择生成SQL脚本;
逐个执行所述SQL脚本。
2.一种数据选择性级联同步方法,其特征在于:包括以下步骤:
S1、初始化基本数据库信息;
S2、通过用户图形界面记录用户选择;
S3、通过不同的动作检测从属行;
S4、为每个选择生成SQL脚本;
S5、批量执行所述脚本并将它们提交到数据库。
3.如权利要求2所述的一种数据选择性级联同步方法,其特征在于:所述初始化基本数据库信息,具体为:初始化SQL Server 2005数据库中有关工具目标的以下信息:
每个表的标识文件名;
每个表的字段列表;
添加和删除表时的同步顺序;
外键和参考键信息;
主键和唯一键信息;
约束信息优先。
4.如权利要求3所述的一种数据选择性级联同步方法,其特征在于:所述通过用户图形界面记录用户选择,具体为:
用户自由地从每个表中选择数据,结果将保存在名为“SynchronizationScirpt”的临时表中;在用户图形界面中,列出了表,用户可以单击“表名”来显示表的内容以及两个数据库之间的区别;
在用户图形界面中,显示有多少行只存在于临时数据库中,并且可以用于其他操作;还显示有多少行是不同的或删除可用的。
5.如权利要求4所述的一种数据选择性级联同步方法,其特征在于:所述通过不同的动作检测从属行中,所述动作包括:
删除;
添加/更新。
6.如权利要求5所述的一种数据选择性级联同步方法,其特征在于:所述生成SQL脚本,具体为:生成保存在表“SynchronizationScirpt”中的SQL脚本。
7.如权利要求2所述的一种数据选择性级联同步方法,其特征在于:所述批量执行所述脚本,具体为:
启动一个线程,在“SynchronizationScirpt”表中提取SQL脚本,然后在一个SQL事务中逐个执行,记录执行结果,并将其标记为高亮显示,以便于日志和分析;如果脚本失败,将在每个脚本之后记录详细的失败消息;
如果所有脚本执行成功,工具将提交并在出现错误时进行回调;
同时需要一个唯一的同步批处理ID来标识当前的同步操作。
CN202110131925.XA 2021-01-30 2021-01-30 一种数据选择性级联同步工具及其同步方法 Pending CN112800136A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110131925.XA CN112800136A (zh) 2021-01-30 2021-01-30 一种数据选择性级联同步工具及其同步方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110131925.XA CN112800136A (zh) 2021-01-30 2021-01-30 一种数据选择性级联同步工具及其同步方法

Publications (1)

Publication Number Publication Date
CN112800136A true CN112800136A (zh) 2021-05-14

Family

ID=75813147

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110131925.XA Pending CN112800136A (zh) 2021-01-30 2021-01-30 一种数据选择性级联同步工具及其同步方法

Country Status (1)

Country Link
CN (1) CN112800136A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100153346A1 (en) * 2008-12-17 2010-06-17 Ianywhere Solutions, Inc. Data integrity in a database environment through background synchronization
CN102346775A (zh) * 2011-09-26 2012-02-08 苏州博远容天信息科技有限公司 一种基于日志的异构多源数据库同步方法
CN104317843A (zh) * 2014-10-11 2015-01-28 上海瀚之友信息技术服务有限公司 一种数据同步etl系统
CN105808553A (zh) * 2014-09-26 2016-07-27 三星Sds株式会社 数据库迁移方法及其装置
CN110543476A (zh) * 2019-07-03 2019-12-06 威富通科技有限公司 一种数据库表结构的同步方法、装置及服务器

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100153346A1 (en) * 2008-12-17 2010-06-17 Ianywhere Solutions, Inc. Data integrity in a database environment through background synchronization
CN102346775A (zh) * 2011-09-26 2012-02-08 苏州博远容天信息科技有限公司 一种基于日志的异构多源数据库同步方法
CN105808553A (zh) * 2014-09-26 2016-07-27 三星Sds株式会社 数据库迁移方法及其装置
CN104317843A (zh) * 2014-10-11 2015-01-28 上海瀚之友信息技术服务有限公司 一种数据同步etl系统
CN110543476A (zh) * 2019-07-03 2019-12-06 威富通科技有限公司 一种数据库表结构的同步方法、装置及服务器

Similar Documents

Publication Publication Date Title
US7337176B1 (en) Data loading tool for loading a database
CN104657382B (zh) 用于MySQL主从服务器数据一致性检测的方法和装置
US7991742B2 (en) System for detecting migration differences of a customized database schema
US8086564B2 (en) Techniques for the logical replication of high-level procedures
US8788457B2 (en) Ensuring that the archival data deleted in relational source table is already stored in relational target table
US7076778B2 (en) Method and apparatus for upgrading a software application in the presence of user modifications
US9767499B2 (en) Supply chain orchestration system with configure-to-order item matching
CN111259004B (zh) 一种存储引擎中数据索引的方法以及相关装置
US7634766B2 (en) Method and apparatus for pattern-based system design analysis using a meta model
US6915313B2 (en) Deploying predefined data warehouse process models
CN112307124A (zh) 数据库同步验证方法、装置、设备及存储介质
EP2797001B1 (en) System and method for creating variants in a test database during various test stages
US10289531B2 (en) Software integration testing with unstructured database
CN112800136A (zh) 一种数据选择性级联同步工具及其同步方法
Grolinger et al. A unit test approach for database schema evolution
WO2018031697A1 (en) Medidata clinical trial system integration with oracle coding system
GB2486914A (en) Source code control of relational databases
Gennick Oracle SQL* Plus Pocket Reference
Malcher et al. Tables and Constraints
CN114282260A (zh) 审核执行ClickhouseDDLSQL语义语法的方法及装置
Thomas et al. OCA/OCP: Oracle9i DBA Fundamentals I Study Guide: Exam 1Z0-031
Pleehajinda Database centric software test management framework for test metrics
Porov et al. MASTER DATA MANAGEMENT TEST ENABLER
Kuhn et al. Tables and Constraints
Dobson Leveraging Database Objects That Encapsulate T-SQL

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20210514

RJ01 Rejection of invention patent application after publication