必需函数
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
|
仅在 type 为 TEXTINPUT 或 TEXTAREA 时使用这是占位符文字,用于以简短提示的形式描述输入字段的预期值。 |
configParams[].isDynamic
|
boolean
|
此字段是否用于动态填充之后的配置条目。默认值为 false
|
configParams[].parameterControl.allowOverride
|
boolean
|
允许覆盖参数。如果设为 true ,则数据源创建者可以为报告编辑者启用此功能allowOverride 的默认值为 false 。如果您不想允许覆盖某个参数,则可以省去 allowOverride 属性。
|
configParams[].options[]
|
list
|
仅在 type 为 SELECT 时使用用于提供所有选项的列表。 |
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.name 和 field.dataType 。field 对象的顺序应与每行中各值的顺序一致。 |
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
。如果 AuthType
是 USER_TOKEN
、USER_PASS
或 KEY
之一,则还可以设置可选的 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
。如果 AuthType
是 USER_TOKEN
、USER_PASS
或 KEY
之一,则还可以设置可选的 helpUrl
。
响应采用以下结构:
{
"type": string(AuthType),
"helpUrl": string
}
字段名称 | 类型 | 说明 |
---|---|---|
type
|
string(AuthType)
|
表示身份验证类型的值。 |
helpUrl
|
string
|
当 type 为 USER_TOKEN 、USER_PASS 或 KEY 之一时,要向用户显示的可选网址。此网址所指向的页面应能让用户详细了解如何对连接器进行身份验证。
|
响应示例
{
"type": "USER_TOKEN",
"helpUrl": "https://www.example.org/connector-auth-help"
}
必需的身份验证函数
isAuthValid()
检查第三方服务凭据是否有效。
请求
此函数不接受任何参数。
响应
@return {boolean}
如果第三方服务凭据有效,则返回 true
,否则返回 false
。如果为 true
,则应该会授权对 getData
和 getSchema
的调用。如果为 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
参数包含用户输入的凭据。该参数将采用 userPass
、userToken
或 key
之一,具体取决于 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
|
一个可选属性,用于指示字段属于某个组。如果 fieldA 和 fieldB 都属于 groupC ,那么它们在界面的“指标选择器”或“维度选择器”中将归为一组。如果为至少一个字段指定了组,则系统会将没有组的字段归入 Default Group 中。
|
formula
|
string
|
一个可选属性,决定着字段的计算方式。如果公式无效,则该字段将被舍弃。如果同时提供了聚合属性(
只有某些 如果您手动设置该字段,将无法在字段编辑器中修改它。要详细了解如何创建公式,请参阅计算字段简介。 |
isDefault
|
boolean
|
一个可选属性,用于指示是否应将某个字段选作默认 dimension 或 metric 。只应为架构设定一个默认 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 |
true 或 false |
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 |