Community Connector API 参考

必需函数

getConfig()

返回连接器的可由用户配置的选项。

请求

@param {Object} request 一个包含配置请求参数的 JavaScript 对象。

这个用于提供参数的 JavaScript 对象包含采用以下结构的数据:

{
      languageCode: string
    }
    
字段名称 类型 说明
languageCode string 表示用户语言的代码。您可以根据需要使用此代码为用户返回本地化版本的配置选项。请参阅所支持语言和代码的完整列表。
configParams object 如果上一次对 getConfig() 的调用包含 .setIsSteppedConfig(true),则此对象存在。此对象包含到目前为止由用户提供的配置值。
请求示例

下例就是一个为语言设为意大利语的用户发出的 getConfig 请求:

{
      languageCode: "it"
    }
    

响应

数据洞察服务

@return {object} 一个 JavaScript 对象,表示给定请求的配置。

示例
function getConfig(request) {
      var cc = DataStudioApp.createCommunityConnector();
      var config = cc.getConfig();

      config
          .newTextInput()
          .setId('exampleTextInput')
          .setName('Single line text')
          .setHelpText('Helper text for single line text')
          .setPlaceholder('Lorem Ipsum');

      config
          .newTextArea()
          .setId('exampleTextArea')
          .setName('Text area')
          .setHelpText('Helper text for text area')
          .setPlaceholder('Lorem Ipsum');

      config
          .newSelectSingle()
          .setId('exampleSelectSingle')
          .setName('Select single')
          .setHelpText('Helper text for select single')
          .setAllowOverride(true)
          .addOption(config.newOptionBuilder().setLabel('Lorum foo').setValue('lorem'))
          .addOption(config.newOptionBuilder().setLabel('Ipsum Bar').setValue('ipsum'))
          .addOption(config.newOptionBuilder().setLabel('Sit').setValue('amet'));

      config
          .newSelectMultiple()
          .setId('exampleSelectMultiple')
          .setName('Select multiple')
          .setHelpText('Helper text for select multiple')
          .addOption(config.newOptionBuilder().setLabel('Lorum foo').setValue('lorem'))
          .addOption(config.newOptionBuilder().setLabel('Ipsum Bar').setValue('ipsum'))
          .addOption(config.newOptionBuilder().setLabel('Sit').setValue('amet'));

      config
          .newCheckbox()
          .setId('exampleCheckbox')
          .setName('This is a checkbox')
          .setHelpText('Helper text for checkbox');

      config
          .newInfo()
          .setId('exampleInfo')
          .setText('Examle instructions text used in Info')

      config.setDateRangeRequired(true);
      config.setIsSteppedConfig(false);

      return config.build();
    }
    

旧版

@return {object} 一个 JavaScript 对象,表示应向用户显示的连接器配置。

响应中包含采用以下结构的连接器配置:

  {
        configParams: [
          {
            type: string(ConfigType),
            name: string,
            displayName: string,
            helpText: string,
            placeholder: string,
            isDynamic: boolean,
            parameterControl: {
              allowOverride: boolean
            },
            options: [
              {
                label: string,
                value: string
              }
            ]
          }
        ],
        dateRangeRequired: boolean,
        isSteppedConfig: boolean
      }
    

字段名称 类型 说明
configParams[] object 连接器所需的由用户提供的值。每一项表示一个用户输入字段。
configParams[].type string (ConfigType) 输入字段的类型。
configParams[].name string 输入字段的 ID。
它应该是不含空格的非空字符串。
configParams[].displayName string 输入字段的文本标签。
configParams[].helpText string 要显示的文本,用于向用户提供有关字段预期值的额外帮助。
configParams[].placeholder string 仅在 typeTEXTINPUTTEXTAREA 时使用
这是占位符文字,用于以简短提示的形式描述输入字段的预期值。
configParams[].isDynamic boolean 此字段是否用于动态填充之后的配置条目。默认值为 false
configParams[].parameterControl.allowOverride boolean 允许覆盖参数。如果设为 true,则数据源创建者可以为报告编辑者启用此功能
allowOverride 的默认值为 false。如果您不想允许覆盖某个参数,则可以省去 allowOverride 属性。
configParams[].options[] list 仅在 typeSELECT 时使用
用于提供所有选项的列表。
options[].label string 选项的标签。
options[].value string 选项的值。
它应该是不含空格和逗号的非空字符串。
dateRangeRequired boolean 如果为 true,则需要为 getData() 请求提供日期范围。默认日期范围为过去 28 天(不包括 today)。对于需要日期范围才能运行查询的数据 API,必须设置日期范围;如果限定日期范围可以使向数据 API 发送的请求更为高效,则也应该设置日期范围。默认值为 false
isSteppedConfig boolean 如果为 true,数据洞察会提示用户回答当前的一组配置问题,然后将已回答的问题返回给对 getConfig() 的后续调用。如果为 false(默认),用户将能够点击连接并进入架构页面。

响应示例

