Run a query (dataset: samples, table: shakespeare, substring: raisin)

進行状況を確認

/ 10

Run a query (dataset: samples, table: shakespeare, substring: huzzah)

進行状況を確認

/ 10

Create a new dataset (name: babynames)

進行状況を確認

/ 20

Load the data into a new table

進行状況を確認

/ 20

Run queries against your dataset table

進行状況を確認

/ 20

Remove the babynames dataset

進行状況を確認

/ 20

このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。

GSP071

Google Cloud セルフペース ラボ

概要

適切なハードウェアとインフラストラクチャを用意することなく大規模なデータセットを保存してクエリを実行すると、多大な時間と費用がかかってしまう可能性があります。BigQuery は、Google のインフラストラクチャが持つ処理能力を駆使した超高速 SQL クエリの実現によりこの問題を解決する、サーバーレスでスケーラビリティの高いクラウド データ ウェアハウスです。ユーザーがデータを BigQuery に読み込んだら、後の処理は Google 側で行われます。他のユーザーにデータの表示やクエリを許可するなど、ビジネスニーズに基づいてプロジェクトとデータへのアクセスを制御できます。

BigQuery には、コンソールWeb UI、またはコマンドライン ツールでアクセスできます。コマンドライン ツールでは、Java、.NET、Python などの各種クライアント ライブラリを使用できます。BigQuery の操作には、さまざまなソリューション プロバイダを利用することもできます。

このハンズオンラボでは、Python ベースの BigQuery 用コマンドライン ツールである bq を使用して一般公開テーブルにクエリを実行し、サンプルデータを BigQuery に読み込む方法を説明します。

演習内容

  • 一般公開データセットに対してクエリを実行する
  • 新しいデータセットを作成する
  • 新しいテーブルにデータを読み込む
  • カスタム テーブルに対してクエリを実行する

設定と要件

[ラボを開始] ボタンをクリックする前に

こちらの説明をお読みください。ラボには時間制限があり、一時停止することはできません。タイマーは、Google Cloud のリソースを利用できる時間を示しており、[ラボを開始] をクリックするとスタートします。

このハンズオンラボでは、シミュレーションやデモ環境ではなく実際のクラウド環境を使って、ラボのアクティビティを行います。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。

このラボを完了するためには、下記が必要です。

  • 標準的なインターネット ブラウザ(Chrome を推奨)
注: このラボの実行には、シークレット モード(推奨)またはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウント間の競合を防ぎ、個人アカウントに追加料金が発生しないようにすることができます。
  • ラボを完了するための時間(開始後は一時停止できません)
注: このラボでは、受講者アカウントのみを使用してください。別の Google Cloud アカウントを使用すると、そのアカウントに料金が発生する可能性があります。

ラボを開始して Google Cloud コンソールにログインする方法

  1. [ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるダイアログでお支払い方法を選択してください。 右側の [ラボの設定とアクセス] パネルには、以下が表示されます。

    • [Google Cloud コンソールを開く] ボタン
    • このラボで使用する一時的な認証情報(ユーザー名とパスワード)
    • このラボを行うために必要なその他の情報(ある場合)

    ラボのタイマーはページの上部に表示され、残り時間が示されます。

  2. [Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウで開く] を選択します)。

    ラボでリソースがスピンアップし、別のタブで [ログイン] ページが表示されます。

    ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。

    注: [アカウントの選択] ダイアログが表示された場合は、[別のアカウントを使用] をクリックします。
  3. 必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。

    {{{user_0.username | "Username"}}}

    [ラボの設定とアクセス] パネルでもユーザー名を確認できます。

  4. [次へ] をクリックします。

  5. 以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。

    {{{user_0.password | "Password"}}}

    [ラボの設定とアクセス] パネルでもパスワードを確認できます。

  6. [次へ] をクリックします。

    重要: ラボで指定された認証情報を使用する必要があります。ご自身の Google Cloud アカウントの認証情報は使用しないでください。 注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。
  7. その後のページはクリックして先に進みます。

    • 利用規約に同意します。
    • 一時的なアカウントなので、復元オプションや 2 要素認証プロセスは設定しないでください。
    • 無料トライアルには登録しないでください。

しばらくすると、このタブで Google Cloud コンソールが開きます。

注: Google Cloud のプロダクトやサービスにアクセスするには、ナビゲーション メニューをクリックするか、[検索] フィールドにサービス名またはプロダクト名を入力します。 ナビゲーション メニューのアイコンと検索フィールド

Cloud Shell をアクティブにする

