เปลี่ยนข้อมูลขนาดใหญ่ให้กลายเป็นข้อมูลเชิงลึกโดยใช้ Google ชีตและสไลด์

1. ตั้งแต่การวิเคราะห์ข้อมูลขนาดใหญ่ไปจนถึงการนำเสนอสไลด์

มีเครื่องมือมากมายสำหรับนักวิทยาศาสตร์ข้อมูลในการวิเคราะห์ข้อมูลขนาดใหญ่ แต่สุดท้ายแล้วนักวิเคราะห์ก็ยังคงต้องอธิบายผลลัพธ์เพื่อการจัดการ ตัวเลขจำนวนมากบนกระดาษหรือในฐานข้อมูลทำให้ผู้มีส่วนเกี่ยวข้องคนสำคัญแทบไม่เห็นเลย Codelab ของ Google Apps Script ระดับกลางนี้ใช้แพลตฟอร์มสำหรับนักพัฒนาซอฟต์แวร์ของ Google 2 แพลตฟอร์ม (Google Workspace และ Google Cloud Console) เพื่อช่วยทำให้ขั้นตอนดังกล่าวทำงานอัตโนมัติ

เครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ของ Google Cloud ให้คุณวิเคราะห์ข้อมูลเชิงลึกได้ จากนั้นคุณจะสามารถนำผลลัพธ์ไปแทรกในสเปรดชีต และสร้างงานนำเสนอในสไลด์ที่มีข้อมูล วิธีนี้จะทำให้ส่งข้อมูลได้อย่างเหมาะสมมากขึ้นในการจัดการข้อมูล Codelab นี้ครอบคลุม BigQuery API ของ Cloud Console (ในฐานะบริการขั้นสูงของ Apps Script) และบริการ Apps Script ในตัวสำหรับ Google ชีตและ Google สไลด์

แรงจูงใจ

แอปตัวอย่างใน Codelab นี้ได้แรงบันดาลใจมาจากตัวอย่างโค้ดอื่นๆ ต่อไปนี้

แม้ว่าแอปตัวอย่าง Codelab ของ Slides API จะมี BigQuery และสไลด์รวมอยู่ด้วย แต่จะแตกต่างจากแอปตัวอย่าง Codelab นี้ในหลายๆ ด้าน ดังนี้

  • แอป Node.js ของแอปดังกล่าวเทียบกับแอป Apps Script
  • โดยใช้ REST API ในขณะที่เราใช้บริการ Apps Script
  • โดยใช้ Google ไดรฟ์ แต่ไม่ใช้ Google ชีต ในขณะที่แอปนี้ใช้ชีตแต่ไม่ใช้ไดรฟ์

สำหรับ Codelab นี้ เราต้องการรวมเทคโนโลยีหลายอย่างไว้ในแอปเดียว พร้อมทั้งแสดงฟีเจอร์และ API จากทั่วทั้ง Google Cloud ในลักษณะที่คล้ายกับกรณีการใช้งานในชีวิตจริง เป้าหมายคือการสร้างแรงบันดาลใจให้คุณใช้จินตนาการและพิจารณาใช้ทั้ง Cloud Console และ Google Workspace เพื่อแก้ปัญหาที่ท้าทายสำหรับองค์กรและลูกค้า

สิ่งที่คุณจะได้เรียนรู้

  • วิธีใช้ Google Apps Script กับบริการต่างๆ ของ Google
  • วิธีใช้ Google BigQuery เพื่อวิเคราะห์ข้อมูลขนาดใหญ่
  • วิธีสร้างสเปรดชีตใน Google ชีตและแทรกข้อมูลลงในสเปรดชีตนั้น
  • วิธีสร้างแผนภูมิในชีต
  • วิธีโอนข้อมูลและแผนภูมิจากชีตไปยังงานนำเสนอใน Google สไลด์

สิ่งที่ต้องมี

  • เว็บเบราว์เซอร์ที่มีการเข้าถึงอินเทอร์เน็ต
  • บัญชี Google (บัญชี Google Workspace อาจต้องได้รับการอนุมัติจากผู้ดูแลระบบ)
  • มีความคุ้นเคยกับ Google ชีตในระดับพื้นฐาน
  • ความสามารถในการอ่านรูปแบบ A1 ของชีต
  • ทักษะพื้นฐานเกี่ยวกับ JavaScript
  • ความรู้เกี่ยวกับการพัฒนาสคริปต์ Apps มีประโยชน์มากแต่ไม่จำเป็น

2. แบบสำรวจ

คุณจะใช้ Codelab/บทแนะนำนี้อย่างไร

อ่านเพื่อวัตถุประสงค์ด้านข้อมูล โดยอาจส่งต่อให้เพื่อนร่วมงานด้านเทคนิค พยายามออกกำลังกายให้ถึงขีดสุดเท่าที่จะทำได้ จะลังเล็ด ฉันจะทำ Codelab ให้เสร็จละกัน