下例显示了单行文本框、文本区域、单选下拉列表、多选下拉列表、复选框和信息框的配置。在报告中可以覆盖单选值。

  {
        configParams: [
          {
            type: "TEXTINPUT",
            name: "exampleTextInput",
            displayName: "Single line text",
            helpText: "Helper text for single line text",
            placeholder: "Lorem Ipsum"
          },
          {
            type: "TEXTAREA",
            name: "exampleTextArea",
            displayName: "Text area",
            helpText: "Helper text for text area",
            placeholder: "Lorem Ipsum"
          },
          {
            type: "SELECT_SINGLE",
            name: "exampleSELECT_SINGLE",
            displayName: "Select single",
            helpText: "Helper text for select-single",
            parameterControl: {
              allowOverride: true
            },
            options: [
              {
                label: "Lorem foo",
                value: "lorem"
              },
              {
                label: "Ipsum bar",
                value: "ipsum"
              },
              {
                label: "Sit",
                value: "amet"
              }
            ]
          },
          {
            type: "SELECT_MULTIPLE",
            name: "exampleSELECT_MULTIPLE",
            displayName: "Select multiple",
            helpText: "Helper text for select-multiple",
            options: [
              {
                label: "Lipsum",
                value: "lipsum"
              },
              {
                label: "Foo Bar",
                value: "foobar"
              },
              {
                label: "Dolor Sit",
                value: "amet"
              }
            ]
          },
          {
            type: "CHECKBOX",
            name: "exampleCheckbox",
            displayName: "This is a checkbox",
            helpText: "Helper text for checkbox",
          },
          {
            type: "INFO",
            name: "exampleInfo",
            text: "Example instructions text used in Info"
          }
        ],
        dateRangeRequired: false
      }
    

getSchema()

返回给定请求的架构。它提供连接器的数据组织结构的相关信息。对于每个字段,它都会包含标识符、名称、数据类型等详细信息。

请求

@param {Object} request 一个包含架构请求参数的 JavaScript 对象。

这个用于提供参数的 JavaScript 对象包含采用以下结构的数据:

{
      "configParams": object
    }
    
字段名称 类型 说明
configParams Object 一个 JavaScript 对象,包含用户为连接器定义的配置参数提供的值。
请求示例

getSchema 请求对象示例:

{
      "configParams": {
        "exampleSelectMultiple": "foobar,amet",
        "exampleSelectSingle": "ipsum",
        "exampleTextInput": "Lorem Ipsum Dolor Sit Amet",
        "exampleTextArea": "NA",
        "exampleCheckbox": "true"
      }
    }
    

响应

数据洞察服务

@return {object} 一个 JavaScript 对象,表示给定请求的架构。

示例
function getSchema(request) {
      var cc = DataStudioApp.createCommunityConnector();
      var fields = cc.getFields();
      var types = cc.FieldType;

      var created = fields.newDimension()
          .setId('Created')
          .setName('Date Created')
          .setDescription('The date that this was created')
          .setType(types.YEAR_MONTH_DAY)
          .setGroup('Date');

      var amount = fields.newMetric()
          .setId('Amount')
          .setName('Amount (USD)')
          .setDescription('The cost in US dollars')
          .setType(types.CURRENCY_USD)
          .setIsHidden(true);

      var amountper = fields.newMetric()
          .setId('AmountPer')
          .setName('Amount Per Dimension')
          .setDescription('The summed cost')
          .setType(types.CURRENCY_USD)
          .setGroup('Money')
          .setFormula('sum($Amount)');

      var probability = fields.newMetric()
          .setId('Probability')
          .setName('Probability (Close rate)')
          .setDescription('The probability that a store closes')
          .setType(types.PERCENT);

      var opportunityname = fields.newDimension()
          .setId('OpportunityName')
          .setName('Opportunity Name')
          .setDescription('The name of the opportunity')
          .setType(types.TEXT);

      var isverified = fields.newDimension()
          .setId('IsVerified')
          .setName('Verified Status')
          .setDescription('Whether or not the store is verified')
          .setType(types.BOOLEAN);

      var company = fields.newDimension()
          .setId('Company')
          .setName('Incorporated Company Name')
          .setDescription('The name of the company the store belongs to')
          .setType(types.TEXT);

      fields.setDefaultMetric(amountper.getId());
      fields.setDefaultDimension(created.getId());

      return { 'schema': fields.build() };
    }
    

旧版

@return {object} 一个 JavaScript 对象,表示给定请求的架构。

该函数会返回采用以下结构的架构:

  {
        "schema": [
          {
            object(Field)
          }
        ]
      }
    

字段名称 类型 说明
schema[] object(Field) 给定请求的架构,包含有关各个字段的详细信息。

