שימוש ב-BigQuery באמצעות Node.js

1. סקירה כללית

BigQuery הוא מחסן נתונים (data warehouse) מנוהל בקנה מידה של פטה-בייט ובעלות נמוכה. BigQuery הוא NoOps – אין תשתית שצריך לנהל ולא צריך מנהל של מסד נתונים – כך אפשר להתמקד בניתוח נתונים כדי להגיע לתובנות משמעותיות, להשתמש ב-SQL מוכר ולנצל את מודל התשלום לפי שימוש.

ב-Codelab הזה משתמשים בספריית הלקוח של Google Cloud BigQuery כדי לשלוח שאילתות על מערכי נתונים ציבוריים של BigQuery עם Node.js.

מה תלמדו

  • איך משתמשים ב-Cloud Shell
  • איך מפעילים את BigQuery API
  • איך לאמת בקשות API
  • איך להתקין את ספריית הלקוח של BigQuery ל-Node.js
  • איך לשלוח שאילתות על יצירות של שייקספיר
  • איך שולחים שאילתות על מערך הנתונים ב-GitHub
  • איך לשנות את השמירה במטמון ולהציג נתונים סטטיסטיים

מה צריך להכין

  • פרויקט ב-Google Cloud Platform
  • דפדפן, למשל Chrome או Firefox
  • היכרות עם Node.js

סקר

איך תשתמשו במדריך הזה?

לקריאה בלבד לקרוא אותו ולבצע את התרגילים

איזה דירוג מגיע לחוויה שלך עם Node.js?

מתחילים בינונית בקיאים

איזה דירוג מגיע לדעתך לחוויית השימוש בשירותי Google Cloud Platform?

מתחילים בינונית בקיאים

2. הגדרה ודרישות

הגדרת סביבה בקצב עצמאי

  1. נכנסים למסוף Cloud ויוצרים פרויקט חדש או עושים שימוש חוזר בפרויקט קיים. (אם עדיין אין לכם חשבון Gmail או G Suite, עליכם ליצור חשבון).

H_hgylo4zxOllHaAbPKJ7VyqCKPDUnDhkr-BsBIFBsrB6TYSisg6LX-uqmMhh4sXUy_hoa2Qv87C2nFmkg-QAcCiZZp0qtpf6VPaNEEfP_iqt29KVLD-gklBWugQVeOWsFnJmNjHDw

dcCPqfBIwNO4R-0fNQLUC4aYXOOZhKhjUnakFLZJGeziw2ikOxGjGkCHDwN5x5kCbPFB8fiOzZnX-GfuzQ8Ox-UU15BwHirkVPR_0RJwl0oXrhqZmMIvZMa_uwHugBJIdx5-bZ6Z8Q

jgLzVCxk93d6E2bbonzATKA4jFZReoQ-fORxZZLEi5C3D-ubnv6nL-eP-iyh7qAsWyq_nyzzuEoPFD1wFOFZOe4FWhPBJjUDncnTxTImT3Ts9TM54f4nPpsAp52O0y3Cb19IceAEgQ

חשוב לזכור את מזהה הפרויקט, שם ייחודי לכל הפרויקטים ב-Google Cloud (השם שלמעלה כבר תפוס ולא מתאים לכם, סליחה). בהמשך ב-Codelab הזה, היא תיקרא PROJECT_ID.

  1. בשלב הבא צריך להפעיל את החיוב במסוף Cloud כדי להשתמש במשאבים של Google Cloud.

מעבר ב-Codelab הזה לא אמור לעלות הרבה, אם בכלל. חשוב לבצע את כל ההוראות בקטע 'ניקוי' שמסביר איך להשבית משאבים כדי שלא תצברו חיובים מעבר למדריך הזה. משתמשים חדשים ב-Google Cloud זכאים להשתתף בתוכנית תקופת ניסיון בחינם בשווי 1,200 ש"ח.

הפעלת Cloud Shell

אפשר להפעיל את כלי שורת הפקודה Cloud SDK מרחוק מהמחשב הנייד, אבל ב-Codelab הזה תשתמשו ב-Google Cloud Shell, סביבת שורת הפקודה שפועלת בענן.

הפעלת Cloud Shell

  1. במסוף Cloud, לוחצים על Activate Cloud Shell dnDTxS9j60RcXdTjea12HLB9paS9Gzf7PfFLE9RW8g0Qx1bz7nmCzyCu4rjluX3bOEwavOpDwioXEkzOf6xtZp6-ZbJa08jwJqtmeeW8p9P1bz7nmCzyCu4rjluX3bOEwavOpDwioXEkzOf6xtZp6-ZbJa08jwJqtmeeW8p1.

