সংযুক্ত শীট ব্যবহার করুন

সংযুক্ত পত্রক হল একটি Google পত্রক বৈশিষ্ট্য যা আপনাকে সরাসরি পত্রকের মধ্যে BigQuery এবং Looker ডেটা বিশ্লেষণ করতে দেয়৷ আপনি স্প্রেডশীট পরিষেবার সাথে প্রোগ্রাম্যাটিকভাবে সংযুক্ত শীটগুলি অ্যাক্সেস করতে পারেন৷

সাধারণ সংযুক্ত পত্রক ক্রিয়া

BigQuery বা লুকারের সাথে সংযোগ করতে এবং ডেটা বিশ্লেষণ করতে DataSource ক্লাস এবং অবজেক্টগুলি ব্যবহার করুন৷ নিম্নলিখিত সারণীতে সবচেয়ে সাধারণ DataSource অ্যাকশন এবং অ্যাপস্ স্ক্রিপ্টে সেগুলি কীভাবে তৈরি করা যায় তা তালিকাভুক্ত করা হয়েছে:

অ্যাকশন Google Apps স্ক্রিপ্ট ক্লাস ব্যবহার করার পদ্ধতি
একটি সমর্থিত ডেটা উত্সের সাথে একটি শীট সংযুক্ত করুন৷ DataSourceSpec SpreadsheetApp.newDataSourceSpec()
একটি তথ্য উৎস নির্বাচন করুন DataSource Spreadsheet.insertDataSourceSheet().getDataSource()
একটি তথ্য উৎস শীট যোগ করুন DataSourceSheet Spreadsheet.insertDataSourceSheet()
একটি পিভট টেবিল যোগ করুন DataSourcePivotTable Range.insertDataSourcePivotTable()
একটি নির্যাস মধ্যে তথ্য টান DataSourceTable Range.insertDataSourceTable()
একটি সূত্র ব্যবহার করুন DataSourceFormula Range.setFormula()
একটি চার্ট যোগ করুন DataSourceChart Sheet.insertDataSourceChart()

প্রয়োজনীয় অনুমোদনের সুযোগ যোগ করুন

BigQuery ডেটা অ্যাক্সেস করতে, আপনাকে অবশ্যই আপনার Google Apps স্ক্রিপ্ট কোডে enableBigQueryExecution() পদ্ধতি অন্তর্ভুক্ত করতে হবে। এই পদ্ধতিটি আপনার Google Apps স্ক্রিপ্ট প্রকল্পে প্রয়োজনীয় bigquery.readonly OAuth সুযোগ যোগ করে।

নিম্নলিখিত নমুনা একটি ফাংশনের মধ্যে বলা SpreadsheetApp.enableBigQueryExecution() পদ্ধতি দেখায়:

function addDataSource() {
  SpreadsheetApp.enableBigQueryExecution();
  var spreadsheet = SpreadsheetApp.getActive();
  }

লুকার ডেটা অ্যাক্সেস করতে, আপনাকে অবশ্যই আপনার Google Apps স্ক্রিপ্ট কোডে enableLookerExecution() পদ্ধতি অন্তর্ভুক্ত করতে হবে৷ অ্যাপস স্ক্রিপ্টে লুকার অ্যাক্সেস করা আপনার বিদ্যমান Google অ্যাকাউন্ট লিঙ্কটি লুকারের সাথে পুনরায় ব্যবহার করবে।

নিম্নলিখিত নমুনাটি একটি ফাংশনের মধ্যে বলা SpreadsheetApp.enableLookerExecution() পদ্ধতি দেখায়:

function addDataSource() {
  SpreadsheetApp.enableLookerExecution();
  var spreadsheet = SpreadsheetApp.getActive();
  }

ম্যানিফেস্ট ফাইলে অতিরিক্ত OAuth স্কোপ যোগ করুন

BigQuery এর সাথে সংযোগ করার সময়, বেশিরভাগ OAuth স্কোপ আপনার কোডে ব্যবহৃত ফাংশনের উপর ভিত্তি করে ম্যানিফেস্ট ফাইলে স্বয়ংক্রিয়ভাবে যোগ করা হয়। নির্দিষ্ট BigQuery ডেটা অ্যাক্সেস করার জন্য আপনার অতিরিক্ত স্কোপের প্রয়োজন হলে, আপনি স্পষ্ট স্কোপ সেট করতে পারেন।

উদাহরণস্বরূপ, Google ড্রাইভে হোস্ট করা BigQuery ডেটা জিজ্ঞাসা করতে, আপনাকে অবশ্যই আপনার ম্যানিফেস্ট ফাইলে একটি ড্রাইভ OAuth সুযোগ যোগ করতে হবে৷

