Jeśli Twoje oprogramowanie sprzęgające pobiera dane z BigQuery, możesz używać narzędzia Looker Studio usługi zaawansowane umożliwiające optymalizację oprogramowania sprzęgającego. Zamiast wywoływać BigQuery bezpośrednio przez interfejs API, podasz konfigurację zapytania, a Looker Studio pobierze dane i schemat.
Jak to działa
Społecznościowe oprogramowanie sprzęgające korzystające z usług zaawansowanych Looker Studio działa podobnie do normalnego oprogramowania sprzęgającego.
Istotną różnicą jest odpowiedź oczekiwana po wykonaniu
funkcji getSchema()
lub getData()
. Zamiast pobierania
które zwraca schemat i dane, funkcje te mogą zwracać konfiguracje zapytań.
Gdy zwrócisz konfigurację zapytania, Looker Studio pobierze bezpośrednio
schemat lub dane na podstawie podanej konfiguracji zapytania.
tworzenie oprogramowania sprzęgającego,
Społecznościowe oprogramowanie sprzęgające, które używa usług zaawansowanych Looker Studio, jest takie samo jak normalnego oprogramowania sprzęgającego z dwoma wyjątkami.
Dokumentacja pliku manifestu
W pliku manifest ustaw następujące właściwości na wartość true
.
- W przypadku usługi
getSchema()
użyj usługidataStudio.advancedServices.schema
- W przypadku usługi
getData()
użyj usługidataStudio.advancedServices.data
Wartość true
oznacza, że dla danej funkcji oprogramowanie sprzęgające
zwróci konfigurację zapytania zamiast odpowiedzi standardowej.
Aby zdefiniować własny schemat za pomocą standardowej odpowiedzi getSchema()
, ustaw
Z dataStudio.advancedServices.schema
na false
w pliku manifestu lub pomiń ten krok
usłudze. Jest to konieczne, gdy żadne pola w schemacie nie mogą być reprezentowane przez
pojedyncze zapytanie BigQuery, np. .
Ponieważ zapytanie BigQuery zostanie wykonane w imieniu autoryzowanego użytkownika,
należy też uwzględnić zakres protokołu OAuth BigQuery
("https://www.googleapis.com/auth/bigquery.readonly"
) w pliku manifestu na
żądania autoryzacji.
Poniżej znajduje się plik manifestu oprogramowania sprzęgającego używający danych logowania autoryzowanego użytkownika do połącz się z BigQuery:
{
"dataStudio": {
"name": "BigQuery Public Dataset Demo",
"logoUrl": "https://www.gstatic.com/images/branding/product/1x/data_connector_48dp.png",
"company": "Looker DevRel",
"companyUrl": "https://developers.google.com/looker-studio/",
"addOnUrl": "https://developers.google.com/looker-studio/",
"supportUrl": "https://developers.google.com/looker-studio/",
"description": "Use BigQuery public dataset with Looker Studio's Advanced Services.",
"advancedServices": {
"schema": true,
"data": true
}
},
"oauthScopes": ["https://www.googleapis.com/auth/bigquery.readonly"]
}
Jeśli do uzyskiwania dostępu do BigQuery używasz konta usługi,
bigquery.readonly
Zakres protokołu OAuth nie jest wymagany w pliku manifestu. Jednak
zakres powinien zostać dodany do listy zakresów konta usługi.
Dokumentacja getData
i getSchema
Oprogramowanie sprzęgające korzystające z usług zaawansowanych Looker Studio zwraca obiekt konfiguracji zapytania
dla getSchema()
lub getData()
. W zależności od źródła danych
może wymagać dodatkowych właściwości.
Poniżej znajdziesz przykład użycia usługi DataStudioApp do utworzenia obiekt konfiguracji:
var bqTypes = DataStudioApp.createCommunityConnector().BigQueryParameterType;
var configuration = DataStudioApp.createCommunityConnector().newBigQueryConfig()
// BigQuery billing project's Id.
.setBillingProjectId('billingProjectId')
// The query that will be executed.
.setQuery('myQueryString')
// Set to `true` to use StandardSQL.
.setUseStandardSql(true)
// The accessToken used for service execution.
.setAccessToken('myAccessToken')
// Adding a `STRING` query parameter. Other supported types are `BOOL`,
// `FLOAT64`, and `INT64`.
.addQueryParameter('myUrlParameterName', bqTypes.STRING, 'myUrlParameterValue')
.build();
Przykład funkcji getSchema()
i getData()
var sqlString = "" +
"SELECT " +
" _TABLE_SUFFIX AS yyyymm, " +
" ROUND(SUM(IF(fcp.start < @fast_fcp, fcp.density, 0)), 4) AS fast_fcp, " +
" ROUND(SUM(IF(fcp.start >= 1000 AND fcp.start < 3000, fcp.density, 0)), 4) AS avg_fcp, " +
" ROUND(SUM(IF(fcp.start >= 3000, fcp.density, 0)), 4) AS slow_fcp " +
"FROM " +
" `chrome-ux-report.all.*`, " +
" UNNEST(first_contentful_paint.histogram.bin) AS fcp " +
"WHERE " +
" origin = @url " +
"GROUP BY " +
" yyyymm " +
"ORDER BY " +
" yyyymm ";
function getQueryConfig(request) {
var url = (request.configParams && request.configParams.url);
var projectId = (request.configParams && request.configParams.projectId);
var authToken = ScriptApp.getOAuthToken();
return DataStudioApp.createCommunityConnector().newBigQueryConfig()
.setAccessToken(authToken)
.setUseStandardSql(true)
.setBillingProjectId(projectId)
.setQuery(sqlString)
.addQueryParameter('url', bqTypes.STRING, url)
.addQueryParameter('fast_fcp', bqTypes.INT64, '' + 1000)
.build();
}
function getSchema(request) {
return getQueryConfig(request);
}
function getData(request) {
return getQueryConfig(request)
}