yzBQBp2RC1EFvSSLYVkMA2m6LHqGsp22O81rUS5tGb9Y1FqlVhoRj_ka8V_uEjtpcirZRULMy1IjNr848uYvb9mC9RcGGqeayaLcXFfRwUGeXWChZPtWkHzUshTcqx_wJHis0X8viA

אם לא הפעלתם את Cloud Shell בעבר, יוצג לכם מסך ביניים (בחלק הנגלל) שמתאר מהו. במקרה כזה, לוחצים על המשך (וזה לא יקרה שוב). כך נראה המסך החד-פעמי:

VgsaqGbKPRiqK24CqAKjSXjepuJT96PmiDqQMcySmWKx8QyW5F3G2D8JH2d08ek-YM77wWKxPvggpOFER8Hbq3aaZipTDU2o0N7A0kS3FXjDzukF

ההקצאה וההתחברות ל-Cloud Shell נמשכת כמה דקות.

7RuYr-LCKzdiE1veTFmL_lYrVxsMZ6-xDoxAnfwPPc5uFA0utmFGejvu81jGmTdbqnqxrytW3KcHT6xrMIRc3bskctnDZC5nJdpqw-LRxu3r35hL4A0BSBTtbtirfh3PKv-eOKt8Rg

במכונה הווירטואלית הזו משולבת כל כלי הפיתוח שדרושים לכם. יש בה ספריית בית בנפח מתמיד של 5GB והיא פועלת ב-Google Cloud, מה שמשפר משמעותית את ביצועי הרשת והאימות. אם לא את כולן, ניתן לבצע חלק גדול מהעבודה ב-Codelab הזה באמצעות דפדפן או Chromebook.

אחרי ההתחברות ל-Cloud Shell, אתם אמורים לראות שכבר בוצע אימות ושהפרויקט כבר מוגדר למזהה הפרויקט שלכם.

  1. מריצים את הפקודה הבאה ב-Cloud Shell כדי לוודא שהאימות בוצע:
gcloud auth list

פלט הפקודה

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

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

פלט הפקודה

[core]
project = <PROJECT_ID>

אם היא לא נמצאת שם, תוכלו להגדיר אותה באמצעות הפקודה הבאה:

gcloud config set project <PROJECT_ID>

פלט הפקודה

Updated property [core/project].

3. הפעלת BigQuery API

צריך להפעיל את BigQuery API בכל הפרויקטים ב-Google Cloud. כדי לבדוק אם זה נכון, משתמשים בפקודה הבאה ב-Cloud Shell:

gcloud services list

BigQuery אמור להופיע ברשימה הבאה:

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

אם BigQuery API לא הופעל, אתם יכולים להפעיל אותו באמצעות הפקודה הבאה ב-Cloud Shell:

gcloud services enable bigquery-json.googleapis.com

4. אימות בקשות API

כדי לשלוח בקשות ל-BigQuery API, צריך להשתמש בחשבון שירות. חשבון שירות שייך לפרויקט שלכם, ומשמש את ספריית הלקוח של Google BigQuery Node.js כדי לשלוח בקשות ל-BigQuery API. כמו כל חשבון משתמש אחר, חשבון שירות מיוצג על ידי כתובת אימייל. בקטע הזה משתמשים ב-Cloud SDK כדי ליצור חשבון שירות, ולאחר מכן יוצרים פרטי כניסה לצורך אימות כחשבון השירות.

קודם כול, מגדירים משתנה סביבה עם PROJECT_ID, שבו תשתמשו במהלך ה-codelab הזה:

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

בשלב הבא, יוצרים חשבון שירות חדש כדי לגשת ל-BigQuery API באמצעות:

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

בשלב הבא, יוצרים פרטי כניסה שבהם ישתמש הקוד של Node.js כדי להתחבר בתור חשבון השירות החדש. יוצרים את פרטי הכניסה האלה ושומרים אותם כקובץ JSON ~/key.json. באמצעות הפקודה הבאה:

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

לבסוף, מגדירים את משתנה הסביבה GOOGLE_APPLICATION_CREDENTIALS, שמשמש את ספריית ה-C# של BigQuery API, כדי למצוא את פרטי הכניסה שלכם בשלב הבא. מגדירים את משתנה הסביבה לנתיב המלא של קובץ ה-JSON של פרטי הכניסה שיצרתם. כדי להגדיר את משתנה הסביבה, משתמשים בפקודה הבאה:

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

מידע נוסף על אימות של BigQuery API