响应示例

  {
        "schema": [
          {
            "name": "Created",
            "label": "Date Created",
            "description": "The date that this was created",
            "dataType": "STRING",
            "group": "Date",
            "isDefault": true,
            "semantics": {
              "conceptType": "DIMENSION",
              "semanticGroup": "DATE_AND_TIME",
              "semanticType": "YEAR_MONTH_DAY",
              "isReaggregatable": false
            }
          },
          {
            "name": "Amount",
            "label": "Amount (USD)",
            "description": "The cost in US dollars",
            "dataType": "NUMBER",
            "isHidden": true,
            "semantics": {
              "conceptType": "METRIC",
              "semanticGroup": "CURRENCY",
              "semanticType": "CURRENCY_USD",
            }
          },
          {
            "name": "AmountPer",
            "label": "Amount Per Dimension",
            "description": "The summed cost",
            "dataType": "NUMBER",
            "group": "Money",
            "formula": "sum(Amount)",
            "isDefault": true,
            "semantics": {
              "conceptType": "METRIC",
              "semanticGroup": "CURRENCY",
              "semanticType": "CURRENCY_USD",
              "isReaggregatable": true
            }
          },
          {
            "name": "Probability",
            "label": "Probability (Close rate)",
            "description": "The probability that a store closes",
            "dataType": "NUMBER",
            "semantics": {
              "conceptType": "METRIC",
              "semanticGroup": "NUMERIC",
              "semanticType": "PERCENT",
              "isReaggregatable": false
            }
          },
          {
            "name": "OpportunityName",
            "label": "Opportunity Name",
            "description": "The name of the opportunity",
            "dataType": "STRING",
            "semantics": {
              "conceptType": "DIMENSION",
              "semanticType": "TEXT",
              "isReaggregatable": false
            }
          },
          {
            "name": "IsVerified",
            "label": "Verified Status",
            "description": "Whether or not the store is verified",
            "dataType": "BOOLEAN",
            "semantics": {
              "conceptType": "DIMENSION",
              "semanticType": "BOOLEAN",
              "isReaggregatable": false
            }
          },
          {
            "name": "Company",
            "label": "Incorporated Company Name",
            "description": "The name of the company the store belongs to",
            "dataType": "STRING",
            "semantics": {
              "conceptType": "DIMENSION",
              "semanticType": "TEXT",
              "isReaggregatable": false
            }
          }
        ]
      }
    

getData()

以表格形式返回给定请求所要求的数据。

请求

@param {Object} request 一个包含数据请求参数的 JavaScript 对象。

request 参数包含用户提供的值和可用于完成数据请求的其他信息。它采用以下结构:

{
      "configParams": object,
      "scriptParams": {
        "sampleExtraction": boolean,
        "lastRefresh": string
      },
      "dateRange": {
        "startDate": string,
        "endDate": string
      },
      "fields": [
        {
          "name": string
        }
      ],
      "dimensionsFilters": [
        [{
          "fieldName": string,
          "values": string[],
          "type": DimensionsFilterType,
          "operator": Operator
        }]
      ]
    }
    