คุณจะให้คะแนนประสบการณ์การใช้งานเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ Google Workspace และ API

มือใหม่ ระดับกลาง ผู้ชำนาญ

โปรดให้คะแนนประสบการณ์การใช้งาน Apps Script โดยเฉพาะ

มือใหม่ ระดับกลาง ผู้ชำนาญ

คุณจะให้คะแนนประสบการณ์การใช้งานเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ Cloud Console และ API

มือใหม่ ระดับกลาง ผู้ชำนาญ

3. ภาพรวม

เมื่อคุณทราบแล้วว่า Codelab นี้เกี่ยวกับอะไร สิ่งที่คุณต้องทำมีดังนี้

  1. ลองใช้ตัวอย่าง Apps Script-BigQuery ที่มีอยู่และทําให้ใช้งานได้
  2. ดูวิธีส่งคำค้นหาไปยัง BigQuery และได้ผลลัพธ์จากตัวอย่างนี้
  3. สร้างสเปรดชีตใน Google ชีตแล้วแทรกผลลัพธ์ที่ได้จาก BigQuery ลงไป
  4. แก้ไขโค้ดเพื่อปรับเปลี่ยนข้อมูลที่แสดงผลและแทรกลงในชีตเล็กน้อย
  5. ใช้บริการชีตใน Apps Script เพื่อสร้างแผนภูมิสำหรับข้อมูล BigQuery
  6. ใช้บริการสไลด์เพื่อสร้างงานนำเสนอใน Google สไลด์
  7. เพิ่มชื่อและคำบรรยายในสไลด์ชื่อเริ่มต้น
  8. สร้างสไลด์ที่มีตารางข้อมูลและส่งออกเซลล์ข้อมูลของชีตไปยังตารางนั้น
  9. สร้างสไลด์อื่นแล้วแทรกแผนภูมิสเปรดชีตลงในสไลด์นั้น

มาเริ่มต้นกันด้วยข้อมูลพื้นฐานบางอย่างใน Apps Script, BigQuery, ชีต และสไลด์

Google Apps Script และ BigQuery

Google Apps Script เป็นแพลตฟอร์มการพัฒนา Google Workspace ที่ทำงานในระดับที่สูงกว่า Google REST API โดยเป็นการพัฒนาแบบ Serverless และสภาพแวดล้อมการโฮสต์แอปพลิเคชันที่เข้าถึงได้ด้วยทักษะของนักพัฒนาซอฟต์แวร์ทุกระดับ โดยพื้นฐานแล้ว Apps Script เป็นรันไทม์ของ JavaScript แบบ Serverless สำหรับระบบอัตโนมัติ ส่วนขยาย และการผสานรวมของ Google Workspace

ซึ่งใช้ JavaScript ฝั่งเซิร์ฟเวอร์ คล้ายกับ Node.js แต่จะมุ่งเน้นไปที่การผสานรวมอย่างสมบูรณ์กับ Google Workspace และบริการอื่นๆ ของ Google มากกว่าการโฮสต์แอปพลิเคชันที่ขับเคลื่อนด้วยเหตุการณ์ที่ทำงานได้รวดเร็วและไม่พร้อมกัน นอกจากนี้ยังมีสภาพแวดล้อมในการพัฒนาที่อาจแตกต่างจากที่คุณคุ้นเคยอีกด้วย เมื่อใช้ Apps Script คุณจะทำสิ่งต่อไปนี้ได้

  • พัฒนาสคริปต์โดยใช้ตัวแก้ไขโค้ดบนเบราว์เซอร์ แต่พัฒนาภายในเครื่องได้เมื่อใช้ clasp ซึ่งเป็นเครื่องมือติดตั้งใช้งานบรรทัดคำสั่งสำหรับ Apps Script
  • เขียนโค้ดด้วย JavaScript เวอร์ชันเฉพาะทางที่ปรับแต่งให้เข้าถึง Google Workspace และบริการอื่นๆ ของ Google หรือบริการภายนอก (โดยใช้บริการ URL Fetch หรือ JDBC ของ Apps Script)
  • หลีกเลี่ยงการเขียนรหัสการให้สิทธิ์ได้เนื่องจาก Apps Script จัดการให้คุณ
  • คุณไม่ต้องโฮสต์แอป เพราะแอปจะทำงานและอยู่บนเซิร์ฟเวอร์ของ Google ในระบบคลาวด์

Apps Script จะอินเทอร์เฟซกับเทคโนโลยีอื่นๆ ของ Google ด้วย 2 วิธีดังนี้

  • เป็นบริการในตัว
  • ในฐานะบริการขั้นสูง

