チェックポイント
Create a Cloud SQL instance
/ 5
Whitelist the Cloud Shell instance to access your SQL instance
/ 5
Create a bts database and flights table using the create_table.sql file
/ 5
Google Cloud SQL へのタクシーデータの読み込み 2.5
概要
このラボでは、データを CSV テキスト ファイルから Cloud SQL にインポートし、シンプルなクエリを使用していくつかの基本的なデータ分析を行う方法を学習します。
このラボでは、NYC Taxi and Limousine Commission によって収集されたデータセットを使用します。このデータセットには、2009 年から現在までのニューヨーク市内のイエロー タクシーとグリーン タクシーに関するすべての賃送記録と、2015 年から現在までのハイヤー(FHV)に関するすべての賃送記録が含まれます。記録には、乗車 / 降車の日時と場所、走行距離、料金明細、レートタイプ、支払いタイプ、運転手が記録した乗客数などの項目があります。
このデータセットは、データ サイエンスの多岐にわたるコンセプトと技術の実証に使用できるもので、データ エンジニアリングのカリキュラムに含まれる複数のラボで使用します。
目標
- Cloud SQL インスタンスを作成する
- Cloud SQL データベースを作成する
- Cloud SQL にテキストデータをインポートする
- データの整合性を確認する
設定と要件
各ラボでは、新しい Google Cloud プロジェクトとリソースセットを一定時間無料で利用できます。
-
Qwiklabs にシークレット ウィンドウでログインします。
-
ラボのアクセス時間(例:
1:15:00
)に注意し、時間内に完了できるようにしてください。
一時停止機能はありません。必要な場合はやり直せますが、最初からになります。 -
準備ができたら、[ラボを開始] をクリックします。
-
ラボの認証情報(ユーザー名とパスワード)をメモしておきます。この情報は、Google Cloud Console にログインする際に使用します。
-
[Google Console を開く] をクリックします。
-
[別のアカウントを使用] をクリックし、このラボの認証情報をコピーしてプロンプトに貼り付けます。
他の認証情報を使用すると、エラーが発生したり、料金の請求が発生したりします。 -
利用規約に同意し、再設定用のリソースページをスキップします。
Google Cloud Shell の有効化
Google Cloud Shell は、開発ツールと一緒に読み込まれる仮想マシンです。5 GB の永続ホーム ディレクトリが用意されており、Google Cloud で稼働します。
Google Cloud Shell を使用すると、コマンドラインで Google Cloud リソースにアクセスできます。
-
Google Cloud コンソールで、右上のツールバーにある [Cloud Shell をアクティブにする] ボタンをクリックします。
-
[続行] をクリックします。
環境がプロビジョニングされ、接続されるまでしばらく待ちます。接続した時点で認証が完了しており、プロジェクトに各自のプロジェクト ID が設定されます。次に例を示します。
gcloud は Google Cloud のコマンドライン ツールです。このツールは、Cloud Shell にプリインストールされており、タブ補完がサポートされています。
- 次のコマンドを使用すると、有効なアカウント名を一覧表示できます。
出力:
出力例:
- 次のコマンドを使用すると、プロジェクト ID を一覧表示できます。
出力:
出力例:
タスク 1. 環境を準備する
- プロジェクト ID の環境変数と、データを格納する Storage バケットの環境変数を作成します。これらの変数はラボの後半で使用します。
タスク 2. Cloud SQL インスタンスを作成する
- 次のコマンドを実行して Cloud SQL インスタンスを作成します。
完了するまでに数分かかります。
完了したタスクをテストする
[進行状況を確認] をクリックして、実行したタスクを確認します。タスクが正常に完了すると、評価スコアが付与されます。
- Cloud SQL インスタンスの root パスワードを設定します。
-
パスワードの入力を求められたら、「
Passw0rd
」と入力して Enter キーを押します。これで、root パスワードが更新されます。 -
Cloud Shell の IP アドレスを格納する環境変数を作成します。
- SQL インスタンスへの管理アクセスを有効にするために、Cloud Shell インスタンスを許可リストに登録します。
- プロンプトが表示されたら、Y キーを押して変更を確定します。
完了したタスクをテストする
[進行状況を確認] をクリックして、実行したタスクを確認します。タスクが正常に完了すると、評価スコアが付与されます。
- 次のコマンドを実行して Cloud SQL インスタンスの IP アドレスを取得します。
- MYSQLIP 変数を確認します。
出力として IP アドレスが表示されます。
-
mysql
コマンドライン インターフェースにログインして、タクシー賃走(trips)テーブルを作成します。
-
パスワードの入力を求められたら、「
Passw0rd
」と入力します。 -
次の内容をコマンドラインに貼り付け、
trips
テーブルのスキーマを作成します。
完了したタスクをテストする
[進行状況を確認] をクリックして、実行したタスクを確認します。タスクが正常に完了すると、評価スコアが付与されます。
-
mysql
コマンドライン インターフェースで、次のコマンドを入力してインポート内容を確認します。
-
trips
テーブルに対するクエリを実行します。
データべースにはまだデータがないため、空のセットが返されます。
-
mysql
インタラクティブ コンソールを終了します。
タスク 3. Cloud SQL インスタンスにデータを追加する
次に、Cloud Storage に保存されているニューヨーク市のタクシー賃走の CSV ファイルをローカルにコピーします。リソース使用量を抑えるために、データのサブセットのみ(約 20,000 行)を使用します。
- コマンドラインで次のコマンドを実行します。
-
mysql
インタラクティブ コンソールに接続して、ローカルの infile データを読み込みます。
-
パスワードの入力を求められたら、「
Passw0rd
」と入力します。 -
mysql
インタラクティブ コンソールで、データベースを選択します。
-
local-infile
を使用してローカル CSV ファイルのデータを読み込みます。
タスク 4. データの整合性を確認する
ソースからデータをインポートするたびに、データの整合性を確認して、データが想定どおりであることを確認する必要があります。
-
trips
テーブルに対してクエリを実行し、一意の乗車場所の地域を取得します。
すると、159 個の一意の ID が返されます。
- 最初に、
trip_distance
列について詳しく調べてみましょう。コンソールで次のクエリを入力します。
走行距離は 0 より大きく、1,000 マイル未満になると予想されます。最長走行距離として 85 マイルが返されることは妥当ですが、最短走行距離として 0 マイルが返されるのはバグのように思えます。
- データセットには走行距離が 0 の賃走データがいくつあるでしょうか。
データベース内には、走行距離が 0 の賃走データが 155 個存在します。このような賃走データは、さらに詳しく調べる必要があります。調べていくと、これらの賃走データに関連付けられている支払い金額が 0 ではないことがわかります。不正な処理が行われたのでしょうか。
- 想定外のデータが他にあるか確認してみましょう。
fare_amount
列は、プラスの金額であることが想定されます。次のクエリを入力して、データベース内のデータにマイナスの金額が存在しないか確認します。
該当するデータが 14 個返されます。これらの賃走データについても、さらに詳しく調べる必要があります。運賃がマイナスの金額であることについて、妥当な説明があるかもしれませんが、このような結果をもたらすバグがデータ パイプラインから確実に排除されるようにするのはデータ エンジニアの責任です。
- 最後に、
payment_type
列を詳しく調べてみましょう。
このクエリの結果は、4 つの異なる支払いタイプがあることを示しています。
- 支払いタイプ 1 が 13,863 行
- 支払いタイプ 2 が 6,016 行
- 支払いタイプ 3 が 113 行
- 支払いタイプ 4 が 32 行
こちらのドキュメントを詳しく見ていくと、支払いタイプ 1 はクレジット カードの使用、支払いタイプ 2 は現金、支払いタイプ 4 は支払いの異議申し立てを示しています。数値は妥当であったことがわかりました。
- mysql インタラクティブ コンソールを終了します。
ラボを終了する
ラボが完了したら、[ラボを終了] をクリックします。ラボで使用したリソースが Google Cloud Skills Boost から削除され、アカウントの情報も消去されます。
ラボの評価を求めるダイアログが表示されたら、星の数を選択してコメントを入力し、[送信] をクリックします。
星の数は、それぞれ次の評価を表します。
- 星 1 つ = 非常に不満
- 星 2 つ = 不満
- 星 3 つ = どちらともいえない
- 星 4 つ = 満足
- 星 5 つ = 非常に満足
フィードバックを送信しない場合は、ダイアログ ボックスを閉じてください。
フィードバックやご提案の送信、修正が必要な箇所をご報告いただく際は、[サポート] タブをご利用ください。
Copyright 2020 Google LLC All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。