যদি আপনার সংযোগকারী BigQuery থেকে ডেটা সংগ্রহ করে, তাহলে আপনি আপনার সংযোগকারীকে অপ্টিমাইজ করার জন্য Looker Studio Advanced Services ব্যবহার করতে পারেন। সরাসরি BigQuery API কল করার পরিবর্তে, আপনি একটি কোয়েরি কনফিগারেশন প্রদান করেন এবং Looker Studio আপনার জন্য ডেটা এবং স্কিমা সংগ্রহ করবে।
কিভাবে এটা কাজ করে
লুকার স্টুডিও অ্যাডভান্সড সার্ভিসেস ব্যবহারকারী কমিউনিটি কানেক্টরগুলি একটি সাধারণ কানেক্টরের মতোই কাজ করে।
উল্লেখযোগ্য পার্থক্য হল getSchema() এবং/অথবা getData() ফাংশনগুলির কার্যকরকরণ থেকে প্রত্যাশিত প্রতিক্রিয়া। স্কিমা এবং ডেটা আনা এবং ফেরত দেওয়ার পরিবর্তে, এই ফাংশনগুলি কোয়েরি কনফিগারেশনগুলি ফেরত দিতে পারে। যখন একটি কোয়েরি কনফিগারেশন ফেরত দেওয়া হয়, তখন Looker Studio সরাসরি প্রদত্ত কোয়েরি কনফিগারেশনের উপর ভিত্তি করে স্কিমা এবং/অথবা ডেটা আনবে।
আপনার সংযোগকারী তৈরি করা
লুকার স্টুডিও অ্যাডভান্সড সার্ভিসেস ব্যবহারকারী কমিউনিটি কানেক্টরগুলি দুটি ব্যতিক্রম ছাড়া একটি সাধারণ কানেক্টরের মতোই।
ম্যানিফেস্ট রেফারেন্স
ম্যানিফেস্টে , নিম্নলিখিত বৈশিষ্ট্যগুলিকে 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 Advanced Services ব্যবহারকারী সংযোগকারীরা 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)
}