5. הגדרה של בקרת גישה

BigQuery משתמש בממשק של ניהול זהויות והרשאות גישה (IAM) כדי לנהל את הגישה למשאבים. ב-BigQuery יש כמה תפקידים מוגדרים מראש (user, dataOwner, dataViewer וכו') שאפשר להקצות לחשבון השירות שיצרתם בשלב הקודם. אפשר לקרוא מידע נוסף על בקרת גישה במסמכי התיעוד של BigQuery.

לפני ששולחים שאילתות למערכי הנתונים הציבוריים, צריך לוודא שלחשבון השירות יש לפחות התפקיד bigquery.user. ב-Cloud Shell, מריצים את הפקודה הבאה כדי להקצות את התפקיד bigquery.user לחשבון השירות:

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

מריצים את הפקודה הבאה כדי לוודא שלחשבון השירות הוקצה תפקיד המשתמש:

gcloud projects get-iam-policy $GOOGLE_CLOUD_PROJECT

6. התקנה של ספריית הלקוח של BigQuery ל-Node.js

קודם יוצרים תיקיית BigQueryDemo ועוברים אליה:

mkdir BigQueryDemo
cd BigQueryDemo

בשלב הבא, יוצרים פרויקט Node.js שבו תשתמשו כדי להריץ דוגמאות של ספריות לקוח ב-BigQuery:

npm init -y

אתם אמורים לראות את הפרויקט ב-Node.js שנוצר:

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

מתקינים את ספריית הלקוח של 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

עכשיו אתם מוכנים להשתמש בספריית הלקוח של BigQuery Node.js!

7. הרצת שאילתות על יצירות של שייקספיר

מערך נתונים ציבורי הוא כל מערך נתונים שמאוחסן ב-BigQuery וזמין לציבור הרחב. יש עוד הרבה מערכי נתונים ציבוריים אחרים שאפשר להריץ בהם שאילתות, שחלקם מתארחים גם ב-Google והרבה מערכי נתונים נוספים מתארחים על ידי צדדים שלישיים. מידע נוסף זמין בדף מערכי נתונים ציבוריים.

בנוסף למערכי הנתונים הציבוריים, BigQuery מספק מספר מוגבל של טבלאות לדוגמה שניתן להריץ עליהן שאילתות. הטבלאות האלה נמצאות בbigquery-public-data:samples dataset. אחת מהטבלאות האלו נקראת shakespeare. היא מכילה אינדקס מילים של היצירות של שייקספיר, שמייצג את מספר הפעמים שכל מילה מופיעה בכל קורפוס.

בשלב הזה תריצו שאילתות על טבלת שייקספיר.

קודם כול, פותחים את עורך הקוד מהצד השמאלי העליון של Cloud Shell:

9b8f365ab5ec7f71.png

יוצרים קובץ queryShakespeare.js בתוך התיקייה BigQueryDemo :

 touch queryShakespeare.js

נכנסים לקובץ queryShakespeare.js ומזינים את הקוד הבא:

'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();

הקדישו דקה או שתיים כדי ללמוד את הקוד ולראות איך שולחות שאילתות לגבי הטבלה.

בחזרה ב-Cloud Shell, מריצים את האפליקציה:

node queryShakespeare.js

אתם אמורים לראות רשימה של המילים והאירועים שלהן:

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. הרצת שאילתות במערך הנתונים ב-GitHub

כדי להכיר טוב יותר את BigQuery, יוצרים שאילתה על מערך הנתונים הציבורי של GitHub. תוכלו למצוא את ההודעות הנפוצות ביותר לגבי שמירה ב-GitHub. צריך להשתמש גם בממשק המשתמש של BigQuery באינטרנט כדי להציג שאילתות אד-הוק בתצוגה מקדימה ולהריץ אותן.

כדי להציג את הנתונים, פותחים את מערך הנתונים של GitHub בממשק המשתמש של BigQuery באינטרנט:

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

כדי לקבל תצוגה מקדימה מהירה של איך הנתונים נראים, לוחצים על הכרטיסייה 'תצוגה מקדימה':

d3f0dc7400fbe678.png

יוצרים את הקובץ queryGitHub.js בתוך התיקייה BigQueryDemo:

 touch queryGitHub.js

נכנסים לקובץ queryGitHub.js ומזינים את הקוד הבא:

'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();

כדאי להקדיש דקה או שתיים כדי ללמוד את הקוד ולראות איך הטבלה מפעילה שאילתות לגבי ההודעות הנפוצות ביותר הקשורות לשמירת נתונים.

בחזרה ב-Cloud Shell, מריצים את האפליקציה:

node queryGitHub.js

אתם אמורים לראות רשימה של הודעות התחייבות והאירועים שלהן:

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. שמירה במטמון ונתונים סטטיסטיים

כשמריצים שאילתה, BigQuery שומר את התוצאות במטמון. כתוצאה מכך, שאילתות זהות לאחר מכן נמשכות פחות זמן. אפשר להשבית את השמירה במטמון באמצעות אפשרויות השאילתה. BigQuery גם עוקב אחרי נתונים סטטיסטיים מסוימים לגבי השאילתות, כמו זמן היצירה, שעת הסיום וסך הבייטים שעובדו.

בשלב הזה תשבית את השמירה במטמון ותציג נתונים סטטיסטיים לגבי השאילתות.

עוברים לקובץ queryShakespeare.js שבתוך התיקייה BigQueryDemo ומחליפים את הקוד כך:

'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();

כמה דברים שחשוב לציין לגבי הקוד. קודם כול, השמירה במטמון מושבתת על ידי הגדרה של UseQueryCache לערך false בתוך האובייקט options. לאחר מכן, ניגשתם לנתונים הסטטיסטיים לגבי השאילתה מאובייקט המשימה.

בחזרה ב-Cloud Shell, מריצים את האפליקציה:

node queryShakespeare.js

אמורה להופיע רשימה של הודעות לגבי שמירת ההודעות והאירועים שלהן. בנוסף, אתם אמורים לראות גם כמה נתונים סטטיסטיים על השאילתה:

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. טעינת נתונים לתוך BigQuery

אם אתם רוצים להריץ שאילתות על הנתונים שלכם, קודם תצטרכו לטעון את הנתונים ל-BigQuery. ב-BigQuery יש תמיכה בטעינת נתונים ממקורות רבים, כמו Google Cloud Storage, שירותי Google אחרים או מקור מקומי קריא. תוכלו אפילו לשדר את הנתונים בסטרימינג. אפשר לקרוא מידע נוסף בדף טעינת נתונים לתוך BigQuery.

בשלב הזה טוענים קובץ JSON שמאוחסן ב-Google Cloud Storage לטבלה ב-BigQuery. קובץ ה-JSON נמצא בכתובת: gs://cloud-samples-data/bigquery/us-states/us-states.json

כדי לבדוק מה תוכן קובץ ה-JSON, אפשר להשתמש בכלי שורת הפקודה gsutil כדי להוריד אותו ב-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.

אפשר לראות שהיא מכילה את רשימת המדינות בארה"ב, וכל מדינה היא אובייקט JSON בשורה נפרדת:

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

כדי לטעון את קובץ ה-JSON הזה ב-BigQuery, צריך ליצור קובץ createDataset.js וקובץ loadBigQueryJSON.js בתיקייה BigQueryDemo:

touch createDataset.js 
touch loadBigQueryJSON.js

מתקינים את ספריית הלקוח של Google Cloud Storage Node.js:

 npm install --save @google-cloud/storage

נכנסים לקובץ createDataset.js ומזינים את הקוד הבא:

'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();

אחר כך עוברים לקובץ loadBigQueryJSON.js ומזינים את הקוד הבא:

'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();

הקדישו דקה או שתיים כדי ללמוד איך הקוד טוען את קובץ ה-JSON ויוצר טבלה (עם סכימה) במערך נתונים.

בחזרה ב-Cloud Shell, מריצים את האפליקציה:

node createDataset.js
node loadBigQueryJSON.js

מערך נתונים וטבלה נוצרים ב-BigQuery:

Table my_states_table created.
Job [JOB ID] completed.

כדי לוודא שמערך הנתונים נוצר, אפשר להיכנס לממשק המשתמש של BigQuery באינטרנט. אמורים להופיע מערך נתונים חדש וטבלה. אם תעברו לכרטיסייה 'תצוגה מקדימה' של הטבלה, תוכלו לראות את הנתונים בפועל:

4fb7296ae901e8fd.png

11. מעולה!

למדתם איך להשתמש ב-BigQuery באמצעות Node.js!

הסרת המשאבים

כדי להימנע מצבירת חיובים בחשבון Google Cloud Platform על המשאבים שבהם השתמשתם במדריך למתחילים הזה:

  • עוברים אל Cloud Platform Console.
  • בוחרים את הפרויקט שרוצים להשבית ולוחצים על Delete (מחיקה). למעלה: מתזמנת את מחיקת הפרויקט.

מידע נוסף

רישיון

היצירה הזו בשימוש ברישיון Creative Commons Attribution 2.0 גנרי.