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

使用Great Expectations的InferredAssetAzureDataConnector时Batch Request返回空列表

Great Expectations Azure Blob数据源Batch请求返回空列表问题

配置与测试情况

已配置Azure Blob存储数据源,YAML配置如下:

name: {datasource_name}
class_name: Datasource
execution_engine:
    class_name: PandasExecutionEngine
    azure_options:
        account_url: MYURL
        credential: MYKEY
data_connectors:
  default_runtime_data_connector_name:
    class_name: RuntimeDataConnector
    batch_identifiers:
        - default_identifier_name
  default_inferred_data_connector_name:
    class_name: InferredAssetAzureDataConnector
    azure_options:
        account_url: MYURL
        credential: MYKEY
    container: machinelearning
    name_starts_with: waermeprognose/output_neuralnet/FVS/FERNWAERME.1
    default_regex:
        pattern: (.*)\_FVS_FERNWAERME.1_waermeprognose.parquet
        group_names:
            - date

执行Context.test_yaml_config(yaml_config=example_yaml)后,显示成功实例化数据源,且default_inferred_data_connector_name能识别到DEFAULT_ASSET_NAME下的3条数据。

问题现象

使用sanitize_yaml_and_save_datasource保存数据源到上下文后,执行以下Batch请求代码返回空列表:

context = DataContext(
    context_root_dir=r'C:\Users\Philip\Documents\Projekte\X\Python\tests\great_expectations'
)

batch_request_parameters = {
    "datasource_name": "dlsbeoptdev_machinelearning_waermeprognose_output_neuralnet",
    "data_connector_name": "default_inferred_data_connector_name",
    "data_asset_name": "DEFAULT_ASSET_NAME",
}

batch_request = BatchRequest(**batch_request_parameters)
print(context.get_batch_list(batch_request=batch_request))

可能的解决方向

1. 修复正则表达式的转义问题

YAML配置中的default_regex.pattern存在正则语法错误:.在正则中代表任意字符,需要转义为\.才能匹配文件名中的实际点号。修改后的pattern应为:

pattern: (.*)_FVS_FERNWAERME\.1_waermeprognose\.parquet

(注:YAML中不需要额外转义反斜杠,直接写\.即可)

2. 给Batch Request添加筛选参数

默认情况下,InferredAssetAzureDataConnector可能需要明确的筛选条件才能返回批次。可以在请求中添加batch_filter_parameters或limit参数:

batch_request_parameters = {
    "datasource_name": "dlsbeoptdev_machinelearning_waermeprognose_output_neuralnet",
    "data_connector_name": "default_inferred_data_connector_name",
    "data_asset_name": "DEFAULT_ASSET_NAME",
    "limit": 3,  # 指定返回的批次数量
    # 或者按date筛选
    # "batch_filter_parameters": {"date": "2021-12-01"}
}

3. 检查保存后的数据源配置

sanitize_yaml_and_save_datasource可能会修改配置内容,建议前往great_expectations/datasources/目录下查看保存后的YAML文件,确认以下配置项与原配置一致:

  • azure_options中的账号URL和凭证
  • container名称
  • name_starts_with路径
  • default_regex的pattern和group_names

4. 确认路径大小写匹配

Azure Blob存储的路径是大小写敏感的,检查name_starts_with的路径与Blob中实际文件路径的大小写是否完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 16:25:31