我已使用 Azure 数据工厂管道成功将数据从 Salesforce 复制到我的 Azure SQL 数据库,并且我希望确保我的管道自动将更新或新条目从 Salesforce 检索到我的数据库中。我正在考虑使用来自 Salesforce 的更改数据捕获事件并使用 Azure Function 或事件中心订阅该事件。有人可以建议我实现这一目标的最佳方法吗?此外,我想确保 Salesforce 中任何已删除的行都会在我的 Azure SQL 数据库中更新。
ADF 中的 CDC 功能不支持 salesforce 作为源,并且源非常有限,因此正如您所说,您可以创建一个 EventHub 作为源,并写入来自该中心的更新插入和删除的增量负载。
一个好的方法是使用 Azure Streaming Analytics 或其开源等效工具将数据从该中心直接流式传输到 Azure SQL DB 到临时表,您稍后可以使用该表进行增量加载要更新的表,您可以在每次加载后截断这些临时表。对于此过程,您可以使用 ADF 或数据库内的存储过程(或者 SSIS 之类的东西,如果这是您的风格)。转换位置应该在数据库内部,因为 Azure 流分析并不是真正的 ETL 工具,而是分析工具。这个过程就像 ELT,因为你正在向最终目的地转变。