নিম্নলিখিত নমুনা একটি ম্যানিফেস্ট ফাইলের oauthScopes অংশ দেখায়। এটি ন্যূনতম প্রয়োজনীয় spreadsheet এবং bigquery.readonly OAuth স্কোপ ছাড়াও একটি ড্রাইভ OAuth সুযোগ যোগ করে:

{ ...
  "oauthScopes": [
    "https://www.googleapis.com/auth/bigquery.readonly",
    "https://www.googleapis.com/auth/spreadsheets",
    "https://www.googleapis.com/auth/drive" ],
... }

উদাহরণ: একটি ডেটা সোর্স অবজেক্ট তৈরি করুন এবং রিফ্রেশ করুন

নিম্নলিখিত উদাহরণগুলি দেখায় যে কীভাবে একটি ডেটা উত্স যুক্ত করতে হয়, ডেটা উত্স থেকে একটি ডেটা উত্স অবজেক্ট তৈরি করতে হয়, ডেটা উত্স অবজেক্টটি রিফ্রেশ করতে হয় এবং কার্যকর করার স্থিতি পান৷

একটি তথ্য উৎস যোগ করুন

নিম্নলিখিত উদাহরণগুলি দেখায় কিভাবে যথাক্রমে একটি BigQuery এবং একটি Looker ডেটা উৎস যোগ করতে হয়।

BigQuery

একটি স্প্রেডশীটে BigQuery ডেটা সোর্স যোগ করতে, ডেটা সোর্স স্পেক সহ একটি ডেটা সোর্স শীট ঢোকান। প্রিভিউ ডেটা আনতে ডেটা সোর্স শীট স্বয়ংক্রিয়ভাবে রিফ্রেশ হয়।

একটি বৈধ Google ক্লাউড প্রকল্প আইডি দিয়ে নীচে <YOUR_PROJECT_ID> প্রতিস্থাপন করুন।

// For operations that fetch data from BigQuery, enableBigQueryExecution() must be called.
SpreadsheetApp.enableBigQueryExecution();
var spreadsheet = SpreadsheetApp.create('Test connected sheets');
Logger.log('New test spreadsheet: %s', spreadsheet.getUrl());

// Build data source spec by selecting a table.
var dataSourceSpec = SpreadsheetApp.newDataSourceSpec()
    .asBigQuery()
    .setProjectId('<YOUR_PROJECT_ID>')
    .setTableProjectId('bigquery-public-data')
    .setDatasetId('ncaa_basketball')
    .setTableId('mbb_historical_tournament_games')
    .build();
// Add data source and its associated data source sheet.
var dataSourceSheet = spreadsheet.insertDataSourceSheet(dataSourceSpec);
var dataSource = dataSourceSheet.getDataSource();

লুকার

স্প্রেডশীটে লুকার ডেটা সোর্স যোগ করতে, ডেটা সোর্স স্পেক সহ একটি ডেটা সোর্স শীট ঢোকান। প্রিভিউ ডেটা আনতে ডেটা সোর্স শীট স্বয়ংক্রিয়ভাবে রিফ্রেশ হয়।

নিচের নমুনায় <INSTANCE_URL> , <MODEL_NAME> , <EXPLORE_NAME> যথাক্রমে একটি বৈধ লুকার ইনস্ট্যান্স URL, মডেলের নাম এবং এক্সপ্লোর নাম দিয়ে প্রতিস্থাপন করুন।

// For operations that fetch data from Looker, enableLookerExecution() must be called.
SpreadsheetApp.enableLookerExecution();
var spreadsheet = SpreadsheetApp.create('Test connected sheets');
Logger.log('New test spreadsheet: %s', spreadsheet.getUrl());

// Build data source spec by selecting a table.
var dataSourceSpec = SpreadsheetApp.newDataSourceSpec()
    .asLooker()
    .setInstanceUrl('<INSTANCE_URL>')
    .setModelName('<MODEL_NAME>')
    .setExploreName('<EXPLORE_NAME>')
    .build();
// Add data source and its associated data source sheet.
var dataSourceSheet = spreadsheet.insertDataSourceSheet(dataSourceSpec);
var dataSource = dataSourceSheet.getDataSource();

একটি ডেটা সোর্স অবজেক্ট যোগ করুন

একবার স্প্রেডশীটে ডাটা সোর্স যোগ করা হলে, ডাটা সোর্স থেকে ডেটা সোর্স অবজেক্ট তৈরি করা যায়। এই উদাহরণে, কোড নমুনায় তৈরি BigQuery dataSource DataSourcePivotTable ব্যবহার করে একটি পিভট টেবিল তৈরি করা হয়েছে যা একটি BigQuery ডেটাসোর্স যোগ করে।

