C++ の Hello World
この例は、C++ で記述された単純な「Hello World」アプリケーションで、以下の処理を行います。
- 認証の設定
- Bigtable インスタンスに接続する
- 新しいテーブルを作成する
- テーブルにデータを書き込む
- そのデータを読み取る
- テーブルを削除する
認証の設定
ローカル開発環境でこのページの C++ サンプルを使用するには、gcloud CLI をインストールして 初期化し、ユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定します。
-
Google Cloud CLI をインストールします。
-
外部 ID プロバイダ(IdP)を使用している場合は、まず フェデレーション ID を使用して gcloud CLI にログインする必要があります。
-
ローカルシェルを使用している場合は、ユーザー アカウントのローカル認証情報を作成します。
gcloud auth application-default login
Cloud Shell を使用している場合は、この操作を行う必要はありません。
認証エラーが返され、外部 ID プロバイダ (IdP)を使用している場合は、フェデレーション ID を使用して gcloud CLI にログインしていることを確認します。
詳細については、 ローカル開発環境の認証を設定するをご覧ください。
サンプルの実行
この例では、Cloud Bigtable package of the Google Cloud C++ 用クライアント ライブラリ を使用して、 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() を使用してテーブルを削除します。
すべてを組み合わせる
コメントなしの例を以下に示します。