Looker Studio の高度なサービス

コネクタが BigQuery からデータを取得する場合は、Looker Studio を使用できます。 拡張サービスを使用してコネクタを最適化しますBigQuery API を呼び出す代わりに、 クエリの構成を提供すると、Looker Studio が データとスキーマが自動的に使用されます。

仕組み

Looker Studio 拡張サービスを使用するコミュニティ コネクタは、以下と同様に機能します。 通常のコネクタです

顕著な違いは、 getSchema() 関数や getData() 関数。データを取得するのではなく、 スキーマとデータを返す場合、これらの関数はクエリ構成を返すことができます。 クエリ構成が返されると、Looker Studio はクエリ構成を直接取得します。 クエリ構成に基づいて自動的にスキーマやデータを取得します。

コネクタの開発

Looker Studio の拡張サービスを使用するコミュニティ コネクタは、 2 つの例外があります

  1. マニフェスト キーが加えられる
  2. getSchema()getData() とは異なるレスポンス

マニフェスト リファレンス

マニフェストで、次のプロパティを 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 スコープはマニフェストに必須ではありません。ただし、 スコープをサービス アカウントのスコープリストに追加する必要があります。

getDatagetSchema のリファレンス

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)
}