Требуемые функции
getConfig()
Возвращает настраиваемые пользователем параметры соединителя.
Запрос
@param {Object} request
Объект JavaScript, содержащий параметры запроса конфигурации.
Объект JavaScript параметра содержит данные следующей структуры:
{
languageCode: string
}
Имя поля | Тип | Описание |
---|---|---|
languageCode | string | Код, представляющий язык пользователя. Этот код можно дополнительно использовать для возврата локализованной версии параметров конфигурации для пользователя. См. полный список поддерживаемых языков и кодов . |
configParams | объект | Присутствует, если предыдущий вызов getConfig() имел .setIsSteppedConfig(true) . Объект, содержащий предоставленные пользователем значения конфигурации. |
Пример запроса
Пример запроса getConfig
для пользователя, у которого установлен итальянский язык:
{
languageCode: "it"
}
Ответ
Сервис студии Looker
@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 | Идентификатор поля ввода. Это должна быть непустая строка без пробелов. |
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 , Looker Studio предложит пользователю ответить на текущий набор вопросов о конфигурации, а затем вернет ответы на эти вопросы при последующих вызовах 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"
}
}
Ответ
Сервис студии Looker
@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, представляющий конфигурацию запроса 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();
Наследие
@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
}
}
]
}
получить данные()
Возвращает табличные данные для данного запроса.
Запрос
@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 | СкриптПарамс | Объект, содержащий информацию, необходимую для выполнения соединителя. |
dateRange | Диапазон дат | По умолчанию предоставленный диапазон дат будет составлять последние 28 дней, исключая сегодняшний день. Если пользователь применит к отчету фильтр диапазона дат, предоставленный диапазон дат будет отражать выбор пользователя. Если для sampleExtraction установлено значение true**, дата на два дня раньше, чем сегодня, задается как дата начала, так и дата окончания. |
fields[].name | string | Имена запрошенных полей. |
fields[].forFilterOnly | boolean | Отмечает поле, используемое только для фильтрации запроса. Не возвращайте поле, если ваш соединитель применяет фильтры . |
dimensionsFilters | РазмерыФильтры | Вложенный массив выбранных пользователем фильтров. Самые внутренние массивы должны быть объединены OR , самые внешние массивы должны быть объединены AND |
диапазон дат
Имя | Тип | Описание |
---|---|---|
startDate | string | Дата начала фильтрации данных. Применяется только в том случае, если для параметра dateRangeRequired установлено значение true . Он будет в формате YYYY-MM-DD . |
endDate | string | Дата окончания фильтрации данных. Применяется только для параметра dateRangeRequired установлено значение true . Он будет в формате YYYY-MM-DD . |
скриптПарамс
Имя | Тип | Описание |
---|---|---|
sampleExtraction | boolean | Если true , запрос getData() предназначен для автоматического определения семантического типа . |
lastRefresh | string | Временная метка, отмечающая самый последний запрос на обновление данных. |
размерыФильтры
имя | тип | описание |
---|---|---|
fieldName | string | Имя поля для фильтрации |
values | string[] | Массив значений, используемый оператором. |
type | "INCLUDE" | "EXCLUDE" | Следует ли включать или исключать данные, соответствующие этому фильтру, из ответа getData() . |
operator | ФильтрОператор | Оператор для подачи заявки |
Пример запроса
{
"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.name и field.dataType являются обязательными. Порядок объекта field должен соответствовать порядку значений в каждой строке. |
rows[].values[] | string | number | boolean | Значения запрошенных полей. Порядок значений должен соответствовать порядку Fields определенных в schema |
filtersApplied | boolean | Установите значение true, если все фильтры были успешно применены, в противном случае — значение false. |
Поле
Имя | Тип | Описание |
---|---|---|
name | string | Имя поля. |
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
}
Большой запрос
@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()
Возвращает метод аутентификации соединителя.
Запрос
Эта функция не принимает никаких аргументов.
Ответ
Сервис студии Looker
@return {object}
Объект, содержащий AuthType
, используемый соединителем. Если AuthType
является одним из USER_TOKEN
, USER_PASS
, KEY
, PATH_USER_PASS
или PATH_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
, PATH_USER_PASS
или PATH_KEY
, также можно установить необязательный helpUrl
.
Ответ имеет следующую структуру:
{
"type": string(AuthType),
"helpUrl": string
}
Имя поля | Тип | Описание |
---|---|---|
type | string( AuthType ) | Значение типа аутентификации. |
helpUrl | string | Необязательный URL-адрес, который будет показан пользователю, если type является одним из USER_TOKEN , USER_PASS , KEY , PATH_USER_PASS или PATH_KEY . Этот URL-адрес должен указывать на страницу, где пользователи могут узнать подробности о проверке подлинности соединителя. |
Пример ответа
{
"type": "USER_TOKEN",
"helpUrl": "https://www.example.org/connector-auth-help"
}
Требуемые функции аутентификации
isAuthValid()
Проверяет, действительны ли учетные данные сторонней службы.
Запрос
Эта функция формально не принимает никаких аргументов.
Ответ
@return {boolean}
Возвращает true
, если учетные данные сторонней службы действительны, в противном случае — false
. Если это true
ожидается, что вызовы getData
и getSchema
будут авторизованы. Если false
, то пользователь, скорее всего, будет уведомлен о том, что срок действия аутентификации истек, и ему будет предложено повторно авторизоваться.
сбросАутентификация()
Очищает учетные данные пользователя для сторонней службы.
Запрос
Эта функция формально не принимает никаких аргументов.
Ответ
Ответ пустой.
Необходимые функции OAuth2
get3PAuthorizationUrls()
Возвращает URL-адрес авторизации для инициирования потока OAuth 2.0 для сторонней службы.
Запрос
Эта функция формально не принимает никаких аргументов.
Ответ
@return {string}
Возвращает URL-адрес авторизации для стороннего сервиса. URL-адрес авторизации будет предоставлен пользователю для инициирования потока OAuth 2.0 для предоставления доступа к сторонней службе.
authCallback()
Обрабатывает ответ авторизации, полученный от сторонней службы в рамках процесса авторизации OAuth 2.0.
Запрос
@param {string} request
Объект в кодировке JSON, представляющий данные запроса после завершения потока OAuth 2.0.
Ожидается, что параметр request
после завершения потока OAuth 2.0 будет содержать данные следующей структуры (ниже приведены два представления: одно для успешного запроса, а другое для неудачного запроса):
// Success
{
"parameter":
{
"code": string
}
}
// Error
{
"parameter":
{
"error": string
}
}
Имя поля | Тип | Описание |
---|---|---|
parameter | object | code или значения error из успешного или неудачного потока OAuth 2.0. Эти значения можно использовать для дальнейшей обработки обратного вызова. |
code | string | При успешном выполнении потока OAuth 2.0 он будет присутствовать и содержать значение параметра запроса code из запроса обратного вызова OAuth 2.0, полученного от сторонней службы. Это код авторизации, который можно использовать для дальнейшей обработки OAuth 2.0. |
error | object | При неудачной попытке потока OAuth 2.0 он будет присутствовать и содержать значение параметра запроса error из запроса обратного вызова OAuth 2.0, полученного от сторонней службы. Это сообщение об ошибке, которое можно использовать для дальнейшей обработки OAuth 2.0 и создания уведомлений. |
Ответ
@return {object}
Возвращает объект HTML, который будет обработан и показан пользователю. Для получения более подробной информации просмотрите документацию по библиотеке Oauth , а также документацию по службе Apps Script HTML .
Требуемые функции пользователя/пароля и ключа
setCredentials()
Сохраняет учетные данные, переданные из Looker Studio.
Запрос
@param {Object} request
Объект JavaScript, содержащий параметры запроса данных.
Параметр request
содержит учетные данные, введенные пользователем. Он будет иметь один из pathUserPass
, pathKey
, userPass
, userToken
или набор key
в зависимости от ответа getAuthType()
.
{
"pathUserPass": {
"path": : string,
"username": string,
"password": string
},
"pathKey": {
"path": : string,
"key": string
},
"userPass": {
"username": string,
"password": string
},
"userToken": {
"username": string,
"token": string
},
"key": string
}
Имя поля | Тип |
---|---|
pathUserPass.path | Путь, указанный пользователем. |
pathUserPass.username | Имя пользователя, предоставленное пользователем. |
pathUserPass.password | Пароль, предоставленный пользователем. |
pathKey.path | Путь, указанный пользователем. |
pathKey.key | Ключ API или токен, предоставленный пользователем. |
userPass.username | Имя пользователя, предоставленное пользователем. |
userPass.password | Пароль, предоставленный пользователем. |
userToken.username | Имя пользователя, предоставленное пользователем. |
userToken.token | Токен, предоставленный пользователем. |
key | Ключ API или токен, предоставленный пользователем. |
Ответ
@return {object}
Объект JavaScript, содержащий код ошибки, указывающий, удалось ли успешно установить учетные данные.
{
"errorCode": string("NONE" | "INVALID_CREDENTIALS")
}
Имя поля | Тип | Описание |
---|---|---|
errorCode | enum(string) | Код ошибки для вызова setCredentials. |
Название кода ошибки | Описание |
---|---|
"NONE" | Учетные данные удалось успешно установить. |
"INVALID_CREDENTIALS" | Предоставленные учетные данные недействительны. |
Пример ответа
{
"errorCode": "NONE"
}
Дополнительные функции
isAdminUser()
Проверяет, является ли пользователь администратором соединителя. Эта функция используется для включения/отключения функций отладки. Дополнительные сведения см. в разделе Включение/отключение функций отладки .
Запрос
Эта функция не принимает никаких аргументов.
Ответ
@return {boolean}
Возвращает true
, если пользователь является администратором соединителя. Если функция опущена или возвращает false
, то пользователь не будет считаться администратором. Дополнительные сведения см. в разделе Включение/отключение функций отладки .
Типы данных
Поле
Сервис студии Looker
См. Поле класса для всех методов, существующих для типа поля.
Создание поля 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');
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 ) | Необязательное свойство, указывающее, какое агрегирование Looker Studio должно использовать по умолчанию для этого поля. Пользователи могут изменить это значение. |
semantics | object | Свойства для предоставления семантической информации о поле. Если это свойство (и semantics.semanticType ) присутствует в любом из полей схемы, автоматическое определение семантики отключается. Если это свойство отсутствует во всех полях, будет включено автоматическое семантическое определение . |
semantics.conceptType | string( ConceptType ) | Указывает, является ли поле измерением или показателем. |
semantics.semanticType | string( SemanticType ) | Семантический тип поля. Если предусмотрено, автоматическое семантическое определение отключено. |
semantics.semanticGroup | string( SemanticGroup ) | Семантическая группа поля. Это необязательное свойство позволяет группировать семантические типы. Looker Studio в настоящее время не использует это поле, но может в будущем. |
semantics.isReaggregatable | boolean | true указывает, что к этому полю можно применить агрегацию ; В Looker Studio по умолчанию для агрегации установлено значение SUM , и пользователь может изменить агрегацию .false указывает, что агрегирование не должно применяться к этому полю; В Looker Studio для агрегации по умолчанию установлено значение «Авто» , и пользователь не может изменить агрегацию .Значение по умолчанию — true .Примечание. Это свойство влияет только на поля показателей. |
Тип концепции
Значения для типов семантических понятий могут быть одним из следующих:
Перечисляемое значение | Описание |
---|---|
DIMENSION | Измерение. Измерения — это категории данных со значениями, такими как имена, описания или другие характеристики категории. |
METRIC | Метрика. Метрики измеряют значения измерений и представляют собой такие измерения, как сумма, количество, соотношение и т. д. |
Тип данных
Значения типов данных схемы могут быть одним из следующих:
Перечисляемое значение | Описание |
---|---|
STRING | Произвольная строка. Определено спецификацией JSON Schema. |
NUMBER | Числовой тип данных в 64-битном формате с плавающей запятой двойной точности (IEEE 754). |
BOOLEAN | Логическое значение: true или false . Определено спецификацией JSON Schema. |
Семантический тип
Перечисляемое значение | Описание | Пример |
---|---|---|
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 | URL-адрес в виде текста | "https://www.google.com" |
Семантические типы формул
Перечисляемое значение | Описание | Формула |
---|---|---|
HYPERLINK | Ссылка с текстовой меткой | "HYPERLINK($url, $description)" |
IMAGE | URL-адрес изображения | "IMAGE($image_url, $alt_text)" |
IMAGELINK | Ссылка с меткой изображения | "HYPERLINK($url, $image_field)" |
Семантические типы валют
Все значения валют представляют собой числа JavaScript. Отрицательные значения допускаются.
Перечисляемое значение | Описание |
---|---|
CURRENCY_AED | Дирхам ОАЭ (dh) |
CURRENCY_ALL | Албанский лек (Лек) |
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 | Датская крона (кр.) |
CURRENCY_DOP | Доминиканское песо (RD$) |
CURRENCY_EGP | Египетский фунт (£) |
CURRENCY_ETB | Эфиопский быр (Бирр) |
CURRENCY_EUR | Евро (€) |
CURRENCY_GBP | Британский фунт стерлингов (£) |
CURRENCY_HKD | Гонконгский доллар ($) |
CURRENCY_HRK | Хорватская куна (кн) |
CURRENCY_HUF | Венгерский форинт (Ft) |
CURRENCY_IDR | Индонезийская рупия (Rp) |
CURRENCY_ILS | Израильский новый шекель (₪) |
CURRENCY_INR | Индийская рупия (₹) |
CURRENCY_IRR | Иранский риал (Риал) |
CURRENCY_ISK | Исландская крона (kr) |
CURRENCY_JMD | Ямайский доллар ($) |
CURRENCY_JPY | Японская иена (¥) |
CURRENCY_KRW | Южнокорейская вона (₩) |
CURRENCY_LKR | Шриланкийская рупия (рупий) |
CURRENCY_LTL | Литовский лит (Lt) |
CURRENCY_MNT | Монгольский тугрик (₮) |
CURRENCY_MVR | Мальдивская Руфия (Рф) |
CURRENCY_MXN | Мексиканское песо ($) |
CURRENCY_MYR | Малайзийский ринггит (RM) |
CURRENCY_NOK | Норвежская крона (кр) |
CURRENCY_NZD | Новозеландские доллары ($) |
CURRENCY_PAB | Панамский Бальбоа (Б/.) |
CURRENCY_PEN | Перуанское Нуэво-Соль (S/.) |
CURRENCY_PHP | Филиппинское песо (₱) |
CURRENCY_PKR | Пакистанская рупия (рупий) |
CURRENCY_PLN | Польский злотый (zł) |
CURRENCY_RON | Румынский лей (RON) |
CURRENCY_RSD | Сербский динар (din) |
CURRENCY_RUB | Российский рубль (₽) |
CURRENCY_SAR | Саудовский риал (Риал) |
CURRENCY_SEK | Шведская крона (кр) |
CURRENCY_SGD | Сингапурский доллар ($) |
CURRENCY_THB | Тайский бат (฿) |
CURRENCY_TRY | Турецкая лира (₺) |
CURRENCY_TWD | Новый тайваньский доллар (NT$) |
CURRENCY_TZS | Танзанийский шиллинг (TSh) |
CURRENCY_UAH | Украинская гривна (грн.) |
CURRENCY_USD | Доллар США ($) |
CURRENCY_UYU | Доллар США ($) |
CURRENCY_VEF | Уругвайское песо ($) |
CURRENCY_VND | Венесуэла Боливар Фуэрте (Bs) |
CURRENCY_YER | Вьетнамский донг (₫) |
CURRENCY_ZAR | Йеменский риал (Риал) |
Семантическая группа
Это всего лишь список предлагаемых значений. Вы можете выбирать значения за пределами этого списка. Однако установка этого поля не отменяет группу, которую Looker Studio использует в параметре Type
редактора полей.
Рекомендуемое значение | Описание |
---|---|
NUMERIC | Числовая группа |
DATETIME | Группа ДатаВремя |
GEO | Гео Групп |
CURRENCY | Валютная группа |
ДефолтАгрегатионтипе
Перечисляемое значение | Описание |
---|---|
AVG | Среднее числовое значение (среднее) записей. |
COUNT | Количество записей. |
COUNT_DISTINCT | Количество различных записей. |
MAX | Максимум записей. |
MIN | Минимум записей. |
SUM | Сумма записей. |
NONE | Нет агрегации |
AUTO | Должен быть установлен для вычисляемых полей, включающих агрегацию. |
Тип аутентификации
Значения типа метода аутентификации могут быть одним из следующих:
Перечисляемое значение | Описание |
---|---|
NONE | Указывает, что для соединителя не требуется проверка подлинности. |
OAUTH2 | Указывает, что соединитель использует OAuth 2.0. |
KEY | Указывает, что соединитель использует ключ API. |
USER_PASS | Указывает, что соединитель использует имя пользователя и пароль. |
USER_TOKEN | Указывает, что соединитель использует имя пользователя/токен. |
PATH_USER_PASS | Указывает, что соединитель использует путь/имя пользователя/пароль. |
PATH_KEY | Указывает, что соединитель использует путь/ключ. |
Тип конфигурации
Значения типов элементов формы конфигурации могут быть одним из следующих:
Перечисляемое значение | Описание |
---|---|
TEXTINPUT | Элемент ввода будет представлять собой однострочное текстовое поле. |
TEXTAREA | Элементом ввода будет многострочное textarea поле. |
SELECT_SINGLE | Элементом ввода будет раскрывающийся список для вариантов с одним выбором. |
SELECT_MULTIPLE | Элементом ввода будет раскрывающийся список для выбора нескольких вариантов. |
CHECKBOX | Элементом ввода будет один флажок, который можно использовать для захвата логических значений. |
INFO | Это статическое текстовое поле, которое можно использовать для предоставления пользователю инструкций или информации. Любые ссылки будут кликабельны. |
Оператор фильтра
Оператор |
---|
РАВНО |
СОДЕРЖИТ |
REGEXP_PARTIAL_MATCH |
REGEXP_EXACT_MATCH |
В_СПИСОК |
IS_NULL |
МЕЖДУ |
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"
}
Данные перед применением фильтра:
Страна | Город |
---|---|
США | Сиэтл |
Калифорния | Монреаль |
Республика Корея | Сеул |
Данные после применения фильтра:
Страна | Город |
---|---|
США | Сиэтл |
CONTAINS
Значение сравнения содержится в значении измерения.
Пример предложения:
{
"operator": "CONTAINS",
"type": "INCLUDE",
"values": ["A"],
"fieldName": "COUNTRY"
}
Данные перед применением фильтра:
Страна | Город |
---|---|
США | Сиэтл |
Калифорния | Монреаль |
Республика Корея | Сеул |
Данные после применения фильтра:
Страна | Город |
---|---|
США | Сиэтл |
Калифорния | Монреаль |
REGEXP_PARTIAL_MATCH
Значение измерения содержит регулярное выражение.
Пример предложения:
{
"operator": "REGEXP_PARTIAL_MATCH",
"type": "INCLUDE",
"values": ["(?i)R[A-Z]*"],
"fieldName": ""
}
Данные перед применением фильтра:
Страна | Город |
---|---|
США | Сиэтл |
Калифорния | Монреаль |
Республика Корея | Сеул |
RU | Москва |
Данные после применения фильтра:
Страна | Город |
---|---|
Республика Корея | Сеул |
RU | Москва |
REGEXP_EXACT_MATCH
Значение измерения соответствует регулярному выражению.
Пример предложения:
{
"operator": "REGEXP_EXACT_MATCH",
"type": "INCLUDE",
"values": ["^R[A-Z]*K$"],
"fieldName": ""
}
Данные перед применением фильтра:
Страна | Город |
---|---|
США | Сиэтл |
Калифорния | Монреаль |
Республика Корея | Сеул |
RU | Москва |
Данные после применения фильтра:
Страна | Город |
---|---|
Республика Корея | Сеул |
IN_LIST
Одно или несколько значений сравнения точно соответствуют значению измерения.
Пример предложения:
{
"operator": "IN_LIST",
"type": "INCLUDE",
"values": ["USA", "CA"],
"fieldName": "Country"
}
Данные перед применением фильтра:
Страна | Город |
---|---|
США | Сиэтл |
Калифорния | Монреаль |
Республика Корея | Сеул |
Данные после применения фильтра:
Страна | Город |
---|---|
США | Сиэтл |
Калифорния | Монреаль |
IS_NULL
Соответствует, если значение измерения равно нулю.
Пример предложения:
{
"operator": "IS_NULL",
"type": "INCLUDE",
"values": [],
"fieldName": "COUNTRY"
}
Данные перед применением фильтра:
Страна | Город |
---|---|
США | Сиэтл |
Калифорния | Монреаль |
Республика Корея | Сеул |
RU | Москва |
Терабития |
Данные после применения фильтра:
Страна | Город |
---|---|
Терабития |
BETWEEN
Соответствует, если значение измерения находится между двумя тестовыми значениями.
Пример предложения:
{
"operator": "BETWEEN",
"type": "INCLUDE",
"values": ["20190101", "20190131"],
"fieldName": "Date"
}
Данные перед применением фильтра:
Страна | Дата |
---|---|
США | 20190101 |
США | 20190111 |
США | 20190201 |
Данные после применения фильтра:
Страна | Дата |
---|---|
США | 20190101 |
США | 20190111 |
NUMERIC_GREATER_THAN
Соответствует, если значение измерения больше проверочного значения.
Пример предложения:
{
"operator": "NUMERIC_GREATER_THAN",
"type": "INCLUDE",
"values": ["20190101"],
"fieldName": "Date"
}
Данные перед применением фильтра:
Страна | Дата |
---|---|
США | 20190101 |
США | 20190111 |
США | 20190201 |
Данные после применения фильтра:
Страна | Дата |
---|---|
США | 20190111 |
США | 20190201 |
NUMERIC_GREATER_THAN_OR_EQUAL
Соответствует, если значение измерения больше или равно проверочному значению.
Пример предложения:
{
"operator": "NUMERIC_GREATER_THAN_OR_EQUAL",
"type": "INCLUDE",
"values": ["20190101"],
"fieldName": "Date"
}
Данные перед применением фильтра:
Страна | Дата |
---|---|
США | 20180101 |
США | 20190101 |
США | 20190111 |
США | 20190201 |
Данные после применения фильтра:
Страна | Дата |
---|---|
США | 20190101 |
США | 20190111 |
США | 20190201 |
NUMERIC_LESS_THAN
Соответствует, если значение измерения меньше или равно проверочному значению.
Пример предложения:
{
"operator": "NUMERIC_LESS_THAN",
"type": "INCLUDE",
"values": ["20190101"],
"fieldName": "Date"
}
Данные перед применением фильтра:
Страна | Дата |
---|---|
США | 20180101 |
США | 20190101 |
США | 20190111 |
США | 20190201 |
Данные после применения фильтра:
Страна | Дата |
---|---|
США | 20180101 |
NUMERIC_LESS_THAN_OR_EQUAL
Соответствует, если значение измерения меньше или равно проверочному значению.
Пример предложения:
{
"operator": "NUMERIC_LESS_THAN_OR_EQUAL",
"type": "INCLUDE",
"values": ["20190101"],
"fieldName": "Date"
}
Данные перед применением фильтра:
Страна | Дата |
---|---|
США | 20180101 |
США | 20190101 |
США | 20190111 |
США | 20190201 |
Данные после применения фильтра:
Страна | Дата |
---|---|
США | 20180101 |
США | 20190101 |