Sử dụng BigQuery với Node.js

1. Tổng quan

BigQuery là kho dữ liệu phân tích cỡ petabyte và chi phí thấp do Google quản lý hoàn toàn. BigQuery là NoOps – không có cơ sở hạ tầng để quản lý và bạn không cần quản trị viên cơ sở dữ liệu – vì vậy, bạn có thể tập trung vào việc phân tích dữ liệu để tìm thông tin chi tiết có ý nghĩa, sử dụng SQL quen thuộc và tận dụng mô hình trả tiền theo mức dùng của chúng tôi.

Trong lớp học lập trình này, bạn sẽ dùng Thư viện ứng dụng BigQuery của Google Cloud để truy vấn tập dữ liệu công khai BigQuery bằng Node.js.

Kiến thức bạn sẽ học được

  • Cách sử dụng Cloud Shell
  • Cách bật BigQuery API
  • Cách xác thực yêu cầu API
  • Cách cài đặt thư viện ứng dụng BigQuery cho Node.js
  • Cách truy vấn các tác phẩm của Shakespeare
  • Cách truy vấn tập dữ liệu GitHub
  • Cách điều chỉnh việc lưu vào bộ nhớ đệm và thống kê hiển thị

Bạn cần có

  • Một dự án trên Google Cloud Platform
  • Một trình duyệt, chẳng hạn như Chrome hoặc Firefox
  • Quen thuộc với Node.js

Khảo sát

Bạn sẽ sử dụng hướng dẫn này như thế nào?

Chỉ có thể đọc Đọc và hoàn thành bài tập

Bạn đánh giá trải nghiệm của bạn với Node.js như thế nào?

Người mới tập Trung cấp Thành thạo

Bạn đánh giá trải nghiệm sử dụng các dịch vụ của Google Cloud Platform như thế nào?

Người mới tập Trung cấp Thành thạo

2. Thiết lập và yêu cầu

Thiết lập môi trường theo tiến độ riêng

  1. Đăng nhập vào Cloud Console rồi tạo dự án mới hoặc sử dụng lại dự án hiện có. (Nếu chưa có tài khoản Gmail hoặc G Suite, bạn phải tạo một tài khoản.)

H_hgylo4zxOllHaAbPKJ7VyqCKPDUnDhkr-BsBIFBsrB6TYSisg6LX-uqmMhh4sXUy_hoa2Qv87C2nFmkg-QAcCiZZp0qtpf6VPaNEEfP_iqt29KVLD-gklBWugQVeOWsFnJmNjHDw

dcCPqfBIwNO4R-0fNQLUC4aYXOOZhKhjUnakFLZJGeziw2ikOxGjGkCHDwN5x5kCbPFB8fiOzZnX-GfuzQ8Ox-UU15BwHirkVPR_0RJwl0oXrhqZmMIvZMa_uwHugBJIdx5-bZ6Z8Q

jgLzVCxk93d6E2bbonzATKA4jFZReoQ-fORxZZLEi5C3D-ubnv6nL-eP-iyh7qAsWyq_nyzzuEoPFD1wFOFZOe4FWhPBJjUDncnTxTImT3Ts9TM54f4nPpsAp52O0y3Cb19IceAEgQ

Xin lưu ý rằng mã dự án là một tên riêng biệt trong tất cả dự án Google Cloud (tên ở trên đã được sử dụng nên sẽ không phù hợp với bạn!). Lớp này sẽ được đề cập sau trong lớp học lập trình này là PROJECT_ID.

  1. Tiếp theo, bạn sẽ cần bật tính năng thanh toán trong Cloud Console để sử dụng tài nguyên của Google Cloud.

Việc chạy qua lớp học lập trình này sẽ không tốn nhiều chi phí. Hãy nhớ làm theo mọi hướng dẫn trong phần "Dọn dẹp" sẽ tư vấn cho bạn cách tắt tài nguyên để bạn không phải chịu thanh toán ngoài hướng dẫn này. Người dùng mới của Google Cloud đủ điều kiện tham gia chương trình Dùng thử miễn phí 300 USD.

