【问题标题】:Python Azure function processing blob storagePython Azure 函数处理 blob 存储
【发布时间】:2019-05-09 03:57:25
【问题描述】:

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

我的问题是,我怎样才能在 Azure 函数应用中做同样的事情?还是有更好的方法?

提前致谢。

夏姆

【问题讨论】:

  • 你试过blob trigger吗?
  • 您是否尝试过使用 Python 触发 blob?我在 Python 中有一些预处理代码,我想在输入到 blob 的新数据集时执行它。这可能吗?
  • 不,不熟悉python。但我知道只要创建新 blob 或更新某些现有 blob,触发器就会起作用。
  • 好的。谢谢杰瑞。

标签: python azure azure-functions


【解决方案1】:

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

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

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

  1. 进口:
import logging
import snowflake.connector 
import azure.functions as func
...
  1. 设置 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()

【讨论】:

    【解决方案2】:

    我创建了一个 Flask API 并通过它调用了我的 python 代码。然后将其作为 Web 应用程序放入 Azure 中并调用 blob。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-05
      • 2021-10-08
      • 2021-08-25
      • 2018-08-12
      • 1970-01-01
      • 2022-08-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多