সেল ইনডেক্স বা A1 নোটেশন দ্বারা রেফারেন্স করা গ্রিড শীটে নিয়মিত ডেটার বিপরীতে, ডেটা উত্স থেকে ডেটা সাধারণত কলামের নাম দ্বারা উল্লেখ করা হয়। অতএব, ডেটা সোর্স অবজেক্টের বেশিরভাগ সম্পত্তি সেটার ইনপুট হিসাবে কলামের নাম ব্যবহার করে।

var rootCell = spreadsheet.insertSheet('pivotTableSheet').getRange('A1');

// Add data source pivot table and set data source specific configurations.
var dataSourcePivotTable = rootCell.createDataSourcePivotTable(dataSource);
var rowGroup = dataSourcePivotTable.addRowGroup('season');
rowGroup.sortDescending().setGroupLimit(5);
dataSourcePivotTable.addColumnGroup('win_school_ncaa');
dataSourcePivotTable.addPivotValue('win_pts', SpreadsheetApp.PivotTableSummarizeFunction.AVERAGE);
dataSourcePivotTable.addPivotValue('game_date', SpreadsheetApp.PivotTableSummarizeFunction.COUNTA);
var filterCriteria = SpreadsheetApp.newFilterCriteria()
    .whenTextEqualToAny(['Duke', 'North Carolina'])
    .build();
dataSourcePivotTable.addFilter('win_school_ncaa', filterCriteria);

// Get a regular pivot table instance and set shared configurations.
var pivotTable = dataSourcePivotTable.asPivotTable();
pivotTable.setValuesDisplayOrientation(SpreadsheetApp.Dimension.ROWS);

একটি ডেটা সোর্স অবজেক্ট রিফ্রেশ করুন

ডেটা সোর্স স্পেসিক্স এবং অবজেক্ট কনফিগারেশনের উপর ভিত্তি করে BigQuery থেকে লেটেস্ট ডেটা আনতে আপনি ডেটা সোর্স অবজেক্ট রিফ্রেশ করতে পারেন।

ডেটা রিফ্রেশ করার প্রক্রিয়াটি অ্যাসিঙ্ক্রোনাস। একটি ডেটা সোর্স অবজেক্ট রিফ্রেশ করতে, নিম্নলিখিত পদ্ধতিগুলি ব্যবহার করুন:

  1. refreshData() ডাটা রিফ্রেশ এক্সিকিউশন শুরু করে।
  2. waitForCompletion() ডেটা এক্সিকিউশন সম্পন্ন হলে শেষ অবস্থা ফেরত দেয়। এটি ফাঁসির স্থিতি বজায় রাখার প্রয়োজনীয়তা দূর করে।
  3. DataExecutionStatus.getErrorCode() ডেটা এক্সিকিউশন ব্যর্থ হলে এরর কোড পায়।

নীচের নমুনাটি পিভট টেবিল ডেটার একটি রিফ্রেশ চিত্রিত করে:

var status = dataSourcePivotTable.getStatus();
Logger.log('Initial state: %s', status.getExecutionState());

dataSourcePivotTable.refreshData();

status = dataSourcePivotTable.waitForCompletion(/* timeoutInSeconds= */ 60);
Logger.log('Ending state: %s', status.getExecutionState());
if (status.getExecutionState() == SpreadsheetApp.DataExecutionState.ERROR) {
  Logger.log('Error: %s (%s)', status.getErrorCode(), status.getErrorMessage());
}

সংযুক্ত পত্রকগুলির সাথে ট্রিগারগুলি ব্যবহার করুন৷

ট্রিগার এবং ইভেন্টগুলির সাথে আপনার সংযুক্ত পত্রক ডেটা উত্স ফাংশনগুলি স্বয়ংক্রিয় করুন৷ উদাহরণ স্বরূপ, একটি নির্দিষ্ট সময়ে বারবার ডেটা সোর্স অবজেক্ট রিফ্রেশ করতে সময়-চালিত ট্রিগার ব্যবহার করুন এবং একটি পূর্বনির্ধারিত ইভেন্টে ডেটা এক্সিকিউশন ট্রিগার করতে স্প্রেডশীট ইভেন্ট ট্রিগার ব্যবহার করুন।

নিম্নলিখিত নমুনাটি একটি ক্যোয়ারী প্যারামিটার সহ একটি BigQuery ডেটা উৎস যোগ করে এবং যখন কোয়েরি প্যারামিটারটি সম্পাদনা করা হয় তখন ডেটা উৎস পত্রকটি রিফ্রেশ করে৷

