Azure 数据工厂的 Python 自定义事件

标签 python azure azure-data-factory

我正在尝试创建一个数据工厂,每周一次将大型 blob 文件(源)复制并处理到 python 中的 SQL 数据库(接收器) - 通过逐行读取输入数据集,提取 ID -使用该 ID 在 CosmosDB 上进行查找,以获得重组输出数据集并写入接收器的附加数据。 我有一个 python 脚本,可以在没有 ADF 的情况下一次性执行此操作(即每次读取整个 blob),但现在希望使用 ADF 上的调度功能来自动执行此操作。

有没有一种方法可以在 Python 中创建自定义复制事件,我可以将当​​前的代码逻辑注入(inject)其中。 Azure 目前仅记录 .Net 自定义事件 ( https://learn.microsoft.com/en-us/azure/data-factory/transform-data-using-dotnet-custom-activity ),该事件不适合我的堆栈。

python azure SDK 目前没有任何有关创建自定义事件的文档。

最佳答案

如果您查看示例,您会发现可以在节点上运行可执行文件。

     "typeProperties": {
          "command": "helloworld.exe",
          "folderPath": "customactv2/helloworld",
          "resourceLinkedService": {
            "referenceName": "StorageLinkedService",
            "type": "LinkedServiceReference"
          }
        }

再往下看,在 v1 和 v2 之间的差异中,它们显示只是运行“cmd”。

cmd /c echo hello world

因此,如果您可以创建一个可执行文件来启动您的 python 代码,那么它可能会起作用。您还可以使用参数。但是,代码将在 Azure Batch 上运行,Azure Batch 会为你配置 VM。该虚拟机可能不具备您需要的所有依赖项。您必须创建一个“可移植”包才能使其工作。也许是这个post可以帮助您。

更优雅的方法是通过 Web 事件触发 Azure Functions。但这似乎是相当糟糕的东西:https://ourwayoflyf.com/running-python-code-on-azure-functions-app/

关于Azure 数据工厂的 Python 自定义事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48662793/

相关文章:

c# - 如何从 C# 代码调用 Azure 数据工厂管道?

azure - 错误代码 : 'AuthorizationPermissionMismatch'

python - 如果存在于另一个数组中,则从一个数组中删除元素,保留重复元素 - NumPy/Python

python - 从python 2.7中的列表插入数据库

c# - 在 Azure 上,Web api+Azure AD 或expressjs+passportjs

c# - Azure表存储: Which string comparison method is used?

c# - Azure函数中通过实例id获取主机锁租约的原因是什么?

按日期的 Azure Blob 复制分区

python - pandas dataframe read_csv,指定列并将整行保留为字符串

python - 为什么我的 for 循环(python)在 4 次迭代后会改变行为?