Tabellen verwalten

Am einfachsten werden die Cloud Bigtable-Tabellen mit dem cbt-Befehlszeilentool verwaltet. Auf dieser Seite wird gezeigt, wie Sie mit cbt Tabellen erstellen, ändern und löschen und Informationen zu vorhandenen Tabellen mit cbt oder der Google Cloud Console abrufen.

Das cbt-Tool unterstützt verschiedene Befehle, die auf dieser Seite nicht beschrieben werden. Eine vollständige Liste der Befehle finden Sie in der cbt-Referenz.

Tabellen lassen sich auch programmatisch mit einer der Cloud Bigtable-Clientbibliotheken oder -Dienst-APIs verwalten. Sie können Tabellen aber auch mit dem HBase Shell-Befehlszeilentool verwalten. In der HBase-Dokumentation wird beschrieben, wie Sie die HBase-Shell verwenden.

Vorbereitung

Bevor Sie beginnen, müssen Sie das cbt-Tool installieren.

cbt-Tool konfigurieren

Sie können Standardwerte für die folgenden cbt-Konfigurationseinstellungen angeben:

  • Das Projekt, in dem die Cloud Bigtable-Instanz gespeichert ist.
  • Die Cloud Bigtable-Instanz, zu der die Verbindung hergestellt werden soll.
  • Die Datei mit den Anmeldedaten im JSON-Format, die beim Herstellen der Verbindung zur Instanz verwendet werden soll. Siehe auch Anleitung zum Erstellen eines Dienstkontoschlüssels. Wenn Sie zur Authentifizierung gcloud auth application-default login ausgeführt haben oder wenn Sie das cbt-Tool bei einer Compute Engine-Instanz verwenden, benötigen Sie keine Anmeldedatendatei.
  • Die zu verwendenden API-Endpunkte; Sie müssen diese Werte normalerweise nicht ändern.

Zur Angabe von Standardwerten für diese Einstellungen erstellen Sie eine .cbtrc-Datei in Ihrem Basisverzeichnis. Sie können die Standardwerte in .cbtrc mit Befehlszeilenflags überschreiben.

Führen Sie zum Erstellen einer .cbtrc-Datei den im Folgenden aufgeführten Befehl aus. Ersetzen Sie dabei [PROJECT_ID] und [INSTANCE_ID] durch die entsprechenden Werte:

echo -e "project = [PROJECT_ID]\ninstance = [INSTANCE_ID]" > ~/.cbtrc

Der Einfachheit halber wird bei den weiteren Anleitungen auf dieser Seite davon ausgegangen, dass die Projekt-ID und Instanz-ID in der Datei .cbtrc festgelegt sind. Sie können diese Werte auch mit den Flags -project und -instance bei jeder Ausführung von cbt festlegen.

Tabelle erstellen

Wenn Sie eine Tabelle mit dem cbt-Tool erstellen, müssen Sie die in der Tabelle zu verwendenden Spaltenfamilien nicht angeben. Sie können Spaltenfamilien später hinzufügen oder löschen.

Zum Erstellen einer Tabelle verwenden Sie den folgenden Befehl. Dabei ersetzen Sie [TABLE_NAME] durch den Namen Ihrer Tabelle:

cbt createtable [TABLE_NAME]

Tabelle nach dem Zeilenschlüssel teilen

Ein Feature von Cloud Bigtable als vollständig verwalteter Dienst ist das automatische Aufteilen von Tabellen auf mehrere Knoten. Mit diesem Feature wird die Leistung optimiert, weil die gespeicherte Datenmenge gleichmäßig auf jeden Knoten verteilt wird und Zeilen mit häufigem Zugriff nach Möglichkeit auseinandergezogen werden.

