使用API的ETL/数据仓库方法

5
我有大约20个不同的数据源,所有这些小应用程序都有API(一些是SOAP,一些是REST)。我需要合并所有这些数据,对其进行转换,并将数据存储到数据仓库中。我正在考虑使用Azure SQL数据库。然而,我不确定我可以使用哪种工具来实际获取API和数据。每个数据源在一天内可以建立的连接方面都有限制,而且这些API中的大多数需要运行多个API才能获取数据。
我看了Azure Data Factory----它不支持SOAP APIs 我看了Logic Apps----我不确定它是否可以执行复杂的ETL并检索数据
我考虑的另一种选择是拥有安装了SQL Server的Azure VM,然后使用Talend通过REST AND SOAP Connectors获取数据,然后执行ETLs。我可以采取的另一种方法是不使用Talend,而是使用SSIS。但我确实认为我还需要第三方Rest和Soap Connectors。
我正在寻找最具成本效益和可扩展性的解决方案。
任何建议都将非常有帮助。
1个回答

4
Azure Data Factory(目前)更像是一个转换活动的编排器,而不是一个完全成熟的ETL工具,它可以运行自定义活动(例如在C#中),并且可以使用Web服务API一起工作。它一直在不断发展。
参见此处:https://learn.microsoft.com/en-us/azure/data-factory/data-factory-use-custom-activities 使用 Azure 数据工厂从 REST API 获取数据 但是考虑到转换规模的大小,您可能希望考虑其他选择。目前来说,我认为没有多少人能够在云中复制出一个真正复杂的本地ETL体验 - 但是这将会迅速改变。
您提到的另一个选择是可以的(IaaS Azure VM + 安装ETL软件)。对于 Talend,您不需要安装 SQL Server,除非您想将数据存储在那里而不是 Azure SQL Database 中。它预装了许多连接器,并且是如果您具有 Talend 技能的话,是一个不错的选择。
另外,SSIS 也可以胜任:它预载的 Web 服务任务可以涵盖您的 SOAP API。https://www.mssqltips.com/sqlservertip/3272/example-using-web-services-with-sql-server-integration-services/,您可以使用第三方任务/连接器进行 REST,或者使用脚本任务/变换,即您自己的自定义 C# 代码。

API管理怎么样?这可能是另一种方法吗? - wBob
1
看起来这更适合发布你希望人们使用的API,而不是消耗大量的API。不过值得探索一下。 - Rich
感谢@Rich。我已经检查了Azure的Pass服务,似乎它支持BizTalk和Logic应用程序,但两者都不太适合我的需求。相反,我正在考虑在云VM上安装SQL Server。在那里安装Talend来运行作业(我有SOAP和REST API),然后将数据发送到Staging,再将其转换为SQL Server上的数据仓库数据。这样我就不必完全从头开始编码,可以使用Talend进行扩展。这个计划听起来可行吗?我并不认为为每个作业编写一个.NET控制台应用程序是正确的方法。 - user1347948
如果 ETL 工具似乎更适合您,那可能是不错的选择。或者使用 SSIS。 - Rich

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接