arrow_back

GCP の基礎: BigQuery を使ってみる

ログイン 参加
知識をテストして、コミュニティで共有しましょう
done
700 を超えるハンズオンラボ、スキルバッジ、コースへのアクセス

GCP の基礎: BigQuery を使ってみる

ラボ 30分 universal_currency_alt クレジット: 5 show_chart 入門
info このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。
知識をテストして、コミュニティで共有しましょう
done
700 を超えるハンズオンラボ、スキルバッジ、コースへのアクセス

概要

このラボでは、ウェブサーバーのログを BigQuery テーブルに読み込みます。データを読み込んだ後、BigQuery ウェブユーザー インターフェースと BigQuery CLI を使用して、そのデータに対するクエリを実行します。

BigQuery は、ペタバイト規模のデータベースをインタラクティブに分析する場合に役立ち、大規模なデータセットをほぼリアルタイムで分析することができます。また、一般的な SQL 2011 のクエリ言語と関数が提供されます。

BigQuery に保存されたデータは耐久性に優れています。Google では、デフォルトでデータを無料でレプリカとして保存します。BigQuery では、使用したリソースに対してのみ支払いが発生します。BigQuery のデータ ストレージは低価格です。クエリの料金は、処理するデータ量に基づいて発生します。クエリを送信した場合は、そのクエリの期間中のみコンピューティング ノードの料金が発生します。コンピューティング クラスタの稼働 / 維持費は無料です。

BigQuery を使用すると、プロジェクト(このコースの別の場所で扱います)、データセット、テーブル、ジョブなど、Google Cloud Platform のさまざまなリソースとのやり取りが発生します。このラボではこれらのリソースの一部を紹介し、BigQuery とのやり取りにおけるそれぞれの役割の概要を簡単に説明します。

データセット: 0 個以上のテーブルを保持しているグループ化メカニズムです。データセットは、アクセス制御の最も低いレベルの単位です。データセットは GCP プロジェクトが所有します。各データセットは個々のユーザーと共有できます。

テーブル: テーブルは、実際のデータを含む行と列の構造です。各テーブルには、厳密に型指定された値の列を記述するスキーマがあります。各テーブルは 1 つのデータセットに属します。

目標

このラボでは、次のタスクの実行方法について学びます。

  • Cloud Storage から BigQuery にデータを読み込む。

  • BigQuery でデータのクエリを実行する。

タスク 1: Google Cloud Platform(GCP)Console にログインする

各ラボでは、新しい Google Cloud プロジェクトとリソースセットを一定時間無料で利用できます。

  1. Qwiklabs にシークレット ウィンドウでログインします。

  2. ラボのアクセス時間(例: 1:15:00)に注意し、時間内に完了できるようにしてください。
    一時停止機能はありません。必要な場合はやり直せますが、最初からになります。

  3. 準備ができたら、[ラボを開始] をクリックします。

  4. ラボの認証情報(ユーザー名パスワード)をメモしておきます。この情報は、Google Cloud Console にログインする際に使用します。

  5. [Google Console を開く] をクリックします。

  6. [別のアカウントを使用] をクリックし、このラボの認証情報をコピーしてプロンプトに貼り付けます。
    他の認証情報を使用すると、エラーが発生したり、料金の請求が発生したりします。

  7. 利用規約に同意し、再設定用のリソースページをスキップします。

割り当てられたリージョンが米国とヨーロッパのどちらに近いかをメモしておきます。

タスク 2: Cloud Storage から BigQuery にデータを読み込む

  1. Cloud Platform Console のナビゲーション メニューナビゲーション メニュー)で [BigQuery] をクリックし、[完了] をクリックします。

  2. [エクスプローラ] セクションのプロジェクト ID の横にある [アクションを表示] アイコンをクリックして、プロジェクト内に新しいデータセットを作成します。次に、[データセットを作成] を選択します。

  3. [データセットを作成] ダイアログで、[データセット ID] に「logdata」と入力します。

  4. [データのロケーション] で、[us (米国の複数のリージョン)] を選択します。[データセットを作成する] をクリックします。

  5. logdata に新しいテーブルを作成し、CSV ファイルのデータを保存します。

  6. プロジェクト ID を展開し、logdata データセットの横にある [アクションを表示] アイコンをクリックします。次に、[開く] を選択します。

  7. [テーブルを作成] をクリックします。[テーブルの作成] ページの [ソース] で、次の操作を行います。

  • [テーブルの作成元] で [Google Cloud Storage] を選択し、隣の欄に「cloud-training/gcpfci/access_log.csv」と入力します。
  • [ファイル形式] が [CSV] に設定されていることを確認します。
