C++ の Hello World
この例は、C++ で記述された単純な「Hello World」アプリケーションで、以下の処理を行います。
- 認証の設定
- Bigtable インスタンスに接続する
- 新しいテーブルを作成する
- テーブルにデータを書き込む
- そのデータを読み取る
- テーブルを削除する
認証を設定する
ローカル開発環境でこのページの C++ サンプルを使用するには、gcloud CLI をインストールして初期化し、ユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定します。
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
詳細については Set up authentication for a local development environment をご覧ください。
サンプルの実行
この例では、C++ 用Google Cloud クライアント ライブラリの Cloud Bigtable パッケージを使用して、Bigtable と通信します。
このサンプル プログラムを実行するには、GitHub にある手順を行ってください。
Bigtable での Google Cloud クライアント ライブラリの使用
このサンプル アプリケーションは Bigtable に接続して、いくつかの単純なオペレーションを行います。
クライアント ライブラリのインストールとインポート
GitHub から Bigtable C++ クライアント ライブラリをダウンロードするかクローンを作成して、コンパイルします。最上位の README に記載されているコンパイラの操作手順に沿って行います。
必須のヘッダーを含めます。
Bigtable への接続
MakeBigtableTableAdminConnection()
を使用して、テーブルの作成に使用する BigtableTableAdminClient
を作成します。
テーブルの作成
1 つの列ファミリーを含むテーブルのスキーマを定義します。列ファミリーのガベージ コレクション ルールを設定して、各値に最大で 1 つのバージョンが保持されるようにします。このスキーマに従い、BigtableTableAdminClient::CreateTable()
を使用して、テーブル オブジェクトをインスタンス化します。次に、テーブルにデータを格納する際や、テーブルからデータを取得する際に使用するデータ クライアントを作成します。
テーブルへの行の書き込み
グリーティング文字列のリストをループ処理して、テーブルに新しい行をいくつか作成します。それぞれのイテレーションの中で、SingleRowMutation
を使用して 1 行を定義し、それに行キーと値を割り当てます。Table::Apply()
を呼び出して、行にミューテーションを適用します。
フィルタの作成
書き込んだデータを読み取る前に、Filter::ColumnRangeClosed()
を使用して、Bigtable によって返されるデータを制限するためのフィルタを作成します。このフィルタは、期限切れでも、まだガベージ コレクションによって削除されていない、古いセルがテーブルに含まれている場合でも、各値の最新バージョンのみを返すように Bigtable に指示します。
キーによる行の読み取り
Table::ReadRow()
関数を呼び出して行キーとフィルタを渡し、その行に含まれる値ごとに 1 つのバージョンを取得します。
すべてのテーブル行のスキャン
Table::ReadRows()
を使用して、テーブルから特定の範囲の行を読み取ります。
テーブルの削除
BigtableTableAdminClient::DeleteTable()
を使用してテーブルを削除します。
すべてを組み合わせる
コメントなしの例を以下に示します。