在 Bigtable 中建立及更新計數器

瞭解如何使用 匯總在 Bigtable 中建立及更新計數器,也就是在寫入時匯總值的資料表儲存格。本快速入門導覽課程會使用Cloud de Confiance 控制台、Google Cloud CLI 或 cbt CLI 建立下列計數器:

  • 持續累加的計數器
  • 追蹤所有新增值的最小值
  • 這個計數器會追蹤所有新增值的最大值

事前準備

  1. 安裝 Google Cloud CLI。

  2. 設定 gcloud CLI,使用您的聯合身分。

    詳情請參閱「 使用聯合身分登入 gcloud CLI」。

  3. 執行下列指令,初始化 gcloud CLI:

    gcloud init
  4. 初始化 gcloud CLI 後,請更新 gcloud CLI 並安裝必要元件:

    gcloud components update
    gcloud components install cbt
  5. 建立或選取 Cloud de Confiance 專案。

    選取或建立專案所需的角色

    • 選取專案:選取專案時,不需要具備特定 IAM 角色,只要您在專案中獲派角色,即可選取該專案。
    • 建立專案:如要建立專案,您需要專案建立者角色 (roles/resourcemanager.projectCreator),其中包含 resourcemanager.projects.create 權限。瞭解如何授予角色。
    • 建立 Cloud de Confiance 專案:

      gcloud projects create PROJECT_ID

      將 PROJECT_ID 替換為要建立的專案名稱。 Cloud de Confiance

    • 選取您建立的 Cloud de Confiance 專案:

      gcloud config set project PROJECT_ID

      將 PROJECT_ID 替換為 Cloud de Confiance 專案名稱。

  6. 確認 Cloud de Confiance 專案已啟用計費功能。

  7. 如果尚未啟用 Cloud Bigtable API 和 Cloud Bigtable Admin API,請啟用這些 API:

    啟用 API 時所需的角色

    如要啟用 API,您必須具備 serviceusage.services.enable 權限。如果您建立了專案,可能已透過「擁有者」角色 (roles/owner) 取得這項權限。否則,您可以透過「服務使用管理員」角色 (roles/serviceusage.serviceUsageAdmin) 取得這項權限。瞭解如何授予角色。

    gcloud services enable bigtable.googleapis.com bigtableadmin.googleapis.com
  8. 執行下列指令,確保 gcloud CLI 為最新版本,且包含 cbt CLI:
    gcloud components update
    gcloud components install cbt

建立 Bigtable 執行個體

控制台

  1. 前往 Cloud de Confiance 控制台的「建立執行個體」頁面。

    前往「建立執行個體」

  2. 在「Instance name」(執行個體名稱) 欄位中輸入 Counters quickstart instance。

  3. 在「Instance ID」(執行個體 ID) 欄位中輸入 counters-quickstart-instance。

  4. 按一下「繼續」。

  5. 在「選取版本」部分,選取「Enterprise」。

  6. 按一下「繼續」。

  7. 在「儲存空間類型」部分,選取「SSD」。

  8. 按一下「繼續」。

  9. 在「Cluster ID」(叢集 ID) 欄位中輸入 counters-quickstart-cluster。

  10. 在「Region」(區域) 清單中,選取「us-east1 (南卡羅來納州)」。

  11. 在「Zone」(可用區) 清單中,選取「us-east1-c」。

  12. 在節點調度資源部分,選取「Autoscaling」(自動調度資源),然後執行下列操作:

    1. 在節點數量下限部分,輸入 1。
    2. 在節點數量上限中輸入 3。
  13. 按一下「建立」,建立執行個體。

gcloud

  1. 使用 bigtable instances create 指令建立執行個體。

    gcloud bigtable instances create counters-quickstart-instance \
        --display-name="Counters quickstart instance" \
        --edition=ENTERPRISE \
        --cluster-config=id="counters-quickstart-cluster",zone="us-east1-c"
    

連線至執行個體

  1. 建立 .cbtrc 檔案,將 cbt CLI 設為使用您的專案和執行個體。

    echo project = PROJECT_ID >> ~/.cbtrc && echo instance = counters-quickstart-instance >> ~/.cbtrc
    

    將 PROJECT_ID 替換為您使用的專案 ID。

  2. 確認您已正確設定 .cbtrc 檔案。

    cat ~/.cbtrc
    

    終端機會顯示 .cbtrc 檔案的內容,類似於下列內容:

    project = PROJECT_ID
    instance = counters-quickstart-instance

    現在您可以使用 cbt CLI 搭配執行個體。

建立含有匯總資料欄系列的資料表