注: 以前にテーブルを作成している場合は、[以前のジョブから作成] オプションを選択すると、以前の設定を使用して同じようなテーブルをすばやく作成できます。
  1. [送信先] で次の操作を行います。

  • [データセット名] では、[logdata] を選択します。

  • [テーブル名] には「accesslog」と入力します。

  • [テーブルタイプ] では [ネイティブ テーブル] が選択されています。

  1. [スキーマ] の [自動検出] のチェックボックスをオンにします。

  2. 残りの設定はデフォルト値をそのまま使用して、[テーブルを作成] をクリックします。

    BigQuery は、テーブルを作成してデータをテーブルにアップロードするための読み込みジョブを作成します(これには数秒かかる場合があります)。

  3. (オプション)ジョブの処理状況を追跡するには、[ジョブ履歴] をクリックします。

  4. 読み込みが完了したら、logdata > accesslog をクリックします。

  5. テーブルの詳細ページで、[詳細] をクリックしてテーブルのプロパティを表示し、[プレビュー] をクリックしてテーブルのデータを表示します。

    このテーブルの各行には、ウェブサーバーでのヒットが記録されます。最初のフィールドの string_field_0 は、クライアントの IP アドレスです。4 番目から 9 番目のフィールドには、ヒットが発生した日、月、年、時、分、秒が記録されます。このアクティビティでは、このウェブサーバーの負荷の日次パターンについて学習します。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 Cloud Storage から BigQuery にデータを読み込む

タスク 3: BigQuery ウェブ UI を使用してデータのクエリを実行する

ラボのこのセクションでは、BigQuery ウェブ UI を使用して、先ほど作成した accesslog テーブルのクエリを実行します。

  1. [クエリエディタ] ウィンドウで、以下のクエリを入力します(またはコピーして貼り付けます)。

  2. BigQuery に、データを読み込むときにスキーマを自動的に検出するように指示したため、各ウェブヒットが到着した時間帯は int_field_6 というフィールドに記録されます。

    select int64_field_6 as hour, count(*) as hitcount from logdata.accesslog
    group by hour
    order by hour
    

    クエリ検証ツールにより、クエリ構文が有効であること(緑色のチェックマークで示されます)とクエリが処理するデータ量が示されます。処理されるデータ量がわかると、Cloud Platform 料金計算ツールを使用してクエリにかかる料金を判断できます。

  3. [実行] をクリックして結果を確認します。ウェブサイトが最も混雑する時間帯と最も混雑しない時間帯はいつでしょうか。

タスク 4: bq コマンドを使用してデータのクエリを実行する

ラボのこのセクションでは、Cloud Shell で bq コマンドを使用して、先ほど作成した accesslog テーブルのクエリを実行します。

  1. Google Cloud Platform Console で、「Cloud Shell をアクティブにする」(Cloud Shell をアクティブにする)、[続行] の順にクリックします。

  2. Cloud Shell プロンプトで、次のコマンドを入力します。

    bq query "select string_field_10 as request, count(*) as requestcount from logdata.accesslog group by request order by requestcount desc"
    

    初めて bq コマンドを使用するときは、Google Cloud Platform の認証情報がキャッシュに保存され、デフォルトのプロジェクトを選択するように求められます。この場合、Qwiklabs によって割り当てられたプロジェクトを選択します。その名前は qwiklabs-gcp- の後に 16 進数が付加されたものになります。

    bq コマンドは、そのコマンドラインでリクエストされた操作を実行します。このウェブサーバーによって提供された URL で最も一般的なものと最も一般的でないものはどれですか?

お疲れさまでした

このラボでは、Cloud Storage に保存されているデータを Google BigQuery でホストされているテーブルに読み込みました。その後、パターンを検出するためにデータのクエリを実行しました。

ラボを終了する

ラボが完了したら、[ラボを終了] をクリックします。ラボで使用したリソースが Google Cloud Skills Boost から削除され、アカウントの情報も消去されます。

ラボの評価を求めるダイアログが表示されたら、星の数を選択してコメントを入力し、[送信] をクリックします。

星の数は、それぞれ次の評価を表します。

  • 星 1 つ = 非常に不満
  • 星 2 つ = 不満
  • 星 3 つ = どちらともいえない
  • 星 4 つ = 満足
  • 星 5 つ = 非常に満足

フィードバックを送信しない場合は、ダイアログ ボックスを閉じてください。

フィードバックやご提案の送信、修正が必要な箇所をご報告いただく際は、[サポート] タブをご利用ください。

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

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

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

ありがとうございます。

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