ラボの設定手順と要件
アカウントと進行状況を保護します。このラボを実行するには、常にシークレット ブラウジング ウィンドウとラボの認証情報を使用してください。

Bigtable へのデータのストリーミング

ラボ 25分 universal_currency_alt クレジット: 1 show_chart 入門
info このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。
このコンテンツはまだモバイル デバイス向けに最適化されていません。
快適にご利用いただくには、メールで送信されたリンクを使用して、デスクトップ パソコンでアクセスしてください。

GSP1055

Google Cloud セルフペース ラボのロゴ

概要

Bigtable は、Google のフルマネージドでスケーラブルな NoSQL データベース サービスです。Bigtable は大量のデータを Key-Value ストアに格納する用途に最適です。パーソナライズ、広告テクノロジー、金融テクノロジー、デジタル メディア、モノのインターネット(IoT)などのユースケースに広く利用されています。また、低レイテンシで高スループットの読み取りと書き込みをサポートしており、大量のデータにすばやくアクセスして処理や分析を行うことができます。

センサーからのストリーミング データの場合、Bigtable は高頻度で書き込み処理を行い、大量のリアルタイム データをキャプチャします。

このラボでは、コマンドを使用して、テーブルを含む Bigtable インスタンスを作成し、シミュレートされたトラフィック センサーデータを保存します。次に、Dataflow パイプラインを起動して、Pub/Sub からシミュレートされたストリーミング データを Bigtable に読み込みます。Dataflow ジョブが Pub/Sub から Bigtable にストリーミング データを読み込んでいる間、テーブルにデータが正常に追加されていることを確認します。ラボの最後では、ストリーミング ジョブを停止し、Bigtable データを削除します。

演習内容

このラボでは、コマンドを使用して Bigtable インスタンスとテーブルを作成する方法と、Dataflow を使用してストリーミング データを読み込む方法を学習します。

  • Google Cloud CLI(gcloud CLI)コマンドを使用して Bigtable インスタンスを作成する。
  • Cloud Bigtable CLI(cbt CLI)コマンドを使用して、列ファミリーを含む Bigtable テーブルを作成する。
  • Dataflow パイプラインを起動して、Pub/Sub からストリーミング データを読み取り、Bigtable に書き込む。
  • Bigtable に読み込まれたストリーミング データを確認する。
  • コマンドを使用して Bigtable テーブルと Bigtable インスタンスを削除する。

前提条件

  • インスタンス、スキーマ、キーなどのデータベースのコンセプトと用語の基本的な知識
  • Bigtable スキーマの設計とクエリというタイトルのラボを完了していること

設定と要件

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

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

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

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

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

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

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

    • [Google Cloud コンソールを開く] ボタン
    • 残り時間
    • このラボで使用する必要がある一時的な認証情報
    • このラボを行うために必要なその他の情報(ある場合)
  2. [Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウで開く] を選択します)。

    ラボでリソースがスピンアップし、別のタブで [ログイン] ページが表示されます。

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

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

    {{{user_0.username | "Username"}}}

    [ラボの詳細] ペインでもユーザー名を確認できます。

  4. [次へ] をクリックします。

  5. 以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。

    {{{user_0.password | "Password"}}}

    [ラボの詳細] ペインでもパスワードを確認できます。

  6. [次へ] をクリックします。

    重要: ラボで提供された認証情報を使用する必要があります。Google Cloud アカウントの認証情報は使用しないでください。 注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。
  7. その後次のように進みます。

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

その後、このタブで Google Cloud コンソールが開きます。

注: Google Cloud のプロダクトやサービスにアクセスするには、ナビゲーション メニューをクリックするか、[検索] フィールドにサービス名またはプロダクト名を入力します。 ナビゲーション メニュー アイコンと検索フィールド

Cloud Shell をアクティブにする

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

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

  2. ウィンドウで次の操作を行います。

    • Cloud Shell 情報ウィンドウで操作を進めます。
    • Cloud Shell が認証情報を使用して Google Cloud API を呼び出すことを承認します。

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

Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}

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

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

