cbt CLI でインスタンスを作成してデータを書き込む

Bigtable について学習する場合は、クイックスタートに一通り目を通しておくと、本番環境で大規模に使用することになる基礎を実際に体験できます。

このクイックスタートでは、次のアクションを実行します。

  • Bigtable インスタンスに接続する
  • 基本的な管理タスクを実行する
  • テーブルにデータを書き込む
  • テーブルからデータを読み取る

始める前に

  1. Google Cloud CLI をインストールします。

  2. フェデレーション ID(連携 ID)を使用するように gcloud CLI を構成します。

    詳細については、 フェデレーション ID を使用して gcloud CLI にログインするをご覧ください。

  3. gcloud CLI を初期化するには、次のコマンドを実行します。

    gcloud init
  4. Cloud de Confiance プロジェクトを作成または選択します。

    プロジェクトの選択または作成に必要なロール

    • プロジェクトを選択する: プロジェクトの選択に特定の IAM ロールは必要ありません。ロールが付与されているプロジェクトであれば、どのプロジェクトでも選択できます。
    • プロジェクトを作成する: プロジェクトを作成するには、resourcemanager.projects.create 権限を含むプロジェクト作成者ロール(roles/resourcemanager.projectCreator)が必要です。詳しくは、ロールを付与する方法をご覧ください。
    • Cloud de Confiance プロジェクトを作成します。

      gcloud projects create PROJECT_ID

      PROJECT_ID は、作成する Cloud de Confiance プロジェクトの名前に置き換えます。

    • 作成した Cloud de Confiance プロジェクトを選択します。

      gcloud config set project PROJECT_ID

      PROJECT_ID は、 Cloud de Confiance プロジェクトの名前に置き換えます。

  5. Cloud de Confiance プロジェクトで課金が有効になっていることを確認します。

  6. Cloud Bigtable API と Cloud Bigtable Admin API がまだ有効になっていない場合は、有効にします。

    API を有効にするために必要なロール

    API を有効にするには、serviceusage.services.enable 権限が必要です。プロジェクトを作成した場合は、オーナーロール(roles/owner)を通じてこの権限がすでに付与されている可能性があります。それ以外の場合は、Service Usage 管理者ロール(roles/serviceusage.serviceUsageAdmin)を通じてこの権限を取得できます。ロールを付与する方法を確認する。

    gcloud services enable bigtable.googleapis.com bigtableadmin.googleapis.com
  7. ユーザー アカウントにロールを付与します。次の IAM ロールごとに次のコマンドを 1 回実行します。 roles/bigtable.admin

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE

    次のように置き換えます。

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

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

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

    インスタンスの作成

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

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

  4. [続行] をクリックします。

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

  6. [続行] をクリックします。

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

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

  9. [ゾーン] で [すべて] を選択します。

  10. [ノード スケーリング モード] で [手動で割り当てる] を選択します。

  11. [数量] で [1] を選択します。

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

インスタンスへの接続

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

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

    cat ~/.cbtrc

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

    project = PROJECT_ID
    instance = quickstart-instance

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

データの読み取りと書き込み

Bigtable では、いくつもの行で構成されたテーブルにデータが格納されます。各行は行キーによって識別されます。

各行内のデータは、列のグループである「列ファミリー」に整理されます。列ファミリー内の個々の列は列修飾子によって識別されます。

行と列が交差する部分に、タイムスタンプ付きのセルが複数存在することがあります。

  1. テーブルを my-table という名前で作成します。

    cbt createtable my-table
  2. テーブルの一覧を表示します。

    cbt ls

    コマンドによって次のような出力が表示されます。

        my-table

  3. 1 つの列ファミリーを cf1 という名前で追加します。

    cbt createfamily my-table cf1
  4. 列ファミリーを一覧表示します。

    cbt ls my-table

    コマンドによって次のような出力が表示されます。

        Family Name     GC Policy
        -----------     ---------
        cf1             <never>

  5. 列ファミリー cf1 と列修飾子 c1 を使用して、値 test-value1 と test-value2 を行 r1 に書き込みます。

    cbt set my-table r1 cf1:c1=test-value1
      cbt set my-table r1 cf1:c1=test-value2
    
  6. cbt read コマンドを使用して、テーブルに追加したデータを読み取ります。

    cbt read my-table

    シェルによって次のような出力が表示されます。

        ----------------------------------------
        r1
          cf1:c1                                   @ 2023/03/22-06:56:11.323000
            "test-value1"
          cf1:c1                                   @ 2023/03/22-06:56:04.361000
            "test-value2"

    タイムスタンプが同じ 2 つの値が、同じ列の r1 行に格納されます。

クリーンアップ

このクイックスタートで使用したリソースに対して Cloud de Confiance アカウントに課金されないようにするには、インスタンスを削除します。.cbtrc ファイルを削除すると、別のプロジェクトに取り組む準備が整います。

  1. テーブル my-table を削除します。

    cbt deletetable my-table
  2. インスタンスを削除します。

    cbt deleteinstance quickstart-instance
  3. .cbtrc ファイルを削除します。

    rm ~/.cbtrc

  4. (省略可)gcloud CLI から認証情報を取り消します。

    gcloud auth revoke

次のステップ