บริการในตัวมีวิธีระดับสูงสำหรับการโต้ตอบกับข้อมูลผู้ใช้ ระบบอื่นๆ ของ Google และระบบภายนอก บริการขั้นสูงโดยพื้นฐานแล้วก็คือ Wrapper ของ Google Workspace API หรือ Google REST API บริการขั้นสูงมี REST API ที่ครอบคลุมและมักจะทำสิ่งต่างๆ ได้มากกว่าบริการในตัว แต่ก็ต้องการความซับซ้อนของโค้ดมากกว่า (ในขณะเดียวกันก็ใช้งานง่ายกว่า REST API แบบเต็ม) นอกจากนี้ยังต้องเปิดบริการขั้นสูงสำหรับโครงการสคริปต์ก่อนที่จะใช้งานด้วย

เมื่อเป็นไปได้ นักพัฒนาซอฟต์แวร์ควรใช้บริการในตัวเนื่องจากใช้งานง่ายกว่าและให้บริการมากกว่าบริการขั้นสูง อย่างไรก็ตาม Google API บางตัวจะไม่มีบริการในตัว ดังนั้นบริการขั้นสูงอาจเป็นตัวเลือกเดียว เช่น Google BigQuery ไม่มีบริการในตัว แต่มีบริการ BigQuery อยู่ บริการ BigQuery เป็นบริการ Cloud Console ที่ช่วยให้คุณใช้ Google BigQuery API เพื่อค้นหาคลังข้อมูลขนาดใหญ่ (เช่น หลายเทราไบต์) แต่ยังคงแสดงผลลัพธ์ได้ในไม่กี่วินาที

เข้าถึงชีตและ สไลด์จาก Apps Script

ทั้งชีต และสไลด์จะมีบริการในตัว ซึ่งต่างจาก BigQuery และยังมีบริการขั้นสูงสำหรับเข้าถึงฟีเจอร์ที่พบใน API เท่านั้น ดูเอกสารสำหรับทั้งบริการชีตและสไลด์ในตัวก่อนเข้าสู่โค้ด โปรดทราบว่าเรายังมีเอกสารสำหรับบริการขั้นสูงทั้งของชีตและสไลด์ด้วย

4. งานที่ 1: เรียกใช้ BigQuery และบันทึกผลลัพธ์ไปยังชีต

บทนำ

เราจะใช้ Codelab นี้ส่วนใหญ่กับงานแรกนี้ อันที่จริง เมื่อดำเนินการเสร็จสิ้น คุณจะเสร็จสิ้นการสร้าง Codelab ทั้งหมดประมาณครึ่งทาง แบ่งออกเป็นส่วนย่อยต่างๆ ดังนี้

  • สร้างทั้งโปรเจ็กต์ Google Apps Script และ Cloud Console
  • เปิดการเข้าถึงบริการขั้นสูงของ BigQuery
  • เปิดโปรแกรมแก้ไขสคริปต์และป้อนซอร์สโค้ดของแอปพลิเคชัน
  • ไปที่กระบวนการให้สิทธิ์แอป (OAuth2)
  • เรียกใช้แอปพลิเคชันที่ส่งคำขอไปยัง BigQuery
  • ตรวจสอบสเปรดชีตใน Google ชีตใหม่ที่สร้างขึ้นโดยใช้ผลลัพธ์ของ BigQuery

ตั้งค่า

  1. หากต้องการสร้างโครงการ Apps Script ให้ไปที่ script.google.com แล้วคลิกโครงการใหม่
  2. หากต้องการเปลี่ยนชื่อโครงการ Apps Script ให้คลิกโครงการที่ไม่มีชื่อ ป้อนชื่อโครงการแล้วคลิกเปลี่ยนชื่อ

ขั้นตอนต่อไปคุณจะต้องสร้างโปรเจ็กต์ Cloud Console เพื่อค้นหาข้อมูลใน BigQuery

  1. หากต้องการสร้างโปรเจ็กต์ Cloud Console ให้ใช้ลิงก์ทางลัดนี้เพื่อสร้างโปรเจ็กต์ ตั้งชื่อโปรเจ็กต์ แล้วคลิกสร้าง
  1. เมื่อสร้างโปรเจ็กต์เสร็จเรียบร้อยแล้ว การแจ้งเตือนจะปรากฏขึ้นในหน้า ตรวจสอบว่าได้เลือกโปรเจ็กต์ใหม่ในรายชื่อโปรเจ็กต์ที่ด้านบนของหน้าแล้ว
  2. คลิกเมนู f5fbd278915eb7aa.png และไปที่ API และ บริการ > หน้าจอขอความยินยอม OAuth (ลิงก์โดยตรง)
  3. คลิกภายใน > สร้างเพื่อสร้างแอปสำหรับผู้ใช้ Google Workspace ภายในองค์กรของคุณ
  4. ในช่องชื่อแอป ให้ป้อน "Big Data Codelab"
  5. ป้อนอีเมลติดต่อลงในช่องการสนับสนุนผู้ใช้และข้อมูลติดต่อของนักพัฒนาแอป
  6. คลิกบันทึกและดำเนินการต่อ > บันทึกและดำเนินการต่อ
  7. คลิกเพิ่มเติม 50fa7e30ed2d1b1c.png ในแถบนำทาง แล้วเลือกการตั้งค่าโปรเจ็กต์ (ลิงก์โดยตรง)
  8. คัดลอกค่าที่ระบุไว้ในหมายเลขโปรเจ็กต์ (จะมีการใช้ช่องรหัสโปรเจ็กต์แยกต่างหากภายหลังใน Codelab)

