在组织之间交换数据转储的最佳方法

时间:2018-05-03 19:59:33

标签: mysql sql-server database database-administration data-exchange

我正在开展一个项目,我将每月收到一次学生数据转储。数据将导入我的系统。初始导入将是大约7k记录。在那之后,我预计每个月不会超过几百个。但是,当学生更改成绩等时,也会有更新的现有记录。

我正在尝试确定跟踪已接收,导入和更新的内容的最佳方法。

我正在考虑使用脚本设置托管MySQL数据库,该脚本将SFTP转储导入到包含creation_date和modification_date字段的表中。我的想法是,执行提取的人可以连接到MySQL数据库并在每个月对导入的表运行查询,以便在下次提取之前获得差异。

我的另一个想法是每个月为每个数据转储创建一个新的接收表。然后我会对差异进行查询。

注意:导入系统是旧版,将使用实用程序和唯一的csv类型文件接受导入。所以这可能会排除像XML这样的选项。

提前感谢您的任何建议。

1 个答案:

答案 0 :(得分:0)

我会假设你会随着时间的推移跟踪学生的成绩。

我建议采用两种方法:

表1:交易级别数据。只添加。简单地附加新信息。 Sammy在本周的测验中获得了75分,Beth额外获得了5分,等等。每一行都是一笔交易。据推测,它具有学生的姓名/ ID,添加的值,可能是最大可能值或一些加权因子,当然还有添加的时间戳。 所有这些只是不断增加一个永无止境的(在理论上)表。

表2:汇总表,按某个时间间隔重建。此表在第一个表上执行简单聚合,将事务分数处理为全局分数。也许这是一个简单的总和,也许它是一个加权平均值,也许你有一些更复杂的想法。 这个表每个学生有一行(每门课程?)。你希望每晚重建一次。如果你很懒,你只需要DROP / CREATE / INSERT。如果您担心数据丢失,只需插入并添加时间戳,以便可以返回快照。