控制台

  1. 在 Cloud de Confiance 控制台的左側導覽窗格中,按一下「表格」。

  2. 點按 「建立資料表」。

  3. 在「Table ID」(資料表 ID) 欄位中輸入 counters_quickstart_table。

  4. 在「資料欄系列」下方,針對要新增的每個資料欄系列,按一下「新增資料欄系列」,然後輸入下列設定:

    • sum_family:

      1. 在「Column family name」(資料欄系列名稱) 欄位中輸入 sum_family。
      2. 在「資料欄系列類型」部分中,選取「匯總」。
      3. 在「匯總器」清單中,選取「總和」。
      4. 在「設定垃圾回收政策」部分,選取「永不收集垃圾」。
      5. 按一下「完成」。
    • min_family:

      1. 在「Column family name」(資料欄系列名稱) 欄位中輸入 min_family。
      2. 在「資料欄系列類型」部分中,選取「匯總」。
      3. 在「匯總器」清單中,選取「最小值」。
      4. 在「設定垃圾回收政策」部分,選取「永不收集垃圾」。
      5. 按一下「完成」。
    • max_family:

      1. 在「Column family name」(資料欄系列名稱) 欄位中輸入 max_family。
      2. 在「資料欄系列類型」部分中,選取「匯總」。
      3. 在「匯總器」清單中,選取「最大值」。
      4. 在「設定垃圾回收政策」部分,選取「永不收集垃圾」。
      5. 按一下「完成」。
  5. 點選「建立」。

  6. 如要查看新的資料欄系列及其匯總設定,請按照下列步驟操作:

    1. 在導覽選單中,按一下「Bigtable Studio」。
    2. 在左側的「物件總管」樹狀結構中,依序展開「資料表」、counters_quickstart_table 和「資料欄系列」。

cbt

  1. 使用 cbt createtable 指令建立名為 counters_quickstart_table 的資料表,其中包含三個匯總資料欄系列。為每個資料欄系列設定不同的匯總類型:

    • 資料欄系列 max_family 的類型為 Max,輸入類型為 Int64。
    • 資料欄系列 min_family 的類型為 Min,輸入類型為 Int64。
    • 資料欄系列 sum_family 的類型為 Sum,輸入類型為 Int64。
    cbt createtable counters_quickstart_table families=sum_family:never:intsum,min_family:never:intmin,max_family:never:intmax
    
  2. 執行 cbt ls 指令,列出資料欄系列。

    cbt ls counters_quickstart_table
    

    shell 會顯示類似以下內容的輸出︰

    Family Name     GC Policy
    -----------     ---------
    max_family      <never>
    min_family      <never>
    sum_family      <never>
    

在表格中建立計數器

  1. 使用 cbt addtocell 指令,在三個資料欄系列中各寫入一個新資料欄,並使用 row-key1 做為資料列索引鍵,0 做為時間戳記,初始值為 5。這項作業會建立匯總儲存格,做為計數器使用。

    cbt addtocell counters_quickstart_table row-key1 sum_family:sum_column=5@0
    cbt addtocell counters_quickstart_table row-key1 min_family:min_column=5@0
    cbt addtocell counters_quickstart_table row-key1 max_family:max_column=5@0
    

讀取資料

您可以在 Cloud de Confiance 控制台中以 SQL 查詢資料表,或使用 cbt CLI 讀取資料。

在 Cloud de Confiance 控制台中以 SQL 查詢資料表

  1. 在 Cloud de Confiance 控制台中,開啟「Bigtable instances」(Bigtable 執行個體) 頁面。

    前往執行個體清單

  2. 從清單中選取 counters-quickstart-instance。

  3. 在導覽選單中,按一下「Bigtable Studio」。

  4. 按一下「編輯器」分頁標籤。

  5. 請將這項查詢貼到編輯器:

    SELECT * FROM `counters_quickstart_table`
    
  6. 按一下「執行」。查詢結果會顯示在「結果」表格中,如下所示:

    _key max_family min_family sum_family
    row-key1 { "max_column": 5 } { "min_column": 5 } { "sum_column": 5 }

