テストテーブルの作成
このページでは、コード スニペットのテストで使用できる小さな Bigtable テーブルを作成する手順について説明します。このテーブルには、スマートフォンやタブレットの時系列データが含まれます。
この手順では、 Google Cloud コンソールと cbt
CLI(Bigtable 専用に構築されたコマンドライン インターフェース)を使用します。
始める前に
テストテーブルを作成する前に、次の前提条件を満たしてください。
認証を設定する
Google Cloud CLI をインストールし、フェデレーション ID を使用して gcloud CLI にログインします。 ログイン後、次のコマンドを実行して Google Cloud CLI を初期化します。
gcloud init
本番環境での認証の設定については、 Set up Application Default Credentials for code running on Google Cloudをご覧ください。
IAM ロールを付与
テストテーブルの作成に必要な権限を取得するには、プロジェクトに対する Bigtable 管理者 (roles/bigtable.admin
)IAM ロールの付与を管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
cbt
CLI をインストールします。
次のコマンドを実行して cbt
CLI をインストールします。
gcloud components install cbt
インスタンスの作成
任意のプロジェクトで、テストテーブルを保存するテスト インスタンスを作成します。このテーブルは小さいため、単一ノードのインスタンスのみで十分です。
Google Cloud コンソールで [インスタンスの作成] ページを開きます。
[インスタンス名] に「
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 @ 2023/09/23-11:44:10.535000 "true" cell_plan:data_plan_05gb @ 2023/09/23-11:44:10.535000 "true" stats_summary:connected_cell @ 2023/09/23-11:44:10.535000 "1" stats_summary:connected_wifi @ 2023/09/23-11:44:10.535000 "1" stats_summary:os_build @ 2023/09/23-11:44:10.535000 "PQ2A.190405.003" ---------------------------------------- phone#4c410523#20190502 cell_plan:data_plan_05gb @ 2023/09/23-11:44:11.545000 "true" stats_summary:connected_cell @ 2023/09/23-11:44:11.545000 "1" stats_summary:connected_wifi @ 2023/09/23-11:44:11.545000 "1" stats_summary:os_build @ 2023/09/23-11:44:11.545000 "PQ2A.190405.004" ---------------------------------------- phone#4c410523#20190505\ stats_summary:connected_cell @ 2023/09/23-11:44:12.503000 "0" stats_summary:connected_wifi @ 2023/09/23-11:44:12.503000 "1" stats_summary:os_build @ 2023/09/23-11:44:12.503000 "PQ2A.190406.000" ---------------------------------------- phone#5c10102#20190501 cell_plan:data_plan_10gb @ 2023/09/23-11:44:13.553000 "true" stats_summary:connected_cell @ 2023/09/23-11:44:13.553000 "1" stats_summary:connected_wifi @ 2023/09/23-11:44:13.553000 "1" stats_summary:os_build @ 2023/09/23-11:44:13.553000 "PQ2A.190401.002" ---------------------------------------- tablet#5c10102#20190502 cell_plan:data_plan_10gb @ 2023/09/23-11:44:14.480000 "true" stats_summary:connected_cell @ 2023/09/23-11:44:14.480000 "1" stats_summary:connected_wifi @ 2023/09/23-11:44:14.480000 "0" stats_summary:os_build @ 2023/09/23-11:44:14.480000 "PQ2A.190406.000"
省略可: 同じ行と列に新しい値を書き込みます。Bigtable は、新しいタイムスタンプを含む新しいセルを作成して、新しいバージョンのデータを保存します。ターミナル ウィンドウに次のコマンドをコピーして、
Enter
を押します。cbt set test_table phone#4c410523#20190501 stats_summary:connected_cell=2 stats_summary:connected_wifi=5 stats_summary:os_build=PQ2A.190405.003 cell_plan:data_plan_01gb=true cell_plan:data_plan_05gb=false cbt set test_table phone#4c410523#20190502 stats_summary:connected_cell=2 stats_summary:connected_wifi=5 stats_summary:os_build=PQ2A.190405.004 cell_plan:data_plan_05gb=false cbt set test_table phone#4c410523#20190505 stats_summary:connected_cell=1 stats_summary:connected_wifi=4 stats_summary:os_build=PQ2A.190406.000 cbt set test_table phone#5c10102#20190501 stats_summary:connected_cell=3 stats_summary:connected_wifi=3 stats_summary:os_build=PQ2A.190401.002 cell_plan:data_plan_10gb=false cbt set test_table tablet#5c10102#20190502 stats_summary:connected_cell=2 stats_summary:connected_wifi=0 stats_summary:os_build=PQ2A.190406.000 cell_plan:data_plan_10gb=false
cbt read
コマンドを使用して、テーブル内のすべてのデータを読み取ります。cbt read test_table
ターミナルによって次のような出力が表示されます。各列に、固有のタイムスタンプを持つ 2 つのセルが含まれるようになりました。
---------------------------------------- phone#4c410523#20190501 cell_plan:data_plan_01gb @ 2024/07/09-17:48:21.191000 "true" cell_plan:data_plan_01gb @ 2024/07/09-17:46:09.369000 "true" cell_plan:data_plan_05gb @ 2024/07/09-17:48:21.191000 "false" cell_plan:data_plan_05gb @ 2024/07/09-17:46:09.369000 "true" stats_summary:connected_cell @ 2024/07/09-17:48:21.191000 "2" stats_summary:connected_cell @ 2024/07/09-17:46:09.369000 "1" stats_summary:connected_wifi @ 2024/07/09-17:48:21.191000 "5" stats_summary:connected_wifi @ 2024/07/09-17:46:09.369000 "1" stats_summary:os_build @ 2024/07/09-17:48:21.191000 "PQ2A.190405.003" stats_summary:os_build @ 2024/07/09-17:46:09.369000 "PQ2A.190405.003" ---------------------------------------- phone#4c410523#20190502 cell_plan:data_plan_05gb @ 2024/07/09-17:48:22.205000 "false" cell_plan:data_plan_05gb @ 2024/07/09-17:46:10.455000 "true" stats_summary:connected_cell @ 2024/07/09-17:48:22.205000 "2" stats_summary:connected_cell @ 2024/07/09-17:46:10.455000 "1" stats_summary:connected_wifi @ 2024/07/09-17:48:22.205000 "5" stats_summary:connected_wifi @ 2024/07/09-17:46:10.455000 "1" stats_summary:os_build @ 2024/07/09-17:48:22.205000 "PQ2A.190405.004" stats_summary:os_build @ 2024/07/09-17:46:10.455000 "PQ2A.190405.004" ---------------------------------------- phone#4c410523#20190505 stats_summary:connected_cell @ 2024/07/09-17:48:23.206000 "1" stats_summary:connected_cell @ 2024/07/09-17:46:11.402000 "0" stats_summary:connected_wifi @ 2024/07/09-17:48:23.206000 "4" stats_summary:connected_wifi @ 2024/07/09-17:46:11.402000 "1" stats_summary:os_build @ 2024/07/09-17:48:23.206000 "PQ2A.190406.000" stats_summary:os_build @ 2024/07/09-17:46:11.402000 "PQ2A.190406.000" ---------------------------------------- phone#5c10102#20190501 cell_plan:data_plan_10gb @ 2024/07/09-17:48:24.172000 "false" cell_plan:data_plan_10gb @ 2024/07/09-17:46:12.388000 "true" stats_summary:connected_cell @ 2024/07/09-17:48:24.172000 "3" stats_summary:connected_cell @ 2024/07/09-17:46:12.388000 "1" stats_summary:connected_wifi @ 2024/07/09-17:48:24.172000 "3" stats_summary:connected_wifi @ 2024/07/09-17:46:12.388000 "1" stats_summary:os_build @ 2024/07/09-17:48:24.172000 "PQ2A.190401.002" stats_summary:os_build @ 2024/07/09-17:46:12.388000 "PQ2A.190401.002" ---------------------------------------- tablet#5c10102#20190502 cell_plan:data_plan_10gb @ 2024/07/09-17:48:25.194000 "false" cell_plan:data_plan_10gb @ 2024/07/09-17:46:13.391000 "true" stats_summary:connected_cell @ 2024/07/09-17:48:25.194000 "2" stats_summary:connected_cell @ 2024/07/09-17:46:13.391000 "1" stats_summary:connected_wifi @ 2024/07/09-17:48:25.194000 "0" stats_summary:connected_wifi @ 2024/07/09-17:46:13.391000 "0" stats_summary:os_build @ 2024/07/09-17:48:25.194000 "PQ2A.190406.000" stats_summary:os_build @ 2024/07/09-17:46:13.391000 "PQ2A.190406.000"
テストデータの使用
これで、test-instance
で test_table
を使用して、コードサンプルやクエリをテストできるようになりました。
クリーンアップ
この手順で作成したリソースについて、 Google Cloud アカウントに課金されないようにするには、テストの完了後すぐにインスタンスを削除します。.cbtrc ファイルを削除すると、別のプロジェクトで作業できるようになります。
インスタンスを削除せずにテーブルを削除する場合は、
deletetable
コマンドを使用します。cbt deletetable test_table
今後インスタンスをテストに使用する予定がない場合は、インスタンスを削除します。この操作を行うと、テーブルも削除されます。
cbt deleteinstance test-instance
.cbtrc ファイルを削除します。
rm ~/.cbtrc