我有一个应用程序每天/每周将来自客户端的数据(两个不同的数据集,一个每天和另一个每周)摄取到 SQL Azure 数据库中。客户的数据源取决于他们使用的软件,因此可能因客户而异。我目前有两种集成方法,具体取决于客户端:
- 使用 Azure 数据工厂和自托管集成运行时。在这种方法中,客户需要(在他们的网络内)提供一个我在其中设置集成运行时的 VM,以及一个只有两个表的 SQL Server 数据库,他们根据需要在其中转储两个数据集。在 ADF 中,我创建管道以将数据直接从其 SQL Server 提取到我的 Azure SQL 数据库中,然后运行必要的导入过程。
- 使用 Azure 数据工厂和 BLOB 存储。在这种方法中,我为客户端提供了一组按计划运行的 Powershell 脚本(Windows 任务计划程序),帮助他们将导出的文件 (.CSV) 复制到我们的 BLOB 存储中。然后,ADF 管道从 BLOB 存储复制到 Azure SQL Db,然后运行必要的导入过程。
第一种方法要简单得多,但就客户端的基础架构而言,设置一个几乎空白的 Windows VM 和一个只有几个数据转储表的数据库似乎有点矫枉过正。显然,如果客户自己是云托管的,这可能会很昂贵——启动一个新的虚拟机并不便宜,所以可能会让他们在使用我们的产品时三思而后行。
第二种方法需要我为每个客户端设置一个存储容器,我觉得随着我们的扩展,这可能会使管理变得困难。此外,提供与 Windows 任务计划程序一起运行的脚本并不会让人觉得过于优雅。
有人对这种情况有任何替代解决方案吗?还是我走在正确的轨道上?
任何见解将不胜感激。谢谢。