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

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

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

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

始める前に

  1. Google Cloud アカウントにログインします。Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
  2. Google Cloud CLI をインストールします。
  3. gcloud CLI を初期化するには:

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

    • Google Cloud プロジェクトを作成します。

      gcloud projects create PROJECT_ID

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

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

      gcloud config set project PROJECT_ID

      PROJECT_ID は、実際の Google Cloud プロジェクト名に置き換えます。

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

  6. Cloud Bigtable and Cloud Bigtable Admin API を有効にします。

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

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:EMAIL_ADDRESS" --role=ROLE
    • PROJECT_ID は、実際のプロジェクト ID に置き換えます。
    • EMAIL_ADDRESS は実際のメールアドレスに置き換えます。
    • ROLE は、個々のロールに置き換えます。
  8. Google Cloud CLI をインストールします。
  9. gcloud CLI を初期化するには:

    gcloud init
  10. Google Cloud プロジェクトを作成または選択します

    • Google Cloud プロジェクトを作成します。

      gcloud projects create PROJECT_ID

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

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

      gcloud config set project PROJECT_ID

      PROJECT_ID は、実際の Google Cloud プロジェクト名に置き換えます。

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

  12. Cloud Bigtable and Cloud Bigtable Admin API を有効にします。

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

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:EMAIL_ADDRESS" --role=ROLE
    • PROJECT_ID は、実際のプロジェクト ID に置き換えます。
    • EMAIL_ADDRESS は実際のメールアドレスに置き換えます。
    • ROLE は、個々のロールに置き換えます。
  14. 次のコマンドを実行して cbt CLI をインストールします。
    gcloud components install cbt

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

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

    インスタンスの作成

  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-value1test-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 行に格納されます。

クリーンアップ

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

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

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

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

    rm ~/.cbtrc

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

    gcloud auth revoke

次のステップ