gpt4 book ai didi

azure - 在 Azure 数据工厂中,我可以将数据集中的数据作为输入传递到 Azure 函数吗?

转载 作者:行者123 更新时间:2023-12-03 06:10:08 25 4
gpt4 key购买 nike

我可以使用 Azure 数据工厂管道在两个“Azure Cosmos DB for MongoDB”数据集之间复制数据。

现在,我想在将数据推送到目标数据集之前使用 Azure Function 转换数据。这在 Azure 数据工厂中可行吗?如果是的话,有没有可以引用的文档?

我认为这应该是一个受支持的用例。源数据集中的每条记录(考虑到它是 JSON 格式)都可以在请求正文中按原样转发到 HTTP 触发函数,并且该函数的 JSON 响应将可供稍后在管道中使用。

我尝试将 HTTP 触发函数的主体设置为 @activity('Copy Activity').output 但“Copy Activity”输出包含有关事件执行的元数据,而不是数据集我正在寻找的记录。我还尝试了数据流,但无法开始,因为“Azure Cosmos DB for Mongo DB”是 not a supported data storeAzure Function activity 中没有太多信息可以帮助解决我的情况。文档页面。

最佳答案

一般来说,要将数据集从 ADF 传递到 Azure 函数,我们可以使用查找事件。 Lookup 将给出一个对象数组作为输出。

但在这种情况下,源数据集 (Azure Cosmos DB for MongoDB) 不支持查找事件。根据文档,它仅支持复制事件。您可以提出功能请求 here添加它以供查找。

作为解决方法,如果您有权访问 ADLS 或 Blob 存储帐户,则可以尝试以下方法。

  • 首先使用复制事件将 Azure Cosmos DB for MongoDB 数据复制到 Blob 或 ADLS JSON 文件。
  • 现在,对 JSON 文件使用查找事件。根据查找事件输出 JSON,使用动态表达式 @activity('lookup1').output.value@activity('lookup1').output.value[0] 获取所需的 JSON。
  • 查找后,根据您的要求将此 JSON 传递到您的 Azure 函数。

此外,您还可以使用此 REST API 获取 Azure Cosmos DB for MongoDB 数据集的 JSON .

GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}/mongodbDatabases/{databaseName}/collections/{collectionName}?api-version=2021-07-01-preview
  • 首先,使用 ADF 中的一个Web 事件和服务主体获取不记名 token 。
  • 之后,在另一个 Web 事件中使用该不记名 token 和上述 REST API 来获取 Azure Cosmos DB 数据库下的 MongoDB 集合。
  • 您将获得一个 JSON 作为网络事件响应,例如 this .
  • 在其中确定所需的 JSON 并将其传递给您的 Azure 函数。

注意:这些方法仅在源数据大小小于 4 MB 时有效。查找事件和 Web 事件输出限制均为 4 MB(5000 行)。如果您的数据不止于此,那么最好连接 Azure 函数代码本身中的源,而不是从 ADF 数据集传递它。

关于azure - 在 Azure 数据工厂中,我可以将数据集中的数据作为输入传递到 Azure 函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76887829/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com