テストテーブルの作成

このページでは、コード スニペットのテストで使用できる小さな Bigtable テーブルを作成する手順について説明します。このテーブルには、スマートフォンやタブレットの時系列データが格納されます。

この手順では、Google Cloud コンソールと cbt CLI(Bigtable 専用に構築されたコマンドライン インターフェース)を使用します。

準備

テストテーブルを作成する前に、次の前提条件を満たす必要があります。

認証の設定

このページの gcloud CLI のサンプルは、次のいずれかの開発環境から使用できます。

  • Cloud Shell: gcloud CLI がすでに設定されているオンライン ターミナルを使用するには、Cloud Shell をアクティブにします。

    このページの下部で Cloud Shell セッションが開始し、コマンドライン プロンプトが表示されます。セッションが初期化されるまで数秒かかることがあります。

  • ローカルシェル: ローカル開発環境で gcloud CLI を使用するには、gcloud CLI をインストールして初期化してください。

本番環境の認証の設定については、 Google Cloud で実行するコードのためのアプリケーションのデフォルト認証情報を設定するをご覧ください。

IAM ロールを付与

テストテーブルの作成に必要な権限を取得するには、プロジェクトに対する Bigtable 管理者 roles/bigtable.admin)IAM ロールの付与を管理者に依頼してください。 ロールの付与の詳細については、アクセスの管理をご覧ください。

必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。

cbt CLI をインストールする

次のコマンドを実行して cbt CLI をインストールします。

  gcloud components install cbt

インスタンスを作成する

任意のプロジェクトで、テストテーブルを保存するテスト インスタンスを作成します。このテーブルは小さいため、単一ノードのインスタンスのみで十分です。

  1. Google Cloud Console で [インスタンスの作成] ページを開きます。

    インスタンスの作成

  2. [インスタンス名] に「Test instance」と入力します。

  3. [インスタンス ID] に「test-instance」と入力します。

  4. [ストレージの種類] で [SSD] を選択します。

  5. [クラスタ ID] に「test-instance-c1」と入力します。

  6. [リージョン] で、お近くのリージョンを選択します。

  7. [ゾーン] で、選択したリージョンのゾーンを選択します。

  8. [ノード] に「1」と入力します。

  9. [作成] をクリックしてインスタンスを作成します。

インスタンスに接続する

  1. プロジェクトとインスタンスを使用するように cbt CLI を構成するため、.cbtrc ファイルを作成し、PROJECT_ID を Bigtable インスタンスの作成先であるプロジェクトの ID に置き換えます。

    echo project = PROJECT_ID >> ~/.cbtrc && echo instance = test-instance >> ~/.cbtrc
    
  2. .cbtrc ファイルを正しく設定したことを確認します。

    cat ~/.cbtrc

    ターミナルに .cbtrc ファイルの内容が次のように表示されます。

    project = PROJECT_ID
    instance = test-instance

    これで、インスタンスで cbt CLI を使用できるようになりました。

テストテーブルの作成

  1. 2 つの列ファミリーを持つ test-table という名前のテーブルを作成します。列ファミリーごとに、1 つのガベージ コレクション ポリシーを設定し、列ごとに最大で 2 つのセルを保持します。

       cbt createtable test-table "families=stats_summary:maxversions=2,stats_detail:maxversions=2,cell_plan:maxversions=2"

  2. 列ファミリーを一覧表示します。

       cbt ls test-table

    ターミナルによって次のような出力が表示されます。

        Family Name       GC Policy
        -----------       ---------
        stats_detail        versions() > 2
        stats_summary       versions() > 2
        cell_plan           versions() > 2

