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

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

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

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

始める前に

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

  3. 外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。

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

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

    プロジェクトを選択または作成するために必要なロール

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

      gcloud projects create PROJECT_ID

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

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

      gcloud config set project PROJECT_ID

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

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

  7. Cloud Bigtable と Cloud Bigtable Admin API を有効にします。

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

    API を有効にするには、 権限を含む Service Usage 管理者 IAM ロール(roles/serviceusage.serviceUsageAdmin)が必要です。serviceusage.services.enableロールを付与する方法を確認する

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

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

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

    • PROJECT_ID: プロジェクト ID。
    • USER_IDENTIFIER: ユーザー アカウントの識別子。例: myemail@example.com
    • ROLE: ユーザー アカウントに付与する IAM ロール。
  9. Google Cloud CLI をインストールします。

  10. 外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。

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

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

    プロジェクトを選択または作成するために必要なロール

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

      gcloud projects create PROJECT_ID

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

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

      gcloud config set project PROJECT_ID

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

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

  14. Cloud Bigtable と Cloud Bigtable Admin API を有効にします。

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

    API を有効にするには、 権限を含む Service Usage 管理者 IAM ロール(roles/serviceusage.serviceUsageAdmin)が必要です。serviceusage.services.enableロールを付与する方法を確認する

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

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

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

    • PROJECT_ID: プロジェクト ID。
    • USER_IDENTIFIER: ユーザー アカウントの識別子。例: myemail@example.com
    • ROLE: ユーザー アカウントに付与する IAM ロール。
  16. 次のコマンドを実行して cbt CLI をインストールします。
    gcloud components install cbt

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

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

    インスタンスの作成

  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

次のステップ