একটি বৈধ Google ক্লাউড প্রকল্প আইডি দিয়ে নীচে <YOUR_PROJECT_ID> প্রতিস্থাপন করুন।

// Add data source with query parameter.
function addDataSource() {
  SpreadsheetApp.enableBigQueryExecution();
  var spreadsheet = SpreadsheetApp.getActive();

  // Add a new sheet and use A1 cell as the parameter cell.
  var parameterCell = spreadsheet.insertSheet('parameterSheet').getRange('A1');
parameterCell.setValue('Duke');

  // Add data source with query parameter.
  var dataSourceSpec = SpreadsheetApp.newDataSourceSpec()
      .asBigQuery()
      .setProjectId('<YOUR_PROJECT_ID>')
      .setRawQuery('select * from `bigquery-public-data`.`ncaa_basketball`.`mbb_historical_tournament_games` WHERE win_school_ncaa = @SCHOOL')
      .setParameterFromCell('SCHOOL', 'parameterSheet!A1')
      .build();
  var dataSourceSheet = spreadsheet.insertDataSourceSheet(dataSourceSpec);
  dataSourceSheet.asSheet().setName('ncaa_data');
}

// Function used to configure event trigger to refresh data source sheet.
function refreshOnParameterEdit(e) {
  var editedRange = e.range;
if (editedRange.getSheet().getName() != 'parameterSheet') {
  return;
}
// Check that the edited range includes A1.
if (editedRange.getRow() > 1 || editedRange.getColumn() > 1) {
   return;
}

  var spreadsheet = e.source;
  SpreadsheetApp.enableBigQueryExecution();
  spreadsheet.getSheetByName('ncaa_data').asDataSourceSheet().refreshData();
}

উপরের নমুনায়, addDataSource() ফাংশন স্প্রেডশীটে একটি ডেটা উৎস যোগ করে। আপনি addDataSource() এক্সিকিউট করার পরে, Apps স্ক্রিপ্ট এডিটরে একটি ইভেন্ট ট্রিগার তৈরি করুন। কিভাবে একটি ইভেন্ট ট্রিগার তৈরি করতে হয় তা জানতে, ইনস্টলযোগ্য ট্রিগার দেখুন।

আপনার ট্রিগারের জন্য নিম্নলিখিত বিকল্পগুলি নির্বাচন করুন:

  • ইভেন্ট উত্স : স্প্রেডশীট থেকে
  • ইভেন্টের ধরন : সম্পাদনা করা হচ্ছে
  • চালানোর জন্য ফাংশন : refreshOnParameterEdit

একবার ট্রিগার তৈরি হয়ে গেলে, প্রতিবার প্যারামিটার সেল সম্পাদনা করার সময় ডেটা সোর্স শীট স্বয়ংক্রিয়ভাবে রিফ্রেশ হয়।

সমস্যা সমাধান

ত্রুটি বার্তা রেজোলিউশন
BIGQUERY ডেটা উৎসের জন্য ডেটা এক্সিকিউশন সক্ষম করতে enableBigQuery() ব্যবহার করুন৷ এই ত্রুটিটি নির্দেশ করে যে BigQuery ডেটা আনার আগে SpreadsheetApp.enableBigQueryExecution() কল করা হয়নি।
BigQuery এক্সিকিউশনের জন্য পদ্ধতি ব্যবহার করে এমন ফাংশনগুলিতে SpreadsheetApp.enableBigQueryExecution() কল করুন।
যেমন, ডেটা সোর্স অবজেক্টে refreshData() , Spreadsheet.insertDataSourceTable() , এবং DataSource.updateSpec()
এই পদ্ধতিগুলির কাজ করার জন্য একটি অতিরিক্ত bigquery.readonly OAuth সুযোগ প্রয়োজন৷
ডেটা উত্সগুলিতে কাজ করার অনুমতি নেই৷
বৈশিষ্ট্যটি সক্ষম করতে অনুগ্রহ করে আপনার প্রশাসকের সাথে যোগাযোগ করুন৷
এই ত্রুটিটি নির্দেশ করে যে অ্যাকাউন্টে সংযুক্ত পত্রক সক্রিয় নেই৷
সংযুক্ত পত্রক শুধুমাত্র উপলব্ধ Google Workspace নির্দিষ্ট সদস্যতা সহ ব্যবহারকারীরা।
বৈশিষ্ট্যটি সক্ষম করতে আপনার প্রশাসকের সাথে যোগাযোগ করুন৷