名称 类型 说明
configParams object 一个对象,包含用户为连接器定义的配置参数提供的值。
scriptParams ScriptParams 一个对象,包含与连接器执行相关的信息
dateRange DateRange 默认情况下,提供的日期范围将是过去 28 天(不包括今天)。如果用户为报告应用日期范围过滤器,则提供的日期范围将反映用户的选择。
sampleExtraction 设为 `true** 时,指定的开始日期和结束日期均为比今天早两天的日期。
fields[].name string 所请求字段的名称。
fields[].forFilterOnly boolean 将字段标为仅用于过滤请求。如果您的连接器应用了过滤器,请勿返回此字段。
dimensionsFilters DimensionsFilters 一个由用户选择的过滤器组成的嵌套数组。最内层的数组应通过 OR 运算结合到一起,最外层的数组应通过 AND 运算结合到一起。

dateRange

名称 类型 说明
startDate string 在过滤数据时使用的开始日期。仅在 dateRangeRequired 设置为 true 时适用。它将采用 YYYY-MM-DD 格式。
endDate string 在过滤数据时使用的结束日期。仅在 dateRangeRequired 设置为 true 时适用。它将采用 YYYY-MM-DD 格式。

scriptParams

名称 类型 说明
sampleExtraction boolean 如果为 true,则表示 getData() 请求的目的是自动检测语义类型
lastRefresh string 一个时间戳,表示最近一次发出数据刷新请求的时间。

dimensionsFilters

名称 类型 说明
fieldName string 要过滤的字段的名称
values string[] 一个数组,包含要通过运算符计算的值。
type "INCLUDE" | "EXCLUDE" getData() 响应中是应包含还是应排除符合此过滤条件的数据。
operator FilterOperator 要应用的运算符
请求示例
{
      "configParams": {
        "multiSelectExample": "foo,bar",
        "singleSelectExample": "Lipsum",
        "singleTextExample": "Lorem Ipsum",
        "multiTextExample": "Dolor Sit Amet",
        "includeCheckExample": "true"
      },
      "dateRange": {
        "endDate": "2017-07-16",
        "startDate": "2017-06-19"
      },
      "fields": [
        {"name": "count"},
        {"name": "family"}
      ]
    }

    

响应

默认

@return {object} 一个 JavaScript 对象,包含给定请求所要求的架构和数据。

此函数以表格形式返回可满足给定请求的数据。表格中数据的架构包含在响应中。响应应采用以下结构:

  {
        "schema": [
          {
            object(Field)
          }
        ],
        "rows": [
          {
            "values": [
              string
            ]
          }
        ]
      }
    
名称 类型 说明
schema Field[] 所请求的字段的架构。必须提供 field.namefield.dataTypefield 对象的顺序应与每行中各值的顺序一致。
rows[].values[] string | number | boolean 所请求的字段的值。
值的顺序必须与 schema 中指定的 Fields 的顺序一致。
filtersApplied boolean 如果成功应用了所有过滤器,则设为 true,否则设为 false。

字段

名称 类型 说明
name string 字段的名称。
dataType DataType 字段的类型。
示例
{
      "schema": [
        {
          "name": "OpportunityName",
          "dataType": "STRING"
        },
        {
          "name": "IsVerified",
          "dataType": "BOOLEAN"
        },
        {
          "name": "Created",
          "dataType": "STRING"
        },
        {
          "name": "Amount",
          "dataType": "NUMBER"
        }
      ],
      "rows": [
        {
          "values": ["Interesting", true, "2017-05-23", "120453.65"]
        },
        {
          "values": ["SF", false, "2017-03-03", "362705286.92"]
        },
        {
          "values": ["Spring Sale", true, "2017-04-21", "870.12"]
        }
      ],
      "filtersApplied": false
    }
    

BigQuery

@return {object} 一个 JavaScript 对象,表示 BigQuery 查询配置。

示例
var bqTypes = DataStudioApp.createCommunityConnector().BigQueryParameterType;
    var configuration = DataStudioApp.createCommunityConnector().newBigQueryConfig()
        .setBillingProjectId('billingProjectId')
        .setQuery('myQueryString')
        .setUseStandardSql(true)
        .setAccessToken('myAccessToken')
        .addQueryParameter('myUrlParameterName', bqTypes.STRING, 'myUrlParameterValue')
        .build();
    

getAuthType()

返回连接器的身份验证方法。

请求

此函数不接受任何参数。

响应

数据洞察服务

@return {object} 一个对象,包含连接器使用的 AuthType。如果 AuthTypeUSER_TOKENUSER_PASSKEY 之一,则还可以设置可选的 helpUrl

示例
function getAuthType() {
      var cc = DataStudioApp.createCommunityConnector();
      return cc.newAuthTypeResponse()
        .setAuthType(cc.AuthType.USER_PASS)
        .setHelpUrl('https://www.example.org/connector-auth-help')
        .build();
    }
    

旧版

@return {object} 一个对象,包含连接器使用的 AuthType。如果 AuthTypeUSER_TOKENUSER_PASSKEY 之一,则还可以设置可选的 helpUrl

响应采用以下结构:

 {
       "type": string(AuthType),
       "helpUrl": string
     }
    

字段名称 类型 说明
type string(AuthType) 表示身份验证类型的值。
helpUrl string typeUSER_TOKENUSER_PASSKEY 之一时,要向用户显示的可选网址。此网址所指向的页面应能让用户详细了解如何对连接器进行身份验证。

响应示例
{
      "type": "USER_TOKEN",
      "helpUrl": "https://www.example.org/connector-auth-help"
    }
    

必需的身份验证函数

isAuthValid()

检查第三方服务凭据是否有效。

请求

此函数不接受任何参数。

响应

@return {boolean} 如果第三方服务凭据有效,则返回 true,否则返回 false。如果为 true,则应该会授权对 getDatagetSchema 的调用。如果为 false,则系统可能会向用户发送通知,告知其身份验证已过期,并要求他们重新授权。

resetAuth()

清除第三方服务的用户凭据。

请求

此函数不接受任何参数。

响应

响应为空。

必需的 OAuth2 函数

get3PAuthorizationUrls()

返回授权网址,以便为第三方服务启动 OAuth 2.0 流程。

请求

此函数不接受任何参数。

响应

@return {string} 返回第三方服务的授权网址。系统会向用户显示授权网址,以启动 OAuth 2.0 流程,从而向第三方服务授予访问权限。

authCallback()

处理在 OAuth 2.0 授权过程中从第三方服务收到的授权响应。

请求

@param {string} request 一个 JSON 编码对象,表示 OAuth 2.0 流程完成后收到的请求数据。

OAuth 2.0 流程完成后收到的 request 参数应包含采用以下结构的数据(下面提供了 2 种表示法,一种适用于成功的请求,另一种适用于失败的请求):

// Success
    {
      "parameter":
        {
          "code": string
        }
    }

    // Error
    {
      "parameter":
        {
          "error": string
        }
    }
    
字段名称 类型 说明
parameter object 成功完成 OAuth 2.0 流程后收到的 code 值,或 OAuth 2.0 流程失败后收到的 error 值。这些值可用于进一步的回调处理。
code string 如果 OAuth 2.0 流程成功,则会显示该字段,其中包含 OAuth 2.0 回调请求(从第三方服务收到)中 code 查询参数的值。它是一个授权代码,可用于进一步的 OAuth 2.0 处理。
error object 如果尝试执行的 OAuth 2.0 流程失败,则会显示该字段,其中包含 OAuth 2.0 回调请求(从第三方服务收到)中 error 查询参数的值。它是一条错误消息,可用于进一步的 OAuth 2.0 处理和通知创建。

响应

@return {object} 返回一个 HTML 对象,该对象会呈现出来并显示给用户。如需了解详情,请参阅 OAuth 库文档以及 Apps 脚本的 HTML 服务文档

必需的用户/密码和密钥函数

setCredentials()

存储从数据洞察传入的凭据。

请求

@param {Object} request 一个包含数据请求参数的 JavaScript 对象。

request 参数包含用户输入的凭据。该参数将采用 userPassuserTokenkey 之一,具体取决于 getAuthType() 的响应。

{
      "userPass": {
        "username": string,
        "password": string
      },
      "userToken": {
        "username": string,
        "token": string,
      },
      "key": string
    }
    
字段名称 类型
userPass.username 用户提供的用户名。
userPass.password 用户提供的密码。
userToken.username 用户提供的用户名。
userToken.token 用户提供的令牌。
key 用户提供的 API 密钥或令牌。

响应

@return {object} 一个 JavaScript 对象,包含指示能否成功设置凭据的错误代码。

{
      "errorCode": string("NONE" | "INVALID_CREDENTIALS")
    }
    
字段名称 类型 说明
errorCode enum(string) setCredentials 调用的 errorCode
错误代码名称 说明
"NONE" 能够成功设置凭据。
"INVALID_CREDENTIALS" 提供的凭据无效。
响应示例
{
      "errorCode": "NONE"
    }
    

可选函数

isAdminUser()

检查用户是否是连接器的管理员。此函数用于启用/停用调试功能。如需了解详情,请参阅启用/停用调试功能

请求

此函数不接受任何参数。

响应

@return {boolean} 如果用户是连接器的管理员,则返回 true。如果此函数被省去或返回 false,则用户不会被视为管理员用户。如需了解详情,请参阅启用/停用调试功能

数据类型

字段

数据洞察服务

有关字段类型中存在的所有方法,请参阅类字段

创建字段

var cc = DataStudioApp.createCommunityConnector();
    var types = cc.FieldType;
    var aggregations = cc.AggregationType;

    var myField = cc.newDimension() // Or newMetric
      .setId('my_unique_identifier')
      .setName('My friendly name')
      .setDescription('My short description')
      .setType(types.YEAR_MONTH_DAY)
      // formula fields cannot be hidden.
      .setIsHidden(true)
      .setGroup('My group name');
    

旧版

描述架构中某条记录/某一行的特定字段。

每个字段都采用以下结构:

{
      "name": string,
      "label": string,
      "description": string,
      "dataType": string(DataType),
      "group": string,
      "formula": string,
      "isDefault": boolean,
      "defaultAggregationType": string(DefaultAggregationType),
      "semantics": {
        "conceptType": string(ConceptType),
        "semanticType": string(SemanticType),
        "semanticGroup": string(SemanticGroup),
        "isReaggregatable": boolean
      }
    }
    
字段名称 类型 说明
name string 字段的名称。
它用作唯一标识符。仅允许使用字母数字字符和下划线。
label string 字段的显示名。它是显示在界面中的“易记”名称。
description string 对字段的说明(可选)。仅允许使用纯文本。
dataType string(DataType) 字段的数据类型。
isHidden boolean 一个可选属性。设为 true 以隐藏字段。隐藏的字段不会显示在字段屏幕上,也不会在图表中显示为可供选择的字段,但可以在计算字段公式中使用。公式字段无法隐藏。
group string 一个可选属性,用于指示字段属于某个组。如果 fieldAfieldB 都属于 groupC,那么它们在界面的“指标选择器”或“维度选择器”中将归为一组。如果为至少一个字段指定了组,则系统会将没有组的字段归入 Default Group 中。
formula string

一个可选属性,决定着字段的计算方式。如果公式无效,则该字段将被舍弃。如果同时提供了聚合属性(isReaggregatabledefaultAggregationType)以及 formula,则系统会忽略聚合属性。

只有某些 semanticType 支持 formula 字段。一般来说,语义类型是文本或数字时使用公式的效果最好,不过 dategeo 除外。如果日期或地理位置公式的文本输出与某个语义类型匹配,则可以使用该语义类型。否则,语义类型应是 string

如果您手动设置该字段,将无法在字段编辑器中修改它。要详细了解如何创建公式,请参阅计算字段简介

isDefault boolean 一个可选属性,用于指示是否应将某个字段选作默认 dimensionmetric。只应为架构设定一个默认 dimension 和一个默认 metric
defaultAggregationType string(DefaultAggregationType) 一个可选属性,用于指示数据洞察默认应对此字段采用何种聚合。用户可以更改此值。
semantics object 此属性用于提供有关字段的语义信息。如果架构中的任意字段有此属性(以及 semantics.semanticType),则会停用自动语义检测。如果所有字段都没有此属性,则会启用自动语义检测
semantics.conceptType string(ConceptType) 指示字段是维度还是指标。
semantics.semanticType string(SemanticType) 字段的语义类型。如果提供,则会停用自动语义检测
semantics.semanticGroup string(SemanticGroup) 字段的语义组。通过此可选属性可以对语义类型进行分组。数据洞察目前不使用此字段,但将来也许会使用。
semantics.isReaggregatable boolean true 表示可将“聚合”应用到此字段;在数据洞察中,系统会默认将“聚合”设为“总和”且用户可以更改聚合。
false 表示不应将“聚合”应用到此字段;在数据洞察中,系统会默认将“聚合”设为“自动”且用户无法更改聚合。
默认值为 true
注意:此属性仅会影响指标字段。

ConceptType

语义概念类型的值可以是以下任一值:

枚举值 说明
DIMENSION 维度。维度是具有值的数据类别(例如,名称、说明或其他类别特征)。
METRIC 指标。指标可衡量维度值且可表示测量结果(例如,总和、计数、比率等)。

DataType

架构数据类型的值可以是以下任一值:

枚举值 说明
STRING 任意字符串。由 JSON 架构规范定义。
NUMBER 数字数据类型,采用双精度 64 位浮点格式 (IEEE 754)。
BOOLEAN 布尔值,要么为 true,要么为 false。由 JSON 架构规范定义。

SemanticType

枚举值 说明 示例
YEAR YYYY "2017"
YEAR_QUARTER YYYYQ "20171"
YEAR_MONTH YYYYMM "201703"
YEAR_WEEK YYYYww "201707"
YEAR_MONTH_DAY YYYYMMDD "20170317"
YEAR_MONTH_DAY_HOUR YYYYMMDDHH "2017031403"
YEAR_MONTH_DAY_SECOND YYYYMMDDHHMMSS "20170314031545"
QUARTER (1, 2, 3, 4) "1"
MONTH MM "03"
WEEK ww "07"
MONTH_DAY MMDD "0317"
DAY_OF_WEEK 一个十进制数,范围为 0-6,其中 0 表示星期日 "0"
DAY DD "17"
HOUR HH "02"
MINUTE mm "12"
DURATION 持续时长(以秒为单位) 6340918234
COUNTRY 国家/地区 "United States"
COUNTRY_CODE 国家/地区代码 "US"
CONTINENT 大洲 "Americas"
CONTINENT_CODE 大洲代码 "019"
SUB_CONTINENT 次大陆 "North America"
SUB_CONTINENT_CODE 次大陆代码 "003"
REGION 地区 "California"
REGION_CODE 地区代码 "CA"
CITY 城市 "Mountain View"
CITY_CODE 城市代码 "1014044"
METRO_CODE 都市圈代码 "200807"
LATITUDE_LONGITUDE 纬度和经度 "51.5074, -0.1278"
NUMBER 十进制数 14
PERCENT 十进制百分比(可以超过 1.0) 1.0
TEXT 自由格式文本 "Here is some text"
BOOLEAN truefalse true
URL 文本形式的网址 "https://www.google.com"

公式语义类型

枚举值 说明 公式
HYPERLINK 带文本标签的链接 "HYPERLINK($url, $description)"
IMAGE 图片的网址 "IMAGE($image_url, $alt_text)"
IMAGELINK 带图片标签的链接 "HYPERLINK($url, $image_field)"

货币语义类型

所有货币值均为 JavaScript 数字。允许使用负值。

枚举值 说明
CURRENCY_AED 阿拉伯联合酋长国迪拉姆 (dh)
CURRENCY_ALL 阿尔巴尼亚列克 (Lek)
CURRENCY_ARS 阿根廷比索 ($)
CURRENCY_AUD 澳元 ($)
CURRENCY_BDT 孟加拉塔卡 (৳)
CURRENCY_BGN 保加利亚列弗 (lev)
CURRENCY_BOB 玻利维亚诺 (Bs)
CURRENCY_BRL 巴西雷亚尔 (R$)
CURRENCY_CAD 加元 ($)
CURRENCY_CDF 刚果法郎 (FrCD)
CURRENCY_CHF 瑞士法郎 (CHF)
CURRENCY_CLP 智利比索 ($)
CURRENCY_CNY 人民币 (¥)
CURRENCY_COP 哥伦比亚比索 ($)
CURRENCY_CRC 哥斯达黎加科朗 (₡)
CURRENCY_CZK 捷克克朗 (Kč)
CURRENCY_DKK 丹麦克朗 (kr.)
CURRENCY_DOP 多米尼加比索 (RD$)
CURRENCY_EGP 埃及磅 (£)
CURRENCY_ETB 埃塞俄比亚比尔 (Birr)
CURRENCY_EUR 欧元 (€)
CURRENCY_GBP 英镑 (£)
CURRENCY_HKD 港元 ($)
CURRENCY_HRK 克罗地亚库纳 (kn)
CURRENCY_HUF 匈牙利福林 (Ft)
CURRENCY_IDR 印度尼西亚卢比 (Rp)
CURRENCY_ILS 以色列新谢克尔 (₪)
CURRENCY_INR 印度卢比 (₹)
CURRENCY_IRR 伊朗里亚尔 (Rial)
CURRENCY_ISK 冰岛克朗 (kr)
CURRENCY_JMD 牙买加元 ($)
CURRENCY_JPY 日元 (¥)
CURRENCY_KRW 韩元 (₩)
CURRENCY_LKR 斯里兰卡卢比 (Rs)
CURRENCY_LTL 立陶宛立特 (Lt)
CURRENCY_MNT 蒙古图格里克 (₮)
CURRENCY_MVR 马尔代夫拉菲亚 (Rf)
CURRENCY_MXN 墨西哥比索 ($)
CURRENCY_MYR 马来西亚林吉特 (RM)
CURRENCY_NOK 挪威克朗 (kr)
CURRENCY_NZD 新西兰元 ($)
CURRENCY_PAB 巴拿马巴波亚 (B/.)
CURRENCY_PEN 秘鲁新索尔 (S/.)
CURRENCY_PHP 菲律宾比索 (₱)
CURRENCY_PKR 巴基斯坦卢比 (Rs)
CURRENCY_PLN 波兰兹罗提 (zł)
CURRENCY_RON 罗马尼亚列伊 (RON)
CURRENCY_RSD 塞尔维亚第纳尔 (din)
CURRENCY_RUB 俄罗斯卢布 (₽)
CURRENCY_SAR 沙特里亚尔 (Rial)
CURRENCY_SEK 瑞典克朗 (kr)
CURRENCY_SGD 新加坡元 ($)
CURRENCY_THB 泰国铢 (฿)
CURRENCY_TRY 土耳其里拉 (₺)
CURRENCY_TWD 新台币 (NT$)
CURRENCY_TZS 坦桑尼亚先令 (TSh)
CURRENCY_UAH 乌克兰赫夫纳 (грн.)
CURRENCY_USD 美元 ($)
CURRENCY_UYU 美元 ($)
CURRENCY_VEF 委内瑞拉强势玻利瓦尔 (Bs)
CURRENCY_VND 越南盾 (₫)
CURRENCY_YER 也门里亚尔 (Rial)
CURRENCY_ZAR 南非兰特 (R)

SemanticGroup

以下只是建议值列表,您可以随意选择未在列表中列出的值。不过,设置此字段不会覆盖数据洞察在字段编辑器的 Type 选项中使用的组。

建议值 说明
NUMERIC 数字组
DATETIME 日期时间组
GEO 地理位置组
CURRENCY 货币组

DefaultAggregationType

枚举值 说明
AVG 条目的算术平均值(均值)。
COUNT 条目数。
COUNT_DISTINCT 非重复条目的数量。
MAX 条目数上限。
MIN 条目数下限。
SUM 条目总和。
NONE 无聚合
AUTO 应为涉及聚合的计算字段设置该值

AuthType

身份验证方法类型的值可以是以下任一值:

枚举值 说明
NONE 表示连接器不需要进行身份验证。
OAUTH2 表示连接器使用 OAuth 2.0 进行身份验证。
KEY 表示连接器使用 API 密钥进行身份验证。
USER_PASS 表示连接器使用用户名/密码进行身份验证。
USER_TOKEN 表示连接器使用用户名/令牌进行身份验证。

ConfigType

配置元素类型的值可以是以下任一值:

枚举值 说明
TEXTINPUT 输入元素将是单行文本框。
TEXTAREA 输入元素将是多行 textarea 框。
SELECT_SINGLE 输入元素将是一个包含多个选项的下拉列表,只能从中选择一个选项。
SELECT_MULTIPLE 输入元素将是一个包含多个选项的下拉列表,可以从中选择多个选项。
CHECKBOX 输入元素将是单个复选框,可用于捕获布尔值。
INFO 这是一个静态的纯文本框,可用于向用户提供说明或信息。任何链接都是可点击的。

过滤器运算符

运算符
EQUALS
CONTAINS
REGEXP_PARTIAL_MATCH
REGEXP_EXACT_MATCH
IN_LIST
IS_NULL
BETWEEN
NUMERIC_GREATER_THAN
NUMERIC_GREATER_THAN_OR_EQUAL
NUMERIC_LESS_THAN
NUMERIC_LESS_THAN_OR_EQUAL

EQUALS

比较值与维度值完全匹配。

子句示例:

{
        "operator": "EQUALS",
        "type": "INCLUDE",
        "values": ["USA"],
        "fieldName": "Country"
    }
    

应用过滤器之前的数据:

国家/地区 城市
USA Seattle
CA Montreal
ROK Seoul

应用过滤器之后的数据:

国家/地区 城市
USA Seattle

CONTAINS

比较值包含在维度值内。

子句示例:

{
        "operator": "CONTAINS",
        "type": "INCLUDE",
        "values": ["A"],
        "fieldName": "COUNTRY"
    }
    

应用过滤器之前的数据:

国家/地区 城市
USA Seattle
CA Montreal
ROK Seoul

应用过滤器之后的数据:

国家/地区 城市
USA Seattle
CA Montreal

REGEXP_PARTIAL_MATCH

维度值包含正则表达式。

子句示例:

{
        "operator": "REGEXP_PARTIAL_MATCH",
        "type": "INCLUDE",
        "values": ["(?i)R[A-Z]*"],
        "fieldName": ""
    }
    

应用过滤器之前的数据:

国家/地区 城市
USA Seattle
CA Montreal
ROK Seoul
RU Moscow

应用过滤器之后的数据:

国家/地区 城市
ROK Seoul
RU Moscow

REGEXP_EXACT_MATCH

维度值与正则表达式匹配。

子句示例:

{
        "operator": "REGEXP_EXACT_MATCH",
        "type": "INCLUDE",
        "values": ["^R[A-Z]*K$"],
        "fieldName": ""
    }
    

应用过滤器之前的数据:

国家/地区 城市
USA Seattle
CA Montreal
ROK Seoul
RU Moscow

应用过滤器之后的数据:

国家/地区 城市
ROK Seoul

IN_LIST

一个或多个比较值与维度值完全匹配。

子句示例:

{
        "operator": "IN_LIST",
        "type": "INCLUDE",
        "values": ["USA", "CA"],
        "fieldName": "Country"
    }
    

应用过滤器之前的数据:

国家/地区 城市
USA Seattle
CA Montreal
ROK Seoul

应用过滤器之后的数据:

国家/地区 城市
USA Seattle
CA Montreal

IS_NULL

如果维度值为 null,则匹配。

子句示例:

{
        "operator": "IS_NULL",
        "type": "INCLUDE",
        "values": [],
        "fieldName": "COUNTRY"
    }
    

应用过滤器之前的数据:

国家/地区 城市
USA Seattle
CA Montreal
ROK Seoul
RU Moscow
Terabithia

应用过滤器之后的数据:

国家/地区 城市
Terabithia

BETWEEN

如果维度值介于两个测试值之间,则匹配。

子句示例:

{
        "operator": "BETWEEN",
        "type": "INCLUDE",
        "values": ["20190101", "20190131"],
        "fieldName": "Date"
    }
    

应用过滤器之前的数据:

国家/地区 日期
USA 20190101
USA 20190111
USA 20190201

应用过滤器之后的数据:

国家/地区 日期
USA 20190101
USA 20190111

NUMERIC_GREATER_THAN

如果维度值大于测试值,则匹配。

子句示例:

{
        "operator": "NUMERIC_GREATER_THAN",
        "type": "INCLUDE",
        "values": ["20190101"],
        "fieldName": "Date"
    }
    

应用过滤器之前的数据:

国家/地区 日期
USA 20190101
USA 20190111
USA 20190201

应用过滤器之后的数据:

国家/地区 日期
USA 20190111
USA 20190201

NUMERIC_GREATER_THAN_OR_EQUAL

如果维度值大于或等于测试值,则匹配。

子句示例:

{
        "operator": "NUMERIC_GREATER_THAN_OR_EQUAL",
        "type": "INCLUDE",
        "values": ["20190101"],
        "fieldName": "Date"
    }
    

应用过滤器之前的数据:

国家/地区 日期
USA 20180101
USA 20190101
USA 20190111
USA 20190201

应用过滤器之后的数据:

国家/地区 日期
USA 20190101
USA 20190111
USA 20190201

NUMERIC_LESS_THAN

如果维度值小于或等于测试值,则匹配。

子句示例:

{
        "operator": "NUMERIC_LESS_THAN",
        "type": "INCLUDE",
        "values": ["20190101"],
        "fieldName": "Date"
    }
    

应用过滤器之前的数据:

国家/地区 日期
USA 20180101
USA 20190101
USA 20190111
USA 20190201

应用过滤器之后的数据:

国家/地区 日期
USA 20180101

NUMERIC_LESS_THAN_OR_EQUAL

如果维度值小于或等于测试值,则匹配。

子句示例:

{
        "operator": "NUMERIC_LESS_THAN_OR_EQUAL",
        "type": "INCLUDE",
        "values": ["20190101"],
        "fieldName": "Date"
    }
    

应用过滤器之前的数据:

国家/地区 日期
USA 20180101
USA 20190101
USA 20190111
USA 20190201

应用过滤器之后的数据:

国家/地区 日期
USA 20180101
USA 20190101