Cloud Shell は、開発ツールと一緒に読み込まれる仮想マシンです。5 GB の永続ホーム ディレクトリが用意されており、Google Cloud で稼働します。Cloud Shell を使用すると、コマンドラインで Google Cloud リソースにアクセスできます。

  1. Google Cloud コンソールの上部にある「Cloud Shell をアクティブにする」アイコン 「Cloud Shell をアクティブにする」アイコン をクリックします。

  2. ウィンドウで次の操作を行います。

    • Cloud Shell 情報ウィンドウで操作を進めます。
    • Cloud Shell が認証情報を使用して Google Cloud API を呼び出すことを承認します。

接続した時点で認証が完了しており、プロジェクトに各自の Project_ID が設定されます。出力には、このセッションの PROJECT_ID を宣言する次の行が含まれています。

Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}

gcloud は Google Cloud のコマンドライン ツールです。このツールは、Cloud Shell にプリインストールされており、タブ補完がサポートされています。

  1. (省略可)次のコマンドを使用すると、有効なアカウント名を一覧表示できます。
gcloud auth list
  1. [承認] をクリックします。

出力:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (省略可)次のコマンドを使用すると、プロジェクト ID を一覧表示できます。
gcloud config list project

出力:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} 注: Google Cloud における gcloud ドキュメントの全文については、gcloud CLI の概要ガイドをご覧ください。

タスク 1. テーブルを確認する

BigQuery には、クエリを実行できるサンプル テーブルがいくつかあります。このラボでクエリを実行する Shakespeare テーブルには、シェイクスピアの全戯曲のすべての単語のエントリが含まれます。

サンプル データセットの Shakespeare テーブルのスキーマを調べるには、次のコマンドを実行します。

bq show bigquery-public-data:samples.shakespeare

このコマンドでは、次の操作を行っています。

  • bq で BigQuery コマンドライン ツールを起動
  • show を実行されるアクションとして指定
  • 表示したい BigQuery 内の project:public dataset.table の名称を一覧として記載

出力:

Last modified Schema Total Rows Total Bytes Expiration Time Partitioning Clustered Fields Labels ----------------- ------------------------------------ ------------ ------------- ------------ ------------------- ------------------ -------- 14 Mar 13:16:45 |- word: string (required) 164656 6432064 |- word_count: integer (required) |- corpus: string (required) |- corpus_date: integer (required)

タスク 2. help コマンドを実行する

help コマンドにコマンド名を指定すると、そのコマンドに関する情報が得られます。

  1. たとえば、次の bq help の呼び出しでは、query コマンドについての情報が表示されます。
bq help query
  1. bq で使用される全コマンドの一覧を表示するには、bq help だけを実行します。

タスク 3. クエリを実行する

