Python Azure 函数处理 blob 存储

标签 python azure azure-functions

我正在尝试使用 MS Azure 中的数据工厂创建一个管道,处理 blob 存储中的数据,然后对数据运行 python 处理代码/算法,然后将其发送到另一个源。

我的问题是,如何在 Azure 函数应用中执行相同的操作?或者有更好的方法吗?

提前致谢。

夏姆

最佳答案

是的,你可以做到这一点。我最近致力于创建一个数据工厂 (ADF) 管道,该管道从 Blob 存储中提取数据并将其传输到 Snowflake。由于它是一个很好的具体示例,Snowflake 有许多连接器(包括 Python),允许您链接到它并运行查询(这就是您创建阶段以从 Azure 提取数据的方式)。这是雪花文档:https://docs.snowflake.net/manuals/user-guide/data-load-azure-create-stage.html .

您可以按照此处的文档使用 Python 创建 Azure 函数:https://learn.microsoft.com/en-us/azure/azure-functions/functions-create-first-function-python然后替换您想要编写的任何代码,以便将数据移动到其他地方。应该指出的是,目前无法在门户中完成此操作(尽管微软提到他们希望尽快修复这一问题)。您可以对想要移动数据的任何其他端点执行此操作(这只是一个示例)。

就我而言,我使用 ADF 复制事件将数据从本地文件服务器提取到 Blob 存储中。从那里,我创建了一个连接到 Snowflake 的 Azure 函数 (Python),并仅使用 SnowSQL 查询来创建文件格式、创建 azure 阶段,然后从阶段复制到表(已创建)中。当然,对于 Snowflake,您可以从门户的工作表中运行所有这些查询,但如果您希望将所有代码存储在 ADF 中(并且您使用 Snowflake),那么这是一个很好的方法:

  1. 进口:
import logging
import snowflake.connector 
import azure.functions as func
...
  • 设置 Snowflake 连接并执行查询(只需在“main”函数中插入代码):
  • con = snowflake.connector.connect(
            user='user',
            password='password',
            account='account'
            )
    cs = con.cursor()
    try: 
        cs.execute("USE WAREHOUSE ...")
        cs.execute("USE DATABASE ...")
        ...
    finally:
        cs.close()
    con.close()
    

    关于Python Azure 函数处理 blob 存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54343289/

    相关文章:

    azure - 如何将现有的 Azure Function v2.0 beta 升级到 v2.0 GA?

    Azure Durable Functions 作为消息队列

    azure - dotnet 发布有时失败并显示 'Metadata generation failed'

    python - Flask 默认 pytest 失败

    python - 从 Django 将文件上传到 Google Cloud Storage 时遇到问题(本地 Windows ENV

    c# - 警告 : Only got partial types from assembly: Microsoft. Azure.WebJobs.Extensions.Storage

    c# - Azure 解决方案架构 - 网站还是云服务?

    python - lambda - 'QuerySet' 对象没有属性 'xxx'

    python - 将 Numpy 存储为 pickled Pandas、Pickled Numpy 或 HDF5

    azure - 为什么 mywebsite.dll.config 没有包含在我的 cspkg 中?