CN112800136A - 一种数据选择性级联同步工具及其同步方法 - Google Patents
一种数据选择性级联同步工具及其同步方法 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 23
- 238000013515 script Methods 0.000 claims abstract description 42
- 230000001360 synchronised effect Effects 0.000 claims description 12
- 238000013508 migration Methods 0.000 abstract description 4
- 230000005012 migration Effects 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000012360 testing method Methods 0.000 description 3
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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
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、通过不同的动作检测从属行。在通常的操作中有三种类型的操作:添加、更新和删除。不同的检测逻辑将采用不同的动作。用户选择后,我们将分析每个表中的动作序列,以避免集成冲突。
其中,删除操作可以参见图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来标识当前的同步操作。
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)
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 | 威富通科技有限公司 | 一种数据库表结构的同步方法、装置及服务器 |
-
2021
- 2021-01-30 CN CN202110131925.XA patent/CN112800136A/zh active Pending
Patent Citations (5)
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 |