在 Bigtable 中建立及更新計數器
瞭解如何使用匯總在 Bigtable 中建立及更新計數器,也就是在寫入時匯總值的資料表儲存格。本快速入門導覽課程會使用Google Cloud 控制台、Google Cloud CLI 或 cbt CLI 建立下列計數器:
- 持續計算總和的計數器
- 追蹤所有新增值的最小值
- 這個計數器會追蹤所有新增值的最大值
事前準備
-
登入 Google 帳戶。
如果沒有帳戶,請 註冊新帳戶。
-
安裝 Google Cloud CLI。
-
若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI。
-
執行下列指令,初始化 gcloud CLI:
gcloud init -
初始化 gcloud CLI 後,請更新 gcloud CLI 並安裝必要元件:
gcloud components update gcloud components install cbt
-
選取或建立專案所需的角色
- 選取專案:選取專案時,不需要具備特定 IAM 角色,只要您在專案中獲派角色,即可選取該專案。
-
建立專案:如要建立專案,您需要「專案建立者」角色 (
roles/resourcemanager.projectCreator),其中包含resourcemanager.projects.create權限。瞭解如何授予角色。
-
建立 Google Cloud 專案:
gcloud projects create PROJECT_ID
將
PROJECT_ID替換為您要建立的 Google Cloud 專案名稱。 -
選取您建立的 Google Cloud 專案:
gcloud config set project PROJECT_ID
將
PROJECT_ID替換為 Google Cloud 專案名稱。
啟用 Cloud Bigtable API 和 Cloud Bigtable Admin API:
啟用 API 時所需的角色
如要啟用 API,您必須具備
serviceusage.services.enable權限。如果您建立了專案,可能已透過「擁有者」角色 (roles/owner) 取得這項權限。否則,您可以透過「服務使用情形管理員」角色 (roles/serviceusage.serviceUsageAdmin) 取得這項權限。瞭解如何授予角色。gcloud services enable bigtable.googleapis.com
bigtableadmin.googleapis.com -
安裝 Google Cloud CLI。
-
若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI。
-
執行下列指令,初始化 gcloud CLI:
gcloud init -
初始化 gcloud CLI 後,請更新 gcloud CLI 並安裝必要元件:
gcloud components update gcloud components install cbt
-
選取或建立專案所需的角色
- 選取專案:選取專案時,不需要具備特定 IAM 角色,只要您在專案中獲派角色,即可選取該專案。
-
建立專案:如要建立專案,您需要「專案建立者」角色 (
roles/resourcemanager.projectCreator),其中包含resourcemanager.projects.create權限。瞭解如何授予角色。
-
建立 Google Cloud 專案:
gcloud projects create PROJECT_ID
將
PROJECT_ID替換為您要建立的 Google Cloud 專案名稱。 -
選取您建立的 Google Cloud 專案:
gcloud config set project PROJECT_ID
將
PROJECT_ID替換為 Google Cloud 專案名稱。
啟用 Cloud Bigtable API 和 Cloud Bigtable Admin API:
啟用 API 時所需的角色
如要啟用 API,您必須具備
serviceusage.services.enable權限。如果您建立了專案,可能已透過「擁有者」角色 (roles/owner) 取得這項權限。否則,您可以透過「服務使用情形管理員」角色 (roles/serviceusage.serviceUsageAdmin) 取得這項權限。瞭解如何授予角色。gcloud services enable bigtable.googleapis.com
bigtableadmin.googleapis.com - 執行下列指令,確保 gcloud CLI 為最新版本,且包含
cbtCLI:gcloud components updategcloud components install cbt
建立 Bigtable 執行個體
控制台
前往 Google Cloud 控制台的「建立執行個體」頁面。
在「Instance name」(執行個體名稱) 欄位中輸入
Counters quickstart instance。在「Instance ID」(執行個體 ID) 欄位中輸入
counters-quickstart-instance。按一下「繼續」。
在「選取版本」部分,選取「Enterprise」。
按一下「繼續」。
在「儲存空間類型」部分,選取「SSD」。
按一下「繼續」。
在「Cluster ID」(叢集 ID) 欄位中輸入
counters-quickstart-cluster。在「Region」(區域) 清單中,選取「us-east1 (南卡羅來納州)」。
在「Zone」(可用區) 清單中,選取「us-east1-c」。
在節點調度資源部分,選取「Autoscaling」(自動調度資源),然後執行下列操作:
- 在節點數下限中輸入
1。 - 在節點數量上限中輸入
3。
- 在節點數下限中輸入
按一下「建立」,建立執行個體。
gcloud
使用
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"
連線至執行個體
建立
.cbtrc檔案,將cbtCLI 設為使用您的專案和執行個體。echo project = PROJECT_ID >> ~/.cbtrc && echo instance = counters-quickstart-instance >> ~/.cbtrc將 PROJECT_ID 替換為您使用的專案 ID。
確認您已正確設定
.cbtrc檔案。cat ~/.cbtrc終端機會顯示
.cbtrc檔案的內容,類似於下列內容:project = PROJECT_ID instance = counters-quickstart-instance
現在您可以使用
cbtCLI 執行個體。
建立含有匯總資料欄系列的資料表
控制台
在 Google Cloud 控制台的左側導覽窗格中,按一下「表格」。
按一下 「建立資料表」。
在「Table ID」(資料表 ID) 欄位中輸入
counters_quickstart_table。在「資料欄系列」下方,針對要新增的每個資料欄系列,按一下「新增資料欄系列」,然後輸入下列設定:
sum_family:- 在「Column family name」(資料欄系列名稱) 欄位中輸入
sum_family。 - 在「Column family type」(資料欄系列類型) 區段中,選取「Aggregate」(匯總)。
- 在「Aggregator」(匯總器) 清單中,選取「Sum」(總和)。
- 在「設定垃圾回收政策」部分,選取「永不收集垃圾」。
- 按一下「完成」。
- 在「Column family name」(資料欄系列名稱) 欄位中輸入
min_family:- 在「Column family name」(資料欄系列名稱) 欄位中輸入
min_family。 - 在「Column family type」(資料欄系列類型) 區段中,選取「Aggregate」(匯總)。
- 在「匯總器」清單中,選取「最小值」。
- 在「設定垃圾回收政策」部分,選取「永不收集垃圾」。
- 按一下「完成」。
- 在「Column family name」(資料欄系列名稱) 欄位中輸入
max_family:- 在「Column family name」(資料欄系列名稱) 欄位中輸入
max_family。 - 在「Column family type」(資料欄系列類型) 區段中,選取「Aggregate」(匯總)。
- 在「Aggregator」(匯總器) 清單中,選取「Max」(最大值)。
- 在「設定垃圾回收政策」部分,選取「永不收集垃圾」。
- 按一下「完成」。
- 在「Column family name」(資料欄系列名稱) 欄位中輸入
點選「建立」。
如要查看新的資料欄系列及其匯總設定,請按照下列步驟操作:
- 在導覽選單中,按一下「Bigtable Studio」。
- 在左側的「物件總管」樹狀結構中,依序展開「資料表」、
counters_quickstart_table和「資料欄系列」。
cbt
使用
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- 資料欄系列
執行
cbt ls指令,列出資料欄系列。cbt ls counters_quickstart_tableshell 會顯示類似以下內容的輸出︰
Family Name GC Policy ----------- --------- max_family <never> min_family <never> sum_family <never>
在資料表中建立計數器
使用
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
讀取資料
您可以在 Google Cloud 控制台中以 SQL 查詢資料表,或使用 cbt CLI 讀取資料。
在 Google Cloud 控制台中以 SQL 查詢資料表
在 Google Cloud 控制台中,開啟「Bigtable instances」(Bigtable 執行個體) 頁面。
從清單中選取
counters-quickstart-instance。在導覽選單中,按一下「Bigtable Studio」。
按一下「編輯器」分頁標籤。
請將這項查詢貼到編輯器:
SELECT * FROM `counters_quickstart_table`按一下「執行」。查詢結果會顯示在「結果」表格中,如下所示:
_key max_family min_family sum_family row-key1 { "max_column": 5 } { "min_column": 5 } { "sum_column": 5 }
使用
cbt CLI 讀取
如要以整數而非位元組查看計數器值,請定義
cbtCLI 可用來格式化輸出的 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確認您已正確設定
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使用
cbt read指令傳遞 YAML 檔案,並讀取您在資料表中新增的資料。現在表格有三欄,每欄的匯總類型都不同。cbt read counters_quickstart_table format-file=$HOME/cbtformat.yaml殼層的輸出內容大致如下。這些值會格式化為整數,時間戳記則採用世界標準時間格式。
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
更新計數器
使用您建立儲存格時相同的時間戳記,在資料表的每個欄位中新增值 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再次使用
cbt read指令讀取資料表中的資料。每個儲存格現在都包含匯總值。cbt read counters_quickstart_table format-file=$HOME/cbtformat.yamlsum_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
清除所用資源
為了避免系統向您的 Google Cloud 帳戶收取本頁面所用資源的費用,請刪除含有這些資源的 Google Cloud 專案。
控制台
刪除
counters_quickstart_table資料表:前往 Google Cloud 控制台的「Bigtable instances」(Bigtable 執行個體) 頁面。
在執行個體清單中,按一下「Counters quickstart instance」。
按一下左側導覽窗格中的「表格」。
按一下
counters_quickstart_table旁的 ,然後點選「刪除」。輸入
counters_quickstart_table確認,然後按一下「Delete」(刪除)。
刪除執行個體:
前往 Google Cloud 控制台的「Bigtable instances」(Bigtable 執行個體) 頁面。
按一下「Counters quickstart instance」。
點選「Delete instance」。
輸入
counters-quickstart-instance確認,然後按一下「Delete」(刪除)。
在終端機中,刪除設定檔和選用憑證:
刪除
.cbtrc檔案:rm ~/.cbtrc刪除格式設定檔案:
rm ~/cbtformat.yaml選用:從 gcloud CLI 撤銷憑證:
gcloud auth revoke
cbt
在終端機中刪除資料表
counters_quickstart_table:cbt deletetable counters_quickstart_table刪除執行個體:
cbt deleteinstance counters-quickstart-instance刪除
.cbtrc檔案:rm ~/.cbtrc刪除格式設定檔案:
rm ~/cbtformat.yaml選用:從 gcloud CLI 撤銷憑證:
gcloud auth revoke
後續步驟
- 進一步瞭解匯總。
- 使用 SQL 查詢 Bigtable 資料。
- 使用
cbtCLI 逐步完成快速入門導覽課程。 - 瀏覽其他程式碼範例。