arrow_back

Google Cloud SQL へのデータの読み込み

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

Google Cloud SQL へのデータの読み込み

Lab 1時間 universal_currency_alt クレジット: 5 show_chart 中級
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP196

Google Cloud セルフペース ラボ

概要

このラボでは、データを CSV テキスト ファイルから Cloud SQL にインポートし、シンプルなクエリを使用していくつかの基本的なデータ分析を行います。

このラボでは米国運輸統計局のデータセットを使用します。このデータセットには、米国の国内線フライトに関する履歴情報が含まれています。このデータセットはデータ サイエンスの多岐にわたるコンセプトと手法の実証に使用できるもので、「Data Science on Google Cloud Platform」クエストのすべてのラボで使用します。

目標

  • Cloud SQL インスタンスを作成する
  • Cloud SQL データベースを作成する
  • Cloud 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. 環境を準備する

このラボでは、O'Reilly Media, Inc. の書籍『Data Science on Google Cloud Platform, 2nd Edition』用に作成されたコードサンプルとスクリプトを使用します。この書籍の第 3 章「Creating Compelling Dashboards」の最初の部分で説明されている Google Cloud SQL の構成とデータ インポート タスクを取り上げます。第 2 章で使用されている GitHub のサンプル リポジトリのクローンを Cloud Shell に作成して、そこからこのラボのタスクをすべて実施します。

Data Science on Google Cloud リポジトリのクローンを作成する

  1. Cloud Shell で次のコマンドを入力して、このリポジトリのクローンを作成します。
git clone \ https://github.com/GoogleCloudPlatform/data-science-on-gcp/
  1. リポジトリ ディレクトリに移動します。
cd data-science-on-gcp/03_sqlstudio
  1. プロジェクト ID の環境変数と、データを格納する Storage バケットの環境変数を作成します。これらの変数はラボの後半で使用します。
export PROJECT_ID=$(gcloud info --format='value(config.project)') export BUCKET=${PROJECT_ID}-ml
  1. 次のコマンドを入力して、ファイルを Cloud Storage バケットにステージングします。
gsutil cp create_table.sql \ gs://$BUCKET/create_table.sql

タスク 2. Cloud SQL インスタンスを作成する

  1. 次のコマンドを実行して Cloud SQL インスタンスを作成します。
gcloud sql instances create flights \ --database-version=POSTGRES_13 --cpu=2 --memory=8GiB \ --region={{{project_0.default_region | "REGION"}}} --root-password=Passw0rd

このコマンドが完了するまでに数分かかります。

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

[進行状況を確認] をクリックして、実行したタスクを確認します。Cloud SQL インスタンスが正常に作成されている場合は、評価スコアが表示されます。

Cloud SQL インスタンスを作成する。
  1. Cloud Shell の IP アドレスを格納する環境変数を作成します。
export ADDRESS=$(curl -s http://ipecho.net/plain)/32
  1. SQL インスタンスへの管理アクセスを有効にするために、Cloud Shell インスタンスを許可リストに登録します。
gcloud sql instances patch flights --authorized-networks $ADDRESS
  1. プロンプトが表示されたら、Y キーを押して変更を確定します。

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

[進行状況を確認] をクリックして、実行したタスクを確認します。SQL インスタンスにアクセスするために、Cloud Shell が許可リストに正常に登録された場合は、評価スコアが表示されます。

SQL インスタンスにアクセスするために Cloud Shell インスタンスを許可リストに登録する。

データベースとテーブルを作成する

Postgres テーブルにデータをインポートするには、まず適切なスキーマで空のデータベースとテーブルを作成します。

  1. Cloud コンソールのナビゲーション メニューナビゲーション メニュー アイコン)で [SQL] をクリックします。

  2. インスタンスの [概要] ページを開くには、インスタンス名の flights をクリックします。

  3. 左側にある SQL のナビゲーション メニューから [データベース] を選択します。

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

  5. 新しいデータベース ダイアログで、データベースに bts と名前を付けます。

  6. [作成] をクリックします。

  7. インスタンスの概要ページを開くには、SQL のナビゲーション メニューから [概要] を選択します。

  8. 上部の [インポート] をクリックします。

  9. Cloud Storage ファイルの欄で、[参照] をクリックします。

  10. バケットのセクションで、バケット名の反対側にある矢印をクリックします。

  11. create_table.sql のファイルを選択します。

  12. [選択] をクリックします。

  13. [ファイル形式] セクションで、SQL を選択します。

  14. Cloud SQL インスタンスで、bts データベースを指定します。

  15. [インポート] をクリックして、インポートを開始します。

