首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从API A、B、C获取数据并推送到API X

从API A、B、C获取数据并推送到API X
EN

Stack Overflow用户
提问于 2019-08-12 21:24:45
回答 1查看 61关注 0票数 3

我一直在对Azure Data bricks和Azure数据工厂进行一些修补,我想知道当你只是想通过调用这些服务API ( Rest )从一些服务中获取数据,然后使用Rest API将这些数据推送到Service X时,这些数据是否有些过头了。

我已经看到数据工厂可以调用rest API (但似乎不支持Oauth2),但我还没有发现任何关于将数据推送到另一个rest Api的内容(在这一点上,将所有内容整合到Azure DB中并不是很有意义)。

那么,我应该使用数据工厂,还是编写一个python脚本并使用Azure函数调用它会更适合解决这个问题呢?

致以敬意,

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-12 22:18:01

只有当数据可以非常直接地从一个数据库(或文件)移动到另一个数据库时,我才喜欢使用DataFactory。当您需要更多的逻辑来与应用程序接口交互时,使用DataFactory几乎没有什么额外的价值,因为您已经需要一些计算(比如Azure函数)。

如果您的数据摄取是某种工作流程(例如,在推送到X之前,您需要以特定的顺序使用A、B和C),那么我可以推荐将Durable Functions与函数链接和扇出/扇入模式一起使用。我还有一些video content可以解释这一点。

下面是一个使用函数链接的编排的小伪代码示例:

代码语言:javascript
运行
复制
var id = input.GetInput<string>();
var a = await context.CallActivityAsync<DataA>("CallApiAActivity", id);
var b = await context.CallActivityAsync<DataB>("CallApiBActivity", id);
var c = await context.CallActivityAsync<DataC>("CallApiCActivity", id);
var combined = Builder.CombineABC(a, b, c);

return  await context.CallActivityAsync<bool>("PushToApiXActivity", combined);

如果对A、B和C的调用是不相关的,那么我建议您执行扇出/扇入,以便可以并行调用这些函数。

持久函数的好处是编排是有状态的,并对每个活动函数调用的存储执行检查点操作。这将使用CallActivityWithRetryAsync方法启用自动重试。这在处理不受您控制的服务时特别有用,并使您的解决方案更具弹性。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57462093

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档