Tabellen erstellen und verwalten

Auf dieser Seite wird erläutert, wie Sie Bigtable-Tabellen mit der Google Cloud -Konsole, der Google Cloud CLI oder der cbt-Befehlszeile erstellen und Vorgänge für sie ausführen.

Die cbt-Befehlszeile 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 den Cloud Bigtable-Clientbibliotheken oder Dienst-APIs erstellen und verwalten.

Eine Anleitung zum Erstellen und Verwalten autorisierter Ansichten einer Tabelle finden Sie unter Autorisierte Ansichten.

Hinweis

Wenn Sie Ihre Tabellen mithilfe von Befehlszeilentools bearbeiten möchten, folgen Sie den Schritten in diesem Abschnitt.

  1. Installieren Sie die gcloud CLI.

  2. Optional: Wenn Sie die cbt-Befehlszeile verwenden möchten, folgen Sie der Anleitung unter cbt-Befehlszeile installieren , einschließlich des Schritts zum Erstellen einer .cbtrc-Datei.

    Bei den Anleitungen der cbt-Befehlszeile auf dieser Seite wird davon ausgegangen, dass die Projekt-ID und die Instanz-ID in der Datei .cbtrc festgelegt sind. Alternativ können Sie diese Werte auch mit den Flags -project und -instance bei jeder Ausführung eines cbt-CLI-Befehls festlegen.

Tabelle erstellen

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

Console

