cbt CLI でインスタンスを作成してデータを書き込む
Bigtable について学習する場合は、クイックスタートに一通り目を通しておくと、本番環境で大規模に使用することになる基礎を実際に体験できます。
このクイックスタートでは、次のアクションを実行します。
- Bigtable インスタンスに接続する
- 基本的な管理タスクを実行する
- テーブルにデータを書き込む
- テーブルからデータを読み取る
始める前に
- アカウントにログインします。 Google Cloud を初めて使用する場合は、 アカウントを作成して、実際のシナリオで Google プロダクトのパフォーマンスを評価してください。 Google Cloud新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
-
Google Cloud CLI をインストールします。
-
外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
-
gcloud CLI を初期化するには、次のコマンドを実行します:
gcloud init -
プロジェクトを作成または選択します 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 プロジェクトの名前に置き換えます。
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 -
ユーザー アカウントにロールを付与します。次の IAM ロールごとに次のコマンドを 1 回実行します。
roles/bigtable.admingcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
次のように置き換えます。
PROJECT_ID: プロジェクト ID。USER_IDENTIFIER: ユーザー アカウントの識別子。例:myemail@example.com。ROLE: ユーザー アカウントに付与する IAM ロール。
-
Google Cloud CLI をインストールします。
-
外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
-
gcloud CLI を初期化するには、次のコマンドを実行します:
gcloud init -
プロジェクトを作成または選択します 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 プロジェクトの名前に置き換えます。
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 -
ユーザー アカウントにロールを付与します。次の IAM ロールごとに次のコマンドを 1 回実行します。
roles/bigtable.admingcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
次のように置き換えます。
PROJECT_ID: プロジェクト ID。USER_IDENTIFIER: ユーザー アカウントの識別子。例:myemail@example.com。ROLE: ユーザー アカウントに付与する IAM ロール。
- 次のコマンドを実行して
cbtCLI をインストールします。gcloud components install cbt
Bigtable インスタンスを作成する
コンソールで [インスタンスの作成] ページを開きます。 Google Cloud
[インスタンス名] に「
Quickstart instance」と入力します。[インスタンス ID] に「
quickstart-instance」と入力します。[続行] をクリックします。
[ストレージの種類] で [SSD] を選択します。
[続行] をクリックします。
[クラスタ ID] に「
quickstart-instance-c1」と入力します。[リージョン] で、お近くのリージョンを選択します。
[ゾーン] で [すべて] を選択します。
[ノード スケーリング モード] で [手動で割り当てる] を選択します。
[数量] で [1] を選択します。
[作成] をクリックしてインスタンスを作成します。
インスタンスへの接続
プロジェクトとインスタンスを使用するように
cbtCLI を構成するため、.cbtrcファイルを作成し、PROJECT_IDを Bigtable インスタンスの作成先であるプロジェクトの ID に置き換えます。echo project = PROJECT_ID >> ~/.cbtrc && echo instance = quickstart-instance >> ~/.cbtrc
.cbtrcファイルを正しく設定したことを確認します。cat ~/.cbtrc
ターミナルに
.cbtrcファイルの内容が次のように表示されます。project = PROJECT_ID instance = quickstart-instance
これで、インスタンスで
cbtCLI を使用できるようになりました。
データの読み取りと書き込み
Bigtable では、いくつもの行で構成されたテーブルにデータが格納されます。各行は行キーによって識別されます。
各行内のデータは、列のグループである「列ファミリー」に整理されます。列ファミリー内の個々の列は列修飾子によって識別されます。
行と列が交差する部分に、タイムスタンプ付きのセルが複数存在することがあります。
テーブルを
my-tableという名前で作成します。cbt createtable my-table
テーブルの一覧を表示します。
cbt ls
コマンドによって次のような出力が表示されます。
my-table1 つの列ファミリーを
cf1という名前で追加します。cbt createfamily my-table cf1
列ファミリーを一覧表示します。
cbt ls my-table
コマンドによって次のような出力が表示されます。
Family Name GC Policy ----------- --------- cf1 <never>列ファミリー
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
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 ファイルを削除すると、別のプロジェクトで作業できるようになります。
テーブル
my-tableを削除します。cbt deletetable my-table
インスタンスを削除します。
cbt deleteinstance quickstart-instance
.cbtrcファイルを削除します。rm ~/.cbtrc
(省略可)gcloud CLI から認証情報を取り消します。
gcloud auth revoke
次のステップ
- Bigtable Codelab に取り組む。
cbtCLI リファレンス ドキュメントを見る。- 不正行為の検出のユースケースのサンプル ソースコードを見る。
- C#、C++、Go、Java、Node.js、PHP、Python、Ruby で、または Java 用 HBase クライアントを使用して Hello World アプリケーションを作成する。