2

我有一个我认为相当复杂的问题,想看看像你们这样的专家对我的解决方案有何看法。

问题:

我正在将来自多个第三方的数据收集到一个中央 mySQL 数据库中。第三方可以拥有任何数据库产品(mySQL、Oracle、postgreSQL 等)。我将需要执行以下两项任务:

  1. 首次启动时,将整个数据库复制到中央 mySQL 数据库
  2. 随着对第三方数据库的更改,增量更新中央 mySQL 数据库

建议的解决方案:

  1. 我打算在 C# 中为每个第三方数据库创建数据库爬虫。例如,假设第三方之一有一个 oracle 数据库。我打算创建一个类,它将查询 oracle 数据库的定义和数据,并以编程方式创建要由中央 mySQL 数据库执行的 sql 查询。例如:创建表 XYZ(id1 int,id2 int),插入 XYZ 值(1,2)等。
  2. 这是给我最大的悲痛的问题。我想知道是否有人曾经查询过数据库以有效地询问“您的最新更改是什么”,或者自 dd-mm-yyyy hh:MM:ss 以来您的更改是什么。我所说的更改是指数据更改和数据定义更改。例如:添加新列、更新 [row][column] 值、插入新行等。
4

1 回答 1

0

如果您可以访问数据库编写器程序,您不能只注入一个生成/将数据写入中央数据库(又名 LOGGER)的代码吗?

我的意思是你可以把你的中央数据库变成一个“日志数据库”。如果由于某种原因第三方数据库需要数据库回滚,您可以将命令从当前时间戳更改为 timestamp-rollback_days,然后从 INSERT 更改为 DELETE,DELETE 更改为 INSERT 等。

这样,您的数据库不会因为复制整个数据库而受到太大影响:)

于 2012-11-12T13:48:01.673 回答