So erstellen Sie in einer Instanz eine neue Tabelle:

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

    Liste der Instanzen öffnen

  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.

  4. Klicken Sie auf  Tabelle erstellen.

  5. Geben Sie eine Tabellen-ID für die Tabelle ein.

  6. Optional: Spaltenfamilien hinzufügen

    Sie können Spalten jetzt oder später hinzufügen. Eine Tabelle muss mindestens eine Spaltenfamilie haben, bevor Sie Daten in sie schreiben oder einen Änderungsstream daraus lesen können.

  7. Optional: Aktivieren Sie einen Änderungsstream für die Tabelle. Bevor Sie einen Änderungsstream aktivieren, sollten Sie sich über die Auswirkungen im Klaren sein, z. B. über erhöhte Speicherkosten und Anforderungen an die Nutzung des App-Profils. Weitere Informationen finden Sie unter Übersicht über Änderungsstreams.

    1. Wählen Sie Änderungsstream aktivieren aus.

    2. Geben Sie im Feld Aufbewahrungszeit eine Zahl zwischen 1 und 7 ein, um die Anzahl der Tage anzugeben, für die die Änderungsstreamdaten aufbewahrt werden sollen.

  8. Optional: Wenn Sie nicht möchten, dass Bigtable täglich eine Sicherung der Tabelle erstellt, entfernen Sie das Häkchen bei Automatische Sicherung aktivieren. Weitere Informationen finden Sie unter Automatische Sicherung verwenden.

  9. Optional: Aktivieren Sie den seltenen Zugriff für die Tabelle als Teil des mehrstufigen Speichers (Vorschau):

    1. Wählen Sie Mehrstufigen Speicher aktivieren aus.

    2. Geben Sie im Feld Altersgrenze die Anzahl der Tage ein, nach denen Bigtable Daten vom SSD-Speicher in den Speicher für seltenen Zugriff verschiebt. Die Zahl muss mindestens 30 betragen.

  10. Optional, Enterprise Plus-Version: Standardmäßig wird in allen Clustern in der Instanz der Tabelle eine tägliche Sicherung erstellt. Wenn Sie Cluster auswählen möchten, in denen Bigtable eine tägliche Sicherung der Tabelle erstellen soll, wählen Sie im Feld Cluster zum Sichern auswählen Clusterstandorte aus. Weitere Informationen finden Sie unter Speicherorte für automatische Sicherungscluster konfigurieren.

  11. Optional: Wenn Sie das Zeilenschlüsselschema konfigurieren möchten, wählen Sie Zeilenschlüsselschema definieren aus und gehen Sie dann so vor:

    1. Wählen Sie in der Liste Codierung einen Codierungstyp für Ihr Zeilenschlüssel-Schema aus.

    2. Wenn Sie DelimitedBytes ausgewählt haben, geben Sie im Feld Trennzeichen ein Trennzeichen ein, das die Segmente in Ihren vorhandenen Zeilenschlüsseln trennt. Der Standardwert ist ein Hash-Symbol (#).

    3. Geben Sie im Feld Segment einen Namen für das Segment ein, z. B. device_type.

    4. Wählen Sie in der Liste Typ den Datentyp des Zeilenschlüsselsegments aus.

    5. Lassen Sie je nach ausgewähltem Datentyp in der Liste Byte-Codierung den Standardcodierungstyp des Zeilenschlüsselsegments bei oder ändern Sie ihn.

    6. Optional: Wenn Ihr Zeilenschlüsselsegment aus mehreren Teilen besteht, klicken Sie auf Zeilenschlüsselsegment hinzufügen, um weitere Felder hinzuzufügen.

  12. Klicken Sie auf Erstellen.

gcloud

Führen Sie den folgenden Befehl aus, um eine Tabelle zu erstellen. Eine vollständige Liste der Optionen finden Sie unter gcloud bigtable instances tables create.

gcloud bigtable instances tables create TABLE_ID \
    --instance=INSTANCE_ID \
    --project=PROJECT_ID \
    --column-families=COLUMN-FAMILIES

Ersetzen Sie Folgendes:

  • TABLE_ID: Eine eindeutige ID für die neue Tabelle
  • INSTANCE_ID: die ID der Instanz
  • PROJECT_ID: das Projekt, das die neue Tabelle enthalten wird
  • COLUMN-FAMILIES: Eine durch Kommas getrennte Liste von Spaltenfamiliennamen. Sie können später weitere Spaltenfamilien hinzufügen.

Optional:

  • Wenn Sie die Tabelle vor dem Löschen schützen möchten, hängen Sie den Befehl mit --deletion-protection an. Wenn Sie diese Einstellung nicht anwenden, kann die Tabelle gelöscht werden. Sie können das Löschen von Tabellen auch explizit zulassen, indem Sie --no-deletion-protection anhängen.

  • Wenn Sie einen Änderungsstream für die Tabelle aktivieren möchten, geben Sie einen Aufbewahrungszeitraum für die Änderungsstreamdaten an. Bevor Sie einen Änderungsstream aktivieren, sollten Sie sich über die Auswirkungen im Klaren sein, z. B. über erhöhte Speicherkosten und Anforderungen an die Nutzung von App-Profilen. Weitere Informationen finden Sie unter Übersicht über Änderungsstreams.

    --change-stream-retention-period=RETENTION_PERIOD
    

    Ersetzen Sie RETENTION_PERIOD durch den Zeitraum, in dem Bigtable Änderungsstreamdaten für die Tabelle beibehalten soll. Die Zeit muss zwischen einem und sieben Tagen liegen. Zulässige Einheiten sind Tage (d), Stunden (h), Minuten (m) und Sekunden (s). Beispiele: 48h oder 6d

  • Wenn Bigtable täglich eine Sicherung Ihrer Tabelle erstellen und jede Sicherung für den standardmäßigen Aufbewahrungszeitraum von sieben Tagen aufbewahren soll, verwenden Sie beim Erstellen der Tabelle das Flag --enable-automated-backup.

    gcloud bigtable instances tables create TABLE_ID \
        --instance=INSTANCE_ID \
        --project=PROJECT_ID \
        --column-families=COLUMN-FAMILIES \
        --enable-automated-backup
    

    Wenn Sie einen anderen Aufbewahrungszeitraum konfigurieren möchten, verwenden Sie das Flag --automated-backup-retention-period anstelle des Flags --enable-automated-backup und geben Sie einen Wert von bis zu 90 Tagen an. Der Wert muss als Zahl mit einer Einheit von m, h oder d (Minuten, Stunden oder Tage) angegeben werden, z. B. 15d für 15 Tage.

    Enterprise Plus-Version: Standardmäßig wird in allen Clustern in der Instanz der Tabelle eine tägliche Sicherung erstellt. Verwenden Sie zum Konfigurieren von Clusterstandorten, an denen Bigtable täglich eine Sicherung der Tabelle erstellen muss, das Flag --automated-backup-locations anstelle des Flags --enable-automated-backup. Geben Sie eine durch Kommas getrennte Liste der Clusterstandorte an, an denen die automatische Sicherung aktiviert sein muss. Beispiel: us-central1-a,us-east1-b,europe-west1-c.

  • Wenn Sie den seltenen Zugriff als Teil des gestuften Speichers (Vorschau) aktivieren möchten, verwenden Sie das Flag
    --tiered-storage-infrequent-access-older-than und ersetzen Sie AGE_THRESHOLD durch einen Wert von mindestens 30 Tagen. Zulässige Einheiten sind Tage (d), Stunden (h), Minuten (m) und Sekunden (s). Beispiel: 32d oder 32d12h.

    gcloud beta bigtable instances tables create TABLE_ID \
        --instance=INSTANCE_ID \
        --project=PROJECT_ID \
        --tiered-storage-infrequent-access-older-than=AGE_THRESHOLD
    

cbt

Verwenden Sie den folgenden Befehl und ersetzen Sie TABLE_NAME durch den Namen Ihrer Tabelle. Sie können die cbt-Befehlszeile nicht verwenden, um eine Tabelle mit aktiviertem Änderungsstream zu erstellen.

cbt createtable TABLE_ID

Optional: Wenn Sie eine aggregierte Spaltenfamilie in der Tabelle erstellen möchten, hängen Sie den Aggregationstyp an den Namen der Spaltenfamilie an. Mit dem folgenden Code wird eine aggregierte Spaltenfamilie mit einer Richtlinie für die automatische Speicherbereinigung von never erstellt.

cbt createtable TABLE_ID families=FAMILY_NAME:never:TYPE

Ersetzen Sie Folgendes:

  • TABLE_ID: Eine eindeutige ID für die neue Tabelle
  • FAMILY_NAME: Eine durch Kommas getrennte Liste von Spaltenfamiliennamen. Sie können später weitere Spaltenfamilien hinzufügen.
  • TYPE: Der Aggregattyp. Muss intsum, intmin, intmax oder inthll sein.

Weitere Optionen finden Sie in der cbt-CLI-Referenz unter Tabelle erstellen.

Wenn Sie eine Tabelle versehentlich gelöscht haben, versuchen Sie nicht, sie manuell neu zu erstellen. Verwenden Sie den gcloud CLI-Befehl bigtable instances tables undelete, um die Tabelle wiederherzustellen.

Tabelle nach dem Zeilenschlüssel teilen

Zur Optimierung der Leistung teilt Bigtable Tabellen kontinuierlich auf mehrere Knoten auf. Dabei wird die auf jedem Knoten gespeicherte Datenmenge gleichmäßig verteilt und Zeilen mit häufigem Zugriff werden nach Möglichkeit auseinandergezogen. Dieser fortlaufende Prozess erfolgt automatisch.

Wenn Sie eine neue Tabelle erstellen, können Sie die anfänglichen Tabellenteilungen angeben. Bigtable teilt die Tabelle bei den von Ihnen angegebenen Zeilenschlüsseln auf. Wenn die Schlüsselbereiche zu groß sind, teilt Bigtable die Tabelle weiter auf. Die ursprünglichen Aufteilungen werden etwa 24 Stunden nach Abschluss der Tabellenerstellung beibehalten. Sie können bis zu 100 Zeilenschlüssel angeben, bei denen die anfänglichen Aufteilungen erfolgen sollen.

Beispielsweise können Sie bestimmte Zeilen für die Vorabaufteilung festlegen, wenn Sie viele Zeilen in die Tabelle schreiben möchten.

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 Bigtable gleichzeitig die Tabellen aufteilen und die Last ausgleichen muss, während die Daten eintreffen.

Console

Sie können die Zeilen nicht im Voraus aufteilen, wenn Sie eine Tabelle mit derGoogle Cloud Console erstellen.

gcloud

Führen Sie den folgenden Befehl aus, um eine Tabelle nach Zeilenschlüssel aufzuteilen. Eine vollständige Liste der Optionen finden Sie unter gcloud bigtable instances tables create.

gcloud bigtable instances tables create TABLE_ID\
    --instance=INSTANCE_ID \
    --project=PROJECT_ID \
    --column-families=COLUMN-FAMILIES \
    --splits=SPLITS

Ersetzen Sie Folgendes:

  • TABLE_ID: Eine eindeutige ID für die neue Tabelle
  • INSTANCE_ID: die ID der Instanz
  • PROJECT_ID: das Projekt, das die neue Tabelle enthalten wird
  • COLUMN-FAMILIES: Eine durch Kommas getrennte Liste von Spaltenfamiliennamen. Sie können später weitere Spaltenfamilien hinzufügen.
  • SPLITS: die Zeilenschlüssel, nach denen die Tabelle anfangs aufgeteilt werden soll, z. B. 10,20.

cbt

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

```none
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:

```none
cbt createtable my-table splits=10,20
```

Spaltenfamilien in einer Tabelle anpassen

Sie können Spaltenfamilien in einer vorhandenen Tabelle hinzufügen. Wenn für die Tabelle kein Löschschutz aktiviert ist, können Sie Spaltenfamilien in der Tabelle löschen.

Spaltenfamilien hinzufügen

Console

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

    Liste der Instanzen öffnen

  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.

  4. Klicken Sie für die Tabelle, die Sie ändern möchten, auf Bearbeiten.

  5. Geben Sie für jede Spaltenfamilie, die Sie hinzufügen möchten, folgende Schritte ein:

    1. Klicken Sie auf Spaltenfamilie hinzufügen.
    2. Geben Sie eine eindeutige Kennung für die Spaltenfamilie ein.
    3. Legen Sie die Richtlinie für die automatische Speicherbereinigung für die Spaltenfamilie fest.
    4. Klicken Sie auf Fertig.
    5. Klicken Sie auf Speichern.

gcloud

Sie können die gcloud CLI nicht verwenden, um einer Tabelle Spaltenfamilien hinzuzufügen.

cbt

Den folgenden Befehl verwenden, um eine Spaltenfamilie hinzuzufügen:

cbt createfamily TABLE_ID 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

Optional: Wenn Sie der Tabelle eine Spaltenfamilie für aggregierte Daten hinzufügen möchten, hängen Sie den Aggregationstyp an den Namen der Spaltenfamilie an. Mit dem folgenden Befehl wird eine Tabelle mit einer aggregierten Spaltenfamilie mit einer Richtlinie für die automatische Speicherbereinigung von never erstellt.

cbt createfamily TABLE_ID FAMILY_NAME:never:TYPE

Ersetzen Sie Folgendes:

  • TABLE_ID: die Tabellen-ID
  • FAMILY_NAME: Eine durch Kommas getrennte Liste von Spaltenfamiliennamen. Sie können später weitere Spaltenfamilien hinzufügen.
  • TYPE: Der Aggregationstyp. Muss intsum, intmin, intmax oder inthll sein.

Spaltenfamilien löschen

Sie können Spaltenfamilien in einer Tabelle löschen, für die Löschschutz nicht aktiviert ist.

Console

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

    Liste der Instanzen öffnen

  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.

  4. Klicken Sie für die Tabelle, die Sie ändern möchten, auf Bearbeiten.

  5. Führen Sie für jede Spaltenfamilie, die Sie löschen möchten, die folgenden Schritte aus:

    1. Bewegen Sie den Mauszeiger auf die Zeile für die Spaltenfamilie, die Sie löschen möchten.
    2. Klicken Sie auf .
  6. Klicken Sie auf Speichern.

  7. Um zu bestätigen, dass Sie verstanden haben, dass das Löschen einer Spaltenfamilie dauerhaft ist und dass alle Daten in der Spaltenfamilie gelöscht werden, geben Sie „Spaltenfamilien löschen“ in das Textfeld ein.

  8. Klicken Sie auf Bestätigen.

gcloud

Mit der gcloud CLI können Sie keine Spaltenfamilien aus einer Tabelle löschen.

cbt

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 Google Cloud Console die Liste der Bigtable-Instanzen.

    Liste der Instanzen öffnen

  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 Daten zu Systemstatistiken für die Tabelle anzeigen zu lassen.

gcloud

Führen Sie den Befehl gcloud bigtable instances tables list aus, um eine Liste der Tabellen aufzurufen.

gcloud bigtable instances tables list --instances=INSTANCE_IDS

Ersetzen Sie Folgendes:

  • INSTANCE_IDS: eine durch Kommas getrennte Liste von Instanz-IDs.

cbt

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

    cbt ls INSTANCE_ID

Ersetzen Sie Folgendes:

  • INSTANCE_ID: Die permanente Kennzeichnung der Instanz.

C++

Informationen zum Installieren und Verwenden der Clientbibliothek für Bigtable finden Sie unter Bigtable-Clientbibliotheken.

Richten Sie zur Authentifizierung bei Bigtable die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

namespace cbt = ::google::cloud::bigtable;
namespace cbta = ::google::cloud::bigtable_admin;
using ::google::cloud::StreamRange;
[](cbta::BigtableTableAdminClient admin, std::string const& project_id,
   std::string const& instance_id) {
  std::string instance_name = cbt::InstanceName(project_id, instance_id);

  google::bigtable::admin