700 以上のラボとコースにアクセス

BigQuery に新しいデータセットを取り込む v1.5

ラボ 1時間 30分 universal_currency_alt クレジット: 5 show_chart 入門
info このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。
700 以上のラボとコースにアクセス

概要

BigQuery は、Google が低価格で提供する NoOps のフルマネージド分析データベースです。BigQuery では、インフラストラクチャを所有して管理したりデータベース管理者を置いたりすることなく、テラバイト単位の大規模なデータでクエリを実行できます。また、SQL が採用されており、従量課金制というメリットがあります。このような特徴を活かし、有用な情報を得るためのデータ分析に専念できます。

ここでは、ecommerce データセットを使用します。このデータセットには、Google Merchandise Store に関する数百万件の Google アナリティクス レコードが含まれており、BigQuery に読み込まれています。このデータセットのコピーを使用して、フィールドや行からどのような分析情報が得られるのかを確認します。

このラボでは、数種類のデータセットを BigQuery 内のテーブルに取り込みます。

設定と要件

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

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

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

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

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

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

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

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

BigQuery コンソールを開く

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

[Cloud Console の BigQuery へようこそ] メッセージ ボックスが開きます。このメッセージ ボックスにはクイックスタート ガイドへのリンクと、UI の更新情報が表示されます。

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

タスク 1. テーブルを格納するための新しいデータセットを作成する

  1. BigQuery コンソールでプロジェクトの横にあるその他アイコン(縦に 3 つ並んだ点)をクリックし、[データセットを作成] をクリックします。

UI でハイライト表示された [データセットを作成] オプション

  1. [データセット ID] に「ecommerce」と入力します。他のフィールドはデフォルト値のままにします。

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

プロジェクト名の下に ecommerce データセットが表示されます。

タスク 2. CSV から新しいデータセットを取り込む

シナリオ: あなたはマーケティング チームから、プロモーションの対象にする商品を在庫ストックレベルに基づいて決定できるようにして欲しいと頼まれました。商品レビューに基づいて、各商品の顧客感情の傾向を把握できるようにする必要もあります。

既存の e コマース トランザクション データセットには在庫ストックレベルや商品レビューのデータは含まれていませんが、運用チームとマーケティング チームから分析用に新しいデータセットが提供されています。

次のように作業を開始します。

  1. 商品のストックレベルのデータセットをローカルのコンピュータにダウンロードします。

  2. ecommerce データセットを選択し、[テーブルを作成] をクリックします。

ハイライト表示された [テーブルを作成] ボタンと ecommerce データセット

  1. 以下のテーブル オプションを指定します。

ソース:

  • テーブルの作成元: アップロード
  • ファイルを選択: 先ほどローカルにダウンロードしたファイルを選択
  • ファイル形式: CSV

送信先:

  • テーブル名: products

  • 他の設定はデフォルト値のままにします。

スキーマ:

  • スキーマと入力パラメータの [自動検出] をオンにする

ヒント: このチェックボックスが表示されない場合は、ファイル形式が Avro ではなく CSV になっていることを確認してください。

  • パーティションとクラスタの設定: デフォルト設定のまま

詳細オプション:

  • デフォルト設定のまま
  1. [テーブルを作成] をクリックします。

ecommerce データセットの下に products テーブルが表示されます。

  1. products テーブルを選択し、[詳細] をクリックします。

products テーブルの [詳細] タブ

  1. [プレビュー] を選択して、すべての列が読み込まれていることを確認します(以下はその一部を取り出したものです)。

SKU

name

orderedQuantity

stockLevel

restockingLeadTime

GGOEGDHQ014899

20 oz Stainless Steel Insulated Tumbler

499

652

2

GGOEGOAB022499

Satin Black Ballpoint Pen

403

477

2

GGOEYHPB072210

Twill Cap

1429

1997

2

GGOEGEVB071799

Pocket Bluetooth Speaker

214

246

2

CSV ファイルを新しい BigQuery テーブルに読み込むことができました。

新たに読み込んだデータを SQL で探索する

次に、基本的なクエリを使用して新しい products テーブルから分析情報を得る方法を実践します。

  • stockLevel の値が高い商品の上位 5 つを表示するクエリをクエリエディタに記述します。
#standardSQL SELECT * FROM ecommerce.products ORDER BY stockLevel DESC LIMIT 5

タスク 3. Google Cloud Storage からデータを取り込む

  1. ecommerce データセットを選択し、[テーブルを作成] をクリックします。

  2. 以下のテーブル オプションを指定します。

ソース:

  • テーブルの作成元: Google Cloud Storage
  • GCS バケットからファイルを選択: cloud-training/data-insights-course/exports/products.csv
  • ファイル形式: CSV

送信先:

  • テーブル名: products

  • その他の設定はすべてデフォルトのままにします。

スキーマ:

  • スキーマと入力パラメータの [自動検出] をオンにする

詳細オプション:

  • デフォルト設定のまま
  1. [テーブルを作成] をクリックします。