Khởi động Cloud Shell

Mặc dù bạn có thể vận hành công cụ dòng lệnh Cloud SDK từ máy tính xách tay, nhưng trong lớp học lập trình này, bạn sẽ sử dụng Google Cloud Shell, một môi trường dòng lệnh chạy trên đám mây.

Kích hoạt Cloud Shell

  1. Trong Cloud Console, hãy nhấp vào Kích hoạt Cloud Shell dnDTxS9j60RcXdTjea12HLB9paS9Gzf7PfFLE9RW8g0Qx1bz7nmCzyCu4rjluX3bOEwavOpDwioXEkzOf6xtZp6-ZbJa08jwQHPveeW8jxz1.

yzBQBp2RC1EFvSSLYVkMA2m6LHqGsp22O81rUS5tGb9Y1FqlVhoRj_ka8V_uEjtpcirZRULMy1IjNr848uYvb9mC9RcGGqeayaLcXFfRwUGeXWChZPtWkHzUshTcqx_wJHis0X8viA

Nếu trước đây bạn chưa từng khởi động Cloud Shell, thì bạn sẽ thấy một màn hình trung gian (dưới màn hình đầu tiên) mô tả về ứng dụng này. Nếu trường hợp đó xảy ra, hãy nhấp vào Tiếp tục (và bạn sẽ không thấy thông báo đó nữa). Màn hình một lần đó sẽ có dạng như sau:

DKPiqK24CqAKjSXjepuJT96PmiDqQMcySmWKx8QyW5F3G2D8JH2d08ek-YM77wWKxPvggpOFER8Hbq3aaZipTDU2o0il7A0kQnsS3FXEqGDFG

Quá trình cấp phép và kết nối với Cloud Shell chỉ mất vài phút.

7RuYr-LCKzdiE1veTFmL_lYrVxsMZ6-xDoxAnfwPPc5uFA0utmFGejvu81jGmTdbqnqxrytW3KcHT6xrMIRc3bskctnDZC5nJdpqw-LRxu3r35hL4A0BSBTtbtirfh3PKv-eOKt8Rg

Máy ảo này chứa tất cả các công cụ phát triển mà bạn cần. Dịch vụ này cung cấp thư mục gốc 5 GB ổn định và chạy trong Google Cloud, giúp nâng cao đáng kể hiệu suất và khả năng xác thực của mạng. Trong lớp học lập trình này, đa số mọi người đều có thể thực hiện chỉ bằng một trình duyệt hoặc Chromebook.

Sau khi kết nối với Cloud Shell, bạn sẽ thấy mình đã được xác thực và dự án đã được đặt thành mã dự án.

  1. Chạy lệnh sau trong Cloud Shell để xác nhận rằng bạn đã được xác thực:
gcloud auth list

Kết quả lệnh

 Credentialed Accounts
ACTIVE  ACCOUNT
*       <my_account>@<my_domain.com>

To set the active account, run:
    $ gcloud config set account `ACCOUNT`
gcloud config list project

Kết quả lệnh

[core]
project = <PROJECT_ID>

Nếu chưa, bạn có thể thiết lập chế độ này bằng lệnh sau:

gcloud config set project <PROJECT_ID>

Kết quả lệnh

Updated property [core/project].

3. Bật BigQuery API

BigQuery API phải được bật theo mặc định trong tất cả dự án trên Google Cloud. Bạn có thể kiểm tra xem điều này có đúng hay không bằng lệnh sau trong Cloud Shell:

gcloud services list

Bạn sẽ thấy BigQuery được liệt kê:

NAME                              TITLE
bigquery-json.googleapis.com      BigQuery API
...