数秒経ったら、空のテーブルができあがります。

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

[進行状況を確認] をクリックして、実行したタスクを確認します。create_table.sql ファイルを使用して bts データベースとフライト テーブルが正常に作成された場合は、評価スコアが表示されます。

create_table.sql ファイルを使用して bts データベースとフライト テーブルを作成する。

タスク 3. Cloud SQL インスタンスにデータを追加する

空のデータベースとテーブルが作成できたので、ここでテーブルに CSV ファイルを読み込みます。バケットで 201501.csv を参照して 1 月のデータを読み込み、形式に CSV を、データベースに bts を、テーブルに flights を指定します。

  1. Cloud SQL のインスタンス ページで、[インポート] をクリックします。

  2. Cloud Storage ファイルの欄で [参照] をクリックし、バケット名の反対側にある矢印をクリックして、201501.csv をクリックします。

  3. [選択] をクリックします。

  4. ファイル形式は [CSV] を選択します。

  5. bts データベースを選択し、テーブルには flights と入力します。

  6. [インポート] をクリックします。

タスク 4. データベースの操作

  1. 以下を使用して、Cloud Shell から Cloud SQL インスタンスに接続します。
gcloud sql connect flights --user=postgres
  1. パスワードの入力を求められたら、「Passw0rd」と入力します。入力した文字が表示されない場合があります。

  2. 表示されたプロンプトで、bts データベースに接続します。

\c bts;
  1. パスワードの入力を求められたら、「Passw0rd」と入力します。

  2. それから、最も交通量が多い 5 つの空港の情報を得るためにクエリを実行します。

SELECT "Origin", COUNT(*) AS num_flights FROM flights GROUP BY "Origin" ORDER BY num_flights DESC LIMIT 5;

データベースが比較的小規模(1 月のみ)であることから、このクエリは高いパフォーマンスを示していますが、さらに月を追加するとデータベースは遅くなります。

リレーショナル データベースは、少量のデータのサブセットを返すアドホック クエリを実行する際の、小型のデータセットに適しています。大規模なデータセットについては、関係のある列のインデックスを作成することで、リレーショナル データベースのパフォーマンスを調整します。一般的に、リレーショナル データベースはトランザクションをサポートし、強整合性を保証するために頻繁に更新されるデータ向けとしては最高の選択肢です。

ですが、以下の場合はリレーショナル データベースは適切ではありません。

  • データが主に読み取り専用である
  • データセットのサイズがテラバイトの範囲におよぶ
  • 完全なテーブルをスキャンする必要がある(列の最大値を計算する場合など)、またはデータ ストリームが高速である。

これはフライト遅延のユースケースの説明です。このケースでは、リレーショナル データベースではなく、アナリティクス データ ウェアハウスである BigQuery に切り替えます。アナリティクス データ ウェアハウスは SQL の使用が可能で、大型のデータセットやアドホック クエリに対する優れた処理能力を備えています(つまり、列のインデックスを作成する必要はありません)。

お疲れさまでした

このラボでは、テーブルを作成して、Cloud Storage に保存されているテキストデータを Google Cloud SQL にインポートする方法を学びました。

次のステップと詳細情報

フォローアップ情報:

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

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

マニュアルの最終更新日: 2023 年 11 月 28 日

ラボの最終テスト日: 2023 年 11 月 28 日

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