Bigtable でカウンタを作成して更新する
書き込み時に値を集計するテーブル セルである集計を使用して、Bigtable でカウンタを作成して更新する方法について学びます。このクイックスタートでは、Google Cloud CLI と cbt
CLI を使用して、次の 3 つのカウンタを作成します。
- 累積合計を保持するカウンタ
- 追加されたすべての値の最小値を追跡するカウンタ
- 追加されたすべての値の最大値を追跡するカウンタ
始める前に
-
Sign in to your Google Account.
If you don't already have one, sign up for a new account.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Update and install
gcloud
components:gcloud components update
gcloud components install cbt -
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Bigtable API and Cloud Bigtable Admin API APIs:
gcloud services enable bigtable.googleapis.com
bigtableadmin.googleapis.com - Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Update and install
gcloud
components:gcloud components update
gcloud components install cbt -
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Bigtable API and Cloud Bigtable Admin API APIs:
gcloud services enable bigtable.googleapis.com
bigtableadmin.googleapis.com - 次のコマンドを実行して、gcloud CLI が最新の状態であり、
cbt
CLI が含まれていることを確認します。gcloud components update
gcloud components install cbt
Bigtable インスタンスを作成する
bigtable instances create
コマンドを使用して、インスタンスを作成します。gcloud bigtable instances create counters-quickstart-instance \ --display-name="Counters quickstart instance" \ --cluster-config=id="counters-quickstart-cluster",zone="us-east1-c"
インスタンスへの接続
プロジェクトとインスタンスを使用するように
cbt
CLI を構成するため、.cbtrc
ファイルを作成します。echo project = PROJECT_ID >> ~/.cbtrc && echo instance = counters-quickstart-instance >> ~/.cbtrc
PROJECT_ID は、使用しているプロジェクトの ID に置き換えます。
.cbtrc
ファイルが正しく設定されていることを確認します。cat ~/.cbtrc
ターミナルに
.cbtrc
ファイルの内容が次のように表示されます。project = PROJECT_ID instance = counters-quickstart-instance
これで、インスタンスで
cbt
CLI を使用できるようになりました。
集計列ファミリーを含むテーブルを作成する
cbt createtable
コマンドを使用して、3 つの集計列ファミリーを持つcounters_quickstart_table
という名前のテーブルを作成します。各列ファミリーに異なる集計タイプを構成します。- 列ファミリー
max_family
は、入力タイプがInteger
のMax
型です。 - 列ファミリー
min_family
は、入力タイプがInteger
のMin
型です。 - 列ファミリー
sum_family
は、入力タイプがInteger
のSum
型です。
cbt createtable counters_quickstart_table families=sum_family:never:intsum,min_family:never:intmin,max_family:never:intmax
- 列ファミリー
cbt ls
コマンドを実行して、列ファミリーを一覧表示します。cbt ls counters_quickstart_table
シェルによって次のような出力が表示されます。
Family Name GC Policy ----------- --------- max_family <never> min_family <never> sum_family <never>
テーブルにカウンタを作成する
cbt addtocell
コマンドを使用して、row-key1
の行キーと0
のタイムスタンプを使用して、3 つの列ファミリーの新しい列に5
の初期値を書き込みます。このオペレーションにより、カウンタとして使用する集計セルが作成されます。cbt addtocell counters_quickstart_table row-key1 sum_family:sum_column=5@0 cbt addtocell counters_quickstart_table row-key1 min_family:min_column=5@0 cbt addtocell counters_quickstart_table row-key1 max_family:max_column=5@0
データを読み取る
カウンタ値をバイトではなく整数として表示するには、
cbt
CLI が出力のフォーマットに使用できるyaml
ファイルを定義します。以下のコマンドを実行します。echo "families:" > cbtformat.yaml echo " max_family:" >> cbtformat.yaml echo " default_encoding: BigEndian" >> cbtformat.yaml echo " default_type: INT64" >> cbtformat.yaml echo " min_family:" >> cbtformat.yaml echo " default_encoding: BigEndian" >> cbtformat.yaml echo " default_type: INT64" >> cbtformat.yaml echo " sum_family:" >> cbtformat.yaml echo " default_encoding: BigEndian" >> cbtformat.yaml echo " default_type: INT64" >> cbtformat.yaml
cbtformat.yaml
ファイルが正しく設定されていることを確認します。cat ~/cbtformat.yaml
ターミナルに
cbtformat.yaml
ファイルの内容が次のように表示されます。families: max_family: default_encoding: BigEndian default_type: INT64 min_family: default_encoding: BigEndian default_type: INT64 sum_family: default_encoding: BigEndian default_type: INT64
cbt read
コマンドを使用してyaml
ファイルを渡し、テーブルに追加したデータを読み取ります。テーブルに 3 つの列が追加され、それぞれに異なる集計タイプが設定されています。cbt read counters_quickstart_table format-file=$HOME/cbtformat.yaml
シェルによって次のような出力が表示されます。値は整数としてフォーマットされ、タイムスタンプは UTC 形式です。
row-key1 max_family:max_column @ 1970/01/01-00:00:00.000000 5 min_family:min_column @ 1970/01/01-00:00:00.000000 5 sum_family:sum_column @ 1970/01/01-00:00:00.000000 5
カウンタを更新する
セルの作成時に使用した同じタイムスタンプを使用して、テーブルの各列に 3 という値を追加します。各列で、セルの値はセルの集計タイプに基づいて既存の値と統合されます。
cbt addtocell counters_quickstart_table row-key1 sum_family:sum_column=3@0 cbt addtocell counters_quickstart_table row-key1 min_family:min_column=3@0 cbt addtocell counters_quickstart_table row-key1 max_family:max_column=3@0
cbt read
コマンドをもう一度使用して、テーブルのデータを読み取ります。各セルに集計値が含まれるようになりました。cbt read counters_quickstart_table format-file=$HOME/cbtformat.yaml
sum_column
には 5 と 3 の合計(8)が含まれ、min_column
には書き込まれた 2 つの値の最小値(3)が含まれ、max_column
には書き込まれた 2 つの値の最大値(5)が含まれます。row-key1 max_family:max_column @ 1970/01/01-00:00:00.000000 5 min_family:min_column @ 1970/01/01-00:00:00.000000 3 sum_family:sum_column @ 1970/01/01-00:00:00.000000 8
省略可: Google Cloud コンソールで SQL を使用してテーブルに対してクエリを実行します。
Google Cloud コンソールで、[Bigtable インスタンス] ページを開きます。
リストから
counters-quickstart-instance
を選択します。ナビゲーション メニューで [Bigtable Studio] をクリックします。
[エディタ] タブをクリックします。
次のクエリをエディタに貼り付けます。
SELECT * FROM `counters_quickstart_table`
[実行] をクリックします。クエリの結果は [結果] テーブルに表示されます。結果は次のようになります。
_key max_family min_family sum_family row-key1 { "max_column": 5 } { "min_column": 5 } { "sum_column": 8 }
クリーンアップ
このページで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、Google Cloud プロジェクトとそのリソースをまとめて削除してください。
ターミナルで、テーブル
counters_quickstart_table
を削除します。cbt deletetable counters_quickstart_table
インスタンスを削除します。
cbt deleteinstance counters-quickstart-instance
.cbtrc
ファイルを削除します。rm ~/.cbtrc
書式設定ファイルを削除します。
rm ~/cbtformat.yaml
(省略可)gcloud CLI から認証情報を取り消します。
gcloud auth revoke