Nếu chưa bật BigQuery API, bạn có thể sử dụng lệnh sau trong Cloud Shell để bật:

gcloud services enable bigquery-json.googleapis.com

4. Xác thực các yêu cầu API

Để gửi yêu cầu đến BigQuery API, bạn cần sử dụng Tài khoản dịch vụ. Tài khoản dịch vụ thuộc về dự án của bạn và được thư viện ứng dụng Node.js của Google BigQuery sử dụng để tạo các yêu cầu API BigQuery. Giống như mọi tài khoản người dùng khác, tài khoản dịch vụ được đại diện bằng địa chỉ email. Trong phần này, bạn sẽ sử dụng Cloud SDK để tạo một tài khoản dịch vụ, sau đó tạo thông tin xác thực mà bạn cần để xác thực là tài khoản dịch vụ.

Trước tiên, hãy đặt một biến môi trường bằng PROJECT_ID mà bạn sẽ sử dụng trong suốt lớp học lập trình này:

export GOOGLE_CLOUD_PROJECT=$(gcloud config get-value core/project)

Tiếp theo, hãy tạo một tài khoản dịch vụ mới để truy cập vào BigQuery API bằng cách sử dụng:

gcloud iam service-accounts create my-bigquery-sa --display-name "my bigquery codelab service account"

Tiếp theo, hãy tạo thông tin đăng nhập mà mã Node.js sẽ sử dụng để đăng nhập làm tài khoản dịch vụ mới của bạn. Tạo các thông tin đăng nhập này và lưu dưới dạng tệp JSON "~/key.json" bằng cách dùng lệnh sau:

gcloud iam service-accounts keys create ~/key.json --iam-account  my-bigquery-sa@${GOOGLE_CLOUD_PROJECT}.iam.gserviceaccount.com

Cuối cùng, hãy đặt biến môi trường GOOGLE_APPLICATION_CREDENTIALS. Biến này được thư viện BigQuery API C# sử dụng trong bước tiếp theo để tìm thông tin đăng nhập của bạn. Bạn phải đặt biến môi trường thành đường dẫn đầy đủ của tệp JSON chứa thông tin đăng nhập mà bạn đã tạo. Đặt biến môi trường bằng cách dùng lệnh sau:

export GOOGLE_APPLICATION_CREDENTIALS="/home/${USER}/key.json"

Bạn có thể đọc thêm về cách xác thực BigQuery API.

5. Thiết lập chế độ kiểm soát quyền truy cập

BigQuery sử dụng giải pháp Quản lý danh tính và quyền truy cập (IAM) để quản lý quyền truy cập vào tài nguyên. BigQuery có một số vai trò được xác định trước (người dùng, dataOwner, dataViewer, v.v.) mà bạn có thể chỉ định cho tài khoản dịch vụ mà bạn đã tạo ở bước trước đó. Bạn có thể đọc thêm về tính năng Kiểm soát quyền truy cập trong tài liệu BigQuery.

Trước khi có thể truy vấn các tập dữ liệu công khai, bạn cần đảm bảo rằng tài khoản dịch vụ có ít nhất vai trò bigquery.user. Trong Cloud Shell, hãy chạy lệnh sau để chỉ định vai trò bigquery.user cho tài khoản dịch vụ:

gcloud projects add-iam-policy-binding ${GOOGLE_CLOUD_PROJECT} --member "serviceAccount:my-bigquery-sa@${GOOGLE_CLOUD_PROJECT}.iam.gserviceaccount.com" --role "roles/bigquery.user"

Bạn có thể chạy lệnh sau để xác minh rằng tài khoản dịch vụ đã được chỉ định vai trò của người dùng:

gcloud projects get-iam-policy $GOOGLE_CLOUD_PROJECT

6. Cài đặt thư viện ứng dụng BigQuery cho Node.js

Trước tiên, hãy tạo một thư mục BigQueryDemo rồi chuyển đến thư mục đó:

mkdir BigQueryDemo
cd BigQueryDemo

Tiếp theo, hãy tạo dự án Node.js mà bạn sẽ sử dụng để chạy mẫu thư viện ứng dụng BigQuery:

npm init -y

Bạn sẽ thấy dự án Node.js được tạo:

{
  "name": "BigQueryDemo",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

Cài đặt thư viện ứng dụng BigQuery:

 npm install --save @google-cloud/bigquery
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN BigQueryDemo@1.0.0 No description
npm WARN BigQueryDemo@1.0.0 No repository field.
+ @google-cloud/bigquery@2.1.0
added 69 packages from 105 contributors and audited 147 packages in 4.679s
found 0 vulnerabilities

Bây giờ, bạn đã sẵn sàng sử dụng thư viện ứng dụng BigQuery Node.js!

7. Truy vấn các tác phẩm của Shakespeare

Tập dữ liệu công khai là bất kỳ tập dữ liệu nào được lưu trữ trong BigQuery và được cung cấp cho công chúng. Có nhiều tập dữ liệu công khai khác có sẵn để bạn truy vấn, một số tập dữ liệu này cũng được Google lưu trữ, nhưng nhiều tập dữ liệu khác được các bên thứ ba lưu trữ. Bạn có thể đọc thêm trên trang Tập dữ liệu công khai.

Ngoài các tập dữ liệu công khai, BigQuery còn cung cấp một số lượng bảng mẫu hạn chế để bạn có thể truy vấn. Các bảng này có trong bigquery-public-data:samples dataset. Một trong những bảng đó có tên là shakespeare.. Bảng này chứa chỉ mục từ của các tác phẩm của Shakespeare, cho biết số lần mỗi từ xuất hiện trong mỗi tập sao lục.

Ở bước này, bạn sẽ truy vấn bảng shakespeare.

Trước tiên, hãy mở trình soạn thảo mã từ trên cùng bên phải của Cloud Shell:

9b8f365ab5ec7f71.pngS

Tạo tệp queryShakespeare.js bên trong thư mục BigQueryDemo :

 touch queryShakespeare.js

Chuyển đến tệp queryShakespeare.js và chèn mã sau:

'use strict';

function main() {

    // Import the Google Cloud client library
    const {BigQuery} = require('@google-cloud/bigquery');

    async function queryShakespeare() {
    // Queries a public Shakespeare dataset.

        // Create a client
        const bigqueryClient = new BigQuery();

        // The SQL query to run
        const sqlQuery = `SELECT word, word_count
            FROM \`bigquery-public-data.samples.shakespeare\`
            WHERE corpus = @corpus
            AND word_count >= @min_word_count
            ORDER BY word_count DESC`;

        const options = {
        query: sqlQuery,
        // Location must match that of the dataset(s) referenced in the query.
        location: 'US',
        params: {corpus: 'romeoandjuliet', min_word_count: 250},
        };

        // Run the query
        const [rows] = await bigqueryClient.query(options);

        console.log('Rows:');
        rows.forEach(row => console.log(row));
    }

    queryShakespeare();
  }

main();

Hãy dành một hoặc hai phút để nghiên cứu mã và xem cách bảng được truy vấn.

Quay lại Cloud Shell, chạy ứng dụng:

node queryShakespeare.js

Bạn sẽ thấy danh sách các từ và số lần xuất hiện của các từ đó:

Rows:
{ word: 'the', word_count: 614 }
{ word: 'I', word_count: 577 }
{ word: 'and', word_count: 490 }
{ word: 'to', word_count: 486 }
{ word: 'a', word_count: 407 }
{ word: 'of', word_count: 367 }
{ word: 'my', word_count: 314 }
{ word: 'is', word_count: 307 }
...

8. Truy vấn tập dữ liệu GitHub

Để làm quen với BigQuery, bây giờ, bạn sẽ đưa ra một truy vấn dựa trên tập dữ liệu công khai GitHub. Bạn sẽ tìm thấy những thông báo cam kết phổ biến nhất trên GitHub. Bạn cũng sẽ sử dụng giao diện người dùng web của BigQuery để xem trước và chạy các truy vấn đặc biệt.

Để xem dữ liệu, hãy mở tập dữ liệu GitHub trong giao diện người dùng web BigQuery:

https://console.cloud.google.com/bigquery?p=bigquery-public-data&amp;d=github_repos&amp;t=commits&amp;page=table

Để xem trước nhanh dữ liệu hiển thị, hãy nhấp vào thẻ Xem trước:

d3f0dc7400fbe678.png

Tạo tệp queryGitHub.js bên trong thư mục BigQueryDemo:

 touch queryGitHub.js

Chuyển đến tệp queryGitHub.js và chèn mã sau:

'use strict';

function main() {

    // Import the Google Cloud client library
    const {BigQuery} = require('@google-cloud/bigquery');


    async function queryGitHub() {
        // Queries a public GitHub dataset.

        // Create a client
        const bigqueryClient = new BigQuery();

        // The SQL query to run
        const sqlQuery = `SELECT subject AS subject, COUNT(*) AS num_duplicates
        FROM \`bigquery-public-data.github_repos.commits\`
        GROUP BY subject 
        ORDER BY num_duplicates 
        DESC LIMIT 10`;

        const options = {
        query: sqlQuery,
        // Location must match that of the dataset(s) referenced in the query.
        location: 'US',
        };

        // Run the query
        const [rows] = await bigqueryClient.query(options);

        console.log('Rows:');
        rows.forEach(row => console.log(`${row.subject}: ${row.num_duplicates}`));
    }
    
    queryGitHub();
}

main();

Hãy dành vài phút để nghiên cứu mã và xem cách bảng được truy vấn cho các thông báo xác nhận phổ biến nhất.

Quay lại Cloud Shell, chạy ứng dụng:

node queryGitHub.js

Bạn sẽ thấy danh sách thông báo cam kết và số lần xuất hiện của các thông báo đó:

Rows:
Update README.md: 2572220
: 1985733
Initial commit: 1940228
Mirroring from Micro.blog.: 646772
update: 592520
Update data.json: 548730
Update data.js: 548354
...

9. Lưu vào bộ nhớ đệm và số liệu thống kê

Khi bạn chạy một truy vấn, BigQuery sẽ lưu kết quả vào bộ nhớ đệm. Do đó, các truy vấn giống hệt nhau tiếp theo sẽ mất ít thời gian hơn nhiều. Bạn có thể tắt chức năng lưu vào bộ nhớ đệm bằng cách sử dụng các tuỳ chọn truy vấn. BigQuery cũng theo dõi một số số liệu thống kê về các truy vấn như thời gian tạo, thời gian kết thúc và tổng số byte được xử lý.

Trong bước này, bạn sẽ tắt chức năng lưu vào bộ nhớ đệm và hiển thị một vài số liệu thống kê về truy vấn.

Chuyển đến tệp queryShakespeare.js bên trong thư mục BigQueryDemo rồi thay thế mã bằng đoạn mã sau:

'use strict';

function main() {

    // Import the Google Cloud client library
    const {BigQuery} = require('@google-cloud/bigquery');

    async function queryShakespeareDisableCache() {
        // Queries the Shakespeare dataset with the cache disabled.

        // Create a client
        const bigqueryClient = new BigQuery();

        const sqlQuery = `SELECT word, word_count
            FROM \`bigquery-public-data.samples.shakespeare\`
            WHERE corpus = @corpus
            AND word_count >= @min_word_count
            ORDER BY word_count DESC`;

        const options = {
            query: sqlQuery,
            // Location must match that of the dataset(s) referenced in the query.
            location: 'US',
            params: {corpus: 'romeoandjuliet', min_word_count: 250},
            useQueryCache: false,
        };

        // Run the query as a job
        const [job] = await bigqueryClient.createQueryJob(options);
        console.log(`Job ${job.id} started.`);

        // Wait for the query to finish
        const [rows] = await job.getQueryResults();

        // Print the results
        console.log('Rows:');
        rows.forEach(row => console.log(row));

        // Print job statistics
        console.log('JOB STATISTICS:')
        console.log(`Status: ${job.metadata.status.state}`);
        console.log(`Creation time: ${job.metadata.statistics.creationTime}`);
        console.log(`Start time: ${job.metadata.statistics.startTime}`);
        console.log(`Statement type: ${job.metadata.statistics.query.statementType}`);
    }
    queryShakespeareDisableCache();
}

main();

Một số điều cần lưu ý về mã. Trước tiên, tính năng lưu vào bộ nhớ đệm sẽ bị tắt bằng cách đặt UseQueryCache thành false bên trong đối tượng options. Thứ hai, bạn đã truy cập vào số liệu thống kê về truy vấn từ đối tượng công việc.

Quay lại Cloud Shell, chạy ứng dụng:

node queryShakespeare.js

Bạn sẽ thấy danh sách thông báo cam kết và số lần xuất hiện của các thông báo đó. Ngoài ra, bạn cũng sẽ thấy một vài số liệu thống kê về truy vấn:

Rows:
{ word: 'the', word_count: 614 }
{ word: 'I', word_count: 577 }
{ word: 'and', word_count: 490 }
{ word: 'to', word_count: 486 }
{ word: 'a', word_count: 407 }
{ word: 'of', word_count: 367 }
{ word: 'my', word_count: 314 }
{ word: 'is', word_count: 307 }
{ word: 'in', word_count: 291 }
{ word: 'you', word_count: 271 }
{ word: 'that', word_count: 270 }
{ word: 'me', word_count: 263 }
JOB STATISTICS:
Status: RUNNING
Creation time: 1554309220660
Start time: 1554309220793
Statement type: SELECT

10. Đang tải dữ liệu vào BigQuery

Nếu muốn truy vấn dữ liệu của riêng mình, trước tiên, bạn cần tải dữ liệu đó vào BigQuery. BigQuery hỗ trợ tải dữ liệu từ nhiều nguồn như Google Cloud Storage, các dịch vụ khác của Google hoặc một nguồn cục bộ dễ đọc. Bạn thậm chí có thể truyền trực tuyến dữ liệu của mình. Bạn có thể đọc thêm trên trang Tải dữ liệu vào BigQuery.

Ở bước này, bạn sẽ tải tệp JSON được lưu trữ trong Google Cloud Storage vào bảng BigQuery. Tệp JSON nằm ở: gs://cloud-samples-data/bigquery/us-states/us-states.json

Nếu muốn biết nội dung của tệp JSON, bạn có thể sử dụng công cụ dòng lệnh gsutil để tải tệp này xuống trong Cloud Shell:

gsutil cp gs://cloud-samples-data/bigquery/us-states/us-states.json .
Copying gs://cloud-samples-data/bigquery/us-states/us-states.json...
/ [1 files][  2.0 KiB/  2.0 KiB]                                                
Operation completed over 1 objects/2.0 KiB.

Bạn có thể thấy rằng tệp này chứa danh sách các tiểu bang của Hoa Kỳ và mỗi tiểu bang là một đối tượng JSON trên một dòng riêng:

less us-states.json
{"name": "Alabama", "post_abbr": "AL"}
{"name": "Alaska", "post_abbr":  "AK"}
...

Để tải tệp JSON này vào BigQuery, hãy tạo tệp createDataset.js và tệp loadBigQueryJSON.js bên trong thư mục BigQueryDemo:

touch createDataset.js 
touch loadBigQueryJSON.js

Cài đặt thư viện ứng dụng Node.js của Google Cloud Storage:

 npm install --save @google-cloud/storage

Chuyển đến tệp createDataset.js và chèn mã sau:

'use strict';

function main() {
    // Import the Google Cloud client libraries
    const {BigQuery} = require('@google-cloud/bigquery');

    async function createDataset() {
        const datasetId = "my_states_dataset3";

        const bigqueryClient = new BigQuery();

        // Specify the geographic location where the dataset should reside
        const options = {
        location: 'US',
        };

        // Create a new dataset
        const [dataset] = await bigqueryClient.createDataset(datasetId, options);
        console.log(`Dataset ${dataset.id} created.`);
    }

    createDataset();
}

main();

Sau đó, hãy chuyển đến tệp loadBigQueryJSON.js rồi chèn đoạn mã sau:

'use strict';

function main() {
    // Import the Google Cloud client libraries
    const {BigQuery} = require('@google-cloud/bigquery');
    const {Storage} = require('@google-cloud/storage');

    const datasetId = "my_states_dataset3";
    const tableId = "my_states_table";


    async function createTable(datasetId, tableId) {
        // Creates a new table

        // Create a client
        const bigqueryClient = new BigQuery();

        const options = {
            location: 'US',
            };

        // Create a new table in the dataset
        const [table] = await bigqueryClient
        .dataset(datasetId)
        .createTable(tableId, options);

        console.log(`Table ${table.id} created.`);
    }

    async function loadJSONFromGCS(datasetId, tableId) {
        // Import a GCS file into a table with manually defined schema.

        // Instantiate clients
        const bigqueryClient = new BigQuery();
        const storageClient = new Storage();

        const bucketName = 'cloud-samples-data';
        const filename = 'bigquery/us-states/us-states.json';

        // Configure the load job.
        const metadata = {
        sourceFormat: 'NEWLINE_DELIMITED_JSON',
        schema: {
            fields: [
            {name: 'name', type: 'STRING'},
            {name: 'post_abbr', type: 'STRING'},
            ],
        },
        location: 'US',
        };

        // Load data from a Google Cloud Storage file into the table
        const [job] = await bigqueryClient
        .dataset(datasetId)
        .table(tableId)
        .load(storageClient.bucket(bucketName).file(filename), metadata);

        // load() waits for the job to finish
        console.log(`Job ${job.id} completed.`);

        // Check the job's status for errors
        const errors = job.status.errors;
        if (errors && errors.length > 0) {
        throw errors;
        }
    }

    // createDataset(datasetId);
    createTable(datasetId, tableId);
    loadJSONFromGCS(datasetId, tableId);
}

main();

Hãy dành vài phút để tìm hiểu cách mã tải tệp JSON và tạo bảng (có giản đồ) trong tập dữ liệu.

Quay lại Cloud Shell, chạy ứng dụng:

node createDataset.js
node loadBigQueryJSON.js

Một tập dữ liệu và bảng sẽ được tạo trong BigQuery:

Table my_states_table created.
Job [JOB ID] completed.

Để xác minh rằng tập dữ liệu đã được tạo, bạn có thể truy cập vào giao diện người dùng web của BigQuery. Bạn sẽ thấy một tập dữ liệu và một bảng mới. Nếu chuyển sang thẻ Xem trước của bảng, bạn có thể xem dữ liệu thực tế:

4fb7296ae901e8fd.pngS

11. Xin chúc mừng!

Bạn đã tìm hiểu cách sử dụng BigQuery bằng Node.js!

Dọn dẹp

Để tránh bị tính phí vào tài khoản Google Cloud Platform cho các tài nguyên được sử dụng trong hướng dẫn bắt đầu nhanh này, hãy làm như sau:

Tìm hiểu thêm

Giấy phép

Tác phẩm này được cấp phép theo Giấy phép chung Ghi nhận tác giả Creative Commons 2.0.