ابزارهای زیادی برای دانشمندان داده وجود دارد تا تجزیه و تحلیل کلان داده را انجام دهند، اما در پایان، آیا هنوز نباید آن نتایج را برای مدیریت توجیه کنید؟ تعداد زیادی اعداد روی کاغذ یا در پایگاه داده به سختی برای سهامداران کلیدی قابل ارائه هستند. این لابلای کد میانی Google Apps Script از یک جفت پلتفرم توسعهدهنده Google، G Suite و Google Cloud Platform (GCP) استفاده میکند تا به شما در تکمیل آن مایل نهایی کمک کند.
ابزارهای توسعهدهنده Google Cloud به شما امکان میدهند تجزیه و تحلیل عمیق دادهها را انجام دهید، سپس آن نتایج را بگیرید، آنها را در صفحهگسترده قرار دهید و با آن دادهها یک ارائه اسلاید ایجاد کنید و مرحله مناسبتری را برای ارائه نتایج به مدیریت ارائه دهید. این آزمایشگاه کد BigQuery API GCP (به عنوان یک سرویس پیشرفته اسکریپت برنامهها) و سرویسهای Apps Script داخلی برای Google Sheets و Google Slides را پوشش میدهد.
انگیزه/ هنر قبلی
برنامه نمونه در این کد لبه از این نمونه کدهای دیگر الهام گرفته شده است...
- نمونه برنامه Google Apps Script Service BigQuery و منبع باز در GitHub
- برنامه نمونه که در تولید اسلایدها از ویدیوی توسعه دهنده داده های صفحه گسترده نشان داده شده و در این پست وبلاگ منتشر شده است.
- نمونه برنامه در نوار کد Google Slides API نمایش داده شده است
در حالی که برنامه نمونه Slides API Codelab دارای BigQuery و Slides نیز می باشد، از چند جهت با برنامه نمونه این کدلب تفاوت دارد:
- برنامه Node.js در مقابل برنامه Apps Script ما
- از REST API استفاده می کند در حالی که ما از خدمات Apps Script استفاده می کنیم
- از Google Drive استفاده میکند اما از Google Sheets استفاده نمیکند، در حالی که این برنامه از کاربرگنگار استفاده میکند اما از Drive استفاده نمیکند
برای این نرمافزار، ما میخواستیم بسیاری از فناوریها را در یک برنامه واحد جمع آوری کنیم و در عین حال ویژگیها و APIها را از سراسر Google Cloud به نمایش بگذاریم، به گونهای که بهتر شبیه یک مورد استفاده واقعی باشد. هدف این است که شما را تشویق کنیم تا از تخیل خود استفاده کنید و از GCP و G Suuite برای حل مشکلات چالش برانگیز سازمان یا مشتریان خود استفاده کنید.
چیزی که یاد خواهید گرفت
- نحوه استفاده از Google Apps Script با چندین سرویس Google (GCP & G Suite).
- چگونه از Google BigQuery برای انجام تجزیه و تحلیل کلان داده استفاده کنیم
- نحوه ایجاد یک Google Sheet و پر کردن داده ها در آن
- نحوه ایجاد نمودار جدید در Sheets
- نحوه انتقال نمودارها و داده ها از Sheets به ارائه Google Slides
آنچه شما نیاز دارید
- دسترسی به اینترنت و مرورگر وب
- یک حساب Google (حسابهای G Suite ممکن است به تأیید سرپرست نیاز داشته باشند)
- مهارت های پایه جاوا اسکریپت
- دانش توسعه اسکریپت برنامه ها ممکن است مفید باشد اما لازم نیست
چگونه از این نرم افزار / آموزش استفاده خواهید کرد؟
تجربه خود را با ابزارها و APIهای برنامهنویس G Suite چگونه ارزیابی میکنید؟
به طور خاص تجربه خود را با Apps Script چگونه ارزیابی می کنید؟
تجربه خود را با ابزارها و APIهای توسعه دهنده GCP چگونه ارزیابی می کنید؟
اکنون که می دانید این کد لبه درباره چیست، دقیقاً چه کاری انجام می دهید؟
- یک نمونه Apps Script-BigQuery موجود را بگیرید و آن را به کار بگیرید
- از آن نمونه، نحوه ارسال یک پرس و جو به BigQuery و دریافت نتایج آن را بیاموزید
- یک برگه Google ایجاد کنید و نتایج BigQuery را در آن پر کنید
- کد را کمی تغییر دهید تا داده های بازگشتی و اضافه شده به برگه کمی تغییر کند
- از سرویس Sheets در Apps Script برای ایجاد نمودار برای دادههای BigQuery استفاده کنید
- از سرویس اسلایدها برای ایجاد یک ارائه اسلاید جدید استفاده کنید
- عنوان و زیرنویس را به اسلاید عنوان پیشفرض که بهطور خودکار برای همه دستههای اسلاید جدید ایجاد میشود، اضافه کنید.
- یک اسلاید جدید با یک جدول داده ایجاد کنید، سپس سلول های داده Sheet را در آن وارد کنید
- یک اسلاید جدید دیگر اضافه کنید و نمودار صفحه گسترده را به آن اضافه کنید
بیایید با برخی از اطلاعات پسزمینه Apps Script، BigQuery، Sheets و Slides شروع کنیم.
Google Apps Script و BigQuery
Google Apps Script یک پلت فرم توسعه G Suite است که در سطح بالاتری نسبت به استفاده از Google REST API عمل می کند. این یک محیط میزبانی برنامه و توسعه بدون سرور است که برای طیف وسیعی از سطوح مهارت توسعهدهندگان قابل دسترسی است. در یک جمله، "Apps Script یک زمان اجرا جاوا اسکریپت بدون سرور برای اتوماسیون، توسعه و ادغام مجموعه G است."
این جاوا اسکریپت سمت سرور است، شبیه به Node.js، اما به جای میزبانی سریع ناهمزمان برنامه مبتنی بر رویداد، بر روی یکپارچگی دقیق با G Suite و سایر خدمات Google تمرکز دارد. همچنین دارای یک محیط توسعه است که ممکن است کاملاً با آنچه شما به آن عادت کرده اید متفاوت باشد. با Apps Script، شما:
- در یک ویرایشگر کد مبتنی بر مرورگر توسعه دهید، اما در صورت استفاده از
clasp
، ابزار استقرار خط فرمان برای Apps Script، میتواند به صورت محلی توسعه یابد. - کد در نسخه تخصصی جاوا اسکریپت سفارشی شده برای دسترسی به G Suite و سایر سرویسهای Google یا خارجی (از طریق Apps Script
URLfetch
یا سرویسهایJdbc
) - میتواند از نوشتن کد مجوز اجتناب کند، زیرا Apps Script آن را برای شما مدیریت میکند
- لازم نیست برنامه خود را میزبانی کنید—این برنامه در سرورهای Google در فضای ابری زندگی میکند و اجرا میشود
توجه : آموزش Apps Script به شما در بیشتر موارد خارج از محدوده این نرم افزار کد است. منابع آنلاین زیادی برای کمک به شما در این زمینه وجود دارد. اسناد رسمی دارای نمای کلی با شروع سریع ، آموزش و ویدیو نیز می باشد. و در نهایت، در مورد برنامه کد مقدماتی Apps Script را فراموش نکنید، که باید قبل از شروع این یکی تکمیل شود.
Apps Script با دیگر فناوریهای Google به دو روش مختلف ارتباط برقرار میکند:
- سرویس داخلی/بومی
- خدمات پیشرفته
یک سرویس داخلی روشهای سطح بالایی را ارائه میکند که میتوانید از آنها برای دسترسی به دادههای محصول G Suite یا Google یا سایر روشهای کاربردی مفید استفاده کنید. یک سرویس پیشرفته صرفاً یک پوشش نازک در اطراف G Suite یا Google REST API است. سرویسهای پیشرفته پوشش کامل REST API را ارائه میکنند و اغلب میتوانند بیشتر از سرویسهای داخلی انجام دهند، اما به پیچیدگی کد بیشتری نیاز دارند (در حالی که استفاده از آن نسبت به خود REST API آسانتر است). خدمات پیشرفته نیز باید برای پروژه اسکریپت قبل از استفاده از آنها فعال شوند.
در صورت امکان، توسعه دهندگان باید یک سرویس داخلی را ترجیح دهند زیرا استفاده از آنها آسان تر است و کارهای سنگین تر از سرویس های پیشرفته انجام می دهند. با این حال، برخی از APIهای Google خدمات داخلی ندارند، بنابراین یک سرویس پیشرفته ممکن است تنها گزینه باشد. Google BigQuery یک نمونه از این است... هیچ سرویس داخلی در دسترس نیست، اما یک سرویس پیشرفته BigQuery وجود دارد. (بهتر از عدم سرویس، درست است؟) اگر با BigQuery تازه کار هستید، این یک سرویس GCP است که به شما امکان می دهد پرس و جوهای ساده (یا پیچیده) را روی مجموعه داده های بسیار بزرگ انجام دهید، مثلاً به ترتیب چند ترابایت، اما هنوز هم می تواند نتایج ارائه دهد. در چند ثانیه
دسترسی به Google Sheets & Slides از Apps Script
برخلاف BigQuery، هر دو Google Sheets و Slides دارای سرویسهای داخلی هستند (و همچنین سرویسهای پیشرفته، که فقط برای دسترسی به ویژگیهایی که فقط در API یافت میشوند استفاده میکنید). قبل از پرش به کد، اسناد مربوط به خدمات کاربرگهای داخلی و اسلایدها را ببینید. البته اسنادی نیز برای خدمات پیشرفته وجود دارد. در اینجا آنها به ترتیب برای Sheets و Slides هستند.
مقدمه
با این اولین کار، میخواهیم از این نرمافزار کد استفاده کنیم. در واقع، هنگامی که کار را در اینجا تمام کردید، تقریباً نیمی از راه را با کل Codelab تمام کرده اید. با تقسیم به چندین بخش فرعی، همه این کارها را انجام خواهید داد:
- یک پروژه جدید Google Apps Script را شروع کنید
- دسترسی به سرویس پیشرفته BigQuery را فعال کنید
- به ویرایشگر توسعه بروید و کد منبع برنامه را وارد کنید
- مراحل مجوز برنامه (OAuth2) را طی کنید
- برنامه ای را اجرا کنید که درخواستی را به BigQuery ارسال می کند
- یک Google Sheet کاملاً جدید ایجاد شده با نتایج BigQuery را مشاهده کنید
برپایی
- الف) با رفتن به
script.google.com
یک پروژه Apps Script جدید ایجاد کنید. خطوط تولید G Suite مختلفی وجود دارد و نحوه ایجاد یک پروژه جدید ممکن است بسته به نسخه ای که استفاده می کنید متفاوت باشد. اگر فقط از حساب جیمیل خود استفاده می کنید و در توسعه پروژه ها تازه کار هستید، یک صفحه خالی به همراه دکمه ای برای ایجاد اولین پروژه خود خواهید دید:
ب) در غیر این صورت ممکن است تمام پروژه های خود و یک دکمه بزرگ +New را در بالا سمت چپ ببینید، پس روی آن کلیک کنید.
ج) اگر هیچ یک از موارد بالا وجود نداشته باشد، صفحه نمایش شما ممکن است مانند شکل زیر باشد. اگر چنین است، به دنبال نماد منوی همبرگر در گوشه سمت چپ بالا بگردید و +New script را انتخاب کنید.
د) برای کسانی از شما که خط فرمان را ترجیح می دهند. ابزار شما clasp
است، به طور خاص، شما دستور clasp create
را اجرا می کنید.
ه) راه نهایی برای ایجاد یک پروژه اسکریپت جدید این است که به سادگی به پیوند میانبر بروید: https://script.google.com/create .
- صرف نظر از اینکه از کدام تکنیک برای شروع یک پروژه جدید استفاده کرده اید، نکته اصلی این است که شما باید در ویرایشگر کد Apps Script رها شوید، صفحه ای که شبیه به این است:
- روی File > Save کلیک کنید و نام پروژه خود را انتخاب کنید.
- در مرحله بعد باید یک پروژه Google Cloud Console ایجاد کنید تا بتوانید پرس و جوهای BigQuery را اجرا کنید.
- یک پروژه جدید ایجاد کنید، نامی به آن بدهید، یک حساب صورتحساب را انتخاب کنید و روی ایجاد کلیک کنید.
- هنگامی که ساخت پروژه کامل شد، یک اعلان در سمت راست بالای صفحه ظاهر می شود. روی ورودی Create Project: <Project Name> کلیک کنید تا پروژه باز شود.
- روی نماد منو کلیک کنید
در سمت چپ بالا و به APIs & Services > Credentials بروید. روی برگه صفحه رضایت OAuth ( پیوند مستقیم ) کلیک کنید.
- در قسمت نام برنامه ، "Big Data Codelab" را وارد کنید و روی دکمه ذخیره در پایین کلیک کنید.
- روی نماد سه نقطه کلیک کنید
در سمت راست بالا برای گسترش منو و انتخاب تنظیمات پروژه ( پیوند مستقیم ).
- مقدار فهرست شده در شماره پروژه را کپی کنید. (یک فیلد جداگانه شناسه محصول وجود دارد که بعداً از آن در آزمایشگاه کد استفاده خواهیم کرد.)
- در ویرایشگر اسکریپت برنامه، روی منابع > پروژه پلتفرم ابری کلیک کنید.
- شماره پروژه را در کادر متن وارد کنید و روی تنظیم پروژه کلیک کنید. وقتی از شما خواسته شد، روی تأیید کلیک کنید.
- پس از اتمام، روی دکمه Close کلیک کنید تا گفتگو رد شود.
- اکنون که راه اندازی پروژه جدیدی دارید، باید سرویس پیشرفته BigQuery را فعال کنید، بنابراین Resources -> Advanced Google Services را پایین بکشید و بیت مربوط به BigQuery API را ورق بزنید.
- یادداشتی در پایین میگوید: «این سرویسها باید در «داشبورد Google Cloud Platform API» نیز فعال شوند، بنابراین روی آن پیوند کلیک کنید که برگه مرورگر دیگری را به کنسول توسعهدهنده یا بهاختصار «devconsole» باز میکند.
- در devconsole، روی دکمه +Enable APIs and Services در بالا کلیک کنید، "bigquery" را جستجو کنید، BigQuery API ( نه BigQuery Data Transfer API) را انتخاب کنید و روی enable کلیک کنید تا روشن شود. این برگه مرورگر را باز بگذارید.
توجه : پس از فعال شدن API، ممکن است یادداشتی را در این صفحه مشاهده کنید که می گوید: "برای استفاده از این API، باید اعتبارنامه ایجاد کنید..."، اما فعلا نگران نباشید - Apps Script این کار را انجام خواهد داد. از این مرحله برای شما مراقبت کنید. - در برگه مرورگر ویرایشگر کد خود بازگردید، هنوز در منوی خدمات پیشرفته Google هستید، بنابراین برای بستن کادر گفتگو، روی OK کلیک کنید و شما را در ویرایشگر کد قرار دهید. روی نام پروژه در بالا کلیک کنید، و نام آن را هر چیزی که دوست دارید، "BigQuery demo" یا مشابه بگذارید—ما نام پروژه خود را "نهایه مایل" گذاشتیم.
اکنون آماده هستید تا کد برنامه را وارد کنید، مراحل مجوز را طی کنید و اولین نسخه از این برنامه را به کار بگیرید.
برنامه را آپلود و اجرا کنید
- کد موجود در کادر زیر را کپی کرده و با آن روی همه موارد موجود در ویرایشگر کد قرار دهید:
// Filename for data results
var QUERY_NAME = "Most common words in all of Shakespeare's works";
// Replace this value with your Google Cloud API project ID
var PROJECT_ID = '';
if (!PROJECT_ID) throw Error('Project ID is required in setup');
/**
* Runs a BigQuery query; puts results into Sheet. You must enable
* the BigQuery advanced service before you can run this code.
* @see http://developers.google.com/apps-script/advanced/bigquery#run_query
* @see http://github.com/googleworkspace/apps-script-samples/blob/main/advanced/bigquery.gs
*
* @returns {Spreadsheet} Returns a spreadsheet with BigQuery results
* @see http://developers.google.com/apps-script/reference/spreadsheet/spreadsheet
*/
function runQuery() {
// Replace sample with your own BigQuery query.
var request = {
query:
'SELECT ' +
'LOWER(word) AS word, ' +
'SUM(word_count) AS count ' +
'FROM [bigquery-public-data:samples.shakespeare] ' +
'GROUP BY word ' +
'ORDER BY count ' +
'DESC LIMIT 10'
};
var queryResults = BigQuery.Jobs.query(request, PROJECT_ID);
var jobId = queryResults.jobReference.jobId;
// Wait for BQ job completion (with exponential backoff).
var sleepTimeMs = 500;
while (!queryResults.jobComplete) {
Utilities.sleep(sleepTimeMs);
sleepTimeMs *= 2;
queryResults = BigQuery.Jobs.getQueryResults(PROJECT_ID, jobId);
}
// Get all results from BigQuery.
var rows = queryResults.rows;
while (queryResults.pageToken) {
queryResults = BigQuery.Jobs.getQueryResults(PROJECT_ID, jobId, {
pageToken: queryResults.pageToken
});
rows = rows.concat(queryResults.rows);
}
// Return null if no data returned.
if (!rows) {
return Logger.log('No rows returned.');
}
// Create the new results spreadsheet.
var spreadsheet = SpreadsheetApp.create(QUERY_NAME);
var sheet = spreadsheet.getActiveSheet();
// Add headers to Sheet.
var headers = queryResults.schema.fields.map(function(field) {
return field.name.toUpperCase();
});
sheet.appendRow(headers);
// Append the results.
var data = new Array(rows.length);
for (var i = 0; i < rows.length; i++) {
var cols = rows[i].f;
data[i] = new Array(cols.length);
for (var j = 0; j < cols.length; j++) {
data[i][j] = cols[j].v;
}
}
// Start storing data in row 2, col 1
var START_ROW = 2; // skip header row
var START_COL = 1;
sheet.getRange(START_ROW, START_COL, rows.length, headers.length).setValues(data);
Logger.log('Results spreadsheet created: %s', spreadsheet.getUrl());
}
اکنون فایلی را که ایجاد کرده اید ذخیره کنید اما نام آن را از Code.gs
به bq-sheets-slides.js
. پس این کد چه کاری انجام می دهد؟ قبلاً به شما گفته بودیم که BigQuery را پرس و جو می کند و نتایج را در Google Sheet جدید می نویسد، اما این پرس و جو چیست؟ می توانید آن را نزدیک بالای runQuery()
:
SELECT
LOWER(word) AS word,
SUM(word_count) AS count
FROM [bigquery-public-data:samples.shakespeare]
GROUP BY word
ORDER BY count
DESC LIMIT 10
این پرس و جو از طریق آثار شکسپیر، بخشی از مجموعه داده های عمومی BigQuery ، بررسی می شود و 10 کلمه برتر را که اغلب در همه آثار او ظاهر می شوند، به ترتیب نزولی از محبوبیت مرتب می کند. تصور کنید انجام این کار با دست چقدر (نه) جالب خواهد بود، و باید تصوری از مفید بودن BigQuery داشته باشید.
- ما تقریباً اما کاملاً آماده نیستیم که این را امتحان کنیم. همانطور که در نزدیکی بالای این قطعه کد مشاهده می کنید، یک شناسه پروژه معتبر مورد نیاز است، بنابراین باید شناسه شما را به کد برنامه اضافه کنیم. برای دریافت این مورد، به پنجره مرورگر یا برگه ای که صفحه کنسول توسعه دهنده را دارد بازگردید. (ما به شما گفتیم که آن را باز بگذارید، یادتان هست؟)
- در بالای سمت چپ آواتار حساب Google شما، انتخابگر منوی کشویی (
). روی آن کلیک کنید و تنظیمات پروژه را انتخاب کنید. نام، شناسه و شماره پروژه را خواهید دید. شناسه پروژه را کپی کنید و متغیر
PROJECT_ID
را در بالایbq-sheets-slides.js
روی مقداری که از کنسول برنامهنویس دریافت کردهاید تنظیم کنید. توجه: اگر انتخابگر منو چسبناک شد و از کار افتاد، صفحه را دوباره بارگیری کنید. - دستور
if
وجود دارد تا از ادامه برنامه بدون شناسه پروژه جلوگیری کند. هنگامی که فایل خود را اضافه کردید، فایل را ذخیره کنید و کد خود را با رفتن به منوبار و انتخاب Run > Run function > runQuery اجرا کنید، روی گفتگوی Review Permissions کلیک کنید، این برنامه تأیید نشده است، و در زیر یک GIF متحرک (برای یک برنامه دیگر) وجود دارد. ) نشان دادن چند مرحله بعدی: - هنگامی که درخواست بررسی مجوزها را دادید، همانطور که در بالا نشان داده شده است، با یک گفتگوی جدید روبرو خواهید شد. حساب Google صحیحی را که اسکریپت را اجرا می کند، انتخاب کنید، Advanced را انتخاب کنید، به پایین بروید، سپس روی "Go to <YOUR PROJECT NAME> (ناامن)" کلیک کنید تا به صفحه مجوز برنامه OAuth2 برسید. (در مورد فرآیند تأیید بیشتر بخوانید تا بدانید که چرا این صفحه بین شما و کادر گفتگوی مجوز OAuth2 در زیر قرار دارد.)
توجه: هنگامی که برنامه را مجاز کردید، یک بار دیگر نیازی به تکرار این فرآیند با هر اجرا ندارید. تا زمانی که در ادامه این آموزش به Task 3 نرسیده اید، دوباره این صفحه گفتگو را مشاهده می کنید و از کاربر برای ایجاد و مدیریت ارائه های اسلایدهای Google می خواهید. - پس از کلیک بر روی Allow در پنجره گفتگوی OAuth2، اسکریپت شروع به اجرا می کند... یک گفتگوی زرد پاستلی در بالا خواهید دید. نسبتاً سریع اجرا میشود، بنابراین ممکن است متوجه اجرای آن یا اتمام کامل آن نشوید.
- این گفتگو پس از اتمام ناپدید می شود، بنابراین اگر آن را نمی بینید، احتمالاً تمام شده است، بنابراین به Google Drive خود (
drive.google.com
) بروید و به دنبال یک Google Sheet جدید با نام «متداول ترین کلمات در همه آثار شکسپیر» بگردید. " یا هر چیزی که به متغیرQUERY_NAME
اختصاص داده اید: - صفحه گسترده را باز کنید، و باید 10 ردیف از کلمات و تعداد کل آنها را به ترتیب نزولی مرتب کنید:
خلاصه کار 1
تشخیص دهید که چه اتفاقی افتاده است... شما کدی را اجرا کردید که همه آثار شکسپیر را جستجو کرد (مقدار عظیمی از داده نیست، اما مطمئناً متنی بیشتر از آن چیزی است که به راحتی می توانید به راحتی اسکن کنید و به هر کلمه در هر نمایشنامه نگاه کنید، و تعداد زیادی از این موارد را مدیریت کنید. کلمات را به ترتیب نزولی مرتب کنید. .
کد bq-sheets-slides.js
(نام فایل انتخابی ما) را که در بالا چسباندهاید (به غیر از PROJECT_ID
که باید شناسه پروژه واقعی داشته باشد) را نیز میتوانید در پوشه step1
در مخزن GitHub این codelab در github.com/googlecodelabs پیدا کنید. /bigquery-sheets-slides . این کد از نمونه اصلی در صفحه خدمات پیشرفته BigQuery الهام گرفته شده است که پرس و جوی کمی متفاوت دارد... محبوب ترین کلمات مورد استفاده شکسپیر با 10 کاراکتر یا بیشتر کدامند. شما همچنین می توانید آن نمونه را در مخزن GitHub آن مشاهده کنید.
اگر به سؤالات دیگری علاقه مند هستید که می توانید در برابر آثار شکسپیر یا سایر جداول داده های عمومی امتحان کنید، این صفحه وب و همینطور این صفحه را بررسی کنید . صرف نظر از پرس و جوی که استفاده می کنید، همیشه می توانید پرس و جو را در کنسول BigQuery قبل از اجرای آن در Apps Script آزمایش کنید. رابط کاربری BigQuery برای توسعه دهندگان در bigquery.cloud.google.com در دسترس است. برای مثال، در اینجا به نظر می رسد که پرس و جو ما با استفاده از رابط کاربری BigQuery چگونه است:
در حالی که مراحل بالا از ویرایشگر کد Apps Script بهره میبرد، میتوانید از طریق خط فرمان نیز توسعه محلی را انتخاب کنید. اگر ترجیح می دهید، یک اسکریپت به نام bq-sheets-slides.js
کنید، کد بالا را در آن قرار دهید، سپس با دستور clasp push
در Google آپلود کنید. (اگر قبلاً آن را از دست داده اید، در اینجا مجدداً پیوند clasp
و نحوه استفاده از آن است.)
هدف runQuery()
صحبت کردن با BigQuery و ارسال نتایج آن به یک Sheet است. حالا باید با داده ها نموداری بسازیم. بیایید یک تابع جدید به نام createColumnChart()
newChart()
Sheet را برای انجام این کار فراخوانی می کند.
- نمودار ایجاد کنید. بدنه
createColumnChart()
که در زیر نشان داده شده است را درست بعد ازrunQuery()
بهbq-sheets-slides.js
اضافه کنید. ورق را با داده دریافت می کند و یک نمودار ستونی با تمام داده ها درخواست می کند. محدوده داده از سلول A2 شروع می شود زیرا ردیف اول شامل سرصفحه های ستون است نه داده.
/**
* Uses spreadsheet data to create columnar chart.
* @param {Spreadsheet} Spreadsheet containing results data
* @returns {EmbeddedChart} visualizing the results
* @see http://developers.google.com/apps-script/reference/spreadsheet/embedded-chart
*/
function createColumnChart(spreadsheet) {
// Retrieve the populated (first and only) Sheet.
var sheet = spreadsheet.getSheets()[0];
// Data range in Sheet is from cell A2 to B11
var START_CELL = 'A2'; // skip header row
var END_CELL = 'B11';
// Place chart on Sheet starting on cell E5.
var START_ROW = 5; // row 5
var START_COL = 5; // col E
var OFFSET = 0;
// Create & place chart on the Sheet using above params.
var chart = sheet.newChart()
.setChartType(Charts.ChartType.COLUMN)
.addRange(sheet.getRange(START_CELL + ':' + END_CELL))
.setPosition(START_ROW, START_COL, OFFSET, OFFSET)
.build();
sheet.insertChart(chart);
}
- صفحه گسترده برگرداندن در بالا،
createColumnChart()
به شی صفحه گسترده نیاز دارد، بنابراین ما بایدrunQuery()
را برای برگرداندن شیspreadsheet
به روز کنیم تا بتوانیم آن را بهcreateColumnChart()
ارسال کنیم. پس از ثبت موفقیت آمیز ایجاد Google Sheet، شیءspreadsheet
را در انتهایrunQuery()
درست بعد از خط گزارش برگردانید:
Logger.log('Results spreadsheet created: %s', spreadsheet.getUrl());
// NEW: Return the spreadsheet object for later use.
return spreadsheet;
}
- در حال اجرا تابع createBigQueryPresentation
createBigQueryPresentation()
. تفکیک منطقی عملکرد BigQuery و ایجاد نمودار یک ایده عالی است. حالا بیایید یکcreateBigQueryPresentation()
برای درایو برنامه ایجاد کنیم و همrunQuery()
و هم createColumnChart() راcreateColumnChart()
. کدی که اضافه می کنید باید چیزی شبیه به این باشد:
/**
* Runs a BigQuery query, adds data and a chart in a Sheet.
*/
function createBigQueryPresentation() {
var spreadsheet = runQuery();
createColumnChart(spreadsheet);
}
- کد را قابل استفاده مجدد تر کنید . شما 2 مرحله مهم را در بالا انجام دادید: بازگرداندن شی صفحه گسترده و ایجاد یک تابع رانندگی. اگر همکار بخواهد مجدداً از
runQuery()
استفاده کند و نخواهد URL ثبت شود چه؟ برای اینکهrunQuery()
را برای استفاده عمومی قابل هضم تر کنیم، باید آن خط لاگ را جابجا کنیم. بهترین مکان برای جابجایی آن؟ اگر حدسcreateBigQueryPresentation()
، درست می گویید! پس از جابجایی خط لاگ، باید به شکل زیر باشد:
/**
* Runs a BigQuery query, adds data and a chart in a Sheet.
*/
function createBigQueryPresentation() {
var spreadsheet = runQuery();
Logger.log('Results spreadsheet created: %s', spreadsheet.getUrl()); // MOVED HERE
createColumnChart(spreadsheet);
}
با این تغییرات در بالا (دوباره به جز PROJECT_ID
)، bq-sheets-slides.js
اکنون باید مانند شکل زیر باشد (و همچنین در پوشه step2
مخزن GitHub یافت می شود):
// Filename for data results
var QUERY_NAME = "Most common words in all of Shakespeare's works";
// Replace this value with your Google Cloud API project ID
var PROJECT_ID = '';
if (!PROJECT_ID) throw Error('Project ID is required in setup');
/**
* Runs a BigQuery query; puts results into Sheet. You must enable
* the BigQuery advanced service before you can run this code.
* @see http://developers.google.com/apps-script/advanced/bigquery#run_query
* @see http://github.com/googleworkspace/apps-script-samples/blob/main/advanced/bigquery.gs
*
* @returns {Sheet} Returns a sheet with results
* @see http://developers.google.com/apps-script/reference/spreadsheet/sheet
*/
function runQuery() {
// Replace sample with your own BigQuery query.
var request = {
query:
'SELECT ' +
'LOWER(word) AS word, ' +
'SUM(word_count) AS count ' +
'FROM [bigquery-public-data:samples.shakespeare] ' +
'GROUP BY word ' +
'ORDER BY count ' +
'DESC LIMIT 10'
};
var queryResults = BigQuery.Jobs.query(request, PROJECT_ID);
var jobId = queryResults.jobReference.jobId;
// Wait for BQ job completion (with exponential backoff).
var sleepTimeMs = 500;
while (!queryResults.jobComplete) {
Utilities.sleep(sleepTimeMs);
sleepTimeMs *= 2;
queryResults = BigQuery.Jobs.getQueryResults(PROJECT_ID, jobId);
}
// Get all results from BigQuery.
var rows = queryResults.rows;
while (queryResults.pageToken) {
queryResults = BigQuery.Jobs.getQueryResults(PROJECT_ID, jobId, {
pageToken: queryResults.pageToken
});
rows = rows.concat(queryResults.rows);
}
// Return null if no data returned.
if (!rows) {
return Logger.log('No rows returned.');
}
// Create the new results spreadsheet.
var spreadsheet = SpreadsheetApp.create(QUERY_NAME);
var sheet = spreadsheet.getActiveSheet();
// Add headers to Sheet.
var headers = queryResults.schema.fields.map(function(field) {
return field.name.toUpperCase();
});
sheet.appendRow(headers);
// Append the results.
var data = new Array(rows.length);
for (var i = 0; i < rows.length; i++) {
var cols = rows[i].f;
data[i] = new Array(cols.length);
for (var j = 0; j < cols.length; j++) {
data[i][j] = cols[j].v;
}
}
// Start storing data in row 2, col 1
var START_ROW = 2; // skip header row
var START_COL = 1;
sheet.getRange(START_ROW, START_COL, rows.length, headers.length).setValues(data);
// Return the spreadsheet object for later use.
return spreadsheet;
}
/**
* Uses spreadsheet data to create columnar chart.
* @param {Spreadsheet} Spreadsheet containing results data
* @returns {EmbeddedChart} visualizing the results
* @see http://developers.google.com/apps-script/reference/spreadsheet/embedded-chart
*/
function createColumnChart(spreadsheet) {
// Retrieve the populated (first and only) Sheet.
var sheet = spreadsheet.getSheets()[0];
// Data range in Sheet is from cell A2 to B11
var START_CELL = 'A2'; // skip header row
var END_CELL = 'B11';
// Place chart on Sheet starting on cell E5.
var START_ROW = 5; // row 5
var START_COL = 5; // col E
var OFFSET = 0;
// Create & place chart on the Sheet using above params.
var chart = sheet.newChart()
.setChartType(Charts.ChartType.COLUMN)
.addRange(sheet.getRange(START_CELL + ':' + END_CELL))
.setPosition(START_ROW, START_COL, OFFSET, OFFSET)
.build();
sheet.insertChart(chart);
}
/**
* Runs a BigQuery query, adds data and a chart in a Sheet.
*/
function createBigQueryPresentation() {
var spreadsheet = runQuery();
Logger.log('Results spreadsheet created: %s', spreadsheet.getUrl());
createColumnChart(spreadsheet);
}
فایل را ذخیره کنید، سپس در بالای ویرایشگر کد به بالا بروید و به جای runQuery()
() به اجرای createBigQueryPresentation()
بروید. پس از اجرای آن، Google Sheet دیگری دریافت خواهید کرد، اما این بار، نموداری در Sheet در کنار داده ها نشان داده می شود:
بخش پایانی نرم افزار کد شامل ایجاد یک ارائه جدید در Google Slides، پر کردن عنوان و زیرنویس در اسلاید عنوان، سپس اضافه کردن 2 اسلاید جدید، یکی برای هر یک از سلول های داده و دیگری برای نمودار است.
- عرشه اسلاید ایجاد کنید. تمام کارهای روی عرشه اسلاید در
createSlidePresentation()
انجام می شود که ما می خواهیم درست بعد ازcreateColumnChart()
بهbq-sheets-slides.js
اضافه کنیم. بیایید با ایجاد یک عرشه اسلاید جدید شروع کنیم، سپس یک عنوان و زیرنویس را به اسلاید عنوان پیشفرض اضافه کنیم که با همه ارائههای جدید دریافت میکنیم.
/**
* Create presentation with spreadsheet data & chart
* @param {Spreadsheet} Spreadsheet with results data
* @param {EmbeddedChart} Sheets chart to embed on slide
* @returns {Presentation} Slide deck with results
*/
function createSlidePresentation(spreadsheet, chart) {
// Create the new presentation.
var deck = SlidesApp.create(QUERY_NAME);
// Populate the title slide.
var [title, subtitle] = deck.getSlides()[0].getPageElements();
title.asShape().getText().setText(QUERY_NAME);
subtitle.asShape().getText().setText('via GCP and G Suite APIs:\n' +
'Google Apps Script, BigQuery, Sheets, Slides');
- جدول داده ها را اضافه کنید گام بعدی در
createSlidePresentation()
وارد کردن داده های سلولی از Google Sheet به عرشه اسلاید جدید ما است. این قطعه کد است، بنابراین آن را به تابع اضافه کنید:
// Data range to copy is from cell A1 to B11
var START_CELL = 'A1'; // include header row
var END_CELL = 'B11';
// Add the table slide and insert an empty table on it of
// the dimensions of the data range; fails if Sheet empty.
var tableSlide = deck.appendSlide(SlidesApp.PredefinedLayout.BLANK);
var sheetValues = spreadsheet.getSheets()[0].getRange(
START_CELL + ':' + END_CELL).getValues();
var table = tableSlide.insertTable(sheetValues.length, sheetValues[0].length);
// Populate the table with spreadsheet data.
for (var i = 0; i < sheetValues.length; i++) {
for (var j = 0; j < sheetValues[0].length; j++) {
table.getCell(i, j).getText().setText(String(sheetValues[i][j]));
}
}
- نمودار واردات . مرحله آخر در
createSlidePresentation()
ایجاد یک اسلاید دیگر، وارد کردن نمودار از صفحه گسترده و برگرداندن شیPresentation
است. این قطعه نهایی را به تابع اضافه کنید:
// Add a chart slide and insert the chart on it.
var chartSlide = deck.appendSlide(SlidesApp.PredefinedLayout.BLANK);
chartSlide.insertSheetsChart(chart);
// Return the presentation object for later use.
return deck;
}
- نمودار برگشتی اکنون که عملکرد نهایی ما تکمیل شده است، یک نگاه دیگر به امضای آن بیندازید. بله،
createSlidePresentation()
به یک صفحه گسترده و یک شی نمودار نیاز دارد. ما قبلاrunQuery()
را برای برگرداندن شیءSpreadsheet
تنظیم کرده ایم اما اکنون باید تغییری مشابه درcreateColumnChart()
ایجاد کنیم تا شی نمودار (EmbeddedChart
) را برگردانیم. به برنامه خود برگردید و به کد اضافه کنید تا آخرین خط را در انتهایcreateColumnChart()
اضافه کنید تا این کار را انجام دهید:
// NEW: Return chart object for later use
return chart;
}
-
createBigQueryPresentation()
به روز کنید. از آنجایی کهcreateColumnChart()
نمودار را برمی گرداند، باید آن نمودار را در یک متغیر ذخیره کنیم و سپس صفحه گسترده و نمودار را بهcreateSlidePresentation()
. از آنجایی که ما URL صفحه گسترده تازه ایجاد شده را ثبت می کنیم، بیایید URL ارائه اسلاید جدید را نیز ثبت کنیم.createBigQueryPresentation()
خود را به روز کنید تا به شکل زیر باشد:
/**
* Runs a BigQuery query, adds data and a chart in a Sheet,
* and adds the data and chart to a new slide presentation.
*/
function createBigQueryPresentation() {
var spreadsheet = runQuery();
Logger.log('Results spreadsheet created: %s', spreadsheet.getUrl());
var chart = createColumnChart(spreadsheet); // UPDATED
var deck = createSlidePresentation(spreadsheet, chart); // NEW
Logger.log('Results slide deck created: %s', deck.getUrl()); // NEW
}
- ذخیره کنید و دوباره
createBigQueryPresentation()
را اجرا کنید. با این حال، قبل از اجرا، تشخیص دهید که برنامه شما اکنون به یک مجموعه مجوز دیگر از کاربر شما برای مشاهده و مدیریت ارائههای اسلایدهای Google شما نیاز دارد. پس از اجازه دادن به این مجوز، مانند قبل اجرا می شود. - اکنون علاوه بر برگه ای که ایجاد شده است، باید یک ارائه اسلاید جدید با 3 اسلاید (عنوان، جدول داده ها، نمودار داده) نیز دریافت کنید، همانطور که در زیر نشان داده شده است:
تبریک می گویم! اکنون برنامهای ایجاد کردهاید که با انجام یک درخواست Google BigQuery که یکی از مجموعههای داده عمومی آن را پرس و جو میکند، یک Google Sheet جدید برای ذخیره نتایج ایجاد میکند، و نموداری بر اساس آن دادههای تازه بازیابی شده اضافه میکند، از هر دو طرف Google Cloud استفاده میکند. ، و در نهایت یک ارائه اسلایدهای Google با نتایج و همچنین نمودار در صفحه گسترده ایجاد می کند.
این کاری است که شما از نظر فنی انجام دادید. به طور کلی، شما از تجزیه و تحلیل کلان داده به چیزی که می توانید به سهامداران ارائه دهید، همه به صورت کد و همه خودکار تبدیل شده اید. ما امیدواریم که این نمونه به شما انگیزه دهد که این را بگیرید و آن را برای پروژه های خود سفارشی کنید. در پایان این نرمافزار، ما پیشنهاداتی را برای بهبود بیشتر این نمونه برنامه ارائه خواهیم کرد.
با تغییرات بالا نسبت به کار نهایی (دوباره به جز PROJECT_ID
)، bq-sheets-slides.js
اکنون باید به شکل زیر باشد (و همچنین در پوشه final
در مخزن GitHub یافت می شود):
bq-sheets-slides.js
/**
* Copyright 2018 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at apache.org/licenses/LICENSE-2.0.
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// Filename for data results
var QUERY_NAME = "Most common words in all of Shakespeare's works";
// Replace this value with your Google Cloud API project ID
var PROJECT_ID = '';
if (!PROJECT_ID) throw Error('Project ID is required in setup');
/**
* Runs a BigQuery query; puts results into Sheet. You must enable
* the BigQuery advanced service before you can run this code.
* @see http://developers.google.com/apps-script/advanced/bigquery#run_query
* @see http://github.com/googleworkspace/apps-script-samples/blob/main/advanced/bigquery.gs
*
* @returns {Spreadsheet} Returns a spreadsheet with BigQuery results
* @see http://developers.google.com/apps-script/reference/spreadsheet/spreadsheet
*/
function runQuery() {
// Replace sample with your own BigQuery query.
var request = {
query:
'SELECT ' +
'LOWER(word) AS word, ' +
'SUM(word_count) AS count ' +
'FROM [bigquery-public-data:samples.shakespeare] ' +
'GROUP BY word ' +
'ORDER BY count ' +
'DESC LIMIT 10'
};
var queryResults = BigQuery.Jobs.query(request, PROJECT_ID);
var jobId = queryResults.jobReference.jobId;
// Wait for BQ job completion (with exponential backoff).
var sleepTimeMs = 500;
while (!queryResults.jobComplete) {
Utilities.sleep(sleepTimeMs);
sleepTimeMs *= 2;
queryResults = BigQuery.Jobs.getQueryResults(PROJECT_ID, jobId);
}
// Get all results from BigQuery.
var rows = queryResults.rows;
while (queryResults.pageToken) {
queryResults = BigQuery.Jobs.getQueryResults(PROJECT_ID, jobId, {
pageToken: queryResults.pageToken
});
rows = rows.concat(queryResults.rows);
}
// Return null if no data returned.
if (!rows) {
return Logger.log('No rows returned.');
}
// Create the new results spreadsheet.
var spreadsheet = SpreadsheetApp.create(QUERY_NAME);
var sheet = spreadsheet.getActiveSheet();
// Add headers to Sheet.
var headers = queryResults.schema.fields.map(function(field) {
return field.name.toUpperCase();
});
sheet.appendRow(headers);
// Append the results.
var data = new Array(rows.length);
for (var i = 0; i < rows.length; i++) {
var cols = rows[i].f;
data[i] = new Array(cols.length);
for (var j = 0; j < cols.length; j++) {
data[i][j] = cols[j].v;
}
}
// Start storing data in row 2, col 1
var START_ROW = 2; // skip header row
var START_COL = 1;
sheet.getRange(START_ROW, START_COL, rows.length, headers.length).setValues(data);
// Return the spreadsheet object for later use.
return spreadsheet;
}
/**
* Uses spreadsheet data to create columnar chart.
* @param {Spreadsheet} Spreadsheet containing results data
* @returns {EmbeddedChart} visualizing the results
* @see http://developers.google.com/apps-script/reference/spreadsheet/embedded-chart
*/
function createColumnChart(spreadsheet) {
// Retrieve the populated (first and only) Sheet.
var sheet = spreadsheet.getSheets()[0];
// Data range in Sheet is from cell A2 to B11
var START_CELL = 'A2'; // skip header row
var END_CELL = 'B11';
// Place chart on Sheet starting on cell E5.
var START_ROW = 5; // row 5
var START_COL = 5; // col E
var OFFSET = 0;
// Create & place chart on the Sheet using above params.
var chart = sheet.newChart()
.setChartType(Charts.ChartType.COLUMN)
.addRange(sheet.getRange(START_CELL + ':' + END_CELL))
.setPosition(START_ROW, START_COL, OFFSET, OFFSET)
.build();
sheet.insertChart(chart);
// Return the chart object for later use.
return chart;
}
/**
* Create presentation with spreadsheet data & chart
* @param {Spreadsheet} Spreadsheet with results data
* @param {EmbeddedChart} Sheets chart to embed on slide
* @returns {Presentation} Returns a slide deck with results
* @see http://developers.google.com/apps-script/reference/slides/presentation
*/
function createSlidePresentation(spreadsheet, chart) {
// Create the new presentation.
var deck = SlidesApp.create(QUERY_NAME);
// Populate the title slide.
var [title, subtitle] = deck.getSlides()[0].getPageElements();
title.asShape().getText().setText(QUERY_NAME);
subtitle.asShape().getText().setText('via GCP and G Suite APIs:\n' +
'Google Apps Script, BigQuery, Sheets, Slides');
// Data range to copy is from cell A1 to B11
var START_CELL = 'A1'; // include header row
var END_CELL = 'B11';
// Add the table slide and insert an empty table on it of
// the dimensions of the data range; fails if Sheet empty.
var tableSlide = deck.appendSlide(SlidesApp.PredefinedLayout.BLANK);
var sheetValues = spreadsheet.getSheets()[0].getRange(
START_CELL + ':' + END_CELL).getValues();
var table = tableSlide.insertTable(sheetValues.length, sheetValues[0].length);
// Populate the table with spreadsheet data.
for (var i = 0; i < sheetValues.length; i++) {
for (var j = 0; j < sheetValues[0].length; j++) {
table.getCell(i, j).getText().setText(String(sheetValues[i][j]));
}
}
// Add a chart slide and insert the chart on it.
var chartSlide = deck.appendSlide(SlidesApp.PredefinedLayout.BLANK);
chartSlide.insertSheetsChart(chart);
// Return the presentation object for later use.
return deck;
}
/**
* Runs a BigQuery query, adds data and a chart in a Sheet,
* and adds the data and chart to a new slide presentation.
*/
function createBigQueryPresentation() {
var spreadsheet = runQuery();
Logger.log('Results spreadsheet created: %s', spreadsheet.getUrl());
var chart = createColumnChart(spreadsheet);
var deck = createSlidePresentation(spreadsheet, chart);
Logger.log('Results slide deck created: %s', deck.getUrl());
}
هیچ نقشی در این کد لبه، "فایل دوم" در این لبه کد است، که فایل مانیفست Apps Script، appsscript.json
است. با رفتن به تب مرورگر ویرایشگر کد و انتخاب View > Show manifest file از منوی بالا، می توانید به آن دسترسی داشته باشید. محتوا باید چیزی شبیه به این باشد:
appsscript.json
{
"timeZone": "America/Los_Angeles",
"dependencies": {
"enabledAdvancedServices": [{
"userSymbol": "BigQuery",
"serviceId": "bigquery",
"version": "v2"
}]
},
"exceptionLogging": "STACKDRIVER"
}
فایل مانیفست یک فایل پیکربندی در سطح سیستم است که Apps Script از آن استفاده می کند تا بداند چه محیط اجرایی برای برنامه شما در دسترس است. پوشاندن محتویات یک فایل مانیفست خارج از محدوده این کد لبه است، اما میتوانید ایدهای از کار آن داشته باشید.
در زیر منابع اضافی وجود دارد که به شما کمک میکند تا در مطالبی که در این آزمایشگاه کد پوشش داده شده است عمیقتر شوید و همچنین راههای دیگر دسترسی برنامهنویسی به ابزارهای توسعهدهنده Google را کشف کنید. هدف ما این است که این کد لبه را با مخزن همگام نگه داریم.
منابع این نرم افزار
- این پیوند کد لبه: g.co/codelabs/bigquery-sheets-slides
- مخزن کد منبع
- ویدیوی توسعه دهنده (و) پست وبلاگ
- جلسه Google Cloud NEXT '18
مستندات
- سایت اسناد Google Apps Script
- خدمات صفحه گسترده اسکریپت برنامه ها
- سرویس اسلایدهای اسکریپت برنامه ها
- سرویس پیشرفته BigQuery Apps Script
ویدیوهای مرتبط و کلی
- یکی دیگر از رازهای Google (Apps)؟ ( ویدیوی معرفی Apps Script)
- دسترسی به نقشه گوگل از صفحه گسترده؟!؟ ( ویدئو )
- کتابخانه ویدیوی Google Apps Script
- سری ویدیوهای Launchpad Online (سلف ...)
- مجموعه ویدیویی G Suite Dev Show
اخبار و به روز رسانی های مرتبط و کلی
- رابط داده Google Sheets برای BigQuery ( اعلامیه )
- Google BigQuery با Google Drive ادغام می شود ( لینک1 ، پیوند2)
- وبلاگ توسعه دهندگان گوگل
- وبلاگ Google Cloud Platform
- وبلاگ Google Cloud Big Data & Machine Learning
- Google Developers Twitter (@GoogleDevs)
- وبلاگ توسعه دهندگان G Suite
- توسعه دهندگان G Suite Twitter (@googleworkspace)
- خبرنامه ماهانه توسعه دهندگان G Suite
سایر کدها
مقدماتی
- [REST APIs] G Suite و Google API (Drive API)
- [App Maker] در App Maker یک برنامه وب پایگاه داده بسازید
حد واسط
- [Apps Script] ابزار خط فرمان CLASP Apps Script
- [Apps Script] افزونههای Gmail
- [Apps Script] Docs Add-on & GCP Natural Language API
- [Apps Script] چارچوب ربات Hangouts Chat
- [REST APIs] ابزار گزارش سفارشی (Sheets API)
- [REST APIs] تولید کننده اسلاید سفارشی برای مجوز Github تجزیه و تحلیل BigQuery (Slides+BigQuery API)
برنامه های مرجع
- مبدل علامت گذاری به اسلایدهای Google (Slides API)
در زیر «چالشهای کد» مختلف وجود دارد، روشهای مختلفی که میتوانید نمونهای را که ما در این آزمایشگاه ساختهایم، تقویت یا تقویت کنید. این فهرست مطمئناً جامع نیست، اما باید ایدههای الهامبخشی در مورد اینکه کجا میتوانید قدم بعدی را بردارید ارائه دهد.
- برنامه کاربردی آیا نمی خواهید با استفاده از جاوا اسکریپت یا محدودیت های اعمال شده توسط Apps Script محدود شوید؟ این برنامه را به زبان برنامه نویسی مورد علاقه خود که از REST API برای Google BigQuery، Sheets و Slides استفاده می کند، پورت کنید.
- BigQuery . با یک پرس و جو متفاوت برای مجموعه داده های شکسپیر آزمایش کنید... شاید پرس و جوی مورد علاقه خود را پیدا کنید. نمونه سوال دیگری را می توان در برنامه نمونه اصلی Apps Script BigQuery پیدا کرد.
- BigQuery . با برخی از دیگر مجموعههای داده عمومی BigQuery آزمایش کنید... شاید مجموعه دادهای را بیابید که ممکن است برای شما معنیدارتر باشد.
- BigQuery . قبلاً به سؤالات دیگری اشاره کردیم که میتوانید در برابر آثار شکسپیر یا سایر جداول دادههای عمومی امتحان کنید، و میخواستیم این صفحه وب و همچنین این صفحه را دوباره به اشتراک بگذاریم.
- ورق . با انواع نمودارهای دیگر آزمایش کنید.
- Sheets و BigQuery. جداول را بچرخانید... شاید شما یک مجموعه داده بزرگ در یک صفحه گسترده در جایی دارید. در سال 2016، تیم BigQuery این ویژگی را معرفی کرد که به توسعه دهندگان اجازه می داد از یک Sheet به عنوان منبع داده استفاده کنند (برای اطلاعات بیشتر به پست اول و دوم وبلاگ مراجعه کنید).
- اسلایدها اسلایدهای دیگری را به ارائه تولید شده اضافه کنید، مانند تصاویر یا سایر دارایی های مرتبط با تجزیه و تحلیل کلان داده شما. در اینجا راهنمای سرویس داخلی اسلایدها برای شروع شما آمده است.
- جی سوئیت . برای سایر سرویسهای داخلی G Suite یا Google از Apps Script، یعنی Gmail، Google Drive، Calendar، Docs، Maps، Analytics، YouTube و غیره و همچنین سایر سرویسهای پیشرفته استفاده کنید. برای اطلاعات بیشتر به نمای کلی مرجع برای خدمات داخلی و پیشرفته مراجعه کنید.