クエリを実行し、シェイクスピアの作品に「raisin」という部分文字列が出現する回数を調べます。

  1. クエリを実行するには、コマンド bq query "[SQL_STATEMENT]" を実行します。
  • [SQL_STATEMENT] 内で引用符を使用する場合は \ 記号でエスケープします。

  • または、全体を囲んでいる記号とは異なる種類の引用符を使用します(例: 全体を囲んでいる「'」に対して「"」を使用)。

  1. Cloud Shell で以下の標準 SQL クエリを実行して、シェイクスピアの全作品に「raisin」という部分文字列が出現する回数を調べます。
bq query --use_legacy_sql=false \ 'SELECT word, SUM(word_count) AS count FROM `bigquery-public-data`.samples.shakespeare WHERE word LIKE "%raisin%" GROUP BY word'

コマンドの内容:

  • --use_legacy_sql=false は、標準 SQL をデフォルトのクエリ構文に設定します。

出力:

Waiting on job_e19 ... (0s) Current status: DONE +---------------+-------+ | word | count | +---------------+-------+ | praising | 8 | | Praising | 4 | | raising | 5 | | dispraising | 2 | | dispraisingly | 1 | | raisins | 1 |

このテーブルは、「raisin」という単語そのものは出現していないものの、いくつかのシェイクスピアの作品にこの文字の並びが出現することを示しています。

完了したタスクをテストする

[進行状況を確認] をクリックして、実行したタスクを確認します。一般公開データセットに対するクエリが正常に実行された場合、評価スコアが表示されます。

クエリを実行する(データセット: samples、テーブル: shakespeare、部分文字列: raisin)

シェイクスピアの作品に出現しない単語を検索すると、結果は返されません。

  • 次のように「huzzah」を検索しても、一致するものは返りません。
bq query --use_legacy_sql=false \ 'SELECT word FROM `bigquery-public-data`.samples.shakespeare WHERE word = "huzzah"'

完了したタスクをテストする

[進行状況を確認] をクリックして、実行したタスクを確認します。一般公開データセットに対するクエリが正常に実行された場合、評価スコアが表示されます。

クエリを実行する(データセット: samples、テーブル: shakespeare、部分文字列: huzzah)

タスク 4. 新しいテーブルを作成する

次に、新しいテーブルを作成します。すべてのテーブルはデータセットに格納されます。データセットは、テーブルやビューなどのリソースをまとめたグループです。

新しいデータセットを作成する

  1. bq ls コマンドを使用して、プロジェクト内の既存のデータセットを一覧表示します。
bq ls

デフォルトのプロジェクト内にはまだデータセットがないため、自動的にコマンドラインに戻ります。

  1. bq lsbigquery-public-data コマンドに続いてプロジェクト ID、コロン(:)を追加して実行します。該当するプロジェクトに存在するデータセットが一覧表示されます。
bq ls bigquery-public-data:

出力:

datasetId ----------------------------- austin_311 austin_bikeshare austin_crime austin_incidents austin_waste baseball bitcoin_blockchain bls census_bureau_construction census_bureau_international census_bureau_usa census_utility chicago_crime ...

今度は、データセットを作成します。データセット名は最大 1,024 文字で、A~Z、a~z、0~9、アンダースコアで構成できます。ただし、先頭に数字またはアンダースコアを使用したり、スペースを含めたりすることはできません。

  1. プロジェクトに babynames という名前の新しいデータセットを作成するには、次のように bq mk コマンドを使用します。
bq mk babynames

出力例:

Dataset 'qwiklabs-gcp-ba3466847fe3cec0:babynames' successfully created.

完了したタスクをテストする

[進行状況を確認] をクリックして、実行したタスクを確認します。babynames という名前の BigQuery データベースが正常に作成された場合は、評価スコアが表示されます。

新規データセット(名称: babynames)を作成する
  • 次のように bq ls を実行して、データセットがプロジェクトの一部として表示されることを確認します。
bq ls

出力例:

datasetId ------------- babynames

データセットをアップロードする

テーブルを作成するには、その前にデータセットをプロジェクトに追加しておく必要があります。ここで使用するカスタムデータ ファイルには、米国社会保障局から提供された、人気のある赤ちゃんの名前に関する約 7 MB のデータが含まれています。

  1. このコマンドを実行し、データファイルの URL を使用して、赤ちゃんの名前の zip ファイルをプロジェクトに追加します。
wget http://www.ssa.gov/OACT/babynames/names.zip
  1. ファイルの一覧を表示します。
ls

プロジェクトに追加されたファイルの名前を確認できます。

  1. ファイルを展開します。
unzip names.zip
  1. 多数のテキスト ファイルが含まれています。再びファイルの一覧を表示します。
ls

bq load コマンドは、テーブルの作成または更新とデータの読み込みを 1 回のステップで実行します。

bq load コマンドを使用して、今作成した babynames データセット内の names2010 という名前の新しいテーブルにソースファイルを読み込みます。デフォルトでは、これは同期的に実行され、完了するまでに数秒かかります。

実行する bq load コマンドの引数は以下のとおりです。

datasetID: babynames tableID: names2010 source: yob2010.txt schema: name:string,gender:string,count:integer
  1. テーブルを作成します。
bq load babynames.names2010 yob2010.txt name:string,gender:string,count:integer

出力例:

Waiting on job_4f0c0878f6184119abfdae05f5194e65 ... (35s) Current status: DONE

完了したタスクをテストする

[進行状況を確認] をクリックして、実行したタスクを確認します。データセット テーブルへのデータの読み込みが正常に完了すると、評価スコアが表示されます。

新しいテーブルにデータを読み込む
  1. 次のように bq lsbabynames を組み合わせて実行し、テーブルがデータセットに表示されることを確認します。
bq ls babynames

出力:

tableId Type ----------- ------- names2010 TABLE
  1. bq showdataset.table を組み合わせて実行し、スキーマを表示します。
bq show babynames.names2010

出力:

Last modified Schema Total Rows Total Bytes Expiration Time Partitioning Clustered Fields Labels ----------------- ------------------- ------------ ------------- ----------------- ------------------- ------------------ -------- 13 Aug 14:37:34 |- name: string 34073 654482 12 Oct 14:37:34 |- gender: string |- count: integer 注: デフォルトでは、BigQuery にデータを読み込む際には UTF-8 エンコード データを使用することが想定されています。ISO-8859-1(または Latin-1)でエンコードされたデータがあり、読み込んだデータに問題がある場合は、-E フラグを使用して、Latin-1 としてデータを処理するように BigQuery に対して明示的に指定できます。文字エンコードの詳細については、データの読み込みの概要をご覧ください。

タスク 5. クエリを実行する

ここまでで、データに対してクエリを実行し、興味深い結果を得るための準備が整いました。

  1. 次のコマンドを実行すると、人気がある女の子の名前上位 5 つが返されます。
bq query "SELECT name,count FROM babynames.names2010 WHERE gender = 'F' ORDER BY count DESC LIMIT 5"

出力:

Waiting on job_58c0f5ca52764ef1902eba611b71c651 ... (0s) Current status: DONE +----------+-------+ | name | count | +----------+-------+ | Isabella | 22913 | | Sophia | 20643 | | Emma | 17345 | | Olivia | 17028 | | Ava | 15433 | +----------+-------+
  1. 次のコマンドを実行すると、男の子の名前で少数派の上位 5 つが返されます。
bq query "SELECT name,count FROM babynames.names2010 WHERE gender = 'M' ORDER BY count ASC LIMIT 5" 注: ソースデータでは出現数が 5 未満の名前が除外されているので、最小数は 5 になります。

出力:

Waiting on job_556ba2e5aad340a7b2818c3e3280b7a3 ... (1s) Current status: DONE +----------+-------+ | name | count | +----------+-------+ | Aaqib | 5 | | Aaidan | 5 | | Aadhavan | 5 | | Aarian | 5 | | Aamarion | 5 | +----------+-------+

完了したタスクをテストする

[進行状況を確認] をクリックして、実行したタスクを確認します。カスタム データセットに対するクエリが正常に実行された場合は、評価スコアが表示されます。

データセット テーブルに対してクエリを実行する

タスク 6. 理解度を確認する

今回のラボで学習した内容の理解を深めていただくために、以下の多肢選択式問題を用意しました。正解を目指して頑張ってください。

タスク 7. クリーンアップ

  1. 次のように -r フラグ付きで bq rm コマンドを実行して babynames データセットを削除することで、同データセット内の全テーブルを削除します。
bq rm -r babynames
  1. y」と入力して、削除コマンドを確認します。

完了したタスクをテストする

[進行状況を確認] をクリックして、実行したタスクを確認します。babynames データセットの削除が正常に完了した場合は、評価スコアが表示されます。

babynames データセットを削除する

お疲れさまでした

コマンドラインを使用して一般公開テーブルに対してクエリを実行し、サンプルデータを BigQuery に読み込めるようになりました。

次のステップと詳細情報

このラボは、Google Cloud の多くの機能を体験できる「Qwik Start」と呼ばれるラボシリーズの一部でもあります。ラボカタログで「Qwik Start」を検索し、興味のあるラボを探してみてください。

Google Cloud トレーニングと認定資格

Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。

マニュアルの最終更新日: 2025 年 5 月 2 日

ラボの最終テスト日: 2025 年 5 月 2 日

Copyright 2026 Google LLC. All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。

始める前に

  1. ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
  2. ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
  3. 画面左上の [ラボを開始] をクリックして開始します

シークレット ブラウジングを使用する

  1. ラボで使用するユーザー名パスワードをコピーします
  2. プライベート モードで [コンソールを開く] をクリックします

コンソールにログインする

    ラボの認証情報を使用して
  1. ログインします。他の認証情報を使用すると、エラーが発生したり、料金が発生したりする可能性があります。
  2. 利用規約に同意し、再設定用のリソースページをスキップします
  3. ラボを終了する場合や最初からやり直す場合を除き、[ラボを終了] はクリックしないでください。クリックすると、作業内容がクリアされ、プロジェクトが削除されます

このコンテンツは現在ご利用いただけません

利用可能になりましたら、メールでお知らせいたします

ありがとうございます。

利用可能になりましたら、メールでご連絡いたします

1 回に 1 つのラボ

既存のラボをすべて終了して、このラボを開始することを確認してください

シークレット ブラウジングを使用してラボを実行する

このラボを実行するには、シークレット モードまたはシークレット ブラウジング ウィンドウを使用することをおすすめします。これにより、個人アカウントと受講者アカウントの競合を防ぎ、個人アカウントに追加料金が発生することを防ぎます。

ラボを開始するには、この簡単な手順を完了してください。