Zähler in Bigtable erstellen und aktualisieren

Hier erfahren Sie, wie Sie Zähler in Bigtable mit Aggregaten erstellen und aktualisieren. Das sind Tabellenzellen, die Werte zur Schreibzeit aggregieren. In dieser Kurzanleitung werden mit der Google Cloud CLI und der cbt Befehlszeile drei Zähler erstellt:

  • Ein Zähler, der eine laufende Summe führt
  • Ein Zähler, der den Mindestwert aller hinzugefügten Werte erfasst
  • Ein Zähler, der den Höchstwert aller hinzugefügten Werte erfasst

Hinweis

  1. Melden Sie sich bei Ihrem Google-Konto an.

    Wenn Sie noch kein Konto haben, melden Sie sich hier für ein neues Konto an.

  2. Installieren Sie die Google Cloud CLI.

  3. Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.

  4. Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:

    gcloud init
  5. Aktualisieren Sie die gcloud CLI nach der Initialisierung und installieren Sie die erforderlichen Komponenten:

    gcloud components update
    gcloud components install cbt
  6. Erstellen Sie ein neues Projekt oder wählen Sie ein vorhandenes Projekt Google Cloud aus.

    Erforderliche Rollen zum Auswählen oder Erstellen eines Projekts

    • Projekt auswählen: Für die Auswahl eines Projekts ist keine bestimmte IAM-Rolle erforderlich. Sie können ein beliebiges Projekt auswählen, für das Ihnen eine Rolle zugewiesen wurde.
    • Projekt erstellen: Zum Erstellen eines Projekts benötigen Sie die Rolle „Projektersteller“ (roles/resourcemanager.projectCreator), die die resourcemanager.projects.create Berechtigung enthält. Rollen zuweisen.
    • Erstellen Sie ein Google Cloud Projekt:

      gcloud projects create PROJECT_ID

      Ersetzen Sie PROJECT_ID durch einen Namen für das Google Cloud Projekt, das Sie erstellen.

    • Wählen Sie das Google Cloud Projekt aus, das Sie erstellt haben:

      gcloud config set project PROJECT_ID

      Ersetzen Sie PROJECT_ID durch Ihren Google Cloud Projektnamen.

  7. Prüfen Sie, ob für Ihr Google Cloud Projekt die Abrechnung aktiviert ist.

  8. Aktivieren Sie die Cloud Bigtable API und die Cloud Bigtable Admin API:

    Erforderliche Rollen zum Aktivieren von APIs

    Zum Aktivieren von APIs benötigen Sie die IAM-Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin), die die Berechtigung serviceusage.services.enable enthält. Rollen zuweisen.

    gcloud services enable bigtable.googleapis.com bigtableadmin.googleapis.com
  9. Installieren Sie die Google Cloud CLI.

  10. Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.

  11. Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:

    gcloud init
  12. Aktualisieren Sie die gcloud CLI nach der Initialisierung und installieren Sie die erforderlichen Komponenten:

    gcloud components update
    gcloud components install cbt
  13. Erstellen Sie ein neues Projekt oder wählen Sie ein vorhandenes Projekt Google Cloud aus.

    Erforderliche Rollen zum Auswählen oder Erstellen eines Projekts

    • Projekt auswählen: Für die Auswahl eines Projekts ist keine bestimmte IAM-Rolle erforderlich. Sie können ein beliebiges Projekt auswählen, für das Ihnen eine Rolle zugewiesen wurde.
    • Projekt erstellen: Zum Erstellen eines Projekts benötigen Sie die Rolle „Projektersteller“ (roles/resourcemanager.projectCreator), die die resourcemanager.projects.create Berechtigung enthält. Rollen zuweisen.
    • Erstellen Sie ein Google Cloud Projekt:

      gcloud projects create PROJECT_ID

      Ersetzen Sie PROJECT_ID durch einen Namen für das Google Cloud Projekt, das Sie erstellen.

    • Wählen Sie das Google Cloud Projekt aus, das Sie erstellt haben:

      gcloud config set project PROJECT_ID

      Ersetzen Sie PROJECT_ID durch Ihren Google Cloud Projektnamen.

  14. Prüfen Sie, ob für Ihr Google Cloud Projekt die Abrechnung aktiviert ist.

  15. Aktivieren Sie die Cloud Bigtable API und die Cloud Bigtable Admin API:

    Erforderliche Rollen zum Aktivieren von APIs

    Zum Aktivieren von APIs benötigen Sie die IAM-Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin), die die Berechtigung serviceusage.services.enable enthält. Rollen zuweisen.

    gcloud services enable bigtable.googleapis.com bigtableadmin.googleapis.com
  16. Führen Sie die folgenden Befehle aus, um sicherzustellen, dass die gcloud CLI auf dem neuesten Stand ist und die cbt CLI enthält:
    gcloud components update
    gcloud components install cbt

Bigtable-Instanz erstellen

  1. Verwenden Sie den bigtable instances create Befehl, um eine Instanz zu erstellen.

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