จากนั้น คุณจะต้องเชื่อมต่อโปรเจ็กต์ Apps Script กับโปรเจ็กต์ Cloud Console

  1. ไปที่เครื่องมือแก้ไข App Script แล้วคลิกการตั้งค่าโปรเจ็กต์ การตั้งค่ารูปเฟือง
  2. ภายใต้โครงการ Google Cloud Platform (GCP) ให้คลิกเปลี่ยนโครงการ
  3. ป้อนหมายเลขโครงการแล้วคลิกตั้งค่าโครงการ
  4. จากนั้นคลิกผู้แก้ไข ตัวแก้ไขโค้ด เพื่อเริ่มเพิ่มบริการขั้นสูงของ BigQuery
  5. ข้างบริการ ให้คลิกเพิ่มบริการ เพิ่มบริการ
  6. ในกล่องโต้ตอบเพิ่มบริการ ให้เลือก BigQuery API แล้วคลิกเพิ่ม

ขั้นตอนสุดท้ายคือเปิด BigQuery API บน Cloud Console

  1. โดยเปลี่ยนไปใช้ Cloud Console แล้วคลิก API และ บริการ > แดชบอร์ด (ตรวจสอบว่าคุณยังอยู่ในโปรเจ็กต์เดิมที่สร้างไว้ในขั้นตอนที่ 3)
  2. คลิกเปิดใช้ API และบริการ
  3. ค้นหา "การค้นหาขนาดใหญ่" เลือก BigQuery API (ไม่ใช่ Data Transfer API ของ BigQuery) แล้วคลิกเปิดใช้เพื่อเปิดใช้

a0e07fa159de9367.png

ตอนนี้คุณพร้อมที่จะป้อนรหัสแอปพลิเคชัน ดำเนินการตามกระบวนการให้สิทธิ์ และดำเนินการซ้ำครั้งแรกของแอปพลิเคชันนี้แล้ว

อัปโหลดแอปพลิเคชันและเรียกใช้

  1. ในเครื่องมือแก้ไขสคริปต์ ให้แทนที่โค้ดบล็อก myFunction() เริ่มต้นด้วยโค้ดต่อไปนี้
// File name for data results
var QUERY_NAME = "Most common words in all of Shakespeare's works";
// Replace this value with your Google Cloud Console Project ID
var PROJECT_ID = '';
if (!PROJECT_ID) throw Error('Project ID is required in setup');

