我有大约20种不同的数据源,所有小型应用程序都有API(一些肥皂和一些其余的)。我需要将所有这些数据组合起来,将其转换并将数据存储到数据仓库中。我正在考虑Azure SQL数据库。但是,我不确定我可以用什么工具来实际获取API和数据。每个数据源在一天内可以进行连接方面存在限制,并且大多数这些AP需要运行多个API来获取数据。
我查看了Azure数据工厂----它不支持SOAP API 我查看了Logic Apps ----我不确定它是否可以执行复杂的ETL并且可以检索数据
我想的另一个选择是安装带有SQL Server的Azure VM,然后使用Talend通过REST和SOAP连接器获取数据并执行ETL。我可以采取的另一种方法是使用SSIS而不是使用Talend。但我确实认为我还需要第三方Rest和Soap连接器。
我正在寻找最具成本效益和可扩展的解决方案。
任何建议都会非常有用。
答案 0 :(得分:2)
Azure数据工厂(当前)更像是转换活动的协调器,而不是完全成熟的ETL工具,它可以运行可以与Web服务API一起使用的自定义活动(例如,在C#中)。它一直在移动。 见这里:
https://docs.microsoft.com/en-us/azure/data-factory/data-factory-use-custom-activities
Using Azure Data Factory to get data from a REST API
然而,鉴于您的转型规模,您可能希望考虑另一种选择。在发言时,我并不认为很多人已经破解了如何在云中复制适当复杂的内部部署ETL经验 - 但这将迅速改变。
您提到的另一个选项可行(安装了ETL软件的IaaS Azure VM)。 对于Talend,您不需要安装SQL Server,除非您希望将数据存储在那里而不是Azure SQL数据库中。它预装了很多连接器,如果你有Talend技能,这是一个不错的选择。
或者SSIS也可以工作:它的预加载Web服务任务涵盖了您的SOAP API https://www.mssqltips.com/sqlservertip/3272/example-using-web-services-with-sql-server-integration-services/ 您可以使用第三方任务/连接器进行REST,也可以使用脚本任务/转换,即您自己的自定义C#代码。