テストテーブルの作成
このページでは、コード スニペットのテストで使用できる小さな Bigtable テーブルを作成する手順について説明します。このテーブルには、スマートフォンやタブレットの時系列データが格納されます。
この手順では、Google Cloud コンソールと cbt
CLI(Bigtable 専用に構築されたコマンドライン インターフェース)を使用します。
始める前に
テストテーブルを作成する前に、次の前提条件を満たす必要があります。
認証の設定
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
本番環境での認証の設定については、 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 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 @ 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