/**
 * Runs a BigQuery query; puts results into a Sheet. You must turn on
 * the BigQuery advanced service before you can run this code.
 * @see https://developers.google.com/apps-script/advanced/bigquery#run_query
 * @see https://github.com/googleworkspace/apps-script-samples/blob/master/advanced/bigquery.gs
 *
 * @returns {Spreadsheet} Returns a spreadsheet with BigQuery results
 * @see https://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 BigQuery 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 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());
}
  1. คลิกบันทึก เซฟ
  2. ข้าง Code.gs ให้คลิกเพิ่มเติม 50fa7e30ed2d1b1c.png > เปลี่ยนชื่อ เปลี่ยนชื่อจาก Code.gs เป็น bq-sheets-slides.js
  3. ต่อไปมาดูโค้ดที่ค้นหา BigQuery และเขียนผลลัพธ์ลงใน Google ชีตกัน คุณสามารถดูซึ่งอยู่ใกล้กับด้านบนของ 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 มีประโยชน์แค่ไหนเมื่อคิดว่าการคอมไพล์นี้ต้องใช้มือทำงานมากแค่ไหน

ฟังก์ชันนี้จะประกาศตัวแปร PROJECT_ID ที่ต้องใช้รหัสโปรเจ็กต์ Cloud Console ที่ถูกต้องด้วย คำสั่ง if ใต้ตัวแปรมีไว้เพื่อป้องกันไม่ให้แอปพลิเคชันดำเนินการต่อโดยไม่มีรหัสโปรเจ็กต์

  1. เปลี่ยนไปใช้โปรเจ็กต์ Cloud Console แล้วคลิกเพิ่มเติม 50fa7e30ed2d1b1c.png ในแถบนำทาง แล้วเลือกการตั้งค่าโปรเจ็กต์
  2. คัดลอกค่าที่แสดงในส่วนรหัสโปรเจ็กต์
  3. เปลี่ยนกลับไปใช้เครื่องมือแก้ไข App Script ค้นหาตัวแปร PROJECT_ID ใน bq-sheets-slides.js แล้วเพิ่มค่า
  4. คลิกบันทึก เซฟ > Run
  5. คลิกตรวจสอบสิทธิ์เพื่อดำเนินการต่อ
  1. เมื่อสคริปต์เริ่มทำงาน บันทึกการดำเนินการในตัวจะเปิดขึ้นและบันทึกการทำงานของสคริปต์แบบเรียลไทม์
  1. เมื่อบันทึกการดำเนินการขึ้นว่า "Execution completed" ให้ไปที่ Google ไดรฟ์ (drive.google.com) และค้นหาสเปรดชีตใน Google ชีตที่ชื่อว่า "คำที่ใช้บ่อยที่สุดในผลงานของ Shakespeare" (หรือชื่อที่คุณกำหนดให้ตัวแปร QUERY_NAME (หากคุณอัปเดต))
  2. เปิดสเปรดชีตเพื่อดูคำที่พบบ่อยที่สุด 10 คำและจำนวนทั้งหมดของคำนั้นที่จัดเรียงตามลำดับจากมากไปน้อย

afe500ad43f8cdf8.png

สรุปงานที่ 1

หากต้องการทบทวน คุณได้เรียกใช้โค้ดที่ค้นหาผลงานทั้งหมดของเชกสเปียร์โดยดูคำทุกคำในการเล่นทุกบท ระบบจะนับคำและจัดเรียงตามลำดับลักษณะที่ปรากฏจากมากไปหาน้อย คุณยังใช้บริการ Apps Script แบบบิวท์อินสำหรับ Google ชีตเพื่อแสดงข้อมูลนี้ด้วย

โค้ดที่คุณใช้สำหรับ bq-sheets-slides.js จะอยู่ในโฟลเดอร์ step1 ของที่เก็บ GitHub ของ Codelab นี้ที่ github.com/googlecodelabs/bigquery-sheets-slides โค้ดนี้ได้รับแรงบันดาลใจมาจากตัวอย่างเดิมในหน้าบริการขั้นสูงของ BigQuery ซึ่งเรียกใช้การค้นหาที่ต่างออกไปเล็กน้อย โดยจะเรียกคำยอดนิยมที่มีอักขระ 10 ตัวขึ้นไปที่เชกสเปียร์ใช้ คุณจะดูตัวอย่างได้ในที่เก็บ GitHub

หากสนใจการค้นหาอื่นๆ ที่คุณสามารถสร้างด้วยผลงานของ Shakespeare หรือตารางข้อมูลสาธารณะอื่นๆ โปรดไปที่วิธีค้นหาตารางตัวอย่างของ BigQuery และพื้นที่เก็บข้อมูลของ GitHub นี้

นอกจากนี้คุณยังเรียกใช้การค้นหาโดยใช้หน้า BigQuery บน Cloud Console ก่อนเรียกใช้ใน Apps Script ได้อีกด้วย หากต้องการดู ให้คลิกเมนู f5fbd278915eb7aa.png และไปที่ BigQuery UI > พื้นที่ทำงาน SQL (ลิงก์โดยตรง) ตัวอย่างเช่น การค้นหาของเราจะปรากฏในอินเทอร์เฟซแบบกราฟิกของ BigQuery ดังนี้

BigQueryUI

5. งานที่ 2: สร้างแผนภูมิใน Google ชีต

วัตถุประสงค์ของ runQuery() คือการใช้ BigQuery และการส่งผลลัพธ์ข้อมูลไปยัง Google ชีต ต่อไป เราจะต้องสร้างแผนภูมิโดยใช้ข้อมูล มาสร้างฟังก์ชันใหม่ที่ชื่อว่า createColumnChart() ที่เรียกใช้ชีตกัน newChart() วิธี

  1. ในเครื่องมือแก้ไข Apps Script ให้เพิ่มฟังก์ชัน createColumnChart() ไปยัง bq-sheets-slides.js หลังจาก runQuery() โค้ดจะได้รับชีตและขอแผนภูมิคอลัมน์ที่มีข้อมูลทั้งหมด ช่วงข้อมูลจะเริ่มที่เซลล์ A2 เนื่องจากแถวแรกมีส่วนหัวคอลัมน์
/**
 * Uses spreadsheet data to create a column chart.
 * @param {Spreadsheet} Spreadsheet containing results data
 * @returns {EmbeddedChart} Visualizes the results
 * @see https://developers.google.com/apps-script/reference/spreadsheet/embedded-chart
 */
function createColumnChart(spreadsheet) {
  // Retrieve the populated (first) 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 values.
  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);
}
  1. ฟังก์ชัน createColumnChart() ต้องใช้พารามิเตอร์ออบเจ็กต์สเปรดชีต เราจึงต้องอัปเดต runQuery() เพื่อส่งกลับออบเจ็กต์ spreadsheet ที่เราส่งผ่านไปยัง createColumnChart() ได้ เมื่อจบ runQuery() ให้แสดงผลออบเจ็กต์ spreadsheet หลังจากบันทึกการสร้างชีตเรียบร้อยแล้ว ดังนี้
  Logger.log('Results spreadsheet created: %s', spreadsheet.getUrl());

  // NEW: Return the spreadsheet object for later use.
  return spreadsheet;
}
  1. สร้างฟังก์ชัน createBigQueryPresentation() เพื่อเรียกใช้ทั้ง runQuery() และ createColumnChart() แนวทางปฏิบัติแนะนำคือการแยก BigQuery และฟังก์ชันการสร้างแผนภูมิออกจากกันอย่างสมเหตุสมผล
