如何实现从mySQL操作数据库到Azure SQL数据库的更新以进行报告

时间:2019-05-02 08:04:37

标签: mysql sql-server azure-sql-database data-warehouse azure-data-factory

我们有一个可运行的mySQL数据库在AWS上运行(用于事务系统)和一个 Azure SQL DB(用于报告)。现在,我想定期(例如每晚)将某些表从mySQL DB更新到Azure SQL DB。

我发现了this description on how to do incremental copies using Azure Data Factory,但是对我来说替代方法似乎不可行:

  1. Delta data loading from database by using a watermark要求在源数据库中添加水印列,但是我不想对操作数据库进行更改,因为它由事务系统管理并定期进行更新。

    < / li> 如果我正确理解,
  2. Delta data loading from SQL DB by using the Change Tracking technology似乎需要SQL Server DB作为源。

据我所知,其余两种选择仅适用于文件更新,不适用于数据库更新。

根据描述的条件还有其他可行的选择吗?他们不一定需要参与Azure数据工厂,但是更新应该在云中完全自动化地运行。

也许也可以进行非增量更新(即每次完全替换目标数据库表),但是我担心这会导致Azure SQL Server方面的高昂成本-请分享所有经验如果有的话,也可以。

1 个答案:

答案 0 :(得分:0)

您可以按需使用水印图案,但是水印表位于目标数据库中。您必须确保您的查找活动从目标数据库而不是源数据库获取水印。

我认为该示例将水印表放在源中,因为目标是Blob存储。在您的情况下,目标是Azure SQL数据库,因此可以在目标数据库中创建它。

满载是否是一个好选择,实际上取决于报告的要求和需要移动的数据量。也许您只需要上个月的数据?在这种情况下,您可以在源查询中创建where子句以仅过滤上个月,并在复制活动的预复制脚本中截断目标表。