Looker Studio Gelişmiş Hizmetleri

Bağlayıcınız BigQuery'den veri getiriyorsa Looker Studio'yu kullanabilirsiniz. Gelişmiş Hizmetler'i tıklayın. BigQuery'yi çağırmak yerine API'yi doğrudan API'ye eklerseniz bir sorgu yapılandırması sağlarsınız, Looker Studio verileri ve şemayı sizin için hazırlayacağız.

İşleyiş şekli

Looker Studio Gelişmiş Hizmetleri'ni kullanan Topluluk Bağlayıcılar, şuna benzer şekilde çalışır: bağlayıcı.

Kayda değer fark, bu denemelerin yürütülmesinden beklenen yanıttır getSchema() ve/veya getData() işlevleri. ve komutlarını almak yerine bir şema ve veri döndürdüğünde, bu işlevler sorgu yapılandırmalarını döndürebilir. Bir sorgu yapılandırması döndürüldüğünde Looker Studio doğrudan sağlanan sorgu yapılandırmasına göre şema ve/veya veriler oluşturun.

Bağlayıcınızı geliştirme

Looker Studio Gelişmiş Hizmetleri'ni kullanan topluluk bağlayıcıları, normal bağlayıcısıdır.

  1. Ek manifest anahtarı
  2. getSchema() ve/veya getData()'den farklı bir yanıt

Manifest referansı

Manifest'te aşağıdaki özellikleri true olarak ayarlayın.

  • getSchema() için dataStudio.advancedServices.schema mülkünü kullanın
  • getData() için dataStudio.advancedServices.data mülkünü kullanın

true değeri, ilgili işlev için bağlayıcınızın sorgusu, standart yanıt yerine bir sorgu yapılandırması döndürür.

Standart getSchema() yanıtını kullanarak kendi şemanızı tanımlamak için Manifest'te dataStudio.advancedServices.schema değerini false olarak değiştirin veya bunu atlayın Bu, şemanızdaki tüm alanlar tek bir BigQuery sorgusu (ör. inceleyebilirsiniz.

BigQuery sorgusu, yetkili kullanıcı adına yürütüleceğinden BigQuery OAuth kapsamını da içermelidir ("https://www.googleapis.com/auth/bigquery.readonly") gibi dosya adlandırma kurallarını isteyebilirsiniz.

Aşağıda, yetkili kullanıcının kimlik bilgilerini kullanan bir bağlayıcı manifesti verilmiştir: ile bağlantı kurun:

{
  "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'ye erişmek için bir hizmet hesabı kullanıyorsanız bigquery.readonly Manifest'te OAuth kapsamı gerekli değil. Ancak kapsamı, hizmet hesabının kapsamlar listesine eklenmelidir.

getData ve getSchema referansı

Looker Studio Advanced Services kullanan bağlayıcılar bir sorgu yapılandırma nesnesi döndürür getSchema() ve/veya getData() için. Veri kaynağına bağlı olarak yapılandırması için ek özellikler gerekebilir.

Aşağıda, bu dosyayı oluşturmak için DataStudioApp hizmetinin kullanılmasına bir örnek verilmiştir yapılandırma nesnesi:

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();

Örnek getSchema() ve getData() işlevi

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