コネクタが BigQuery からデータを取得する場合は、Looker Studio を使用できます。 拡張サービスを使用してコネクタを最適化しますBigQuery API を呼び出す代わりに、 クエリの構成を提供すると、Looker Studio が データとスキーマが自動的に使用されます。
仕組み
Looker Studio 拡張サービスを使用するコミュニティ コネクタは、以下と同様に機能します。 通常のコネクタです
顕著な違いは、
getSchema()
関数や getData()
関数。データを取得するのではなく、
スキーマとデータを返す場合、これらの関数はクエリ構成を返すことができます。
クエリ構成が返されると、Looker Studio はクエリ構成を直接取得します。
クエリ構成に基づいて自動的にスキーマやデータを取得します。
コネクタの開発
Looker Studio の拡張サービスを使用するコミュニティ コネクタは、 2 つの例外があります
マニフェスト リファレンス
マニフェストで、次のプロパティを true
に設定します。
getSchema()
には、プロパティdataStudio.advancedServices.schema
を使用します。getData()
には、プロパティdataStudio.advancedServices.data
を使用します。
値 true
は、それぞれの関数でコネクタが
標準のレスポンスの代わりにクエリ設定が返されます。
標準の getSchema()
レスポンスを使用して独自のスキーマを定義するには、次のように設定します。
マニフェストで dataStudio.advancedServices.schema
から false
に変更するか、これは省略します
プロパティです。これは、スキーマ内のすべてのフィールドを
単一の BigQuery クエリです。たとえば、マルチスキーマコネクタを作成するときに
役立ちます
BigQuery クエリは承認済みユーザーに代わって実行されるため、
BigQuery OAuth スコープも追加する必要があります。
("https://www.googleapis.com/auth/bigquery.readonly"
)をマニフェストで
承認をリクエストします。
以下は、承認されたユーザーの認証情報を使用して 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"]
}
サービス アカウントを使用して BigQuery にアクセスしている場合、
bigquery.readonly
OAuth スコープはマニフェストに必須ではありません。ただし、
スコープをサービス アカウントのスコープリストに追加する必要があります。
getData
と getSchema
のリファレンス
Looker Studio の高度なサービスを使用するコネクタがクエリ構成オブジェクトを返す
getSchema()
と getData()
のいずれかまたは両方。データソースによっては、
追加のプロパティが必要になる場合があります。
以下は、DataStudioApp サービスを使用してこの設定オブジェクトを作成するサンプルコードです。
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();
getSchema()
関数と 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)
}