Ruby の Hello World
このコードサンプルは、Ruby で動作する「Hello World」アプリケーションです。このサンプルでは、次のタスクを行う方法を説明します。
- 認証を設定する
- Bigtable インスタンスに接続する
- 新しいテーブルを作成する
- テーブルにデータを書き込む
- そのデータを読み取る
- テーブルを削除する
認証を設定する
ローカル開発環境でこのページの Ruby サンプルを使用するには、gcloud CLI をインストールして初期化し、ユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定します。
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
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 をご覧ください。
サンプルの実行
このコードサンプルでは、Ruby 用 Google Cloud クライアント ライブラリの Bigtable 用 Ruby クライアント ライブラリ パッケージを使用して Bigtable と通信します。
このサンプル プログラムを実行するには、GitHub でのサンプルの手順に沿って操作してください。
Bigtable での Cloud クライアント ライブラリの使用
このサンプル アプリケーションは Bigtable に接続して、いくつかの単純なオペレーションを行います。
必要なクライアント ライブラリ
このサンプルでは、Bigtable
モジュールを提供する google/cloud/bigtable
が必要です。
Bigtable への接続
"YOUR_PROJECT_ID" を有効な Google Cloud プロジェクトの ID に置き換えて、アプリケーションで使用する変数を設定します。次に、Bigtable に接続するために使用する Bigtable
オブジェクトを新規作成します。
テーブルの作成
テーブルがすでに存在するかどうかを確認します。存在しない場合は、create_table()
メソッドを呼び出して Table
オブジェクトを作成します。このテーブルには、各値の 1 つのバージョンを保持する単一の列ファミリーがあります。
テーブルへの行の書き込み
次に、グリーティングの文字列配列を使用してテーブルの新しい行を作成します。グリーティングごとに、テーブルの new_mutation_entry()
メソッドを使用してエントリを作成します。次に、エントリの set_cell()
メソッドを使用して、列ファミリー、列修飾子、グリーティング、タイムスタンプをエントリに割り当てます。最後に、テーブルの mutate_row()
メソッドを使用してテーブルにエントリを書き込みます。
フィルタの作成
書き込んだデータを読み取る前に、Bigtable によって返されるデータを制限するためのフィルタを作成します。このフィルタは、ガベージ コレクションが行われていない古いバージョンがテーブルに含まれていても、各値の最新バージョンのみを返すように Bigtable に指示します。
行キーによる行の読み取り
行オブジェクトを作成し、read_row()
メソッドを呼び出してフィルタを渡し、その行の各値の 1 つのバージョンを取得します。
すべてのテーブル行のスキャン
テーブル内のすべての行を取得するには、read_rows()
メソッドを呼び出してフィルタを渡します。フィルタを渡しているため、Bigtable は各値の 1 つのバージョンのみを返します。
テーブルの削除
テーブルの delete()
メソッドを使用してテーブルを削除します。
すべてを組み合わせる
コメントなしの完全なコードサンプルを以下に示します。