テストテーブルの作成
このページでは、コード スニペットのテストで使用できる小さな Bigtable テーブルを作成する手順について説明します。このテーブルには、スマートフォンやタブレットの時系列データが格納されます。
この手順では、Google Cloud コンソールと cbt
CLI(Bigtable 専用に構築されたコマンドライン インターフェース)を使用します。
始める前に
テストテーブルを作成する前に、次の前提条件を満たす必要があります。
認証の設定
このページの gcloud CLI のサンプルは、次のいずれかの開発環境から使用できます。
-
Cloud Shell: gcloud CLI がすでに設定されているオンライン ターミナルを使用するには、Cloud Shell をアクティブにします。
このページの下部で Cloud Shell セッションが開始し、コマンドライン プロンプトが表示されます。セッションが初期化されるまで数秒かかることがあります。
-
ローカルシェル: ローカル開発環境で gcloud CLI を使用するには、gcloud CLI をインストールして初期化してください。
本番環境の認証の設定については、 Google Cloud で実行するコードのためのアプリケーションのデフォルト認証情報を設定するをご覧ください。
IAM ロールを付与
テストテーブルの作成に必要な権限を取得するには、プロジェクトに対する Bigtable 管理���(roles/bigtable.admin
)IAM ロールの付与を管理者に依頼してください。ロールの付与の詳細については、アクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
cbt
CLI をインストールします。
次のコマンドを実行して cbt
CLI をインストールします。
gcloud components install cbt
インスタンスの作成
任意のプロジェクトで、テストテーブルを保存するテスト インスタンスを作成します。このテーブルは小さいため、単一ノードのインスタンスのみで十分です。
Google Cloud Console で [インスタンスの作成] ページを開きます。
[インスタンス名] に「
Test instance
」と入力します。[インスタンス ID] に「
test-instance
」と入力します。[ストレージの種類] で [SSD] を選択します。
[クラスタ ID] に「
test-instance-c1
」と入力します。[リージョン] で、お近くのリージョンを選択します。
[ゾーン] で、選択したリージョンのゾーンを選択します。
[ノード] に「
1
」と入力します。[作成] をクリックしてインスタンスを作成します。
インスタンスに接続する
プロジェクトとインスタンスを使用するように
cbt
CLI を構成するため、.cbtrc
ファイルを作成し、PROJECT_ID
を Bigtable インスタンスの作成先であるプロジェクトの ID に置き換えます。echo project = PROJECT_ID >> ~/.cbtrc && echo instance = test-instance >> ~/.cbtrc
.cbtrc
ファイルを正しく設定したことを確認します。cat ~/.cbtrc
ターミナルに
.cbtrc
ファイルの内容が次のように表示されます。project = PROJECT_ID instance = test-instance
これで、インスタンスで
cbt
CLI を使用できるようにな���ました。
テストテーブルの作成
2 つの列ファミリーを持つ
test-table
という名前のテーブルを作成します。列ファミリーごとに、1 つのガベージ コレクション ポリシーを設定し、列ごとに最大で 2 つのセルを保持します。cbt createtable test-table "families=stats_summary:maxversions=2,stats_detail:maxversions=2,cell_plan:maxversions=2"
列ファミリーを一覧表示します。
cbt ls test-table
ターミナルによって次のような出力が表示されます。
Family Name GC Policy ----------- --------- stats_detail versions() > 2 stats_summary versions() > 2 cell_plan versions() > 2
テーブルに入力
ターミナル ウィンドウに次のコマンドをコピーして、
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
cbt read
コマンドを使用して、テーブルに追加したデータを読み取ります。cbt read test-table
ターミナルによって次のような出力が表示されます。書き込みリクエストにはタイムスタンプが含まれないため、タイムスタンプはセルに自動的に割り当てられます。
---------------------------------------- phone#4c410523#20190501 cell_plan:data_plan_01gb @ 2020/09/23-11:44:10.535000 "true" cell_plan:data_plan_05gb @ 2020/09/23-11:44:10.535000 "true" stats_summary:connected_cell @ 2020/09/23-11:44:10.535000 "1" stats_summary:connected_wifi @ 2020/09/23-11:44:10.535000 "1" stats_summary:os_build @ 2020/09/23-11:44:10.535000 "PQ2A.190405.003" ---------------------------------------- phone#4c410523#20190502 cell_plan:data_plan_05gb @ 2020/09/23-11:44:11.545000 "true" stats_summary:connected_cell @ 2020/09/23-11:44:11.545000 "1" stats_summary:connected_wifi @ 2020/09/23-11:44:11.545000 "1" stats_summary:os_build @ 2020/09/23-11:44:11.545000 "PQ2A.190405.004" ---------------------------------------- phone#4c410523#20190505
stats_summary:connected_cell @ 2020/09/23-11:44:12.503000 "0" stats_summary:connected_wifi @ 2020/09/23-11:44:12.503000 "1" stats_summary:os_build @ 2020/09/23-11:44:12.503000 "PQ2A.190406.000" ---------------------------------------- phone#5c10102#20190501 cell_plan:data_plan_10gb @ 2020/09/23-11:44:13.553000 "true" stats_summary:connected_cell @ 2020/09/23-11:44:13.553000 "1" stats_summary:connected_wifi @ 2020/09/23-11:44:13.553000 "1" stats_summary:os_build @ 2020/09/23-11:44:13.553000 "PQ2A.190401.002" ---------------------------------------- tablet#5c10102#20190502 cell_plan:data_plan_10gb @ 2020/09/23-11:44:14.480000 "true" stats_summary:connected_cell @ 2020/09/23-11:44:14.480000 "1" stats_summary:connected_wifi @ 2020/09/23-11:44:14.480000 "0" stats_summary:os_build @ 2020/09/23-11:44:14.480000 "PQ2A.190406.000"
テストデータの使用
これで、test-instance
で test-table
を使用して、コード スニペットを試すことができるようになりました。
クリーンアップ
この手順で作成したリソースについて、Google Cloud アカウントに課金されないようにするには、テストの完了後すぐにインスタンスを削除します。.cbtrc ファイルを削除すると、別のプロジェクトで作業できるようになります。
インスタンスを削除せずにテーブルを削除する場合は、
deletetable
コマンドを使用します。cbt deletetable test-table
今後インスタンスをテストに使用する予定がない場合は、インスタンスを削除します。この操作を行うと、テーブルも削除されます。
cbt deleteinstance test-instance
.cbtrc ファイルを削除します。
rm ~/.cbtrc