You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Azure Data Factory中读取Blob存储中每日生成的带时间戳JSON文件

读取Blob存储中每日带时间戳的JSON文件内容方案

核心思路:利用Blob触发器的内置参数直接获取目标文件

Blob触发器本身会自动捕获符合规则的新生成Blob,触发时会将该文件的流/对象直接注入到处理函数中,不需要手动根据时间戳去查找文件——不管文件名里的时间戳格式是什么,只要触发器的路径配置正确,就能精准拿到当日的新JSON文件。

常见技术栈的实现示例

1. C#(Azure Functions)

直接通过Stream或CloudBlockBlob参数获取文件内容:

public static void Run(
    [BlobTrigger("你的容器名/{name}", Connection = "AzureWebJobsStorage")] Stream blobStream,
    string name,
    ILogger log)
{
    log.LogInformation($"正在处理文件: {name}");
    
    // 读取JSON内容
    using (var reader = new StreamReader(blobStream))
    {
        string jsonContent = reader.ReadToEnd();
        // 按需反序列化为业务模型
        // var targetData = JsonSerializer.Deserialize<你的数据模型类>(jsonContent);
    }
}

参数里的{name}会自动填充触发文件的完整名称,blobStream就是文件的数据流,直接读取即可。

2. Python(Azure Functions)

用func.InputStream获取文件流并解析JSON:

import azure.functions as func
import json
import logging

def main(myblob: func.InputStream):
    logging.info(f"正在处理文件: {myblob.name}")
    
    # 读取并解析JSON
    json_content = myblob.read().decode('utf-8')
    target_data = json.loads(json_content)
    # 后续业务逻辑处理

myblob包含了触发文件的所有元数据和内容,调用read()就能拿到文件的字节流,解码后即可解析为JSON对象。

关键注意点

  • 确保触发器的路径规则配置准确:比如指定正确的容器名,若文件存子目录,路径要写容器名/子目录/{name};如果只想触发JSON文件,可把路径设为容器名/{name}.json,过滤非JSON文件。
  • 处理大体积JSON文件时,优先用流的方式读取,避免一次性加载全量内容到内存,影响性能。

内容的提问来源于stack exchange,提问作者Ton

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 06:37:21