テストテーブルの作成

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

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

始める前に

テストテーブルを作成する前に、次の前提条件を満たしてください。

認証を設定する

Google Cloud CLI をインストールし、フェデレーション ID を使用して gcloud CLI にログインします。 ログイン後、次のコマンドを実行して Google Cloud CLI を初期化します。

gcloud init

本番環境での認証の設定については、 Set up Application Default Credentials for code running on Google Cloudをご覧ください。

IAM ロールを付与

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

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

cbt CLI をインストールします。

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

  gcloud components install cbt

インスタンスの作成

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

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

    インスタンスの作成

  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                 @ 2023/09/23-11:44:10.535000
            "true"
          cell_plan:data_plan_05gb                 @ 2023/09/23-11:44:10.535000
            "true"
          stats_summary:connected_cell             @ 2023/09/23-11:44:10.535000
            "1"
          stats_summary:connected_wifi             @ 2023/09/23-11:44:10.535000
            "1"
          stats_summary:os_build                   @ 2023/09/23-11:44:10.535000
            "PQ2A.190405.003"
        ----------------------------------------
        phone#4c410523#20190502
          cell_plan:data_plan_05gb                 @ 2023/09/23-11:44:11.545000
            "true"
          stats_summary:connected_cell             @ 2023/09/23-11:44:11.545000
            "1"
          stats_summary:connected_wifi             @ 2023/09/23-11:44:11.545000
            "1"
          stats_summary:os_build                   @ 2023/09/23-11:44:11.545000
            "PQ2A.190405.004"
        ----------------------------------------
        phone#4c410523#20190505\
          stats_summary:connected_cell             @ 2023/09/23-11:44:12.503000
            "0"
          stats_summary:connected_wifi             @ 2023/09/23-11:44:12.503000
            "1"
          stats_summary:os_build                   @ 2023/09/23-11:44:12.503000
            "PQ2A.190406.000"
        ----------------------------------------
        phone#5c10102#20190501
          cell_plan:data_plan_10gb                 @ 2023/09/23-11:44:13.553000
            "true"
          stats_summary:connected_cell             @ 2023/09/23-11:44:13.553000
            "1"
          stats_summary:connected_wifi             @ 2023/09/23-11:44:13.553000
            "1"
          stats_summary:os_build                   @ 2023/09/23-11:44:13.553000
            "PQ2A.190401.002"
        ----------------------------------------
        tablet#5c10102#20190502
          cell_plan:data_plan_10gb                 @ 2023/09/23-11:44:14.480000
            "true"
          stats_summary:connected_cell             @ 2023/09/23-11:44:14.480000
            "1"
          stats_summary:connected_wifi             @ 2023/09/23-11:44:14.480000
            "0"
          stats_summary:os_build                   @ 2023/09/23-11:44:14.480000
                 "PQ2A.190406.000"
    
  3. 省略可: 同じ行と列に新しい値を書き込みます。Bigtable は、新しいタイムスタンプを含む新しいセルを作成して、新しいバージョンのデータを保存します。ターミナル ウィンドウに次のコマンドをコピーして、Enter を押します。

      cbt set test_table phone#4c410523#20190501 stats_summary:connected_cell=2 stats_summary:connected_wifi=5 stats_summary:os_build=PQ2A.190405.003 cell_plan:data_plan_01gb=true cell_plan:data_plan_05gb=false
      cbt set test_table phone#4c410523#20190502 stats_summary:connected_cell=2 stats_summary:connected_wifi=5 stats_summary:os_build=PQ2A.190405.004 cell_plan:data_plan_05gb=false
      cbt set test_table phone#4c410523#20190505 stats_summary:connected_cell=1 stats_summary:connected_wifi=4 stats_summary:os_build=PQ2A.190406.000
      cbt set test_table phone#5c10102#20190501 stats_summary:connected_cell=3 stats_summary:connected_wifi=3 stats_summary:os_build=PQ2A.190401.002 cell_plan:data_plan_10gb=false
      cbt set test_table tablet#5c10102#20190502 stats_summary:connected_cell=2 stats_summary:connected_wifi=0 stats_summary:os_build=PQ2A.190406.000 cell_plan:data_plan_10gb=false
  4. cbt read コマンドを使用して、テーブル内のすべてのデータを読み取ります。

       cbt read test_table

    ターミナルによって次のような出力が表示されます。各列に、固有のタイムスタンプを持つ 2 つのセルが含まれるようになりました。

      ----------------------------------------
      phone#4c410523#20190501
        cell_plan:data_plan_01gb                 @ 2024/07/09-17:48:21.191000
        "true"
        cell_plan:data_plan_01gb                 @ 2024/07/09-17:46:09.369000
        "true"
        cell_plan:data_plan_05gb                 @ 2024/07/09-17:48:21.191000
        "false"
        cell_plan:data_plan_05gb                 @ 2024/07/09-17:46:09.369000
        "true"
        stats_summary:connected_cell             @ 2024/07/09-17:48:21.191000
        "2"
        stats_summary:connected_cell             @ 2024/07/09-17:46:09.369000
        "1"
        stats_summary:connected_wifi             @ 2024/07/09-17:48:21.191000
        "5"
        stats_summary:connected_wifi             @ 2024/07/09-17:46:09.369000
        "1"
        stats_summary:os_build                   @ 2024/07/09-17:48:21.191000
        "PQ2A.190405.003"
        stats_summary:os_build                   @ 2024/07/09-17:46:09.369000
        "PQ2A.190405.003"
    
      ----------------------------------------
      phone#4c410523#20190502
        cell_plan:data_plan_05gb                 @ 2024/07/09-17:48:22.205000
        "false"
        cell_plan:data_plan_05gb                 @ 2024/07/09-17:46:10.455000
        "true"
        stats_summary:connected_cell             @ 2024/07/09-17:48:22.205000
        "2"
        stats_summary:connected_cell             @ 2024/07/09-17:46:10.455000
        "1"
         stats_summary:connected_wifi             @ 2024/07/09-17:48:22.205000
        "5"
        stats_summary:connected_wifi             @ 2024/07/09-17:46:10.455000
        "1"
        stats_summary:os_build                   @ 2024/07/09-17:48:22.205000
        "PQ2A.190405.004"
        stats_summary:os_build                   @ 2024/07/09-17:46:10.455000
        "PQ2A.190405.004"
    
      ----------------------------------------
      phone#4c410523#20190505
        stats_summary:connected_cell             @ 2024/07/09-17:48:23.206000
        "1"
        stats_summary:connected_cell             @ 2024/07/09-17:46:11.402000
        "0"
        stats_summary:connected_wifi             @ 2024/07/09-17:48:23.206000
        "4"
        stats_summary:connected_wifi             @ 2024/07/09-17:46:11.402000
        "1"
        stats_summary:os_build                   @ 2024/07/09-17:48:23.206000
        "PQ2A.190406.000"
        stats_summary:os_build                   @ 2024/07/09-17:46:11.402000
        "PQ2A.190406.000"
    
      ----------------------------------------
      phone#5c10102#20190501
        cell_plan:data_plan_10gb                 @ 2024/07/09-17:48:24.172000
        "false"
        cell_plan:data_plan_10gb                 @ 2024/07/09-17:46:12.388000
        "true"
        stats_summary:connected_cell             @ 2024/07/09-17:48:24.172000
        "3"
        stats_summary:connected_cell             @ 2024/07/09-17:46:12.388000
        "1"
        stats_summary:connected_wifi             @ 2024/07/09-17:48:24.172000
        "3"
        stats_summary:connected_wifi             @ 2024/07/09-17:46:12.388000
        "1"
        stats_summary:os_build                   @ 2024/07/09-17:48:24.172000
        "PQ2A.190401.002"
        stats_summary:os_build                   @ 2024/07/09-17:46:12.388000
        "PQ2A.190401.002"
    
      ----------------------------------------
      tablet#5c10102#20190502
        cell_plan:data_plan_10gb                 @ 2024/07/09-17:48:25.194000
        "false"
        cell_plan:data_plan_10gb                 @ 2024/07/09-17:46:13.391000
        "true"
        stats_summary:connected_cell             @ 2024/07/09-17:48:25.194000
        "2"
        stats_summary:connected_cell             @ 2024/07/09-17:46:13.391000
        "1"
        stats_summary:connected_wifi             @ 2024/07/09-17:48:25.194000
        "0"
        stats_summary:connected_wifi             @ 2024/07/09-17:46:13.391000
        "0"
        stats_summary:os_build                   @ 2024/07/09-17:48:25.194000
        "PQ2A.190406.000"
        stats_summary:os_build                   @ 2024/07/09-17:46:13.391000
        "PQ2A.190406.000"
    

テストデータの使用

これで、test-instancetest_table を使用して、コードサンプルやクエリをテストできるようになりました。

クリーンアップ

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

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

       cbt deletetable test_table

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

       cbt deleteinstance test-instance

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

       rm ~/.cbtrc

次のステップ