テーブルに入力

  1. ターミナル ウィンドウに次のコマンドをコピーして、Enter を押します。

       cbt set test-table phone#4c410523#20190501 stats_summary:connected_cell=1 stats_summary:connected_wifi=1 stats_summary:os_build=PQ2A.190405.003 cell_plan:data_plan_01gb=true cell_plan:data_plan_05gb=true
        cbt set test-table phone#4c410523#20190502 stats_summary:connected_cell=1 stats_summary:connected_wifi=1 stats_summary:os_build=PQ2A.190405.004 cell_plan:data_plan_05gb=true
        cbt set test-table phone#4c410523#20190505 stats_summary:connected_cell=0 stats_summary:connected_wifi=1 stats_summary:os_build=PQ2A.190406.000
        cbt set test-table phone#5c10102#20190501 stats_summary:connected_cell=1 stats_summary:connected_wifi=1 stats_summary:os_build=PQ2A.190401.002 cell_plan:data_plan_10gb=true
        cbt set test-table tablet#5c10102#20190502 stats_summary:connected_cell=1 stats_summary:connected_wifi=0 stats_summary:os_build=PQ2A.190406.000 cell_plan:data_plan_10gb=true

  2. cbt read コマンドを使用して、テーブルに追加したデータを読み取ります。

       cbt read test-table

    ターミナルによって次のような出力が表示されます。書き込みリクエストにはタイムスタンプが含まれないため、タイムスタンプはセルに自動的に割り当てられます。

        ----------------------------------------
        phone#4c410523#20190501
          cell_plan:data_plan_01gb                 @ 2020/09/23-11:44:10.535000
            "true"
          cell_plan:data_plan_05gb                 @ 2020/09/23-11:44:10.535000
            "true"
          stats_summary:connected_cell             @ 2020/09/23-11:44:10.535000
            "1"
          stats_summary:connected_wifi             @ 2020/09/23-11:44:10.535000
            "1"
          stats_summary:os_build                   @ 2020/09/23-11:44:10.535000
            "PQ2A.190405.003"
        ----------------------------------------
        phone#4c410523#20190502
          cell_plan:data_plan_05gb                 @ 2020/09/23-11:44:11.545000
            "true"
          stats_summary:connected_cell             @ 2020/09/23-11:44:11.545000
            "1"
          stats_summary:connected_wifi             @ 2020/09/23-11:44:11.545000
            "1"
          stats_summary:os_build                   @ 2020/09/23-11:44:11.545000
            "PQ2A.190405.004"
        ----------------------------------------
        phone#4c410523#20190505
    stats_summary:connected_cell @ 2020/09/23-11:44:12.503000 "0" stats_summary:connected_wifi @ 2020/09/23-11:44:12.503000 "1" stats_summary:os_build @ 2020/09/23-11:44:12.503000 "PQ2A.190406.000" ---------------------------------------- phone#5c10102#20190501 cell_plan:data_plan_10gb @ 2020/09/23-11:44:13.553000 "true" stats_summary:connected_cell @ 2020/09/23-11:44:13.553000 "1" stats_summary:connected_wifi @ 2020/09/23-11:44:13.553000 "1" stats_summary:os_build @ 2020/09/23-11:44:13.553000 "PQ2A.190401.002" ---------------------------------------- tablet#5c10102#20190502 cell_plan:data_plan_10gb @ 2020/09/23-11:44:14.480000 "true" stats_summary:connected_cell @ 2020/09/23-11:44:14.480000 "1" stats_summary:connected_wifi @ 2020/09/23-11:44:14.480000 "0" stats_summary:os_build @ 2020/09/23-11:44:14.480000 "PQ2A.190406.000"

テストデータの使用

これで、test-instancetest-table を使用して、Bigtable と Cloud Functions の併用などにあるコード スニペットを試すことができるようになりました。

クリーンアップ

この手順で作成したリソースについて、Google Cloud アカウントに課金されないようにするには、テストの完了後すぐにインスタンスを削除します。.cbtrc ファイルを削除すると、別のプロジェクトで作業できるようになります。

  1. インスタンスを削除せずにテーブルを削除する場合は、deletetable コマンドを使用します。

       cbt deletetable test-table

  2. 今後インスタンスをテストに使用する予定がない場合は、インスタンスを削除します。この操作を行うと、テーブルも削除されます。

       cbt deleteinstance test-instance

  3. .cbtrc ファイルを削除します。

       rm ~/.cbtrc

次のステップ