/**
 * Runs the query, adds data and a chart to a spreadsheet.
 */
function createBigQueryPresentation() {
  var spreadsheet = runQuery();
  createColumnChart(spreadsheet);
}
  1. คุณได้ทำ 2 ขั้นตอนสำคัญข้างต้น ได้แก่ การส่งคืนออบเจ็กต์สเปรดชีตและสร้างฟังก์ชันรายการ เราจำเป็นต้องย้ายบรรทัดในบันทึกจาก runQuery() ไปยัง createBigQueryPresentation() เพื่อให้ใช้งาน runQuery() ได้มากขึ้น ตอนนี้เมธอดของคุณควรมีลักษณะดังนี้
/**
 * Runs a BigQuery query, adds data and a chart to a spreadsheet.
 */
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 อีกด้วย

// File name for data results
var QUERY_NAME = "Most common words in all of Shakespeare's works";
// Replace this value with your Google Cloud Console Project ID
var PROJECT_ID = '';
if (!PROJECT_ID) throw Error('Project ID is required in setup');

/**
 * Runs a BigQuery query; puts results into a sheet. You must turn on
 * the BigQuery advanced service before you can run this code.
 * @see https://developers.google.com/apps-script/advanced/bigquery#run_query
 * @see https://github.com/googleworkspace/apps-script-samples/blob/master/advanced/bigquery.gs
 *
 * @returns {Spreadsheet} Returns a spreadsheet with BigQuery results
 * @see https://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 BigQuery 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 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 a columnar chart.
 * @param {Spreadsheet} Spreadsheet containing results data
 * @returns {EmbeddedChart} Visualizes the results
 * @see https://developers.google.com/apps-script/reference/spreadsheet/embedded-chart
 */
function createColumnChart(spreadsheet) {
  // Retrieve the populated (first) 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 values.
  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 to a spreadsheet.
 */
function createBigQueryPresentation() {
  var spreadsheet = runQuery();
  Logger.log('Results spreadsheet created: %s', spreadsheet.getUrl());
  createColumnChart(spreadsheet);
}

บันทึกโปรเจ็กต์สคริปต์ในเครื่องมือแก้ไขสคริปต์ จากนั้นเลือก createBigQueryPresentation จากรายการฟังก์ชัน แล้วคลิก Run หลังจากทำเสร็จแล้ว ระบบจะสร้างสเปรดชีตอีกแผ่นใน Google ไดรฟ์ แต่คราวนี้จะมีแผนภูมิมารวมอยู่ในชีตที่อยู่ถัดจากข้อมูล

ชีตที่มีแผนภูมิ

6. ภารกิจที่ 3: ใส่ข้อมูลผลลัพธ์ลงในชุดสไลด์

ส่วนสุดท้ายของ Codelab จะเกี่ยวข้องกับการสร้างงานนำเสนอใน Google สไลด์ โดยเพิ่มชื่อและคำบรรยายไปยังสไลด์ชื่อ จากนั้นจึงสร้างสไลด์สำหรับเซลล์ข้อมูลและแผนภูมิ

  1. ในเครื่องมือแก้ไข Apps Script ให้เพิ่มฟังก์ชัน createSlidePresentation() ไปยัง bq-sheets-slides.js หลังจาก createColumnChart() งานทั้งหมดในชุดสไลด์จะเกิดขึ้นในฟังก์ชันนี้ เริ่มด้วยการสร้างชุดสไลด์ จากนั้นเพิ่มชื่อเรื่องและคำบรรยายในสไลด์เริ่มต้นชื่อ
/**
 * Create presentation with spreadsheet data and a chart
 * @param {Spreadsheet} Spreadsheet containing results data
 * @param {EmbeddedChart} Sheets chart to embed on a slide
 * @returns {Presentation} Slide deck with the results
  * @see https://developers.google.com/apps-script/reference/slides/presentation
 */
function createSlidePresentation(spreadsheet, chart) {
  // Create the 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('using Google Cloud Console and Google Workspace APIs:\n' +
    'Google Apps Script, BigQuery, Sheets, Slides');
  1. ขั้นตอนถัดไปใน createSlidePresentation() คือการนำเข้าข้อมูลเซลล์จากสเปรดชีตใน Google ชีตไปยังชุดสไลด์ใหม่ของเรา เพิ่มข้อมูลโค้ดนี้ลงในฟังก์ชัน
  // 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 with
  // the dimensions of the data range; fails if the sheet is 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]));
    }
  }
  1. ขั้นตอนสุดท้ายใน createSlidePresentation() คือการเพิ่มสไลด์อีก 1 สไลด์ นำเข้าแผนภูมิจากสเปรดชีต แล้วส่งออบเจ็กต์ 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;
}
  1. เมื่อฟังก์ชันของเราเสร็จสมบูรณ์แล้ว ให้ตรวจสอบลายเซ็นอีกครั้ง createSlidePresentation() ต้องใช้ทั้งพารามิเตอร์ออบเจ็กต์ของสเปรดชีตและแผนภูมิ เราได้ปรับ runQuery() ให้แสดงผลออบเจ็กต์ Spreadsheet แล้ว แต่เราจำเป็นต้องทำการเปลี่ยนแปลงที่คล้ายกันกับ createColumnChart() เพื่อให้ออบเจ็กต์ดังกล่าวแสดงออบเจ็กต์แผนภูมิ (EmbeddedChart) กลับไปยัง createColumnChart() แล้วเพิ่มข้อมูลโค้ดต่อไปนี้ที่ส่วนท้ายของฟังก์ชัน
  // NEW: Return the chart object for later use.
  return chart;
}
  1. เนื่องจากตอนนี้ createColumnChart() ส่งคืนออบเจ็กต์แผนภูมิ เราจึงต้องบันทึกแผนภูมิลงในตัวแปร จากนั้นเราจะส่งทั้งสเปรดชีตและตัวแปรแผนภูมิไปยัง createSlidePresentation() และเนื่องจากเราบันทึก URL ของสเปรดชีตที่สร้างขึ้นใหม่ เราจึงบันทึก URL ของงานนำเสนอสไลด์ใหม่ด้วย อัปเดต createBigQueryPresentation() ให้มีลักษณะดังนี้
