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

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

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

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

কর্ম Google Apps স্ক্রিপ্ট ক্লাস ব্যবহার করার পদ্ধতি
BigQuery-এ একটি শীট সংযুক্ত করুন DataSourceSpec SpreadsheetApp.newDataSourceSpec()
একটি BigQuery ডেটা উৎস বেছে নিন DataSource Spreadsheet.insertDataSourceSheet().getDataSource()
একটি BigQuery ডেটা সোর্স শীট যোগ করুন 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();
  }

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

আপনার কোডে ব্যবহৃত ফাংশনগুলির উপর ভিত্তি করে বেশিরভাগ 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 ডেটা সোর্স যোগ করতে হয়, ডেটা সোর্স থেকে ডেটা সোর্স অবজেক্ট তৈরি করতে হয়, ডেটা সোর্স অবজেক্ট রিফ্রেশ করতে হয় এবং এক্সিকিউশন স্ট্যাটাস পেতে হয়। এই উদাহরণে, কোড স্নিপেটগুলি ক্রমানুসারে কার্যকর করা হয়।

একটি 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();

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

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

সেল ইনডেক্স বা 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());
}

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

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

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

একটি বৈধ 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 ব্যবহারকারীদের জন্য উপলব্ধ।
বৈশিষ্ট্যটি সক্ষম করতে আপনার প্রশাসকের সাথে যোগাযোগ করুন৷