C# の Hello World
このコードサンプルは C# で記述された「Hello World」アプリケーションです。このサンプルでは、次のタスクを行う方法を説明します。
- 認証の設定
- Bigtable インスタンスに接続する
- 新しいテーブルを作成する
- テーブルにデータを書き込む
- そのデータを読み取る
- テーブルを削除する
認証の設定
ローカル開発環境でこのページの .NET サンプルを使用するには、gcloud CLI をインストールして 初期化し、ユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定します。
-
Google Cloud CLI をインストールします。
-
外部 ID プロバイダ(IdP)を使用している場合は、まず フェデレーション ID を使用して gcloud CLI にログインする必要があります。
-
ローカルシェルを使用している場合は、ユーザー アカウントのローカル認証情報を作成します。
gcloud auth application-default login
Cloud Shell を使用している場合は、この操作を行う必要はありません。
認証エラーが返され、外部 ID プロバイダ (IdP)を使用している場合は、フェデレーション ID を使用して gcloud CLI にログインしていることを確認します。
詳細については、 ローカル開発環境の認証を設定するをご覧ください。
サンプルの実行
このコードは、.NET 用の Google Cloud クライアント ライブラリの C# Admin API ライブラリと C# Data API ライブラリを使用して Bigtable と通信します。
このサンプル プログラムを実行するには、GitHub の .NET Bigtable サンプルの使用方法を実施してください。Hello World アプリケーションで使用できるリソースを作成するには、Build and Run と Quickstart の手順を実行します。HelloWorld.cs ファイルを編集して、作成するリソースの名前を追加してください。
Bigtable での Cloud クライアント ライブラリの使用
このサンプル アプリケーションは Bigtable に接続して、いくつかの単純なオペレーションを行います。
Bigtable への接続
まず、Bigtable への接続に使用できる 2 つのクライアント オブジェクトを作成します。C# Admin API の BigtableTableAdminClient を使用すると、インスタンスとテーブルの作成と削除を行えます。C# Data API の BigtableClient を使用すると、テーブルデータの読み取りと書き込みを行えます。
テーブルの作成
BigtableTableAdminClient クラスの CreateTable() メソッドを呼び出して、「Hello World」というあいさつを保存する Table オブジェクトを生成します。このテーブルには、各値の 1 つのバージョンを保持する単一の列ファミリーがあります。
テーブルへの行の書き込み
テーブルに書き込むデータのソースとして、3 つの単純なあいさつを含む文字列配列 s_greetings[] を使用します。まず、MutateRow() を使用してテーブルに単一の行を書き込みます。次に、配列の残りの部分をループして、各あいさつのエントリを含む MutateRowsRequest オブジェクトを作成します。MutateRows() を使用して、すべてのエントリを一度に書き込むリクエストを行います。次に、返されたレスポンスをループ処理し、各エントリのステータス コードを調べて、正常に書き込まれたことを確認します。
フィルタの作成
書き込んだデータを読み取る前に、Bigtable によって返されるデータを制限するためのフィルタを作成します。このフィルタは、ガベージ コレクションの対象であるがまだ削除されていない古いセルがテーブルに含まれていても、各値の最新バージョンのみを返すように Bigtable に指示します。
行キーによる行の読み取り
ReadRow() メソッドを使用して、先ほど作成したフィルタを渡し、その行の各値の 1 つのバージョンを取得します。
すべてのテーブル行のスキャン
テーブル内のすべての行を取得するには、ReadRows() メソッドを呼び出してフィルタを渡します。フィルタを渡しているため、Bigtable は各値の 1 つのバージョンのみを返します。
テーブルの削除
DeleteTable() メソッドを使用してテーブルを削除します。
すべてを組み合わせる
コメントなしの完全なコードサンプルを以下に示します。