出力:

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

出力:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} 注: Google Cloud における gcloud ドキュメントの全文については、gcloud CLI の概要ガイドをご覧ください。

タスク 1. コマンドを使用して Bigtable のインスタンスとテーブルを作成する

Bigtable で新しいテーブルを作成するには、まずテーブルを格納する Bigtable インスタンスを作成する必要があります。Bigtable インスタンスの作成には、Google Cloud コンソール、gcloud CLI コマンド、または cbt CLI コマンドを使用します。

このタスクでは、Cloud Shell を使用してまず gcloud CLI コマンドを実行し、新しい Bigtable インスタンスを作成します。続いて cbt CLI コマンドを実行して Bigtable に接続し、新しいテーブルを作成します。

Cloud Shell へのアクセス方法を確認するには、このページの右側のメニューにある「設定と要件」をクリックしてください。

Bigtable インスタンスを作成する

  • 新しい Bigtable インスタンスを作成するには、Cloud Shell で次のコマンドを実行します。
gcloud bigtable instances create sandiego \ --display-name="San Diego Traffic Sensors" \ --cluster-storage-type=SSD \ --cluster-config=id=sandiego-traffic-sensors-c1,zone={{{project_0.default_zone | ZONE}}},nodes=1

このコマンドによって、次のプロパティを持つ新しい Bigtable インスタンスが作成されます。

プロパティ
インスタンス ID sandiego
インスタンスの表示名 San Diego Traffic Sensors
ストレージの種類 SSD
クラスタ ID sandiego-traffic-sensors-c1
ゾーン
ノード スケーリング モード 手動割り当て
ノードの数 1

次の出力メッセージを受け取ったら、次の手順に進みます。

Creating bigtable instance sandiego...done.

Bigtable CLI を構成する

cbt CLI コマンドを使用して Bigtable に接続するには、まず Cloud Shell を使用して、.cbtrc 構成ファイルのプロジェクト ID と Bigtable インスタンス ID を更新する必要があります。

  1. .cbtrc ファイルのプロジェクト ID とインスタンス ID を変更するには、次のコマンドを実行します。
echo project = `gcloud config get-value project` \ >> ~/.cbtrc echo instance = sandiego \ >> ~/.cbtrc
  1. .cbtrc ファイルを正常に変更できたことを確認するには、次のコマンドを実行します。
cat ~/.cbtrc

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

project = <project-id> instance = sandiego

列ファミリーを含む Bigtable テーブルを作成する

Cloud Shell で .cbtrc 構成ファイルを構成後、簡単な cbt CLI コマンドを実行して、列ファミリーを含む新しい Bigtable テーブルを作成できます。

  • lane という名前の列ファミリーを 1 つ含む current_conditions という名前の新しいテーブルを作成するには、次のコマンドを実行します。
cbt createtable current_conditions \ families="lane"

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。Bigtable のインスタンスとテーブルを作成します。

タスク 2: Pub/Sub へのトラフィック センサーデータのストリーミングをシミュレートする

このタスクでは、このラボ用に作成された Compute Engine 仮想マシン(VM)からストリーミング データ シミュレータを実行します。このタスクを開始するには、training-vm という名前の VM にコマンドを入力して環境をセットアップし、ストリーミング データ シミュレータに必要なファイルをダウンロードします。

VM に接続する

  1. Google Cloud コンソールのナビゲーション メニューで、[Compute Engine] > [VM インスタンス] をクリックします。

  2. training-vm という名前のインスタンスを含む行を見つけ、[接続] の下にある [SSH] をクリックします。

    training-vm のターミナル ウィンドウが開きます。

    training-vm によってバックグラウンドでソフトウェアのインストールが行われます。次のステップで、新しいディレクトリのコンテンツを確認して、セットアップが完了していることを確かめます。

  3. training という名前のディレクトリのコンテンツを一覧表示するには、次のコマンドを実行します。