使用 cbt CLI 讀取

  1. 如要以整數而非位元組的形式查看計數器值,請定義 cbt CLI 可用來格式化輸出的 YAML 檔案。執行以下指令:

    echo "families:" > ~/cbtformat.yaml
    echo "  max_family:" >> ~/cbtformat.yaml
    echo "    default_encoding: BigEndian" >> ~/cbtformat.yaml
    echo "    default_type: INT64" >> ~/cbtformat.yaml
    echo "  min_family:" >> ~/cbtformat.yaml
    echo "    default_encoding: BigEndian" >> ~/cbtformat.yaml
    echo "    default_type: INT64" >> ~/cbtformat.yaml
    echo "  sum_family:" >> ~/cbtformat.yaml
    echo "    default_encoding: BigEndian" >> ~/cbtformat.yaml
    echo "    default_type: INT64" >> ~/cbtformat.yaml
    
  2. 確認您已正確設定 cbtformat.yaml 檔案。

    cat ~/cbtformat.yaml
    

    終端機會顯示 cbtformat.yaml 檔案的內容,類似於下列內容:

    families:
      max_family:
        default_encoding: BigEndian
        default_type: INT64
      min_family:
        default_encoding: BigEndian
        default_type: INT64
      sum_family:
        default_encoding: BigEndian
        default_type: INT64
    
  3. 使用 cbt read 指令傳遞 YAML 檔案,並讀取您在資料表中新增的資料。現在表格有三欄,每欄的匯總類型都不同。

    cbt read counters_quickstart_table format-file=$HOME/cbtformat.yaml
    

    殼層的輸出內容大致如下。值會格式化為整數,時間戳記則採用世界協調時間 (UTC) 格式。

    row-key1
      max_family:max_column                    @ 1970/01/01-00:00:00.000000
        5
      min_family:min_column                    @ 1970/01/01-00:00:00.000000
        5
      sum_family:sum_column                    @ 1970/01/01-00:00:00.000000
        5
    

更新計數器

  1. 使用建立儲存格時相同的時間戳記,在表格的每個資料欄中新增值 3。在每個資料欄中,系統會根據儲存格的匯總類型,將儲存格值與現有值合併。

    cbt addtocell counters_quickstart_table row-key1 sum_family:sum_column=3@0
    cbt addtocell counters_quickstart_table row-key1 min_family:min_column=3@0
    cbt addtocell counters_quickstart_table row-key1 max_family:max_column=3@0
    
  2. 再次使用 cbt read 指令讀取資料表中的資料。每個儲存格現在都包含匯總值。

    cbt read counters_quickstart_table format-file=$HOME/cbtformat.yaml
    

    sum_column 包含 5 和 3 的總和 (8),min_column 包含寫入其中的兩個值中較小的值 (3),而 max_column 包含寫入其中的兩個值中較大的值 (5)。

    row-key1
      max_family:max_column                    @ 1970/01/01-00:00:00.000000
        5
      min_family:min_column                    @ 1970/01/01-00:00:00.000000
        3
      sum_family:sum_column                    @ 1970/01/01-00:00:00.000000
        8
    

清除所用資源

為了避免系統向您的 Cloud de Confiance 帳戶收取本頁面所用資源的費用,請刪除含有這些資源的 Cloud de Confiance 專案。

控制台

  1. 刪除 counters_quickstart_table 資料表:

    1. 前往 Cloud de Confiance 控制台的「Bigtable instances」(Bigtable 執行個體) 頁面。

      前往執行個體清單

    2. 在執行個體清單中,按一下「Counters quickstart instance」。

    3. 按一下左側導覽窗格中的「表格」。

    4. 按一下 counters_quickstart_table 旁的 ,然後按一下「刪除」。

    5. 輸入 counters_quickstart_table 確認,然後按一下「Delete」(刪除)。

  2. 刪除執行個體:

    1. 前往 Cloud de Confiance 控制台的「Bigtable instances」(Bigtable 執行個體) 頁面。

      前往執行個體清單

    2. 按一下「Counters quickstart instance」(計數器快速入門執行個體)。

    3. 點選「刪除執行個體」。

    4. 輸入 counters-quickstart-instance 確認,然後按一下「Delete」(刪除)。

  3. 在終端機中,刪除設定檔和選用憑證:

    1. 刪除 .cbtrc 檔案:

      rm ~/.cbtrc
      
    2. 刪除格式設定檔案:

      rm ~/cbtformat.yaml
      
    3. 選用:從 gcloud CLI 撤銷憑證:

      gcloud auth revoke
      

cbt

  1. 在終端機中刪除資料表 counters_quickstart_table:

    cbt deletetable counters_quickstart_table
    
  2. 刪除執行個體:

    cbt deleteinstance counters-quickstart-instance
    
  3. 刪除 .cbtrc 檔案:

    rm ~/.cbtrc
    
  4. 刪除格式設定檔案:

    rm ~/cbtformat.yaml
    
  5. 選用:從 gcloud CLI 撤銷憑證:

    gcloud auth revoke
    

後續步驟