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

在Fabric加载数据至Azure数据仓库时,如何获取Azure Blob元数据键值

在Fabric环境获取Azure Blob元数据键值的可行方案

方案1:使用Fabric Data Factory的Lookup活动

  • 配置Lookup活动连接到Azure Blob存储,选择Blob存储查询模式,通过OData查询指定要获取的元数据字段。比如用$select=Name,LastModified,Metadata/*可以获取Blob的基础信息及所有自定义元数据;如果只需要特定键值,可写为$select=Metadata/你的自定义键名。
  • 执行后,Lookup活动的输出会包含指定的元数据内容,可直接用于后续加载到Azure数据仓库的流程。

方案2:使用Fabric Dataflow Gen2

  • 添加Azure Blob存储数据源,选择目标容器或文件夹。
  • 在数据编辑界面点击「添加列」,用自定义表达式提取元数据:
    • 系统元数据:metadata('BlobName')(文件名)、metadata('LastModified')(修改时间)
    • 自定义元数据:metadata('Metadata_你的键名')(键名需和Blob上的自定义元数据完全匹配,特殊字符需转义)
  • 提取后的元数据可和业务数据合并,直接写入Azure数据仓库。

方案3:使用Fabric Notebook(PySpark/PowerShell)

PySpark脚本示例

from azure.storage.blob import BlobServiceClient

# 初始化客户端
conn_str = "你的Blob存储连接字符串"
container_name = "目标容器名"
blob_service_client = BlobServiceClient.from_connection_string(conn_str)
container_client = blob_service_client.get_container_client(container_name)

# 遍历Blob并提取元数据
for blob in container_client.list_blobs():
    blob_client = container_client.get_blob_client(blob.name)
    props = blob_client.get_blob_properties()
    # 系统元数据
    print(f"Blob名称: {blob.name}")
    print(f"最后修改时间: {props.last_modified}")
    # 自定义元数据
    custom_meta = props.metadata
    if custom_meta:
        print("自定义元数据:")
        for k, v in custom_meta.items():
            print(f"  {k}: {v}")

# 可将元数据写入Azure数据仓库
# spark.createDataFrame(元数据列表).write.mode("append").synapsesql("数据仓库表名")

PowerShell脚本示例

$connStr = "你的Blob存储连接字符串"
$containerName = "目标容器名"

# 获取Blob及元数据
$blobs = Get-AzStorageBlob -ConnectionString $connStr -Container $containerName

foreach ($blob in $blobs) {
    Write-Host "Blob名称: $($blob.Name)"
    Write-Host "最后修改时间: $($blob.LastModified)"
    # 自定义元数据
    $meta = $blob.ICloudBlob.Metadata
    if ($meta.Count -gt 0) {
        Write-Host "自定义元数据:"
        foreach ($key in $meta.Keys) {
            Write-Host "  $key : $($meta[$key])"
        }
    }
}

Get Metadata组件的排查提示

如果之前使用Get Metadata未成功,可检查以下点:

  • 数据集需正确指向Azure Blob存储,若批量获取元数据,需结合ForEach活动遍历Blob列表,逐个执行Get Metadata
  • 在Get Metadata活动的「字段列表」中,必须勾选Metadata选项,自定义元数据会嵌套在该字段下

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 05:45:13