Looker Studio की बेहतर सेवाएं

अगर आपका कनेक्टर BigQuery से डेटा फ़ेच करता है, तो Looker Studio का इस्तेमाल किया जा सकता है कनेक्टर को ऑप्टिमाइज़ करने के लिए बेहतर सेवाएं. BigQuery को कॉल करने के बजाय API का इस्तेमाल करते हैं, तो आप एक क्वेरी कॉन्फ़िगरेशन उपलब्ध कराते हैं और Looker Studio आपके लिए डेटा और स्कीमा देखें.

यह कैसे काम करता है

Looker Studio की बेहतर सेवाओं का इस्तेमाल करने वाले कम्यूनिटी कनेक्टर इसी तरह काम करते हैं एक सामान्य कनेक्टर है.

ध्यान देने लायक अंतर यह है कि getSchema() और/या getData() फ़ंक्शन. और उन्हें खोजने के बजाय स्कीमा और डेटा लौटाते हैं, तो ये फ़ंक्शन क्वेरी कॉन्फ़िगरेशन लौटा सकते हैं. क्वेरी कॉन्फ़िगरेशन के नतीजे में, Looker Studio सीधे दिए गए क्वेरी कॉन्फ़िगरेशन के आधार पर स्कीमा और/या डेटा.

आपका कनेक्टर डेवलप किया जा रहा है

Looker Studio की बेहतर सेवाएं इस्तेमाल करने वाले कम्यूनिटी कनेक्टर, दो अपवादों के साथ सामान्य कनेक्टर.

  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 के दायरे की ज़रूरत नहीं है. हालांकि, दायरे को सेवा खाते के लिए दायरे की सूची में जोड़ा जाना चाहिए.

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