これがうまくいかない場合

  1. [閉じる] をクリックしてメッセージを閉じ、[テーブルの作成] ダイアログで [キャンセル] をクリックします。

  2. 左側のメニューで [プロジェクト履歴] をクリックし、先ほどのエラー メッセージを選択します。

エラー メッセージがハイライト表示された [プロジェクト履歴] タブ

  1. [読み込みジョブを繰り返す] ボタンをクリックします。

  2. [テーブルの作成] フォームで [詳細オプション] をクリックし、[書き込み設定] のプルダウン メニューで [テーブルを上書きする] を選択します。

  3. 次に、[テーブルを作成] をクリックします。

  4. テーブルが正常に作成されたことを確認します。

タスク 4. Google スプレッドシートから新しいデータセットを取り込む

  1. [クエリを新規作成] を選択します。

  2. 次のクエリを実行します。在庫回転率と補充に要する時間に基づいて、最初に補充すべき商品が示されます。

#standardSQL SELECT *, SAFE_DIVIDE(orderedQuantity,stockLevel) AS ratio FROM ecommerce.products WHERE # 注文された商品のうち # 在庫の 80% が消費された商品を含める orderedQuantity > 0 AND SAFE_DIVIDE(orderedQuantity,stockLevel) >= .8 ORDER BY restockingLeadTime DESC 注: プロジェクト名の相対パスを指定すると(project_id.ecommerce.products の代わりに ecommerce.products と指定するなど)、BigQuery では現在のプロジェクトのパスと見なされます。

タスク 5. Google スプレッドシートにデータを保存する

シナリオ: あなたは、サプライ チェーン管理チームが商品についてのメモ(サプライヤーに再注文の連絡をしたかどうかなど)を記録できるようにする必要があります。これを迅速に実現するため、Google スプレッドシートを使用することにしました。

まずそのスプレッドシートを作成します。

  1. [クエリ結果] で、[結果を保存する] > [Google スプレッドシート] を選択します。

展開された状態の [結果を保存する] プルダウン メニュー

  1. ポップアップが開き、スプレッドシートを開くためのリンクが表示されます。[開く] を選択します。

  2. そのスプレッドシートの G 列に「comments」という名前の新しいフィールドを追加し、最初の商品の行に「new shipment on the way」と入力します。

ハイライト表示された列 G

  1. Google スプレッドシートで、[共有]、[共有可能なリンクを取得] の順に選択し、リンクをコピーします。

  2. BigQuery のタブに戻ります。

  3. ecommerce データセットをクリックし、[テーブルを作成] をクリックします。

  4. 以下のテーブル オプションを指定します。

ソース:

  • テーブルの作成元: ドライブ
  • ドライブの URI を選択: スプレッドシートの URL を入力
  • ファイル形式: Google スプレッドシート

送信先:

  • テーブルタイプ: デフォルトのまま(外部テーブル)
  • テーブル名: products_comments

スキーマ:

  • スキーマと入力パラメータの [自動検出] をオンにする

[テーブルを作成] ダイアログ

詳細オプション:

  • [スキップするヘッダー行] ボックスに 1 を入力する
  • すべてのオプションをデフォルトのままにする
  1. [テーブルを作成] をクリックします。
注: 外部リンクテーブルを作成する際にはデータは取り込まれないため、読み込みジョブはありません。

外部スプレッドシートのデータをクエリする

  1. [クエリを新規作成] をクリックします。

  2. 以下のクエリを追加して、[実行] をクリックします。

#standardSQL SELECT * FROM ecommerce.products_comments WHERE comments IS NOT NULL

クエリが実行されるのを待ちます。今度は新しい comments フィールドが返されます。

SKU

name

orderedQuantity

stockLevel

restockingLeadTime

ratio

comments

GGOENEBB078899

Cam Indoor Security Camera - USA

2139

2615

42

0.8179732314

new shipment on the way

  1. Google スプレッドシートのタブに戻ります。

  2. comments フィールドにさらにコメントを入力します。

  3. BigQuery に戻り、[実行] をクリックしてクエリをもう一度実行します。

  4. 新しいデータが結果に正しく表示されることを確認します。

Google スプレッドシートから BigQuery への外部テーブル接続が作成されました。

タスク 6. 外部テーブルのパフォーマンスとデータ品質の考慮事項

BigQuery に外部テーブルをリンクする場合(Google スプレッドシートをリンクする場合や、Google Cloud Storage から直接リンクする場合など)、いくつかの制限があります。特に重要なのは次の 2 つです。

  • クエリの実行中にソースでデータの値が変更された場合、データの整合性は保証されません。
  • BigQuery でデータ ストレージを管理する場合に得られるパフォーマンス上のメリット(クエリ実行パスの自動最適化、一部のワイルドカード関数の無効化など)は、BigQuery の外部に保存されているデータソースでは得られません。

お疲れさまでした

新しいデータセットを作成し、CSV、Google Cloud Storage、Google ドライブから BigQuery に新しい外部データソースを取り込むことができました。

ラボを終了する

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

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

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

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

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

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

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

始める前に

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

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

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

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

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

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

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

ありがとうございます。

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

1 回に 1 つのラボ

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

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

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