/**
 * Runs a BigQuery query, adds data and a chart to a spreadsheet,
 * 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
}
  1. บันทึกและเรียกใช้ createBigQueryPresentation() อีกครั้ง ก่อนที่จะทำงาน แอปของคุณต้องได้รับสิทธิ์อีก 1 ชุดจากผู้ใช้เพื่อดูและจัดการงานนำเสนอใน Google สไลด์ เมื่อคุณตรวจสอบและอนุญาตสิทธิ์เหล่านี้แล้ว สิทธิ์ดังกล่าวจะทำงานตามเดิม
  2. นอกจากสเปรดชีตที่สร้างขึ้นแล้ว คุณควรได้รับงานนำเสนอใหม่ในสไลด์ 3 รายการ (ชื่อ ตารางข้อมูล แผนภูมิข้อมูล) ดังที่แสดงด้านล่าง

f6896f22cc3cd50d.png

59960803e62f7c69.png

5549f0ea81514360.png

7. บทสรุป

ขอแสดงความยินดี คุณได้สร้างแอปพลิเคชันที่ใช้ Google Cloud ทั้ง 2 ด้านแล้ว Google BigQuery จะส่งคำขอ Google BigQuery เพื่อค้นหาชุดข้อมูลสาธารณะชุดใดชุดหนึ่ง สร้างสเปรดชีต Google ชีตเพื่อจัดเก็บผลลัพธ์ เพิ่มแผนภูมิตามข้อมูล และสุดท้ายจะสร้างงานนำเสนอใน Google สไลด์ที่แสดงข้อมูลและผลลัพธ์จากแผนภูมิจากสเปรดชีต

ขั้นตอนเหล่านี้คือสิ่งที่คุณทำในทางเทคนิค หรือพูดกว้างๆ ก็คือคุณเปลี่ยนจากการวิเคราะห์ข้อมูลขนาดใหญ่มาเป็นผลลัพธ์ที่คุณสามารถนำเสนอต่อผู้มีส่วนเกี่ยวข้องได้ ซึ่งทั้งหมดนี้ทำงานอัตโนมัติโดยใช้โค้ด เราหวังว่าตัวอย่างนี้จะสร้างแรงบันดาลใจให้คุณปรับแต่งรูปภาพสำหรับโครงการของคุณเอง ในตอนท้ายของ Codelab นี้ เราจะให้คำแนะนำเกี่ยวกับวิธีปรับปรุงแอปตัวอย่างนี้ให้ดียิ่งขึ้น

การเปลี่ยนแปลงจากงานสุดท้าย (ยกเว้น PROJECT_ID) 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.
 */

// File name for data results
var QUERY_NAME = "Most common words in all of Shakespeare's works";
// Replace this value with your Google Cloud Console Project ID
var PROJECT_ID = '';
if (!PROJECT_ID) throw Error('Project ID is required in setup');