Mit Instanz verbinden

  1. Konfigurieren Sie die cbt Befehlszeile so, dass Ihr Projekt und Ihre Instanz verwendet werden. Erstellen Sie dazu eine .cbtrc Datei.

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

    Ersetzen Sie PROJECT_ID durch die ID des Projekts, das Sie verwenden.

  2. Prüfen Sie, ob Sie die .cbtrc-Datei korrekt eingerichtet haben.

    cat ~/.cbtrc
    

    Das Terminal zeigt den Inhalt der .cbtrc-Datei, der in etwa so aussieht:

    project = PROJECT_ID
    instance = counters-quickstart-instance

    Jetzt können Sie die cbt Befehlszeile mit Ihrer Instanz verwenden.

Tabelle mit aggregierten Spaltenfamilien erstellen

  1. Verwenden Sie den cbt createtable Befehl, um eine Tabelle mit dem Namen counters_quickstart_table zu erstellen, die drei aggregierte Spaltenfamilien enthält. Konfigurieren Sie für jede Spaltenfamilie einen anderen Aggregationstyp:

    • Die Spaltenfamilie max_family hat den Typ Max mit dem Eingabetyp Integer.
    • Die Spaltenfamilie min_family hat den Typ Min mit dem Eingabetyp Integer.
    • Die Spaltenfamilie sum_family hat den Typ Sum mit dem Eingabetyp Integer.
    cbt createtable counters_quickstart_table families=sum_family:never:intsum,min_family:never:intmin,max_family:never:intmax
    
  2. Listen Sie die Spaltenfamilien mit dem cbt ls Befehl auf.

    cbt ls counters_quickstart_table
    

    Die Shell zeigt in etwa Folgendes an:

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

Zähler in der Tabelle erstellen

  1. Verwenden Sie den cbt addtocell Befehl, um mit dem Zeilenschlüssel row-key1 und dem Zeitstempel 0 den Anfangswert 5 in eine neue Spalte in jeder der drei Spaltenfamilien zu schreiben. Bei dieser Operation werden aggregierte Zellen erstellt, die Sie als Zähler verwenden.

    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
    

Daten lesen

  1. Wenn Sie die Zählerwerte als Ganzzahlen und nicht als Byte anzeigen möchten, definieren Sie eine yaml Datei, mit der die cbtBefehlszeile die Ausgabe formatieren kann. Führen Sie den folgenden Befehl aus:

    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. Prüfen Sie, ob Sie die Datei cbtformat.yaml korrekt eingerichtet haben.

    cat ~/cbtformat.yaml
    

    Das Terminal zeigt den Inhalt der Datei cbtformat.yaml, der in etwa so aussieht:

    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. Übergeben Sie die yaml Datei mit dem cbt read Befehl und lesen Sie die Daten, die Sie der Tabelle hinzugefügt haben. Die Tabelle enthält jetzt drei Spalten mit jeweils einem anderen Aggregationstyp.

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

    Die Shell zeigt in etwa Folgendes an. Die Werte sind als Ganzzahlen formatiert und die Zeitstempel sind im UTC-Format.

    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
    

Zähler aktualisieren

  1. Fügen Sie jeder Spalte in der Tabelle den Wert 3 hinzu. Verwenden Sie dabei dieselben Zeitstempel wie beim Erstellen der Zellen. In jeder Spalte wird der Zellenwert mit dem vorhandenen Wert zusammengeführt, basierend auf dem Aggregationstyp der Zelle.

    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. Verwenden Sie noch einmal den Befehl cbt read, um die Daten in der Tabelle zu lesen. Jede Zelle enthält jetzt einen aggregierten Wert.

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

    Die sum_column enthält die Summe von 5 und 3 (8), min_column enthält den Mindestwert der beiden Werte, die darin geschrieben wurden (3), und max_column enthält den Höchstwert der beiden Werte, die darin geschrieben wurden (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
    
  3. Optional: Fragen Sie die Tabelle in der Google Cloud console mit SQL ab.

    1. Öffnen Sie in der Google Cloud console die Seite Bigtable-Instanzen.

      Instanzliste öffnen

    2. Wählen Sie in der Liste counters-quickstart-instance aus.

    3. Klicken Sie im Navigationsmenü auf Bigtable Studio.

    4. Klicken Sie auf den Tab Editor.

    5. Fügen Sie diese Abfrage in den Editor ein:

      SELECT * FROM `counters_quickstart_table`
      
    6. Klicken Sie auf Ausführen. Die Ergebnisse der Abfrage werden in der Tabelle Ergebnisse angezeigt und sehen in etwa so aus:

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

Bereinigen

Löschen Sie das Projekt von zusammen mit den Ressourcen, damit Ihrem Google Cloud Konto von die auf dieser Seite verwendeten Ressourcen nicht in Rechnung gestellt werden. Google Cloud

  1. Löschen Sie im Terminal die Tabelle counters_quickstart_table:

    cbt deletetable counters_quickstart_table
    
  2. Löschen Sie die Instanz:

    cbt deleteinstance counters-quickstart-instance
    
  3. Löschen Sie die Datei .cbtrc:

    rm ~/.cbtrc
    
  4. Löschen Sie die Formatierungsdatei:

    rm ~/cbtformat.yaml
    
  5. Optional: Widerrufen Sie Anmeldedaten von der gcloud CLI:

    gcloud auth revoke
    

Nächste Schritte