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

best approach to exchanging data dumps between organizations

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

我正在尝试确定跟踪随时间推移收到、导入和更新的内容的最佳方法。

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

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

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

这样的选项

提前感谢您的任何建议。

我假设您正在跟踪一段时间内学生在课程中的成绩。

我会推荐两个 table 方法:

Table 1:交易级数据。仅添加。新信息只是附加在上面。 Sammy 在本周的测验中得了 75 分,Beth 得到了 5 分的额外分数,等等。每一行都是一次交易。大概它有学生的 name/id,被添加的值,可能是最大可能值或一些加权因子,当然还有添加的时间戳。 所有这一切只会不断增加一个永无止境的(理论上)table。

Table 2:摘要table,每隔一段时间重建一次。 table 对第一个 table 进行简单聚合,将交易分数处理为全局分数。也许它是一个简单的总和,也许它是一个加权平均值,也许你有更复杂的想法。 table 每个学生(每个课程?)一行。您希望每晚重建它。如果你懒惰,你就 DROP/CREATE/INSERT。如果您担心数据丢失,您只需插入并添加时间戳,这样您就可以让快照返回。