/**
 * Runs a BigQuery query; puts results into a spreadsheet. You must turn on
 * the BigQuery advanced service before you can run this code.
 * @see https://developers.google.com/apps-script/advanced/bigquery#run_query
 * @see https://github.com/googleworkspace/apps-script-samples/blob/master/advanced/bigquery.gs
 *
 * @returns {Spreadsheet} Returns a spreadsheet with BigQuery results
 * @see https://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 BigQuery 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 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 a column chart.
 * @param {Spreadsheet} Spreadsheet containing results data
 * @returns {EmbeddedChart} Visualizes the results
 * @see https://developers.google.com/apps-script/reference/spreadsheet/embedded-chart
 */
function createColumnChart(spreadsheet) {
  // Retrieve the populated (first) 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 values.
  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 and a chart
 * @param {Spreadsheet} Spreadsheet containing results data
 * @param {EmbeddedChart} Sheets chart to embed on a slide
 * @returns {Presentation} Slide deck with the results
 * @see https://developers.google.com/apps-script/reference/slides/presentation
 */
function createSlidePresentation(spreadsheet, chart) {
  // Create the 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('using Google Cloud Console and Google Workspace 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 with
  // the dimensions of the data range; fails if the sheet is 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 to a spreadsheet,
 * 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());
}

ตัวอย่างโค้ดนี้อยู่ในโฟลเดอร์ final ในที่เก็บ GitHub ด้วย

8. แหล่งข้อมูลเพิ่มเติม

แหล่งข้อมูลเพิ่มเติมที่จะช่วยให้คุณเจาะลึกเนื้อหาที่ครอบคลุมใน Codelab นี้ รวมถึงสำรวจวิธีอื่นๆ ในการเข้าถึงเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ของ Google แบบเป็นโปรแกรมได้

แหล่งข้อมูลสำหรับแอปพลิเคชันนี้

เอกสารประกอบ

วิดีโอ

ข่าวสารและ อัปเดต

Codelab อื่นๆ

ระดับเริ่มต้น

ระดับกลาง

9. ขั้นตอนต่อไป: การทดสอบการเขียนโค้ด

ด้านล่างนี้เป็นวิธีต่างๆ ที่จะนำไปปรับปรุงหรือเพิ่มตัวอย่างที่เราสร้างใน Codelab นี้ รายการนี้เป็นเพียงตัวอย่างบางส่วนเท่านั้น แต่ยังให้ไอเดียที่สร้างแรงบันดาลใจเกี่ยวกับวิธีดำเนินการในขั้นตอนถัดไป

  • แอปพลิเคชัน - ไม่ต้องการถูกจำกัดการใช้งาน JavaScript หรือการจำกัดจาก Apps Script ใช่ไหม ย้ายแอปพลิเคชันนี้ไปยังภาษาโปรแกรมที่คุณชื่นชอบซึ่งใช้ REST API สำหรับ Google BigQuery, ชีต และสไลด์
  • BigQuery - ทดลองใช้คำค้นหาอื่นสำหรับชุดข้อมูลของเชกสเปียร์ที่คุณสนใจ ดูการค้นหาตัวอย่างอีกรายการได้ในแอปตัวอย่าง BigQuery ของ Apps Script เดิม
  • BigQuery - ทดสอบชุดข้อมูลสาธารณะอื่นๆ ของ BigQuery เพื่อหาชุดข้อมูลที่มีความหมายกับคุณมากกว่า
  • BigQuery - ก่อนหน้านี้ เราพูดถึงการค้นหาอื่นๆ ที่คุณสามารถสร้างด้วยผลงานของเชกสเปียร์หรือตารางข้อมูลสาธารณะอื่นๆ โดยดูได้ในหน้าเว็บนี้และที่เก็บ GitHub นี้
  • ชีต - ทดสอบแผนภูมิประเภทอื่นในแกลเลอรีแผนภูมิ
  • ชีตและ BigQuery - ใช้ชุดข้อมูลสเปรดชีตขนาดใหญ่ของคุณเอง ในปี 2016 ทีม BigQuery ได้เปิดตัวฟีเจอร์ที่ช่วยให้นักพัฒนาซอฟต์แวร์ใช้ชีตเป็นแหล่งข้อมูลได้ ดูข้อมูลเพิ่มเติมได้ที่ (Google BigQuery ผสานรวมกับ Google ไดรฟ์
  • สไลด์ - เพิ่มสไลด์อื่นๆ ลงในงานนำเสนอที่สร้างขึ้น เช่น รูปภาพหรือเนื้อหาอื่นๆ ที่เชื่อมโยงกับการวิเคราะห์ข้อมูลขนาดใหญ่ โปรดดูเอกสารอ้างอิงสำหรับบริการสไลด์ในตัว
  • Google Workspace - ใช้บริการอื่นๆ ของ Google Workspace หรือบริการในตัวของ Google จาก Apps Script ตัวอย่างเช่น Gmail, ปฏิทิน, เอกสาร, ไดรฟ์, Maps, Analytics, YouTube ฯลฯ และบริการอื่นๆ ขั้นสูง โปรดดูข้อมูลเพิ่มเติมในภาพรวมข้อมูลอ้างอิงสำหรับบริการทั้งในตัวและขั้นสูง