arrow_back

BigQuery と Cloud Logging を利用した BigQuery の使用状況の分析

参加 ログイン
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

BigQuery と Cloud Logging を利用した BigQuery の使用状況の分析

Lab 45分 universal_currency_alt クレジット: 1 show_chart 入門
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP617

Google Cloud セルフペース ラボ

概要

BigQuery などのさまざまな Google Cloud サービスからログの中央リポジトリとして機能する Cloud Logging は、短期から中期のログストレージに最適です。多くの業界では、ログを長期間保存する必要があります。長期的な履歴分析や複雑な監査のためにログを保存する場合は、シンクを設定して特定のログを BigQuery にエクスポートできます。

このラボでは、Cloud Logging 内で BigQuery ログを表示し、シンクを設定してログを BigQuery にエクスポートし、SQL を使用してログを分析します。

設定と要件

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

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

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

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

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

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

  1. [ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるポップアップでお支払い方法を選択してください。 左側の [ラボの詳細] パネルには、以下が表示されます。

    • [Google コンソールを開く] ボタン
    • 残り時間
    • このラボで使用する必要がある一時的な認証情報
    • このラボを行うために必要なその他の情報(ある場合)
  2. [Google コンソールを開く] をクリックします。 ラボでリソースが起動し、別のタブで [ログイン] ページが表示されます。

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

    注: [アカウントの選択] ダイアログが表示されたら、[別のアカウントを使用] をクリックします。
  3. 必要に応じて、[ラボの詳細] パネルから [ユーザー名] をコピーして [ログイン] ダイアログに貼り付けます。[次へ] をクリックします。

  4. [ラボの詳細] パネルから [パスワード] をコピーして [ようこそ] ダイアログに貼り付けます。[次へ] をクリックします。

    重要: 認証情報は左側のパネルに表示されたものを使用してください。Google Cloud Skills Boost の認証情報は使用しないでください。 注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。
  5. その後次のように進みます。

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

その後このタブで Cloud Console が開きます。

注: 左上にある [ナビゲーション メニュー] をクリックすると、Google Cloud のプロダクトやサービスのリストが含まれるメニューが表示されます。 ナビゲーション メニュー アイコン

Cloud Shell をアクティブにする

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

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

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

Your Cloud Platform project in this session is set to YOUR_PROJECT_ID

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

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

  2. 出力は次のようになります。

出力:

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

出力:

[core] project = <project_ID>

出力例:

[core] project = qwiklabs-gcp-44776a13dea667a6 注: Google Cloud における gcloud ドキュメントの全文については、gcloud CLI の概要ガイドをご覧ください。

タスク 1. BigQuery を開く

BigQuery コンソールを開く

  1. Google Cloud コンソールで、ナビゲーション メニュー > [BigQuery] を選択します。

[Cloud コンソールの BigQuery へようこそ] メッセージ ボックスが開きます。このメッセージ ボックスには、クイックスタート ガイドとリリースノートへのリンクが表示されます。

  1. [完了] をクリックします。

BigQuery コンソールが開きます。

タスク 2. データセットを作成する

  1. [エクスプローラ] セクションで、「qwiklabs-gcp-」で始まるプロジェクトの横にあるその他アイコンをクリックします。

  2. [データセットを作成] をクリックします。

  3. [データセット ID] に「bq_logs」と入力します。

  4. [データセットを作成] をクリックします。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 データセットを作成する

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

まず、ログを生成する簡単なクエリを実行します。このログは、後で BigQuery へのログのエクスポートを設定を行う際に使用します。

  1. 次のクエリをコピーして、BigQuery クエリエディタに貼り付けます。
SELECT current_date
  1. [実行] をクリックします。

タスク 4. Cloud Logging からのログのエクスポートを設定する

  1. Cloud コンソールで、ナビゲーション メニュー > [ロギング] > [ログ エクスプローラ] を選択します。
注: 保存されていない作業に関するプロンプトが表示されたら [終了] をクリックします。
  1. [リソース] で [BigQuery] を選択し、[適用] をクリックします。

  2. 次に、右上にある [クエリを実行] ボタンをクリックします。

クエリからいくつかのログエントリが表示されます。

「jobcompleted」という文字列を含むエントリを見つけます。

BigQuery ログ

  1. 左側の矢印をクリックしてエントリを展開します。

展開されたログと、エントリの左側のハイライト表示された矢印

次に、右側にある [ネストされたフィールドを開く] ボタンをクリックします。

これで、JSON のログエントリ全体が表示されます。下方向にスクロールして、各フィールドを確認します。

  1. 上方向にスクロールしてエントリのヘッダーに戻り、[jobcompleted] をクリックして [一致エントリを表示] を選択します。

jobcompleted のログ

これで、正しい用語での検索が設定されます。必要に応じて [クエリを表示] ボタンをクリックして、表示を切り替えてください。

クエリビルダー

シンクの作成

必要なログが準備できたので、シンクを設定します。

  1. [その他の操作] プルダウンから [シンクの作成] をクリックします。

ハイライト表示された [シンクの作成] オプション

  1. 各フィールドを次のように指定します。
  • シンク名: 「JobComplete」と指定して [次へ] をクリックします。
  • シンクサービスの選択: BigQuery データセット
  • Select Bigquery dataset (Destination): bq_logs(前述の手順で設定したデータセット)
  • その他の項目はデフォルト設定のままにします。
  1. [シンクを作成] をクリックします。

BigQuery からの後続のログエントリがすべて bq_logs データセットのテーブルにエクスポートされるようになります。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 シンクを作成する

タスク 5. サンプルクエリを実行する

新しいテーブルにログを追加するために、サンプルクエリを実行してみましょう。

  • Cloud Shell に移動して、以下に示す BigQuery の各コマンドを Cloud Shell に追加します。
bq query --location=us --use_legacy_sql=false --use_cache=false \ 'SELECT fullName, AVG(CL.numberOfYears) avgyears FROM `qwiklabs-resources.qlbqsamples.persons_living`, UNNEST(citiesLived) as CL GROUP BY fullname' bq query --location=us --use_legacy_sql=false --use_cache=false \ 'select month, avg(mean_temp) as avgtemp from `qwiklabs-resources.qlweather_geo.gsod` where station_number = 947680 and year = 2010 group by month order by month' bq query --location=us --use_legacy_sql=false --use_cache=false \ 'select CONCAT(departure_airport, "-", arrival_airport) as route, count(*) as numberflights from `bigquery-samples.airline_ontime_data.airline_id_codes` ac, `qwiklabs-resources.qlairline_ontime_data.flights` fl where ac.code = fl.airline_code and regexp_contains(ac.airline , r"Alaska") group by 1 order by 2 desc LIMIT 10'

各クエリの結果が返されます。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 サンプルクエリを実行する

タスク 6. BigQuery でログを表示する

  1. BigQuery に戻ります(ナビゲーション メニュー > [BigQuery])。

  2. 名前が「qwiklabs-gcp-」で始まるリソースを展開し、データセット「bq_logs」を展開します。

「cloudaudit_googleapis_com_data_access」というテーブルがあります(名前は異なる可能性があります)。

注: テーブルを表示するために、サンプルクエリを再度実行しなければならない場合があります。
  1. テーブル名をクリックし、テーブルのスキーマをチェックして、大量のフィールドがあることを確認します。

[プレビュー] をクリックしたときに、最近実行したクエリのログが表示されないことがあります。ログはテーブルにストリームされており、新しいデータに対してクエリを実行できますが、[プレビュー] にしばらくの間表示されないことがあります。

テーブルをより使いやすくするには、ビューを作成します。ビューには一部のフィールドが抽出され、クエリ時間の指標の計算も行われます。

  1. [クエリを新規作成] をクリックします。BigQuery のクエリエディタで、プロジェクト名を に置き換えてから以下の SQL を実行します(プロジェクト ID は、ラボページの左側の [ラボの詳細] パネルから簡単にコピーできます)。
CREATE OR REPLACE VIEW bq_logs.v_querylogs AS SELECT resource.labels.project_id, protopayload_auditlog.authenticationInfo.principalEmail, protopayload_auditlog.servicedata_v1_bigquery.jobCompletedEvent.job.jobConfiguration.query.query, protopayload_auditlog.servicedata_v1_bigquery.jobCompletedEvent.job.jobConfiguration.query.statementType, protopayload_auditlog.servicedata_v1_bigquery.jobCompletedEvent.job.jobStatus.error.message, protopayload_auditlog.servicedata_v1_bigquery.jobCompletedEvent.job.jobStatistics.startTime, protopayload_auditlog.servicedata_v1_bigquery.jobCompletedEvent.job.jobStatistics.endTime, TIMESTAMP_DIFF(protopayload_auditlog.servicedata_v1_bigquery.jobCompletedEvent.job.jobStatistics.endTime, protopayload_auditlog.servicedata_v1_bigquery.jobCompletedEvent.job.jobStatistics.startTime, MILLISECOND)/1000 AS run_seconds, protopayload_auditlog.servicedata_v1_bigquery.jobCompletedEvent.job.jobStatistics.totalProcessedBytes, protopayload_auditlog.servicedata_v1_bigquery.jobCompletedEvent.job.jobStatistics.totalSlotMs, ARRAY(SELECT as STRUCT datasetid, tableId FROM UNNEST(protopayload_auditlog.servicedata_v1_bigquery.jobCompletedEvent.job.jobStatistics.referencedTables)) as tables_ref, protopayload_auditlog.servicedata_v1_bigquery.jobCompletedEvent.job.jobStatistics.totalTablesProcessed, protopayload_auditlog.servicedata_v1_bigquery.jobCompletedEvent.job.jobStatistics.queryOutputRowCount, severity FROM `<YOUR-PROJECT-ID>.bq_logs.cloudaudit_googleapis_com_data_access_*` ORDER BY startTime

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 BigQuery でログを表示する

  1. ビューに対してクエリを実行します。新しいクエリを作成して、以下のコマンドを実行します。
SELECT * FROM bq_logs.v_querylogs
  1. 実行したクエリの結果を、スクロールして確認します。

お疲れさまでした

BigQuery ログを Cloud Logging から BigQuery テーブルに正常にエクスポートし、SQL で分析しました。

次のステップと詳細情報

  • Cloud Logging のドキュメントをお読みください。
  • BigQuery のドキュメントをお読みください。

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

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

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

ラボの最終テスト日: 2023 年 9 月 27 日

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