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

Google Data Studio自定义连接器Explore功能数据集配置错误排查

Google Data Studio自定义连接器Explore报错修复方案

问题描述

已完成外部API的GDS自定义连接器配置,部署后可正常查看字段列表,但运行Explore功能时触发通用错误:数据集配置错误 - Data Studio无法连接到您的数据集。当前使用的getData函数及测试数据如下:

原getData函数代码

function getData(request) {

  try {

    request.configParams = validateConfig(request.configParams);

    var requestedFields = getFields().forIds(
      request.fields.map(function(field) {
        return field.name;
      })
    );
    var data = JSON.parse(jsonSample).Table
    return {
      schema: requestedFields.build(),
      rows: data
    };

  }
  catch (e) {
    cc.newUserError()
      .setDebugText('Error fetching data from API. Exception details: ' + e)
      .setText(
        'The connector has encountered an unrecoverable error. Please try again later, or file an issue if this error persists.'
      )
      .throwException();
  }
}

测试用jsonSample内容

{
    "Table": [
        {
            "Entity": "Houston Heights",
            "EntityD": "",
            "Consolidation": "USD",
            "ConsolidationD": "United States of America, Dollars",
            "Scenario": "Actual",
            "ScenarioD": "",
            "Time": "2010M1",
            "TimeD": "Jan 2010",
            "View": "Periodic",
            "ViewD": "",
            "Account": "IFRS Balance Sheet",
            "AccountD": "",
            "Flow": "None",
            "FlowD": "",
            "Origin": "BeforeAdj",
            "OriginD": "",
            "IC": "None",
            "ICD": "",
            "UD1": "None",
            "UD1D": "",
            "UD2": "None",
            "UD2D": "",
            "UD3": "None",
            "UD3D": "",
            "UD4": "None",
            "UD4D": "",
            "UD5": "None",
            "UD5D": "",
            "UD6": "None",
            "UD6D": "",
            "UD7": "None",
            "UD7D": "",
            "UD8": "None",
            "UD8D": "",
            "CellValue": 2.25000000000000000000
        },
        {
            "Entity": "Houston Heights",
            "EntityD": "",
            "Consolidation": "USD",
            "ConsolidationD": "United States of America, Dollars",
            "Scenario": "Actual",
            "ScenarioD": "",
            "Time": "2010M1",
            "TimeD": "Jan 2010",
            "View": "Periodic",
            "ViewD": "",
            "Account": "IFRS Balance Sheet",
            "AccountD": "",
            "Flow": "None",
            "FlowD": "",
            "Origin": "BeforeAdj",
            "OriginD": "",
            "IC": "None",
            "ICD": "",
            "UD1": "Admin",
            "UD1D": "Admin",
            "UD2": "None",
            "UD2D": "",
            "UD3": "None",
            "UD3D": "",
            "UD4": "None",
            "UD4D": "",
            "UD5": "None",
            "UD5D": "",
            "UD6": "None",
            "UD6D": "",
            "UD7": "None",
            "UD7D": "",
            "UD8": "None",
            "UD8D": "",
            "CellValue": 2.240000000000000000000
        }
    ]
}

问题根源

Google Data Studio要求getData返回的rows数组必须是包含values数组的对象结构,即每个行数据格式为{ values: [字段值1, 字段值2, ...] },而非直接的键值对对象。原代码直接将jsonSample.Table(键值对数组)赋值给rows,格式不匹配导致报错。

修复方案

修改getData函数,将键值对格式的行数据转换为GDS要求的结构,确保values数组的顺序与requestedFields的字段顺序完全对应:

function getData(request) {
  try {
    request.configParams = validateConfig(request.configParams);

    var requestedFields = getFields().forIds(
      request.fields.map(function(field) {
        return field.name;
      })
    );
    var data = JSON.parse(jsonSample).Table;
    
    // 转换数据格式为GDS要求的结构
    var rows = data.map(function(rowObj) {
      return {
        values: requestedFields.asArray().map(function(field) {
          return rowObj[field.getId()];
        })
      };
    });

    return {
      schema: requestedFields.build(),
      rows: rows
    };
  } catch (e) {
    cc.newUserError()
      .setDebugText('Error fetching data from API. Exception details: ' + e)
      .setText(
        '连接器遇到不可恢复的错误,请稍后重试,若问题持续请提交反馈。'
      )
      .throwException();
  }
}

验证要点

  • 确认requestedFields.asArray()的字段顺序与values数组的元素顺序完全一致,GDS依赖该顺序映射字段与对应值
  • 检查连接器配置的字段类型与返回值类型匹配(如CellValue为数值型,需对应GDS中的数字字段)
  • 后续接入真实API时,需确保API返回的数据结构与测试用jsonSample一致,保证转换逻辑通用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 03:31:50