ls /training

ls コマンドから次の結果が出力されれば VM の準備は完了しています。次の手順に進んでください。

bq_magic.sh project_env.sh sensor_magic.sh

この 3 つのスクリプトが表示されない場合は、数分待ってからもう一度お試しください。

注: バックグラウンドのすべての処理が完了するまで、2~3 分かかることがあります。

スクリプトを実行してストリーミング データをシミュレートする

  1. このラボで使用するコード リポジトリをダウンロードするには、次のコマンドを実行します。
git clone https://github.com/GoogleCloudPlatform/training-data-analyst
  1. 必要な環境変数を設定するには、次のコマンドを実行します。
source /training/project_env.sh

このスクリプトにより、$DEVSHELL_PROJECT_ID 環境変数と $BUCKET 環境変数が設定されるため、プロジェクト ID と Cloud Storage バケット名を手動で設定する必要はありません。

Cloud Storage バケットは、ラボリソースの初期化時に作成されています。

  1. ストリーミング データ シミュレータを開始するには、次のコマンドを実行します。
/training/sensor_magic.sh

このスクリプトは、CSV ファイルからサンプルデータを読み取って Pub/Sub にパブリッシュします。このスクリプトを実行すると、1 時間分のデータが 1 分で送信されます。

現在のターミナルでスクリプトを実行したまま、次のタスクに進みます。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。Pub/Sub へのトラフィック センサーデータのストリーミングをシミュレートします。

タスク 3. Dataflow パイプラインを起動して、Pub/Sub から Bigtable にデータを書き込む

このタスクでは、training_vm で 2 つ目の SSH ターミナルを開き、コマンドを実行して Dataflow ジョブを起動し、Pub/Sub からのストリーミング データを Bigtable に書き込みます。

2 つ目の SSH ターミナルを開く

  1. 現在のターミナル ウィンドウで、[ターミナルの設定](ssh_gear_settings.png)、[新しい接続] をクリックします。

2 つ目のターミナル ウィンドウが開きます。この新しいターミナル セッションには、必要な環境変数が設定されていません。次のステップで、新しいターミナル セッションにその環境変数を設定します。

  1. 新しいターミナルに環境変数を設定するには、次のコマンドを実行します。
source /training/project_env.sh

このスクリプトにより、新しいターミナル ウィンドウに DEVSHELL_PROJECT_ID 環境変数と BUCKET 環境変数が設定されます。

Dataflow パイプラインを起動する

  1. 新しいターミナルのコード ディレクトリに移動するには、次のコマンドを実行します。
cd ~/training-data-analyst/courses/streaming/process/sandiego
  1. nano を使用してスクリプトを確認するには、次のコマンドを実行します。
nano run_oncloud.sh

コードは変更しないでください。

このスクリプトは、Dataflow ジョブの実行に必要な次の 3 つの引数を取ります。

  • プロジェクト ID
  • Cloud Storage バケット名
  • Java クラス名
  • オプションの 4 つ目の引数

次のステップで、--bigtable オプションを使用して、Dataflow パイプラインに Bigtable へのデータの書き込みを指示します。

  1. nano を終了するには、Ctrl+X キーを押します。

  2. プロジェクトのデフォルト リージョンを使用するよう run_oncloud.sh スクリプトを構成するには、次のコマンドを実行します。

sed -i 's/\$REGION/{{{project_0.default_region | REGION}}}/' run_oncloud.sh
  1. Dataflow パイプラインを起動して Pub/Sub からの読み取り、Bigtable への書き込みを行うには、次のコマンドを実行します。
./run_oncloud.sh $DEVSHELL_PROJECT_ID $BUCKET CurrentConditions --bigtable

パイプラインが正常に起動すると、次のようなメッセージが表示されます。

[INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 01:09 min [INFO] Finished at: 2022-06-01T17:21:29+00:00 [INFO] Final Memory: 60M/220M [INFO] ------------------------------------------------------------------------

Dataflow パイプラインを確認する

  1. Google Cloud コンソールのナビゲーション メニューで、[すべてのプロダクトを表示] をクリックします。[分析] の下にある [Dataflow] > [ジョブ] をクリックします。

  2. 新しいパイプライン ジョブ名をクリックします。

  3. パイプライン グラフの write:cbt ステップを見つけます。書き込みの詳細を表示するには、write:cbt の横にある下矢印をクリックします。

  4. 表示された書き込みをクリックし、[ステップ情報] に記載の詳細を確認します。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。Dataflow パイプラインを起動します。

タスク 4. Bigtable に読み込まれたストリーミング データを確認する

前のタスクで、Cloud Shell の .cbtrc 構成ファイルの構成が完了しているため、続いて簡単な cbt CLI コマンドを実行して、テーブルの最初の 5 件のレコードをクエリします。

  • 最初の 5 行のデータと lane 列ファミリーの値を表示するには、次のコマンドを実行します。
cbt read current_conditions count=5 \ columns="lane:.*"

出力は次のような構成になります。

---------------------------------------------- ROW KEY COLUMN_FAMILY:COLUMN_QUALIFIER @ TIMESTAMP VALUE

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

---------------------------------------------- 15#S#1#9223370811310975807 lane:direction @ 1970/01/15-04:25:43.800000 "S" lane:highway @ 1970/01/15-04:25:43.800000 "15" lane:lane @ 1970/01/15-04:25:43.800000 "1.0" lane:latitude @ 1970/01/15-04:25:43.800000 "32.706184" lane:longitude @ 1970/01/15-04:25:43.800000 "-117.120565" lane:sensorId @ 1970/01/15-04:25:43.800000 "32.706184,-117.120565,15,S,1" lane:speed @ 1970/01/15-04:25:43.800000 "71.4" lane:timestamp @ 1970/01/15-04:25:43.800000 "2008-11-01 12:50:00"

タスク 5. ストリーミング ジョブを停止し、Bigtable データを削除する

最後のタスクでは、コマンドを使用してストリーミング データジョブを停止し、Bigtable インスタンスとテーブルを削除します。

シミュレーションによるストリーミング データを停止する

  1. ストリーミング データ シミュレータを実行している 1 つ目の SSH ターミナルで、シミュレーションを停止するには、Ctrl+C キーを押します。

Dataflow ジョブを停止する

  1. Google Cloud コンソールのナビゲーション メニューで、[Dataflow] > [ジョブ] をクリックします。

  2. パイプライン ジョブ名をクリックします。

  3. [停止] をクリックします。

  4. [キャンセル] を選択してから [ジョブの停止] をクリックします。

Bigtable テーブルとインスタンスを削除する

  1. Bigtable テーブルを削除するには、Cloud Shell で次のコマンドを実行します。
cbt deletetable current_conditions
  1. Bigtable インスタンスを削除するには、次のコマンドを実行します。
gcloud bigtable instances delete sandiego

確認を求めるメッセージが表示されたら、「Y」と入力します。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。ストリーミング ジョブを停止し、Bigtable データを削除します。

お疲れさまでした

このラボでは、コマンドを使用して新しい Bigtable インスタンスとテーブルを作成し、Dataflow を使用してデータをテーブルにストリーミングしました。また、簡単な cbt CLI コマンドを実行して、データが Bigtable に正常にストリーミングされたことを確認しました。さらに、コマンドを使用してジョブを停止し、Bigtable テーブルとインスタンスを削除して、ラボを完了しました。

次のステップと詳細情報

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

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

マニュアルの最終更新日: 2025 年 8 月 19 日

ラボの最終テスト日: 2025 年 8 月 19 日

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

始める前に

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

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

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

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

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

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

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

ありがとうございます。

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

1 回に 1 つのラボ

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

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

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