Có nhiều công cụ dành cho các nhà khoa học dữ liệu thực hiện việc phân tích dữ liệu lớn, nhưng cuối cùng, bạn vẫn không phải xác minh những kết quả đó cho việc quản lý? Nhiều số trên giấy hoặc trong cơ sở dữ liệu hầu như không hiển thị cho các bên liên quan chính. Lớp học lập trình Google Apps Script trung gian này khai thác một cặp nền tảng dành cho nhà phát triển của Google, G Suite và Google Cloud Platform (GCP), để giúp bạn hoàn thành việc cuối cùng đó.
Công cụ dành cho nhà phát triển của Google Cloud cho phép bạn thực hiện việc phân tích dữ liệu chuyên sâu, sau đó lấy các kết quả đó, đưa vào bảng tính và tạo bản trình bày với dữ liệu đó, cung cấp giai đoạn phù hợp hơn để kết quả được phân phối cho công việc quản lý. Lớp học lập trình này đề cập đến API BigQuery của GCP (dưới dạng dịch vụ nâng cao của Apps Script) và các dịch vụ Apps Script tích hợp cho Google Trang tính và Google Trang trình bày.
Động lực/nghệ thuật trước đó
Ứng dụng mẫu trong lớp học lập trình này được lấy cảm hứng từ những mẫu mã khác này...
- Ứng dụng mẫu Dịch vụ BigQuery của Google Apps Script và nguồn mở trên GitHub
- Ứng dụng mẫu xuất hiện trong video của nhà phát triển Tạo trang trình bày từ dữ liệu bảng tính và được xuất bản trong bài đăng trên blog này
- Ứng dụng mẫu xuất hiện trong lớp học lập trình về API Google Trang trình bày
Mặc dù ứng dụng mẫu về lớp học lập trình API của Trang trình bày cũng có tính năng BigQuery và Trang trình bày, nhưng ứng dụng mẫu trong lớp học lập trình này có một số điểm khác biệt như sau:
- Ứng dụng Node.js so với ứng dụng Apps Script của chúng tôi
- Sử dụng API REST trong khi chúng tôi sử dụng các dịch vụ Apps Script
- Dùng Google Drive nhưng không dùng Google Trang tính trong khi ứng dụng này dùng Trang tính nhưng không dùng Drive
Trong lớp học lập trình này, chúng tôi muốn kết hợp nhiều công nghệ vào một ứng dụng duy nhất đồng thời giới thiệu các tính năng và API trên Google Cloud theo cách giống với trường hợp sử dụng thực tế. Mục tiêu là truyền cảm hứng để bạn sử dụng trí tưởng tượng của mình và cân nhắc việc sử dụng cả GCP & G Suuite để giải quyết các vấn đề thách thức cho tổ chức hoặc khách hàng của bạn.
Kiến thức bạn sẽ học được
- Cách sử dụng Google Apps Script với nhiều dịch vụ Google (GCP và amp; G Suite)
- Cách sử dụng Google BigQuery để thực hiện phân tích dữ liệu lớn
- Cách tạo Google Trang tính và điền dữ liệu vào trang tính đó
- Cách tạo biểu đồ mới trong Trang tính
- Cách chuyển biểu đồ và dữ liệu từ Trang tính vào bản trình bày trên Google Trang trình bày
Bạn cần có
- Quyền truy cập vào Internet và trình duyệt web
- Tài khoản Google (tài khoản G Suite có thể yêu cầu quản trị viên phê duyệt)
- Kỹ năng JavaScript cơ bản
- Kiến thức về việc phát triển Apps Script có thể hữu ích nhưng không bắt buộc
Bạn sẽ sử dụng lớp học lập trình/hướng dẫn này như thế nào?
Vui lòng cho biết trải nghiệm của bạn đối với các công cụ và amp dành cho nhà phát triển G Suite; API?
Xếp hạng trải nghiệm của bạn với Apps Script cụ thể như thế nào?
Vui lòng đánh giá trải nghiệm của bạn đối với các công cụ và amp dành cho nhà phát triển GCP?
Giờ đây, khi đã biết nội dung của lớp học lập trình này, bạn sẽ làm gì chính xác?
- Lấy mẫu Apps Script-BigQuery hiện có và triển khai mẫu này
- Từ mẫu đó, hãy tìm hiểu cách gửi truy vấn đến BigQuery và nhận kết quả
- Tạo một tệp Google Trang tính và điền kết quả từ BigQuery vào trang tính đó
- Sửa đổi mã một chút để thay đổi một chút dữ liệu được trả về và thêm vào Trang tính
- Dịch vụ Trang tính trong Apps Script để tạo biểu đồ cho dữ liệu từ BigQuery
- Sử dụng dịch vụ Trang trình bày để tạo một bản trình bày mới
- Thêm tiêu đề và phụ đề vào trang trình bày tiêu đề mặc định được tạo tự động cho tất cả bộ trang trình bày mới
- Tạo một trang trình bày mới bằng bảng dữ liệu, sau đó nhập các ô dữ liệu của Trang tính vào bảng đó
- Thêm một trang trình bày mới khác và thêm biểu đồ bảng tính vào trang trình bày đó
Hãy bắt đầu với một số thông tin cơ bản về Apps Script, BigQuery, Trang tính và Trang trình bày.
Google Apps Script và BigQuery
Google Apps Script là một nền tảng phát triển G Suite hoạt động ở cấp cao hơn so với việc sử dụng API Google REST. Đây là môi trường phát triển và lưu trữ ứng dụng không máy chủ, có thể truy cập ở nhiều cấp độ kỹ năng dành cho nhà phát triển. Trong một câu, "Apps Script là thời gian chạy JavaScript không máy chủ để G Suite tự động hoá, mở rộng và tích hợp;"
Tính năng này là JavaScript phía máy chủ, tương tự như Node.js, nhưng tập trung vào việc tích hợp chặt chẽ với G Suite và các dịch vụ khác của Google thay vì lưu trữ ứng dụng dựa trên sự kiện không đồng bộ nhanh. Ứng dụng này cũng có môi trường phát triển có thể hoàn toàn khác với môi trường mà bạn đã quen thuộc. Với Apps Script, bạn:
- Phát triển trong trình soạn thảo mã dựa trên trình duyệt nhưng có thể chọn phát triển cục bộ nếu sử dụng
clasp
, công cụ triển khai dòng lệnh cho Apps Script - Mã trong phiên bản JavaScript chuyên dụng được tùy chỉnh để truy cập G Suite và các dịch vụ bên ngoài hoặc Google khác (thông qua dịch vụ Apps Script
URLfetch
hoặcJdbc
) - Có thể tránh ghi mã ủy quyền vì Apps Script xử lý mã đó cho bạn
- Không phải lưu trữ ứng dụng của bạn—ứng dụng này hoạt động và chạy trên các máy chủ của Google trên đám mây
LƯU Ý: Phần lớn nằm ngoài phạm vi của lớp học lập trình này để dạy bạn Apps Script. Có rất nhiều tài nguyên trực tuyến để giúp bạn làm việc này. Tài liệu chính thức này cũng cung cấp thông tin tổng quan về bắt đầu nhanh, hướng dẫn và video. Và cuối cùng, đừng quên lớp học lập trình giới thiệu Apps Script. Bạn nên hoàn thành khóa học này trước khi bắt đầu khóa học này.
Apps Script giao diện với các công nghệ khác của Google theo hai cách khác nhau:
- dịch vụ tích hợp/dịch vụ gốc
- dịch vụ nâng cao
Dịch vụ tích hợp sẵn cung cấp các phương thức cấp cao mà bạn có thể dùng để truy cập vào dữ liệu sản phẩm G Suite hoặc Google, hoặc các phương thức hữu ích hữu ích khác. Dịch vụ nâng cao chỉ là một trình bao bọc mỏng xung quanh G Suite hoặc API Google REST. Các dịch vụ nâng cao cung cấp phạm vi phủ sóng đầy đủ của API REST và thường có thể làm được nhiều việc hơn các dịch vụ tích hợp, nhưng cần độ phức tạp của mã cao hơn (trong khi vẫn dễ sử dụng hơn so với API REST). Bạn cũng phải bật dịch vụ nâng cao cho dự án tập lệnh trước khi sử dụng.
Khi có thể, nhà phát triển nên sử dụng dịch vụ tích hợp sẵn vì họ dễ sử dụng hơn và nặng tải hơn các dịch vụ nâng cao. Tuy nhiên, một số API của Google không có dịch vụ tích hợp sẵn, vì vậy dịch vụ nâng cao có thể là lựa chọn duy nhất. Google BigQuery là một ví dụ cho vấn đề này... không có dịch vụ tích hợp, nhưng dịch vụ BigQuery nâng cao có tồn tại. (Tốt hơn là không có dịch vụ, phải không?) Nếu bạn mới sử dụng BigQuery, dịch vụ này là một dịch vụ GCP cho phép bạn thực hiện các truy vấn đơn giản (hoặc phức tạp) trên kho dữ liệu rất lớn, giả sử theo thứ tự nhiều terabyte nhưng vẫn có thể cung cấp kết quả trong vài giây.
Truy cập Google Trang tính và amp; Trang trình bày từ Apps Script
Không giống như BigQuery, cả Google Trang tính và Trang trình bày đều có các dịch vụ tích hợp (cũng như các dịch vụ nâng cao mà bạn chỉ dùng để truy cập vào các tính năng chỉ có trong API). Hãy xem tài liệu cho cả dịch vụ Trang tính và Trang trình bày tích hợp sẵn trước khi chuyển đến mã. Tất nhiên, cũng có các tài liệu cho các dịch vụ nâng cao; các tài liệu này dành cho Trang tính và Trang trình bày, tương ứng.
Giới thiệu
Chúng ta sẽ tham gia lớp học lập trình này bằng nhiệm vụ đầu tiên này. Trên thực tế, khi đã hoàn tất ở đây, bạn sẽ hoàn tất khoảng một nửa việc với toàn bộ lớp học lập trình. Chia nhỏ thành nhiều tiểu mục, bạn sẽ làm tất cả những việc sau:
- Bắt đầu dự án Google Apps Script mới
- Bật quyền truy cập vào dịch vụ nâng cao của BigQuery
- Chuyển đến trình chỉnh sửa phát triển và nhập mã nguồn của ứng dụng
- Làm theo quy trình ủy quyền ứng dụng (OAuth2)
- Chạy ứng dụng gửi yêu cầu đến BigQuery
- Xem Google Trang tính hoàn toàn mới được tạo bằng kết quả từ BigQuery
Thiết lập
- a) Tạo một dự án Apps Script mới bằng cách chuyển đến
script.google.com
. Có các dòng sản phẩm G Suite khác nhau và cách bạn tạo dự án mới có thể khác nhau, tùy thuộc vào phiên bản bạn đang sử dụng. Nếu bạn chỉ sử dụng tài khoản Gmail và mới sử dụng dự án đang phát triển, bạn sẽ thấy một màn hình trống cùng với một nút để tạo dự án đầu tiên:
b) Nếu không, bạn có thể thấy tất cả dự án của bạn và nút +Mới lớn ở phía trên bên trái, vì vậy hãy nhấp vào đó.
c) Nếu không có hình ảnh nào ở trên, màn hình của bạn có thể trông như bên dưới. Nếu có, hãy tìm biểu tượng trình đơn hamburger ở góc trên bên trái và chọn +Tập lệnh mới.
d) Dành cho những bạn thích dòng lệnh. Công cụ của bạn là clasp
cụ thể là bạn sẽ chạy lệnh clasp create
.
e) Cách cuối cùng để tạo dự án tập lệnh mới là chỉ cần truy cập vào đường liên kết phím tắt: https://script.google.com/create.
- Bất kể bạn đã sử dụng kỹ thuật nào để bắt đầu một dự án mới, điểm mấu chốt là bạn nên được chuyển đến trình chỉnh sửa mã của Apps Script, một màn hình trông như sau:
- Nhấp vào File > Save và đặt tên cho dự án của bạn.
- Tiếp theo, bạn sẽ cần tạo một dự án Google Cloud Console để chạy các truy vấn BigQuery.
- Tạo một dự án mới, đặt tên cho dự án đó, chọn Tài khoản thanh toán rồi nhấp vào TẠO.
- Khi quá trình tạo dự án hoàn tất, thông báo sẽ xuất hiện ở phía trên bên phải của trang. Nhấp vào mục Tạo dự án: <Tên dự án> để mở dự án.
- Nhấp vào biểu tượng trình đơn
ở phía trên bên trái, rồi chuyển đến API & Dịch vụ > Thông tin xác thực. Nhấp vào thẻ Màn hình xin phép bằng OAuth (đường liên kết trực tiếp).
- Trong trường Tên ứng dụng, hãy nhập "Big Data Codelab" và nhấp vào nút Lưu ở dưới cùng.
- Nhấp vào biểu tượng dấu ba chấm
ở phía trên bên phải để mở rộng trình đơn và chọn Cài đặt dự án (đường liên kết trực tiếp).
- Sao chép giá trị liệt kê trong phần Số dự án. (Có một trường Mã sản phẩm riêng biệt mà chúng ta sẽ sử dụng sau này trong lớp học lập trình.)
- Quay lại Trình chỉnh sửa App Script, nhấp vào Tài nguyên và gt; dự án Cloud Platform.
- Nhập số dự án vào hộp văn bản và nhấp vào Đặt dự án. Khi thấy lời nhắc, hãy nhấp vào Xác nhận.
- Khi hoàn tất, hãy nhấp vào nút Đóng để đóng hộp thoại.
- Bây giờ, bạn đã thiết lập một dự án mới, bạn cần bật dịch vụ nâng cao của BigQuery, sau đó kéo xuống Tài nguyên -> Dịch vụ nâng cao của Google và bật bật một chút cho API BigQuery.
- Lưu ý ở trạng thái dưới cùng, "Những dịch vụ này cũng phải được bật trong " Trang tổng quan API của Google Cloud Platform" vì vậy, hãy nhấp vào liên kết đó để mở một thẻ trình duyệt khác đến bảng điều khiển dành cho nhà phát triển hoặc "devconsole" viết tắt.
- Tại devconsole, hãy nhấp vào nút +Bật API và dịch vụ ở trên cùng, tìm "bigquery" chọn API BigQuery (không phải API Chuyển dữ liệu BigQuery), rồi nhấp vào bật để bật API đó. Hãy để thẻ trình duyệt này mở.
LƯU Ý: sau khi API được bật, bạn có thể thấy ghi chú trên trang này với nội dung như:"Để sử dụng API này, bạn cần tạo thông tin xác thực... - Quay lại thẻ trình duyệt của trình chỉnh sửa mã, bạn vẫn đang ở trình đơn Dịch vụ nâng cao của Google, do đó, hãy nhấp vào OK để đóng hộp thoại và để bạn nhấp vào trình soạn thảo mã. Hãy nhấp vào tên dự án ở trên cùng và đặt tên bất kỳ theo ý bạn &"BigQuery demo" hoặc tương tự—chúng tôi đã đặt tên cho chúng tôi " miles dặm" của chúng tôi.
Bây giờ, bạn đã sẵn sàng nhập mã ứng dụng, trải qua quy trình ủy quyền và nhận được phiên bản đầu tiên của ứng dụng này.
Tải ứng dụng lên và chạy ứng dụng
- Sao chép mã trong hộp bên dưới và dán mọi thứ trong trình chỉnh sửa mã với mã đó:
// 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());
}
Bây giờ, hãy lưu tệp bạn vừa tạo nhưng đổi tên tệp đó từ Code.gs
thành bq-sheets-slides.js
. Vậy mã này có chức năng gì? Chúng ta đã nói với bạn rằng BigQuery sẽ truy vấn BigQuery và ghi kết quả vào một trang tính mới của Google, nhưng truy vấn này là gì? Bạn có thể thấy biểu tượng này gần đầu 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
Cụm từ tìm kiếm này xem qua các tác phẩm của Shakespeare, thuộc nhóm dữ liệu công khai của BigQuery\39 và tạo ra 10 từ xuất hiện thường xuyên nhất trong tất cả các tác phẩm của ông, được sắp xếp theo thứ tự phổ biến giảm dần. Hãy tưởng tượng việc làm việc này theo cách thủ công (không phải là) vui vẻ như thế nào và bạn nên có ý tưởng về mức độ hữu ích của BigQuery.
- Chúng tôi gần như chưa sẵn sàng dùng thử. Vì bạn thấy gần đầu đoạn mã này, bạn cần có mã dự án hợp lệ để có thể thêm mã ứng dụng đó vào mã ứng dụng. Để làm việc này, hãy quay lại cửa sổ trình duyệt hoặc thẻ có trang bảng điều khiển dành cho nhà phát triển. (Chúng tôi đã yêu cầu bạn để mở báo cáo, bạn có nhớ không?)
- Ở trên cùng bên trái của hình đại diện Tài khoản Google của bạn là bộ chọn trình đơn thả xuống (
). Hãy nhấp vào bộ chọn đó rồi chọn Cài đặt dự án. Bạn sẽ thấy tên, mã và số của dự án. Sao chép mã dự án và đặt biến
PROJECT_ID
ở đầubq-sheets-slides.js
thành giá trị mà bạn nhận được trong bảng điều khiển dành cho nhà phát triển. LƯU Ý: Nếu bộ chọn trình đơn bị cố định và không hoạt động được, hãy tải lại trang. - Câu lệnh
if
hiển thị ở đó để ứng dụng không tiếp tục xuất hiện khi không có mã dự án. Sau khi bạn thêm tệp, lưu tệp và chạy mã bằng cách chuyển đến thanh trình đơn rồi chọn Chạy và gt; Chạy hàm > RunQuery, hãy nhấp vào hộp thoại Xem lại quyền, ứng dụng này chưa được xác minh và bên dưới là ảnh GIF động (dành cho một ứng dụng khác) minh họa một vài bước tiếp theo: - Sau khi yêu cầu xem xét các quyền, bạn sẽ thấy hộp thoại mới như minh họa ở trên. Chọn đúng Tài khoản Google sẽ chạy tập lệnh, chọn Nâng cao, cuộn xuống, sau đó nhấp vào "Truy cập <TÊN MỤC DỰ ÁN CỦA BẠN; (không an toàn)" để đến màn hình ủy quyền ứng dụng OAuth2. (Đọc thêm về quy trình xác minh để tìm hiểu lý do màn hình này nằm giữa bạn và hộp thoại ủy quyền OAuth2 bên dưới.)
LƯU Ý: Sau khi bạn ủy quyền cho ứng dụng, bạn không cần lặp lại quá trình này mỗi lần thực thi. Trong phần hướng dẫn này, bạn sẽ thấy lại màn hình hộp thoại này, yêu cầu người dùng cho phép tạo và quản lý bản trình bày trên Google Trang trình bày. - Sau khi bạn nhấp vào Cho phép trên cửa sổ hộp thoại OAuth2, tập lệnh sẽ bắt đầu chạy... bạn sẽ thấy hộp thoại màu vàng nhạt ở trên cùng. Nó chạy khá nhanh nên bạn có thể không nhận thấy rằng quảng cáo đang chạy hoặc quá trình thực thi đã hoàn tất.
- Hộp thoại đó sẽ biến mất sau khi hoàn tất, vì vậy, nếu bạn không thấy nút này thì có thể đã hoàn tất, vì vậy, hãy truy cập vào Google Drive (
drive.google.com
) của bạn và tìm một trang tính mới trong Google Trang tính có tên "Các từ phổ biến nhất trong mọi tác phẩm của Shakespeare - Mở bảng tính và bạn sẽ thấy 10 hàng từ và tổng số từ được sắp xếp theo thứ tự giảm dần:
Tóm tắt việc cần làm 1
Nhận biết điều gì vừa xảy ra... bạn đã chạy một số mã truy vấn tất cả tác phẩm của Shakespeare Bạn không chỉ yêu cầu BigQuery thực hiện việc này thay mặt bạn, mà bạn còn có thể sử dụng dịch vụ tích hợp trong Apps Script dành cho Google Trang tính để đặt dữ liệu này vào đó để dễ dàng sử dụng.
Mã cho bq-sheets-slides.js
(tên tệp đã chọn) mà bạn đã dán ở trên (ngoài PROJECT_ID
mà cần có mã dự án thực) cũng có thể được tìm thấy trong thư mục step1
trong kho lưu trữ GitHub của #lablab tại github.com/googlecodelabs/bigquery-sheets-sheets. Mã này được lấy cảm hứng từ ví dụ ban đầu trong trang dịch vụ nâng cao BigQuery và một cụm từ tìm kiếm hơi khác... những từ phổ biến nhất mà Shakespeare sử dụng có từ 10 ký tự trở lên. Bạn cũng có thể xem mẫu đó trong kho lưu trữ GitHub của nền tảng này.
Nếu bạn quan tâm đến các truy vấn khác mà bạn có thể thử so với các tác phẩm hoặc bảng dữ liệu công khai khác của Shakespeare, hãy xem trang web này cũng như trang này. Bất kể bạn sử dụng truy vấn nào, bạn luôn có thể kiểm tra truy vấn trong bảng điều khiển BigQuery trước khi chạy truy vấn đó trong Apps Script. Nhà phát triển có thể truy cập vào giao diện người dùng của BigQuery tại bigquery.cloud.google.com. Ví dụ: đây là giao diện của truy vấn của chúng tôi khi sử dụng giao diện người dùng BigQuery:
Mặc dù các bước ở trên đã tận dụng trình chỉnh sửa mã của Apps Script, bạn cũng có thể chọn phát triển cục bộ thông qua dòng lệnh. Nếu bạn muốn, hãy tạo tập lệnh có tên bq-sheets-slides.js
, dán mã ở trên vào, sau đó tải lên Google bằng lệnh clasp push
. (Nếu bạn từng bỏ lỡ, thì đây lại là đường liên kết đến clasp
và cách sử dụng.)
Mục đích của runQuery()
là trò chuyện với BigQuery và gửi kết quả của trang tính đó vào một Trang tính. Bây giờ, chúng ta cần tạo biểu đồ có dữ liệu. Hãy tạo một hàm mới có tên là createColumnChart()
để gọi phương thức newChart()
của Trang tính nhằm thực hiện thao tác này.
- Tạo biểu đồ. Thêm phần nội dung của
createColumnChart()
nổi bật bên dưới vàobq-sheets-slides.js
ngay saurunQuery()
. Báo cáo sẽ nhận trang tính chứa dữ liệu và yêu cầu biểu đồ cột chứa tất cả dữ liệu. Dải ô dữ liệu bắt đầu từ ô A2 vì hàng đầu tiên chứa các tiêu đề cột, không phải dữ liệu.
/**
* 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);
}
- Trả về bảng tính. Ở trên,
createColumnChart()
cần đối tượng bảng tính, vì vậy, chúng ta cần cập nhậtrunQuery()
để trả về đối tượngspreadsheet
để có thể chuyển đối tượng tớicreateColumnChart()
. Sau khi ghi lại thành công quá trình tạo tệp Google Trang tính, hãy trả về đối tượngspreadsheet
ở cuốirunQuery()
, ngay sau dòng nhật ký:
Logger.log('Results spreadsheet created: %s', spreadsheet.getUrl());
// NEW: Return the spreadsheet object for later use.
return spreadsheet;
}
- Lái xe
createBigQueryPresentation()
hàm. Bạn nên tách biệt chức năng BigQuery và chức năng tạo biểu đồ một cách hợp lý. Bây giờ, hãy tạo chức năngcreateBigQueryPresentation()
để thúc đẩy ứng dụng, gọi cảrunQuery()
vàcreateColumnChart()
. Mã bạn thêm sẽ trông giống như sau:
/**
* Runs a BigQuery query, adds data and a chart in a Sheet.
*/
function createBigQueryPresentation() {
var spreadsheet = runQuery();
createColumnChart(spreadsheet);
}
- Làm cho mã có thể tái sử dụng nhiều hơn. Bạn đã thực hiện 2 bước quan trọng ở trên: trả về đối tượng bảng tính và tạo một hàm lái xe. Nếu đồng nghiệp muốn sử dụng lại
runQuery()
nhưng không muốn URL đó được ghi lại thì sao? ĐểrunQuery()
dễ hiểu hơn đối với mục đích sử dụng chung, chúng ta cần phải chuyển dòng nhật ký đó. Tốt nhất là bạn nên di chuyển trang web đó? Nếu đoán đượccreateBigQueryPresentation()
, bạn sẽ chính xác! Sau khi di chuyển dòng nhật ký, bạn sẽ thấy dòng sau:
/**
* 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);
}
Với những thay đổi nêu trên (một lần nữa ngoại trừ PROJECT_ID
), bq-sheets-slides.js
của bạn sẽ trông giống như sau (và cũng có trong thư mục step2
của kho lưu trữ 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);
}
Lưu tệp, sau đó chuyển lên trên cùng của trình soạn thảo mã và chuyển sang để thực thi createBigQueryPresentation()
thay vì runQuery()
. Sau khi chạy tệp đó, bạn sẽ nhận được một tệp Google Trang tính khác, nhưng lần này, một biểu đồ sẽ hiển thị trong Trang tính bên cạnh dữ liệu:
Phần cuối cùng của lớp học lập trình là tạo một bản trình bày mới trên Google Trang trình bày, điền tiêu đề và phụ đề trên trang trình bày tiêu đề, sau đó thêm 2 trang trình bày mới, một trang web cho mỗi ô dữ liệu và một ô khác cho biểu đồ.
- Tạo bộ trang trình bày. Tất cả công việc trên bộ trang trình bày sẽ diễn ra trong
createSlidePresentation()
mà chúng ta sẽ thêm vàobq-sheets-slides.js
ngay saucreateColumnChart()
. Hãy bắt đầu bằng cách tạo một bộ trang trình bày mới, sau đó thêm tiêu đề và phụ đề vào trang trình bày mặc định mà chúng ta nhận được trên tất cả trang trình bày mới.
/**
* 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');
- Thêm bảng dữ liệu. Bước tiếp theo trong
createSlidePresentation()
là nhập dữ liệu ô từ Google Trang tính vào bộ trang trình bày mới. Đoạn mã này, vì vậy, hãy thêm đoạn mã này vào hàm:
// 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]));
}
}
- Nhập biểu đồ. Bước cuối cùng trong
createSlidePresentation()
là tạo thêm một trang trình bày, nhập biểu đồ từ bảng tính của chúng tôi và trả về đối tượngPresentation
. Thêm đoạn mã cuối cùng này vào hàm:
// 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;
}
- Biểu đồ trả lại hàng. Hiện tại, chức năng cuối cùng của chúng tôi đã hoàn tất, hãy xem lại chữ ký. Có,
createSlidePresentation()
yêu cầu cả bảng tính và đối tượng biểu đồ. Chúng ta đã điều chỉnhrunQuery()
để trả về đối tượngSpreadsheet
, nhưng bây giờ, chúng ta cần thực hiện thay đổi tương tự đối vớicreateColumnChart()
để trả về đối tượng biểu đồ (EmbeddedChart
). Hãy quay lại ứng dụng của bạn để lập trình nhằm thêm một dòng cuối cùng vào cuốicreateColumnChart()
để thực hiện việc đó:
// NEW: Return chart object for later use
return chart;
}
- Cập nhật
createBigQueryPresentation()
. VìcreateColumnChart()
trả về biểu đồ, nên chúng ta cần lưu biểu đồ đó vào một biến, sau đó chuyển cả bảng tính và biểu đồ vàocreateSlidePresentation()
. Vì chúng tôi ghi nhật ký URL của bảng tính mới tạo, nên chúng tôi cũng ghi lại URL của bản trình bày mới. Cập nhậtcreateBigQueryPresentation()
để trông như sau:
/**
* 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
}
- Lưu và chạy lại
createBigQueryPresentation()
. Trước khi thực thi, hãy nhận ra ứng dụng của bạn hiện cần nhiều quyền hơn từ người dùng để xem và quản lý bản trình bày trên Google Trang trình bày của bạn. Sau khi bạn cho phép, quyền này sẽ chạy như trước đây. - Ngoài Trang tính mà bạn đã tạo, bạn cũng sẽ nhận được một bản trình bày mới với 3 trang trình bày (tiêu đề, bảng dữ liệu, biểu đồ dữ liệu) như bên dưới:
Xin chúc mừng! Bây giờ, bạn đã tạo một ứng dụng tận dụng cả hai mặt của Google Cloud bằng cách thực hiện yêu cầu Google BigQuery truy vấn một trong các tập dữ liệu công khai của Google, tạo một trang tính mới trên Google Trang tính để lưu kết quả, thêm biểu đồ dựa trên dữ liệu vừa truy xuất đó và cuối cùng tạo bản trình bày trên Google Trang trình bày gồm các kết quả cũng như biểu đồ trong bảng tính.
Đó là những gì bạn đã làm về mặt kỹ thuật. Nói chung, bạn đã đi từ một bản phân tích dữ liệu lớn thành một nội dung mà bạn có thể trình bày cho các bên liên quan – tất cả đều ở dạng mã và hoàn toàn tự động. Chúng tôi hy vọng mẫu này sẽ truyền cảm hứng cho bạn thực hiện việc này và tùy chỉnh mẫu cho phù hợp với các dự án của riêng bạn. Khi kết thúc lớp học lập trình này, chúng tôi sẽ cung cấp một số đề xuất về cách bạn có thể cải tiến thêm ứng dụng mẫu này.
Với những thay đổi nêu trên từ tác vụ cuối cùng (ngoại trừ PROJECT_ID
), bq-sheets-slides.js
của bạn sẽ trông giống như sau (và cũng có trong thư mục final
trong kho lưu trữ GitHub):
bq-sheets-slide.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());
}
Không có vai trò nào trong lớp học lập trình này là tệp "tệp thứ hai" trong lớp học lập trình này, là tệp kê khai Apps Script, appsscript.json
. Bạn có thể truy cập tính năng này bằng cách chuyển đến thẻ trình duyệt của trình soạn thảo mã và chọn Xem > Hiển thị tệp kê khai từ trình đơn ở trên cùng. Nội dung phải như sau:
appsscript.json
{
"timeZone": "America/Los_Angeles",
"dependencies": {
"enabledAdvancedServices": [{
"userSymbol": "BigQuery",
"serviceId": "bigquery",
"version": "v2"
}]
},
"exceptionLogging": "STACKDRIVER"
}
Tệp kê khai là tệp cấu hình cấp hệ thống mà Apps Script sử dụng để biết môi trường thực thi nào dành cho ứng dụng của bạn. Việc trình bày nội dung của tệp kê khai không nằm trong phạm vi của lớp học lập trình này, nhưng bạn có thể nắm được chức năng của tệp.
Dưới đây là các tài nguyên bổ sung giúp bạn tìm hiểu sâu hơn về tài liệu được đề cập trong lớp học lập trình này cũng như các cách khác để truy cập các công cụ dành cho nhà phát triển của Google theo phương thức lập trình. Chúng tôi mong muốn duy trì lớp học lập trình này đồng bộ với kho lưu trữ.
Tài nguyên cho ứng dụng này
- Đường liên kết đến lớp học lập trình này: g.co/codelabs/bigquery-sheets-sheets
- Mã nguồn repo
- Bài đăng trên blog (và) video dành cho nhà phát triển
- phiên hoạt động Google Cloud NEXT \39;18
Tài liệu
- Trang web tài liệu về Google Apps Script
- Dịch vụ bảng tính Apps Script
- Dịch vụ trang trình bày Apps Script
- Dịch vụ nâng cao BigQuery của Apps Script
Video liên quan và video chung
- Một bí mật khác của Google (Ứng dụng)? (Video giới thiệu về Apps Script)
- Truy cập vào Google Maps từ bảng tính? (video)
- Thư viện video Google Apps Script
- Loạt video Launchpad Online (trước đây của...)
- G Suite Dev Show loạt video
&Tin tức & liên quan chung và có liên quan
- Trình kết nối dữ liệu của Google Trang tính cho BigQuery (thông báo)
- Google BigQuery tích hợp với Google Drive (đường liên kết 1, đường liên kết 2)
- Blog dành cho nhà phát triển của Google
- Blog của Cloud Platform của Google
- Google Cloud Big Data & Machine Learning
- Google Twitter Twitter (@GoogleDevs)
- Blog dành cho nhà phát triển G Suite
- Nhà phát triển G Suite Twitter (@googleworkspace)
- Bản tin hằng tháng dành cho nhà phát triển G Suite
Các lớp học lập trình khác
Cơ bản
- [API REST] G Suite & API của Google (API Drive)
- [App Maker] Tạo ứng dụng web của Cơ sở dữ liệu trong App Maker
Bậc trung
- [Apps Script] Công cụ dòng lệnh của CLASP Apps Script
- [Apps Script] Tiện ích bổ sung dành cho Gmail
- [Apps Script] Tiện ích bổ sung và tài liệu trên Documents; API Ngôn ngữ tự nhiên GCP
- [Apps Script] Khung bot trong Hangouts Chat
- [API REST] Công cụ báo cáo tùy chỉnh (API Trang tính)
- [API REST] Trình tạo trang trình bày tùy chỉnh cho trình phân tích BigQuery được cấp phép của Github (API Trang trình bày + BigQuery)
Ứng dụng tham chiếu
- Trình chuyển đổi Mark-to-Google Trang trình bày (API Trang trình bày)
Dưới đây là các thách thức về mã & quot; nhiều cách khác nhau; bạn có thể nâng cao hoặc bổ sung những mẫu mà chúng tôi xây dựng trong lớp học lập trình này theo nhiều cách. Danh sách này chắc chắn chưa đầy đủ nhưng nên cung cấp một số ý tưởng truyền cảm hứng về nơi bạn có thể thực hiện bước tiếp theo.
- Ứng dụng. Bạn không muốn bị giới hạn bởi việc sử dụng JavaScript hoặc các hạn chế do Apps Script áp đặt? Chuyển ứng dụng này sang ngôn ngữ lập trình bạn yêu thích bằng cách sử dụng API REST cho Google BigQuery, Trang tính và Trang trình bày.
- BigQuery. Hãy thử nghiệm với một truy vấn khác cho tập dữ liệu Shakespeare... có thể bạn sẽ tìm một truy vấn mà bạn quan tâm. Bạn có thể tìm thấy một truy vấn mẫu khác trong ứng dụng mẫu BigQuery Apps Apps.
- BigQuery. Thử nghiệm với một số tập dữ liệu công khai khác của BigQuery... có thể tìm thấy tập dữ liệu có thể có ý nghĩa hơn đối với bạn.
- BigQuery. Trước đó, chúng tôi đã đề cập đến các truy vấn khác mà bạn có thể thử so với các tác phẩm hoặc bảng dữ liệu công khai khác của Shakespeare và muốn chia sẻ lại trang web này cũng như trang này một lần nữa.
- Trang tính. Hãy thử nghiệm với các loại Biểu đồ khác.
- Trang tính & BigQuery. Xoay vòng các bảng... có lẽ bạn đã có một tập dữ liệu lớn trong bảng tính ở một nơi nào đó. Vào năm 2016, nhóm BigQuery đã giới thiệu tính năng này cho phép các nhà phát triển sử dụng Trang tính làm nguồn dữ liệu (xem bài đăng trên blog một và hai để biết thêm thông tin).
- Trang trình bày. Thêm các trang trình bày khác vào bản trình bày đã tạo, chẳng hạn như hình ảnh hoặc các tài sản khác liên kết với bản phân tích dữ liệu lớn của bạn. Sau đây là hướng dẫn về dịch vụ tích hợp sẵn của Trang trình bày để giúp bạn bắt đầu.
- G Suite. Tìm cách sử dụng cho các dịch vụ G Suite hoặc tích hợp khác của Google từ Apps Script, tức là Gmail, Google Drive, Lịch, Tài liệu, Maps, Analytics, YouTube, v.v. cũng như các dịch vụ nâng cao khác. Xem phần tổng quan về tệp đối chiếu để biết cả dịch vụ tích hợp và dịch vụ nâng cao để biết thêm thông tin.