Wenn Sie eine Tabelle erstellen, können Sie Zeilenschlüssel auswählen, um die Tabelle im Voraus aufzuteilen. Sie können beispielsweise bestimmte Zeilen festlegen, durch die die Tabelle im Voraus aufgeteilt wird, wenn Sie im Begriff sind, eine große Anzahl von Zeilen in die Tabelle zu schreiben. Eine Tabelle muss nicht unbedingt im Voraus aufgeteilt werden, es ist jedoch von Vorteil, da Cloud Bigtable so schon beim Erstellen der Tabelle darüber informiert wird, wo die Last und das Datenvolumen wahrscheinlich landen werden. Die Aufteilung im Voraus verhindert, dass Cloud Bigtable gleichzeitig die Tabellen aufteilen und die Last ausgleichen muss, während die Daten eintreffen.

Die Tabelle bleibt nicht bei den Zeilenschlüsseln aufgeteilt, die Sie für die Aufteilung im Voraus auswählen, wenn Sie die Tabelle erstellen. Cloud Bigtable teilt Ihre Tabelle schließlich bei anderen Zeilenschlüsseln auf, je nachdem, wie viele Daten in der Tabelle enthalten sind und wie häufig auf jede Zeile zugegriffen wird.

Wenn Sie eine Tabelle basierend auf dem Zeilenschlüssel im Voraus aufteilen möchten, erstellen Sie die Tabelle mit der folgenden Syntax. Dabei ersetzen Sie [TABLE_NAME] durch den Tabellennamen und [SPLITS] durch eine durch Kommas getrennte Liste mit Zeilenschlüsselpräfixen, die für die Aufteilung im Voraus verwendet werden sollen:

cbt createtable [TABLE_NAME] splits=[SPLITS]

Verwenden Sie folgenden Befehl, um die Tabelle my-table beispielsweise im Voraus bei den Zeilenschlüsseln aufzuteilen, die mit 10 und 20 beginnen:

cbt createtable my-table splits=10,20

Spaltenfamilien in einer Tabelle anpassen

Mit dem cbt-Tool können Sie Spaltenfamilien in einer vorhandenen Tabelle hinzufügen oder löschen.

Spaltenfamilien hinzufügen

Verwenden Sie den folgenden Befehl, um eine Spaltenfamilie einer Tabelle hinzuzufügen. Dabei ersetzen Sie [TABLE_NAME] durch den Tabellennamen und [FAMILY_NAME] durch den Namen der Spaltenfamilie:

cbt createfamily [TABLE_NAME] [FAMILY_NAME]

Führen Sie beispielsweise den folgenden Befehl aus, um die Spaltenfamilien cf1 und cf2 zur Tabelle my-table hinzuzufügen:

cbt createfamily my-table cf1
cbt createfamily my-table cf2

Spaltenfamilien löschen

Verwenden Sie den folgenden Befehl, um eine Spaltenfamilie aus einer Tabelle zu löschen. Dabei ersetzen Sie [TABLE_NAME] durch den Tabellennamen und [FAMILY_NAME] durch den Namen der Spaltenfamilie:

cbt deletefamily [TABLE_NAME] [FAMILY_NAME]

Führen Sie beispielsweise den folgenden Befehl aus, um die Spaltenfamilie cf2 aus der Tabelle my-table zu löschen:

cbt deletefamily my-table cf2

Tabellenliste abrufen

Console

So können Sie eine Liste der in einer Instanz vorhandenen Tabellen abrufen:

  1. Öffnen Sie in der Cloud Console die Liste der Cloud Bigtable-Instanzen.

    Zur Liste der Instanzen

  2. Klicken Sie auf die Instanz, deren Tabellen Sie abrufen möchten.

  3. Klicken Sie im linken Bereich auf Tabellen.

    Die Seite "Tabellen" enthält eine Liste der in der Instanz vorhandenen Tabellen.

    • Klicken Sie auf den Pfeil neben der Tabellen-ID, um die Liste mit den Replikationen der Tabelle zu erweitern.
    • Klicken Sie neben einem Tabellennamen auf Messwerte ansehen, um Monitoring-Daten für die Tabelle anzeigen zu lassen.

cbt

Führen Sie den folgenden Befehl aus, um eine Liste der in einer Instanz vorhandenen Tabellen abzurufen:

cbt ls

Informationen zu einer Tabelle ansehen

Mit dem cbt-Tool können Sie eine Liste der vorhandenen Spaltenfamilien in einer Tabelle abrufen.

