Ruby の Hello World
このコードサンプルは、Ruby で動作する「Hello World」アプリケーションです。このサンプルでは、次のタスクを行う方法を説明します。
- 認証を設定する
- Bigtable インスタンスに接続する
- 新しいテーブルを作成する
- テーブルにデータを書き込む
- そのデータを読み取る
- テーブルを削除する
認証を設定する
ローカル開発環境でこのページの Ruby サンプルを使用するには、gcloud CLI をインストールして 初期化し、ユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定します。
-
Google Cloud CLI をインストールします。
-
外部 ID プロバイダ(IdP)を使用している場合は、まず フェデレーション ID を使用して gcloud CLI にログインする必要があります。
-
ローカルシェルを使用している場合は、ユーザー アカウントのローカル認証情報を作成します。
gcloud auth application-default login
Cloud Shell を使用している場合は、この操作を行う必要はありません。
認証エラーが返され、外部 ID プロバイダ (IdP)を使用している場合は、フェデレーション ID を使用して gcloud CLI にログインしていることを確認します。
詳細については、 ローカル開発環境の認証を設定するをご覧ください。
環境設定
このサンプルを実行するには、Ruby がインストールされている必要があります。
1. Ruby をインストールする
クライアント ライブラリに必要な Ruby の最小バージョンを確認するには、required_ruby_version を google-cloud-bigtable.gemspec ファイルでご覧ください。
Compute Engine VM に Ruby を設定する
Compute Engine VM でサンプルを実行する場合は、次の手順に沿って Debian または Ubuntu VM に Ruby を設定します。コンソールで、[VM インスタンス] ページに移動します。 Google Cloud
Debian または Ubuntu オペレーティング システムを使用する Linux VM がない場合は、作成して接続します。詳しくは、 Linux VM の使用に関するクイックスタートをご覧ください。
VM のターミナル ウィンドウで、パッケージ リストを更新します。
sudo apt updateクライアント ライブラリに必要な Ruby、Ruby 開発ツール、
build-essentialをインストールします。sudo apt install -y ruby ruby-dev build-essentialインストールされている Ruby のバージョンが、
google-cloud-bigtable.gemspecファイルで指定されている最小要件を満たしていることを確認します。ruby --version
2. クライアント ライブラリをインストールする
クライアント ライブラリをインストールするには:
bundler を初期化して、プロジェクトのルート ディレクトリに
Gemfileを作成します。bundle initgoogle-cloud-bigtableをGemfileに追加してインストールします。bundle add google-cloud-bigtable
クライアント ライブラリの詳細については、
google-cloud-bigtable README をご覧ください。
サンプルの実行
このコードサンプルでは、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() メソッドを使用してテーブルを削除します。
すべてを組み合わせる
コメントなしの完全なコードサンプルを以下に示します。