【发布时间】:2020-05-24 11:02:42
【问题描述】:
目前我们正在使用 Blob 触发器 Azure Functions 将 json 数据移动到 Cosmos DB。我们计划用 Azure 数据工厂 (ADF) 管道替换 Azure Functions。 我是 Azure 数据工厂(ADF)的新手,所以不确定,Azure 数据工厂(ADF)管道是否是更好的选择?
【问题讨论】:
标签: azure azure-functions
目前我们正在使用 Blob 触发器 Azure Functions 将 json 数据移动到 Cosmos DB。我们计划用 Azure 数据工厂 (ADF) 管道替换 Azure Functions。 我是 Azure 数据工厂(ADF)的新手,所以不确定,Azure 数据工厂(ADF)管道是否是更好的选择?
【问题讨论】:
标签: azure azure-functions
虽然我的回答有点晚,但我想补充一点,我不建议用 ADF 替换您当前的设置。原因:
【讨论】:
根据您的要求,Azure 数据工厂是您的完美选择。您可以按照此tutorial 配置 Cosmos DB 输出和 Azure Blob 存储输入。
与 azure 函数相比的优势在于,您无需编写任何自定义代码,除非涉及数据清理,并且 azure 数据工厂是推荐的选项,即使您希望将 azure 函数用于其他目的,您也可以在其中添加它管道。
【讨论】:
Azure 数据工厂的基本用途是数据摄取。 Azure Functions 是无服务器的(功能即服务),它的最佳用途是用于短期实例。执行数秒的 Azure Functions 的成本要高得多。 Azure Functions 适用于事件驱动的微服务。对于数据摄取,Azure 数据工厂是更好的选择,因为它对海量数据的运行成本将低于 azure 函数。您还可以在 ADF 中集成 Spark 处理管道,以实现更高级的数据摄取管道。
【讨论】:
此外,这取决于您的情况。 Azure 函数是服务器较少的轻量级进程,用于快速访问以响应事件,而不是用于批处理的体积响应。 因此,如果您的要求是在几乎没有信息的情况下快速响应事件,请使用 Azure 函数,或者如果您需要将批处理切换到 ADF。
【讨论】:
我从here 获取图像。
让我们计算一下成本:
if your file is large:
43:51hour=43.867(h)
4(DIU)*43.867(h)*0.25($/DIU-H)=43.867$
43.867/7.514GB= 5.838 ($/GB)
if your file is small(2.497MB), take about 45 seconds:
4(DIU)*1/60(h)*0.25($/DIU-H)=0.0167$
2.497MB/1024MB=0.00244013671 GB
0.0167/0.00244013671= 6.844 ($/GB)
Azure 函数可以运行的最大实例数为 200。
ADF 可以运行 3,000 个并发外部活动。在我的测试中,只有 1500 个复制活动并行运行。 (这个测试浪费了很多钱。)
【讨论】: