লুকার স্টুডিও অ্যাডভান্সড সার্ভিসেস

যদি আপনার সংযোগকারী BigQuery থেকে ডেটা আনে, তাহলে আপনি আপনার সংযোগকারীকে অপ্টিমাইজ করতে Looker Studio Advanced Services ব্যবহার করতে পারেন। BigQuery API-কে সরাসরি কল করার পরিবর্তে, আপনি একটি ক্যোয়ারী কনফিগারেশন প্রদান করেন এবং Looker Studio আপনার জন্য ডেটা এবং স্কিমা আনবে।

কিভাবে এটা কাজ করে

লুকার স্টুডিও অ্যাডভান্সড সার্ভিস ব্যবহার করে এমন কমিউনিটি কানেক্টর একটি সাধারণ সংযোগকারীর মতোই কাজ করে।

উল্লেখযোগ্য পার্থক্য হল getSchema() এবং/অথবা getData() ফাংশন সম্পাদন থেকে প্রত্যাশিত প্রতিক্রিয়া। একটি স্কিমা এবং ডেটা আনা এবং ফেরত দেওয়ার পরিবর্তে, এই ফাংশনগুলি ক্যোয়ারী কনফিগারেশনগুলি ফিরিয়ে দিতে পারে। যখন একটি ক্যোয়ারী কনফিগারেশন ফেরত দেওয়া হয়, তখন লুকার স্টুডিও প্রদত্ত ক্যোয়ারী কনফিগারেশনের উপর ভিত্তি করে সরাসরি স্কিমা এবং/অথবা ডেটা আনবে।

আপনার সংযোগকারী উন্নয়নশীল

কমিউনিটি কানেক্টর যেগুলি লুকার স্টুডিও অ্যাডভান্সড পরিষেবাগুলি ব্যবহার করে সেগুলি দুটি ব্যতিক্রম সহ একটি সাধারণ সংযোগকারীর মতোই৷

  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 রেফারেন্স

লুকার স্টুডিও অ্যাডভান্সড সার্ভিস ব্যবহার করে সংযোগকারীরা 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)
}