Zur Anzeige der Spaltenfamilien einer Tabelle verwenden Sie den folgenden Befehl und ersetzen dabei [TABLE_NAME] durch den Tabellennamen:

cbt ls [TABLE_NAME]

Richtlinien zur Speicherbereinigung festlegen

In diesem Abschnitt wird erläutert, wie Sie mit dem cbt-Tool steuern, wie viele Versionen der einzelnen Werte in Cloud Bigtable beibehalten werden und wie Sie eine Ablaufzeit für Werte angeben. Legen Sie programmatisch Richtlinien für die automatische Speicherbereinigung mit einer Cloud Bigtable-Clientbibliothek fest.

Mehrere Versionen von jedem Wert speichern

Wenn Sie eine Spaltenfamilie erstellen, können Sie angeben, wie viele Versionen von jedem Wert in der betreffenden Spaltenfamilie beibehalten werden sollen. Wenn Sie diese Einstellung nicht angeben, verwendet Cloud Bigtable eine der folgenden Standardeinstellungen.

  • Wenn Sie die Spaltenfamilie mit dem HBase-Client für Java, mit HBase Shell oder mit einem anderen Tool erstellen, das den HBase-Client für Java verwendet, behält Cloud Bigtable nur eine Version jedes Werts in der Spaltenfamilie bei. Diese Standardeinstellung stimmt mit HBase überein.
  • Wenn Sie die Spaltenfamilie mit einer anderen Clientbibliothek oder mit einem anderen Tool, einschließlich cbt, erstellen, behält Cloud Bigtable unbegrenzt viele Versionen von jedem Wert bei.

Wenn Sie die Anzahl der Versionen ändern möchten, die in einer Spaltenfamilie beibehalten werden, verwenden Sie den folgenden Befehl. Dabei ersetzen Sie [TABLE_NAME] durch den Tabellennamen, [FAMILY_NAME] durch den Namen der Spaltenfamilie und [VERSIONS] durch die Anzahl der beizubehaltenden Versionen.

cbt setgcpolicy [TABLE_NAME] [FAMILY_NAME] maxversions=[VERSIONS]

Führen Sie beispielsweise den folgenden Befehl aus, um die Spaltenfamilie cf1 in der Tabelle my-table so zu aktualisieren, dass fünf Versionen jedes Werts beibehalten werden:

cbt setgcpolicy my-table cf1 maxversions=5

Ablaufdatum für Werte festlegen

Wenn Sie eine Spaltenfamilie erstellen, können Sie für jeden Wert in dieser Spaltenfamilie angeben, wann er ablaufen soll. Wenn Sie diese Einstellung nicht angeben, laufen die Werte in der Spaltenfamilie niemals ab.

Damit Werte nach einer bestimmten Zeitspanne ablaufen, verwenden Sie den folgenden Befehl. Dabei ersetzen Sie [TABLE_NAME] durch den Tabellennamen, [FAMILY_NAME] durch den Namen der Spaltenfamilie und [DAYS] durch die Anzahl der Tage, für die jeder Wert beibehalten werden soll.

cbt setgcpolicy [TABLE_NAME] [FAMILY_NAME] maxage=[DAYS]d

So können Sie beispielsweise bewirken, dass Werte in der Spaltenfamilie cf1 nach einem Tag entfernt werden:

cbt setgcpolicy my-table cf1 maxage=1d

Tabelle sichern und wiederherstellen

Mit Cloud Bigtable können Sie eine Sicherung einer Tabelle erstellen und ihr eine Lebensdauer von bis zu 30 Tagen zuweisen. Sie können eine Sicherung in einer neuen Tabelle in der Instanz wiederherstellen, in der die Sicherung erstellt wurde. Eine Anleitung zum Sichern und Wiederherstellen einer Tabelle finden Sie unter Sicherungen verwalten.

Tabelle löschen

Zum Löschen einer Tabelle verwenden Sie den im Folgenden aufgeführten Befehl. Ersetzen Sie dabei [TABLE_NAME] durch den Tabellennamen:

cbt deletetable [TABLE_NAME]