チェックポイント
Create a new dataset to store tables
/ 25
Ingest a new Dataset from a CSV
/ 25
Ingest data from Google Cloud Storage
/ 25
Ingest a new dataset from a Google Spreadsheet
/ 25
BigQuery に新しいデータセットを取り込む
GSP411
概要
BigQuery は、Google が低価格で提供する NoOps、フルマネージドの分析データベースです。インフラストラクチャを所有して管理したり、データベース管理者を置いたりすることなく、テラバイト単位の大規模なデータでクエリを実行できます。また、SQL も使用することができ、お支払いモデルは従量課金制です。このような特徴を活かし、お客様は有用な情報を得るためのデータ分析に専念できます。
ここでは、すでに BigQuery に読み込まれている e コマースのデータセットを使用します。このデータセットは、Google Merchandise Store に関する数百万件の Google アナリティクス セッション レコードで構成されています。このデータセットのコピーを使用して、フィールドや行からどのような分析情報が得られるのかを確認します。
このラボでは、数種類のデータセットを BigQuery 内のテーブルに取り込みます。
設定と要件
Qwiklabs の設定
[ラボを開始] ボタンをクリックする前に
こちらの手順をお読みください。ラボの時間は記録されており、一時停止することはできません。[ラボを開始] をクリックするとスタートするタイマーは、Google Cloud のリソースを利用できる時間を示しています。
この Qwiklabs ハンズオンラボでは、シミュレーションやデモ環境ではなく、実際のクラウド環境を使ってご自身でラボのアクティビティを行うことができます。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。
必要なもの
このラボを完了するためには、下記が必要です。
- 標準的なインターネット ブラウザ(Chrome を推奨)
- ラボを完了するために十分な時間
注: すでに個人の Google Cloud アカウントやプロジェクトをお持ちの場合でも、ラボでは使用しないでください。
注: Chrome OS デバイスを使用している場合は、シークレット ウィンドウを開いてこのラボを実行してください。
Google Cloud Console
ラボを開始して Google Cloud コンソールにログインする方法
-
[ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるポップアップでお支払い方法を選択してください。 左側の [ラボの詳細] パネルには、以下が表示されます。
- [Google コンソールを開く] ボタン
- 残り時間
- このラボで使用する必要がある一時的な認証情報
- このラボを行うために必要なその他の情報(ある場合)
-
[Google コンソールを開く] をクリックします。 ラボでリソースが起動し、別のタブで [ログイン] ページが表示されます。
ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。
注: [アカウントの選択] ダイアログが表示されたら、[別のアカウントを使用] をクリックします。 -
必要に応じて、[ラボの詳細] パネルから [ユーザー名] をコピーして [ログイン] ダイアログに貼り付けます。[次へ] をクリックします。
-
[ラボの詳細] パネルから [パスワード] をコピーして [ようこそ] ダイアログに貼り付けます。[次へ] をクリックします。
重要: 認証情報は左側のパネルに表示されたものを使用してください。Google Cloud Skills Boost の認証情報は使用しないでください。 注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。 -
その後次のように進みます。
- 利用規約に同意してください。
- 一時的なアカウントなので、復元オプションや 2 要素認証プロセスは設定しないでください。
- 無料トライアルには登録しないでください。
その後このタブで Cloud Console が開きます。
BigQuery コンソールを開く
- Google Cloud コンソールで、ナビゲーション メニュー > [BigQuery] を選択します。
[Cloud コンソールの BigQuery へようこそ] メッセージ ボックスが開きます。このメッセージ ボックスには、クイックスタート ガイドとリリースノートへのリンクが表示されます。
- [完了] をクリックします。
BigQuery コンソールが開きます。
テーブルを格納するための新しいデータセットを作成する
データセットを作成するには、プロジェクト ID の横にある [アクションを表示] アイコンをクリックして、[データセットを作成] を選択します。
[データセット ID] に「ecommerce」と入力します。他のフィールドはデフォルト値のままにします。
[データセットを作成] をクリックします。
プロジェクト名の下に ecommerce データセットが表示されます。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
CSV から新しいデータセットを取り込む
シナリオ: マーケティング チームから、プロモーションの対象にする商品を在庫ストックレベルに基づいて決定できるようにして欲しいと頼まれました。また、商品レビューに基づいて、各商品の顧客感情の傾向も把握できるようにする必要があります。
既存の e コマース トランザクション データセットには在庫ストックレベルや商品レビューのデータは含まれていませんが、運用チームとマーケティング チームから分析用に新しいデータセットが提供されています。
次のように作業を開始します。
商品のストックレベルのデータセットをコンピュータのローカルにダウンロードします。
https://storage.googleapis.com/data-insights-course/exports/products.csv
テーブルを作成するには、ecommerce データセットの横にある [アクションを表示] アイコンをクリックして、[開く] を選択します。
[テーブルを作成] をクリックします。
以下のテーブル オプションを指定します。
ソース:
- テーブルの作成元: アップロード
- ファイルを選択:
先ほどローカルにダウンロードしたファイルを選択
- ファイル形式: CSV
送信先:
- テーブル名: products
他の設定はデフォルト値のままにします。
スキーマ:
- スキーマの [自動検出] を確認します。
ヒント: このチェックボックスが表示されない場合は、ファイル形式が Avro ではなく CSV になっていることを確認してください。
- パーティションとクラスタの設定: デフォルト設定のまま
詳細オプション:
- デフォルト設定のまま
[テーブルを作成] をクリックします。
ecommerce データセットの下に products テーブルが表示されます。
products テーブルを選択し、[詳細] をクリックします。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
[プレビュー] を選択して、すべての列が読み込まれていることを確認します(以下はその一部を取り出したものです)。
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
Cloud Storage からデータを取り込む
ecommerce データセットの横にある [アクションを表示] アイコンをクリックしてテーブルを作成し、[開く] を選択して、[テーブルの作成] をクリックします。
以下のテーブル オプションを指定します。
ソース:
- テーブルの作成元: Google Cloud Storage
- Cloud Storage バケットからファイルを選択: data-insights-course/exports/products.csv
- ファイル形式: CSV
送信先:
- テーブル名: products
その他の設定はすべてデフォルトのままにします。
スキーマ:
- スキーマの [自動検出] を確認します。
詳細オプション:
- デフォルト設定のまま
[テーブルを作成] をクリックします。
これがうまくいかない場合
エラー メッセージが表示されたら [ジョブに移動] をクリックし、[ジョブの読み込みを繰り返す] ボタンをクリックします。
[テーブルの作成] フォームで [詳細オプション] をクリックし、[書き込み設定] のプルダウン メニューで [テーブルを上書きする] を選択します。
次に、[テーブルを作成] をクリックします。
テーブルが正常に作成されたことを確認します。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
Google スプレッドシートから新しいデータセットを取り込む
[クエリを新規作成] を選択します。
次のクエリを実行します。在庫回転率と補充に要する時間に基づいて、最初に補充すべき商品が示されます。
#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
と指定するなど)、現在のプロジェクトのパスと見なされます。Google スプレッドシートにデータを保存する
シナリオ: あなたは、サプライ チェーン管理チームが商品についてのメモ(サプライヤーに再注文の連絡をしたかどうかなど)を記録できるようにする必要があります。これを迅速に実現するため、Google スプレッドシートを使用することにしました。
まずそのスプレッドシートを作成します。
[クエリ結果] で、[結果の保存] を選択し、ドロップダウンから [Google スプレッドシート] を選択して、[保存] をクリックします。
ポップアップが開き、スプレッドシートを開くためのリンクが表示されます。[開く] を選択します。
そのスプレッドシートの列 G に「comments」という名前の新しいフィールドを追加し、最初の商品の行に「new shipment on the way
」と入力します。
Google スプレッドシートで、[共有] を選択し、リンクを取得から [リンクをコピー] をクリックします。
BigQuery のタブに戻ります。
ecommerce データセットの横にある [アクションの表示] アイコンをクリックして [開く] を選択し、[テーブルの作成] をクリックします。
以下のテーブル オプションを指定します。
ソース:
- テーブルの作成元: ドライブ
- ドライブの URI を選択:
スプレッドシートの URL を入力
- ファイル形式: Google スプレッドシート
送信先:
- テーブルタイプ: デフォルトのまま(外部テーブル)
- テーブル名: products_comments
スキーマ:
- スキーマの [自動検出] を確認します。
詳細オプション:
- [スキップするヘッダー行] ボックスに 1 を入力する
- すべてのオプションをデフォルトのままにする
[テーブルを作成] をクリックします。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
外部スプレッドシートのデータをクエリする
[クエリを新規作成] をクリックします。
以下のクエリを追加して、[実行] をクリックします。
#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 |
Google スプレッドシートのタブに戻ります。
comments フィールドにさらにコメントを入力します。
BigQuery に戻り、[実行] をクリックしてクエリをもう一度実行します。
新しいデータが結果に正しく表示されることを確認します。
これで、Google スプレッドシートから BigQuery への外部テーブル接続を作成できました。
外部テーブルのパフォーマンスとデータ品質の考慮事項
BigQuery に外部テーブルをリンクする場合(Google スプレッドシートをリンクする場合や、Cloud Storage から直接リンクする場合など)、いくつかの制限があります。特に重要なのは次の 2 つです。
- クエリの実行中にソースでデータの値が変更された場合、データの整合性は保証されません。
- BigQuery でデータ ストレージを管理する場合に得られるパフォーマンス上のメリット(クエリ実行パスの自動最適化、一部のワイルドカード関数の無効化など)は、BigQuery の外部に保存されているデータソースでは得られません。
お疲れさまでした
ここでは新しいデータセットを作成し、CSV、Cloud Storage、Google ドライブから BigQuery に新しい外部データソースを取り込みました。
クエストを完了する
このセルフペース ラボは Qwiklabs の「BigQuery を使用したマーケティング分析」クエストの一部です。クエストとは学習パスを構成する一連のラボのことで、完了すると成果が認められて上のようなバッジが贈られます。バッジは公開して、オンライン レジュメやソーシャル メディア アカウントにリンクできます。このラボの終了後、こちらのクエストに登録すれば、すぐにクレジットを受け取ることができます。受講可能なその他の Qwiklabs のクエストもご確認ください。
次のラボを受講する
「Google データポータルと BigQuery で BI ダッシュボードを構築する方法」に進んでクエストを続けるか、以下のおすすめのラボをご確認ください。
次のステップと詳細情報
すでに Google アナリティクス アカウントをお持ちで、BigQuery で独自のデータセットをクエリする準備ができている方は、こちらのエクスポート ガイドに沿って進めてください。
Google Cloud Training & Certification
Google Cloud 技術を最大限に活用できるようになります。このクラスでは、必要な技術力とベスト プラクティスを習得し、継続的に学習することができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、仮想環境など、多忙なスケジュールに対応できるオプションが用意されています。認定資格を取得することで、Google Cloud の技術のスキルと知識を証明できます。
マニュアルの最終更新日: 2021 年 12 月 02 日
ラボの最終テスト日: 2021 年 12 月 02 日
Copyright 2020 Google LLC All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。