C# の Hello World
このコードサンプルは C# で記述された「Hello World」アプリケーションです。このサンプルでは、次のタスクを行う方法を説明します。
- 認証の設定
- Bigtable インスタンスに接続する
- 新しいテーブルを作成する
- テーブルにデータを書き込む
- そのデータを読み取る
- テーブルを削除する
認証を設定する
ローカル開発環境でこのページの .NET サンプルを使用するには、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 をご覧ください。
サンプルの実行
このコードは、.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()
メソッドを使用してテーブルを削除します。
すべてを組み合わせる
コメントなしの完全なコードサンプルを以下に示します。