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

ETL/ Data Warehousing Approach using APIs

我有大约 20 个不同的数据源,都是具有 API 的小型应用程序(一些 soap 和一些 rest)。我需要合并所有这些数据,对其进行转换并将数据存储到数据仓库中。我正在考虑使用 Azure SQL 数据库。但是,我不确定我可以使用什么工具来实际获取 API 和数据。每个数据源在一天内可以建立的连接方面都有限制,并且大多数这些 API 需要 运行 多个 API 来获取数据。

我查看了 Azure 数据工厂----它不支持 SOAP API 我查看了逻辑应用程序 ---- 我不确定它是否可以执行复杂的 ETL 并可以检索数据

我考虑的另一个选择是安装带有 SQL 服务器的 Azure VM,然后使用 Talend 通过 REST 和 SOAP 连接器获取数据并执行 ETL。我可以采用的另一种方法是使用 SSIS 而不是使用 Talend。但我相信我也需要第三方 Rest 和 Soap 连接器。

我正在寻找最具成本效益和可扩展性的解决方案。

任何建议都会非常有帮助。

Azure 数据工厂(目前)与其说是一个成熟的 ETL 工具,不如说是一个转换活动的编排器,它可以 运行 可以使用 Web 服务 API 的自定义活动(例如在 C# 中)。它一直在移动。 看这里:

https://docs.microsoft.com/en-us/azure/data-factory/data-factory-use-custom-activities

不过您是对的,考虑到您的转换规模,您可能希望考虑替代方案。在发言时,我认为没有多少人已经破解了如何在云中复制适当复杂的本地 ETL 体验的难题 - 但这会迅速改变。

您提到的另一个选项也可以(安装了 ETL 软件的 IaaS Azure VM)。 对于 Talend,您不需要安装 SQL 服务器,除非您想将数据存储在那里而不是在 Azure SQL 数据库中。它预装了许多连接器,如果您有 Talend 技能,它是一个不错的选择。

或者,SSIS 也可以工作:其预加载的 Web 服务任务涵盖您的 SOAP API https://www.mssqltips.com/sqlservertip/3272/example-using-web-services-with-sql-server-integration-services/ 您可以使用第三方 task/connector 实现 REST,或者使用脚本 Task/Transform,即您自己的自定义 C# 代码。