Wenn der Connector Daten aus BigQuery abruft, können Sie Looker Studio verwenden. Erweiterte Dienste zur Optimierung Ihres Connectors Anstatt BigQuery aufzurufen, API direkt verwenden, geben Sie eine Abfragekonfiguration an und Looker Studio ruft die Daten und das Schema für Sie.
Funktionsweise
Community-Connectors, die erweiterte Looker Studio-Dienste verwenden, funktionieren ähnlich wie einen normalen Anschluss.
Der wesentliche Unterschied ist die Antwort, die bei der Ausführung der
getSchema()
- und/oder getData()
-Funktionen. Anstatt das gesamte Team
wenn ein Schema und Daten zurückgegeben werden, können diese Funktionen Abfragekonfigurationen zurückgeben.
Wenn eine Abfragekonfiguration zurückgegeben wird, ruft Looker Studio direkt die
Schema und/oder Daten basierend auf der bereitgestellten Abfragekonfiguration.
Connector entwickeln
Community-Connectors, die erweiterte Looker Studio-Dienste verwenden, sind identisch mit Standard-Connectors mit zwei Ausnahmen.
Manifestreferenz
Legen Sie im Manifest die folgenden Eigenschaften auf true
fest.
- Verwenden Sie für
getSchema()
die PropertydataStudio.advancedServices.schema
. - Verwenden Sie für
getData()
die PropertydataStudio.advancedServices.data
.
Der Wert true
gibt an, dass der Connector für die jeweilige Funktion
wird anstelle der Standardantwort eine Abfragekonfiguration zurückgegeben.
Wenn Sie Ihr eigenes Schema mit der Standardantwort getSchema()
definieren möchten, legen Sie
dataStudio.advancedServices.schema
bis false
im Manifest eingeben oder das weglassen
Property. Dies ist erforderlich, wenn nicht alle Felder in Ihrem Schema durch
eine einzelne BigQuery-Abfrage, z.B. wenn Sie einen Multi-Schema-Connector erstellen.
Da die BigQuery-Abfrage im Namen des autorisierten Nutzers ausgeführt wird,
müssen auch den BigQuery-OAuth-Bereich enthalten,
("https://www.googleapis.com/auth/bigquery.readonly"
) im Manifest, um
fordern Sie eine Autorisierung an.
Im Folgenden finden Sie ein Connector-Manifest, das die Anmeldedaten des autorisierten Nutzers verwendet, um eine Verbindung zu BigQuery herstellen:
{
"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"]
}
Wenn Sie ein Dienstkonto für den Zugriff auf BigQuery verwenden,
bigquery.readonly
Der OAuth-Bereich ist im Manifest nicht erforderlich. Die
Bereich sollte der Liste der Bereiche für das Dienstkonto hinzugefügt werden.
Referenz zu getData
und getSchema
Connectors, die erweiterte Looker Studio-Dienste verwenden, geben ein Abfragekonfigurationsobjekt zurück
für getSchema()
und/oder getData()
. Abhängig von der Datenquelle
config kann zusätzliche Attribute erfordern.
Im Folgenden finden Sie ein Beispiel für die Verwendung des DataStudioApp-Dienstes zum Erstellen dieser Konfigurationsobjekts:
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();
Beispiel für getSchema()
- und getData()
-Funktionen
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)
}