建立及管理資料表
Bigtable 資料表可讓您整理及儲存大規模資料,以供低延遲應用程式工作負載使用。您可以使用 Google Cloud 控制台、Google Cloud CLI、cbt CLI,或透過 Cloud Bigtable 用戶端程式庫以程式輔助方式建立及管理這些資料表。
如要進一步瞭解如何建立及管理資料表的授權 view,請參閱「授權 view」。
事前準備
如要使用指令列工具處理資料表,請按照本節中的步驟操作。
安裝 gcloud CLI。
選用:如要使用
cbtCLI ,請按照「安裝cbtCLI 」中的操作說明執行,包括建立.cbtrc檔案的步驟。本頁的
cbtCLI 指令假設您已在.cbtrc檔案中設定專案 ID 和執行個體 ID。或者,您也可以在每次執行cbtCLI 指令時,使用-project和-instance旗標設定這些值。
建立資料表
建立資料表時,您不需要指定要在資料表中使用哪些資料欄系列。您之後可以新增或刪除資料欄系列。
控制台
如要在執行個體中建立新資料表,請按照下列步驟操作:
在 Google Cloud 控制台中,開啟 Bigtable 執行個體清單。
按一下您要查看其資料表的執行個體。
按一下左側窗格中的 [Tables] (資料表)。
「表格」頁面會顯示執行個體中的表格清單。
按一下「建立資料表」。
輸入資料表的資料表 ID。
選用:新增資料欄系列。
你可以現在或稍後新增資料欄。資料表必須至少有一個資料欄系列,才能寫入資料或從中讀取變更串流。
選用:為資料表啟用變更串流。啟用變更串流前,請務必瞭解相關影響,包括儲存空間費用增加,以及應用程式設定檔用量需求。如要查看這些詳細資料,請參閱「變更串流總覽」。
選取「啟用變更串流」。
在「保留時間」欄位中,輸入 1 到 7 之間的數字,指定要保留變更串流資料的天數。
選用步驟:如不想讓 Bigtable 每天備份資料表,請取消勾選「啟用自動備份」核取方塊。詳情請參閱「使用自動備份功能」。
選用:啟用資料表的不常存取功能,做為分層儲存空間的一部分 (預先發布版):
選取「啟用分級式儲存空間」。
在「年齡門檻」欄位中,輸入 Bigtable 將資料從 SSD 儲存空間移至不常存取儲存空間的天數。數字必須大於或等於 30。
選用,Enterprise Plus 版:根據預設,系統會在資料表執行個體中的所有叢集建立每日備份。如要選擇 Bigtable 必須建立每日資料表備份的叢集,請在「選取要備份的叢集」欄位中選取叢集位置。 詳情請參閱「設定自動備份叢集位置」。
選用:如要設定資料列索引鍵結構定義,請選取「定義資料列索引鍵結構定義」,然後執行下列操作:
在「Encoding」(編碼) 清單中,選取資料列索引鍵結構定義的編碼類型。
如果您選取「DelimitedBytes」,請在「Delimiter」欄位中輸入分隔符號,用來分隔現有資料列索引鍵中的區隔。預設值為井號 (
#)。在「Segment」(區隔) 欄位中輸入區隔名稱,例如
device_type。在「類型」清單中,選取資料列索引鍵區隔的資料類型。
視所選資料類型而定,在「位元組編碼」清單中,保留或變更資料列索引鍵區隔的預設編碼類型。
選用:如果資料列索引鍵區隔有多個部分,請按一下「新增資料列索引鍵區隔」,新增其他欄位。
點選「建立」。
gcloud
如要建立資料表,請執行下列指令。如需完整的選項清單,請參閱 gcloud bigtable instances tables create。
gcloud bigtable instances tables create TABLE_ID \
--instance=INSTANCE_ID \
--project=PROJECT_ID \
--column-families=COLUMN-FAMILIES
更改下列內容:
- TABLE_ID:新資料表的專屬 ID
- INSTANCE_ID:執行個體的 ID
- PROJECT_ID:新資料表所屬的專案
- COLUMN-FAMILIES:以半形逗號分隔的資料欄系列名稱清單。您之後可以新增更多資料欄系列。
選用:
如要防止資料表遭到刪除,請在指令中附加
--deletion-protection。如未套用這項設定,表格可能會遭到刪除。您也可以附加--no-deletion-protection,明確允許刪除資料表。如要為資料表啟用變更串流,請指定變更串流資料的保留期限。啟用變更串流前,請務必瞭解相關影響,包括儲存空間費用增加和應用程式設定檔用量規定。如要查看這些詳細資料,請參閱「變更串流總覽」。
--change-stream-retention-period=RETENTION_PERIOD將 RETENTION_PERIOD 替換為 Bigtable 應保留表格變更串流資料的時間長度。 時間範圍必須介於 1 到 7 天之間。可接受的單位為天 (d)、小時 (h)、分鐘 (m) 和秒 (s)。例如:
48h或6d如要讓 Bigtable 每天備份資料表,並將每個備份保留預設的七天保留期限,請在建立資料表時使用
--enable-automated-backup標記。gcloud bigtable instances tables create TABLE_ID \ --instance=INSTANCE_ID \ --project=PROJECT_ID \ --column-families=COLUMN-FAMILIES \ --enable-automated-backup如要設定不同的保留期限,請使用
--automated-backup-retention-period旗標,而非--enable-automated-backup旗標,並提供最多 90 天的值。值必須以數字表示,並以m、h或d(分鐘、小時或天) 為單位,例如15d代表 15 天。Enterprise Plus 版:系統預設會為資料表執行個體中的所有叢集建立每日備份。如要設定 Bigtable 必須每天備份資料表的叢集位置,請使用
--automated-backup-locations旗標,而非--enable-automated-backup旗標。請提供叢集位置清單,並以半形逗號分隔,這些位置必須啟用自動備份功能。例如:us-central1-a,us-east1-b,europe-west1-c。如要啟用不常存取儲存空間,請使用
--tiered-storage-infrequent-access-older-than標記,並將 AGE_THRESHOLD 替換為至少 30 天的值。可接受的單位為天 (d)、小時 (h)、分鐘 (m) 和秒 (s)。例如:32d或32d12h。gcloud beta bigtable instances tables create TABLE_ID \ --instance=INSTANCE_ID \ --project=PROJECT_ID \ --tiered-storage-infrequent-access-older-than=AGE_THRESHOLD
cbt
請使用下列指令,並將 TABLE_NAME 替換成資料表名稱。您無法使用
cbt CLI
建立啟用變更串流的資料表。
cbt createtable TABLE_ID
選用:如要在資料表中建立匯總資料欄系列,請在資料欄系列名稱後方附加匯總類型。以下程式碼會建立聚合資料欄系列,並將垃圾收集政策設為 never。
cbt createtable TABLE_ID families=FAMILY_NAME:never:TYPE
更改下列內容:
- TABLE_ID:新資料表的專屬 ID
- FAMILY_NAME:以半形逗號分隔的資料欄系列名稱清單。您之後可以新增更多資料欄系列。
- TYPE:匯總類型。必須是
intsum、intmin、intmax或inthll。
如需更多選項,請參閱 cbt CLI 參考資料中的「建立表格」。
如果誤刪資料表,請勿嘗試手動建立已刪除的資料表。使用 gcloud CLI 指令 bigtable instances tables undelete 復原資料表。
選用:依資料列索引鍵分割資料表
為達到最佳效能,Bigtable 會持續將資料表分割到多個節點,平均分配每個節點儲存的資料量,並盡可能將經常存取的資料列分散開來。這項持續進行的程序會自動完成。
建立新資料表時,您可以指定初始資料表分割。Bigtable 會在您提供的資料列索引鍵位置分割資料表。如果鍵空間過大,Bigtable 會進一步分割資料表。資料表建立完成後,初始分割會保留約 24 小時。您最多可以提供 100 個資料列索引鍵,做為初始分割的發生位置。
舉例來說,如果您即將在表格中寫入多個資料列,可以指定特定資料列預先分割表格。
預先分割資料表並非必要,但好處多多,因為這能為 Bigtable 提供資訊,瞭解建立資料表時,負載和資料足跡可能落在哪裡。預先分割可避免 Bigtable 在資料抵達時,必須一次分割資料表並重新平衡負載。
控制台
使用Google Cloud 控制台建立資料表時,無法預先分割資料列。
gcloud
如要依資料列索引鍵分割資料表,請執行下列指令。如需完整的選項清單,請參閱 gcloud bigtable instances tables create。
gcloud bigtable instances tables create TABLE_ID\
--instance=INSTANCE_ID \
--project=PROJECT_ID \
--column-families=COLUMN-FAMILIES \
--splits=SPLITS
更改下列內容:
- TABLE_ID:新資料表的專屬 ID
- INSTANCE_ID:執行個體的 ID
- PROJECT_ID:新資料表所屬的專案
- COLUMN-FAMILIES:以半形逗號分隔的資料欄系列名稱清單。您之後可以新增更多資料欄系列。
- SPLITS:資料表應先分割的資料列索引鍵,例如
10,20。
cbt
如要根據資料列索引鍵預先分割資料表,請使用下列語法建立資料表。將 [TABLE_NAME] 替換為表格名稱,並將 [SPLITS] 替換為以半形逗號分隔的資料列鍵前置字元清單,用於預先分割。
```none
cbt createtable [TABLE_NAME] splits=[SPLITS]
```
舉例來說,如要在以 10 和 20 開頭的資料列索引鍵預先分割資料表 my-table:
```none
cbt createtable my-table splits=10,20
```
修改表格中的資料欄系列
建立資料表時或在現有資料表中,都可以新增資料欄系列。如果資料表未啟用防刪除功能,即可刪除資料表中的資料欄系列。
新增資料欄系列
控制台
在新資料表中新增資料欄系列
在「建立資料表」窗格中,針對要新增的每個資料欄系列,按一下「新增資料欄系列」。
在「資料欄系列名稱」欄位中,輸入資料欄系列的專屬 ID。
選擇資料欄系列類型:
如果您選取「Aggregate」(匯總),請在「Aggregator」(匯總器) 欄位中,選取下列其中一個選項:
- 加總:匯總所有儲存格值的總和。
- 最小值:匯總儲存格的最小值。
- 最大值:匯總最大儲存格值。
- HyperLogLog:匯總儲存格值的近似基數。
為資料欄系列設定垃圾收集政策。
按一下「完成」。
在現有資料表中新增資料欄系列
在 Google Cloud 控制台中,開啟 Bigtable 執行個體清單。
按一下您要查看其資料表的執行個體。
按一下左側窗格中的 [Tables] (資料表)。
「表格」頁面會顯示執行個體中的表格清單。
找到要修改的表格,然後按一下「編輯」。
針對要新增的每個資料欄系列,執行下列操作:
按一下 [儲存]。
gcloud
您無法使用 gcloud CLI 將資料欄系列新增至資料表。
cbt
如要將資料欄系列新增至資料表,請使用下列指令:
cbt createfamily TABLE_ID FAMILY_NAME
舉例來說,如要將資料欄系列 cf1 和 cf2 新增至資料表 my-table:
cbt createfamily my-table cf1
cbt createfamily my-table cf2
選用:如要將匯總資料欄系列新增至資料表,請在資料欄系列名稱後方附加匯總類型。下列程式碼會建立資料表,其中包含匯總資料欄系列,並採用 never 的垃圾收集政策。
cbt createfamily TABLE_ID FAMILY_NAME:never:TYPE
更改下列內容:
- TABLE_ID:資料表 ID
- FAMILY_NAME:以半形逗號分隔的資料欄系列名稱清單。您之後可以新增更多資料欄系列。
- TYPE:匯總類型。必須是
intsum、intmin、intmax或inthll。
刪除資料欄系列
如要刪除資料表中的資料欄系列,請先停用防刪除功能。
控制台
在 Google Cloud 控制台中,開啟 Bigtable 執行個體清單。
按一下您要查看其資料表的執行個體。
按一下左側窗格中的 [Tables] (資料表)。
「表格」頁面會顯示執行個體中的表格清單。
找到要修改的表格,然後按一下「編輯」。
針對要刪除的每個資料欄系列,完成下列步驟:
- 將滑鼠游標懸停在要刪除的資料欄系列所在資料列上。
- 按一下「」。
按一下 [儲存]。
如要確認您瞭解刪除資料欄系列是永久性操作,且資料欄系列中的所有資料都會刪除,請在文字欄位中輸入「Delete column families」。
按一下「確認」。
gcloud
您無法使用 gcloud CLI 刪除表格中的資料欄系列。
cbt
如要從資料表刪除資料欄系列,請使用下列指令,並將 [TABLE_NAME] 替換為資料表名稱,[FAMILY_NAME] 則替換為資料欄系列名稱:
cbt deletefamily [TABLE_NAME] [FAMILY_NAME]
舉例來說,如要刪除表格 my-table 中的資料欄系列 cf2:
cbt deletefamily my-table cf2
查看資料表清單
控制台
如要查看執行個體中的資料表清單:
在 Google Cloud 控制台中,開啟 Bigtable 執行個體清單。
按一下您要查看其資料表的執行個體。
按一下左側窗格中的 [Tables] (資料表)。
「表格」頁面會顯示執行個體中的表格清單。
- 按一下資料表 ID 旁的箭頭,即可展開該資料表的複製清單。
- 按一下資料表名稱旁的「查看指標」,即可查看資料表的系統洞察資料。
gcloud
如要查看資料表清單,請執行 gcloud bigtable instances tables list 指令。
gcloud bigtable instances tables list --instances=INSTANCE_IDS
更改下列內容:
- INSTANCE_IDS:以半形逗號分隔的執行個體 ID 清單。
cbt
如要查看執行個體中的資料表清單,請執行下列指令:
cbt ls INSTANCE_ID
更改下列內容:
INSTANCE_ID: 執行個體的永久 ID。
C++
如要瞭解如何安裝及使用 Bigtable 的用戶端程式庫,請參閱「Bigtable 用戶端程式庫」。
如要向 Bigtable 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
C#
如要瞭解如何安裝及使用 Bigtable 的用戶端程式庫,請參閱「Bigtable 用戶端程式庫」。
如要向 Bigtable 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Java
如要瞭解如何安裝及使用 Bigtable 的用戶端程式庫,請參閱「Bigtable 用戶端程式庫」。
如要向 Bigtable 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Node.js
如要瞭解如何安裝及使用 Bigtable 的用戶端程式庫,請參閱「Bigtable 用戶端程式庫」。
如要向 Bigtable 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
PHP
如要瞭解如何安裝及使用 Bigtable 的用戶端程式庫,請參閱「Bigtable 用戶端程式庫」。
如要向 Bigtable 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Python
如要瞭解如何安裝及使用 Bigtable 的用戶端程式庫,請參閱「Bigtable 用戶端程式庫」。
如要向 Bigtable 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
小茹
如要瞭解如何安裝及使用 Bigtable 的用戶端程式庫,請參閱「Bigtable 用戶端程式庫」。
如要向 Bigtable 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
查看資料表資訊
控制台
如要查看資料表資訊,請按照下列步驟操作:
在 Google Cloud 控制台中,開啟 Bigtable 執行個體清單。
按一下您要查看其資料表的執行個體。
按一下左側窗格中的 [Tables] (資料表)。
「表格」頁面會顯示執行個體中的表格清單。針對每個資料表, Google Cloud 控制台會顯示儲存資料表的叢集數量、資料表狀態、儲存空間使用率,以及資料表目前備份的 ID。如果資料表啟用分級式儲存空間 (搶先版),您可以查看 SSD 儲存空間使用率和不常存取儲存空間使用率。
如要查看資料表的資料欄系列名稱,請按一下 。如要關閉「編輯表格」窗格,請按一下「取消」。
如要查看資料表的其他詳細資料,包括資料表層級的指標和複製狀態,請按一下資料表名稱。
gcloud
如要查看資料表資訊,請執行 gcloud bigtable instances tables describe 指令。
gcloud bigtable instances tables describe TABLE_ID \
--instance=INSTANCE_ID
更改下列內容:
- TABLE_ID:資料表的專屬 ID
- INSTANCE_ID:執行個體的 ID
cbt
您可以使用 cbt CLI 取得資料表中現有資料欄系列的清單。
請使用下列指令,並將 [TABLE_NAME] 替換為資料表名稱:
cbt ls [TABLE_NAME]
設定垃圾收集政策
垃圾收集政策會告知 Bigtable 要保留哪些資料,以及要標示哪些資料以供刪除。建立資料表時或之後,您可以在資料欄系列層級設定垃圾收集政策。
建立資料欄系列時,您可以指定要在該資料欄系列中每個資料欄保留的儲存格數量。如未指定這項設定,Bigtable 會使用下列其中一項預設設定:
如果您使用適用於 Java 的 Cloud Bigtable HBase 用戶端或 HBase Shell 建立資料欄系列,或是使用適用於 Java 的 HBase 用戶端,Bigtable 只會保留資料欄系列中每個資料列或資料欄交集的 1 個儲存格。此預設的設定與 HBase 一致。
如果您使用 Google Cloud 控制台、任何其他用戶端程式庫或
cbtCLI 建立資料欄系列,Bigtable 會在每個資料欄中保留無限數量的儲存格。
如需查看、設定及更新垃圾收集政策的詳細操作說明,請參閱「設定垃圾收集政策」。
備份及還原資料表
如需備份資料表,以及從備份還原至新資料表的操作說明,請參閱「管理備份」。
如果您在建立資料表時已啟用自動備份功能,可以修改資料表的自動備份設定,啟用或停用自動備份功能,或將保留期限變更為最多 90 天。詳情請參閱「使用自動備份」。
啟用、停用或設定變更串流
如需下列工作的操作說明,請參閱「設定變更串流」。
- 在現有表格上啟用變更串流
- 停用變更串流
- 更新變更串流的保留期限
刪除資料表
刪除資料表時,系統也會刪除該資料表的所有授權檢視畫面。如果資料表的任何授權檢視畫面已啟用防刪除功能,您就無法刪除資料表。此外,您也無法刪除以連續具體化檢視畫面為依據的資料表。
控制台
在 Google Cloud 控制台中,開啟 Bigtable 執行個體清單。
按一下您要查看其資料表的執行個體。
按一下左側窗格中的 [Tables] (資料表)。
「表格」頁面會顯示執行個體中的表格清單。
按一下要刪除的表格 。
點選「刪除」。
如要確認您瞭解這項操作會刪除執行個體中所有叢集的資料表,且您只有七天時間可以取消刪除資料表,請在「刪除資料表」方塊中輸入資料表 ID。
點選「刪除」。
gcloud
如要刪除資料表,請執行
gcloud bigtable instances tables delete指令。gcloud bigtable instances tables delete TABLE_ID --instance=INSTANCE_ID更改下列內容:
- TABLE_ID:資料表的專屬 ID
- INSTANCE_ID:執行個體的 ID
在終端機中輸入
y,確認刪除資料表。
cbt
如要刪除資料表,請使用下列指令,並將 [TABLE_NAME] 替換為資料表名稱:
cbt deletetable [TABLE_NAME]
取消刪除資料表
如果不小心刪除資料表,可以使用 gcloud CLI 指令 bigtable instances tables undelete取消刪除或復原資料表。請勿嘗試手動重建已刪除的表格。
如要取消刪除資料表,請在終端機中執行下列指令:
gcloud bigtable instances tables undelete TABLE_ID --instance=INSTANCE_ID
更改下列內容:
- TABLE_ID:資料表的專屬 ID
- INSTANCE_ID:執行個體的 ID
還原資料表時,Bigtable 會自動為該資料表啟用防刪除功能。
限制如下:
- 資料表刪除後,約有七天的時間可以復原。
- 您無法使用 Google Cloud 控制台、Cloud Bigtable 用戶端程式庫或
cbtCLI 復原已刪除的資料表。 - 您無法從已刪除的執行個體還原資料表。
- 如果資料表已啟用 CMEK,就無法取消刪除。
- 還原資料表時,Bigtable 不會將任何細微的 IAM 政策繫結還原至已刪除的資料表。
您也可以在稽核記錄中查看 undelete 作業的狀態。
修改防刪除功能
如果您是具備 bigtable.tables.update 權限的角色主體 (例如 roles/bigtable.admin),可以啟用或停用資料表的防刪除功能。防刪除功能可防止刪除資料表、資料表中的所有資料欄系列,以及包含資料表的執行個體。
為資料表啟用防刪除功能時,不會為資料表的授權檢視畫面啟用這項功能。同樣地,停用資料表的防刪除功能,不會停用資料表授權檢視畫面的防刪除功能。您必須 分別更新資料表的授權檢視區塊。
控制台
在 Google Cloud 控制台中,開啟 Bigtable 執行個體清單。
按一下您要查看其資料表的執行個體。
按一下左側窗格中的 [Tables] (資料表)。
「表格」頁面會顯示執行個體中的表格清單。
按一下資料表 ID 旁的 。
如要啟用防刪除功能,請按一下「防止刪除」。如要停用防刪除功能,請按一下「啟用刪除功能」。系統只會顯示有效選項。
gcloud
如要為資料表啟用防刪除功能,請執行 gcloud bigtable instances
table update 指令:
```sh
gcloud bigtable instances tables update TABLE_ID \
--instance=INSTANCE_ID \
--deletion-protection
```
如要停用資料表的防刪除功能,請執行下列指令:
```sh
gcloud bigtable instances tables update TABLE_ID \
--instance=INSTANCE_ID \
--no-deletion-protection
```
更改下列內容:
+ TABLE_ID: the unique identifier for the table
+ INSTANCE_ID: the ID of the instance
cbt
您無法使用
cbtCLI
啟用或停用刪除防護功能。
修改不常存取儲存空間的年齡門檻
您隨時可以修改不常存取資料的年齡門檻,這項資料屬於分層儲存空間。
控制台
在 Google Cloud 控制台中,開啟 Bigtable 執行個體清單。
按一下您要查看其資料表的執行個體。
按一下左側窗格中的 [Tables] (資料表)。
「表格」頁面會顯示執行個體中的表格清單。
找到要修改的表格,然後按一下「編輯」。
在「年齡門檻」欄位中,輸入新的天數,Bigtable 會在經過這段時間後,將資料從 SSD 儲存空間移至不常存取儲存空間。數字必須大於或等於 30。
gcloud
如要修改不常存取儲存空間的年齡門檻,請執行 gcloud beta bigtable instances tables update 指令並搭配 --tiered-storage-infrequent-access-older-than 旗標:
gcloud beta bigtable instances tables update TABLE_ID \
--instance=INSTANCE_ID \
--project=PROJECT_ID \
--tiered-storage-infrequent-access-older-than=AGE_THRESHOLD
更改下列內容:
- TABLE_ID:要更新的資料表 ID。
- INSTANCE_ID:執行個體的 ID。
- PROJECT_ID:包含要更新資料表的專案。
- AGE_THRESHOLD:時間門檻,至少須為 30 天。可接受的單位為天 (
d)、小時 (h)、分鐘 (m) 和秒 (s)。例如:從先前的32d改為33d。
停用不常存取的儲存空間
您隨時可以停用分層儲存空間的低頻存取功能。因此,Bigtable 會將不常存取的儲存空間中的所有資料移至 SSD 儲存空間。停用不常存取儲存空間前,請務必瞭解費用影響。
控制台
在 Google Cloud 控制台中,開啟 Bigtable 執行個體清單。
按一下您要查看其資料表的執行個體。
按一下左側窗格中的 [Tables] (資料表)。
「表格」頁面會顯示執行個體中的表格清單。
找到要修改的表格,然後按一下「編輯」。
取消勾選「Enable tiered storage」(啟用分層儲存空間) 核取方塊。
按一下 [儲存]。
gcloud
如要停用不常存取的儲存空間,請使用 gcloud beta bigtable instances tables update 指令搭配 --clear-tiered-storage-config 旗標:
gcloud beta bigtable instances tables update TABLE_ID \
--instance=INSTANCE_ID \
--project=PROJECT_ID \
--clear-tiered-storage-config
更改下列內容:
- TABLE_ID:要更新的資料表 ID
- INSTANCE_ID:執行個體的 ID
- PROJECT_ID:包含要更新資料表的專案
後續步驟
- 瞭解如何匯入及匯出資料。