Ruby hello world
這個程式碼範例是在 Ruby 上執行的「hello world」應用程式,示範如何完成下列工作:
- 設定驗證方法
- 連線至 Bigtable 執行個體。
- 建立新的資料表。
- 將資料寫入資料表。
- 讀取資料。
- 刪除資料表。
設定驗證方法
如要在本機開發環境中使用本頁的 Ruby 範例,請安裝並初始化 gcloud CLI,然後使用您的使用者憑證設定應用程式預設憑證。
-
安裝 Google Cloud CLI。
-
若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI。
-
如果您使用本機殼層,請為使用者帳戶建立本機驗證憑證:
gcloud auth application-default login
如果您使用 Cloud Shell,則不需要執行這項操作。
如果系統傳回驗證錯誤,且您使用外部識別資訊提供者 (IdP),請確認您已 使用聯合身分登入 gcloud CLI。
詳情請參閱 這篇文章,瞭解如何設定本機開發環境的驗證機制。
設定環境
如要執行這個範例,您必須安裝 Ruby。
1. 安裝 Ruby
如要查看用戶端程式庫的最低 Ruby 版本需求,請參閱 google-cloud-bigtable.gemspec 檔案中的 required_ruby_version。
在 Compute Engine VM 上設定 Ruby
如要在 Compute Engine VM 上執行範例,請按照這些指示在 Debian 或 Ubuntu VM 上設定 Ruby。前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面。
如果沒有使用 Debian 或 Ubuntu 作業系統的 Linux VM,請建立並連線至 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 init將
google-cloud-bigtable新增至Gemfile並安裝:bundle add google-cloud-bigtable
如要進一步瞭解用戶端程式庫,請參閱 google-cloud-bigtable README。
執行範例
本程式碼範例使用 Ruby 適用的 Google Cloud 用戶端程式庫的 Bigtable Ruby 用戶端程式庫套件,與 Bigtable 進行通訊。
如要執行這個範例程式,請按照 GitHub 網頁上的說明操作。
搭配 Cloud 用戶端程式庫使用 Bigtable
這個應用程式範例會連線至 Bigtable,示範部分簡易作業。
須使用用戶端程式庫
範例需要 google/cloud/bigtable,其中提供 Bigtable 模組。
連線至 Bigtable
建立要在應用程式中使用的變數,並將「YOUR_PROJECT_ID」替換為有效專案的 ID。 Google Cloud 然後建立新的 Bigtable 物件,用來連線至 Bigtable。
建立資料表
檢查資料表是否已存在。如果沒有,請呼叫 create_table() 方法來建立 Table 物件。資料表有單一資料欄系列,會保留每個值的一個版本。
將資料列寫入資料表
接著,使用問候語字串陣列為資料表建立幾個新的資料列。針對每則問候語,使用資料表的 new_mutation_entry() 方法建立項目。接著,使用項目的 set_cell() 方法,將資料欄系列、資料欄限定詞、問候語和時間戳記指派給項目。最後,使用資料表的 mutate_row() 方法,將該項目寫入資料表。
建立篩選器
讀取已寫入的資料前,請先建立篩選器,藉此限制 Bigtable 傳回的資料。即使資料表中含有每個值未經過垃圾收集處理的較舊版本,篩選器仍能指示 Bigtable 僅傳回每個值的最新版本。
依資料列索引鍵讀取資料列
建立資料列物件,然後呼叫 read_row() 方法並傳入篩選器,即可取得該資料列中每個資料值的一個版本。
掃描所有資料表資料列
呼叫 read_rows() 方法並傳入篩選器,即可取得資料表中的所有資料列。您已傳入篩選器,因此 Bigtable 只會傳回每個值的一個版本。
刪除資料表
運用資料表的 delete() 方法來刪除資料表。
全面整合使用
以下是不含評論的完整程式碼範例。