Tabellenstatistiken
Bigtable bietet Tabellenstatistiken – Metadaten zu einer Tabelle –, die Ihnen zusammenfassende Informationen zur Tabelle liefern, z. B. die Anzahl der Zeilen oder die durchschnittliche Anzahl der Zellen pro Spalte.
In diesem Dokument werden Tabellenstatistiken beschrieben und es wird erläutert, wie Sie sie mit der Google Cloud CLI abrufen. Bevor Sie diese Seite lesen, sollten Sie das Bigtable-Speichermodell verstehen und mit den Best Practices für Schemadesign und der automatischen Speicherbereinigung vertraut sein.
Tabellenstatistiken bieten Einblick in eine Bigtable-Tabelle. Sie können nützlich sein, wenn Sie Probleme mit der Leistung oder dem Speicher beheben oder die Quelle der Speicherkosten ermitteln möchten. Sie können Ihnen auch dabei helfen, festzustellen, ob Sie mehr Daten speichern, als Sie benötigen.
Erwartete Precision
Wenn Sie Tabellenstatistiken für eine Tabelle abrufen, sind die Daten, die Sie erhalten, Näherungswerte. Die Tabellenstatistiken spiegeln den Status Ihrer Tabelle in einem der Cluster Ihrer Instanz zum Zeitpunkt der letzten Verdichtung wider.
Ein vollständiger Satz von Tabellenstatistiken ist erst nach der ersten Verdichtung verfügbar, die in der Regel etwa eine Woche nach dem Erstellen der Tabelle erfolgt. Die Tabellenstatistiken sind zum Zeitpunkt der letzten Verdichtung korrekt, die bis zu einer Woche zurückliegen kann.
Tabellenstatistikfelder
Eine Anfrage für die Tabellenstatistiken einer Tabelle gibt die folgenden Felder zurück. Details und Beispiele finden Sie im nächsten Abschnitt.
| Feld „Tabellenstatistiken“ | API-Name | Beschreibung |
|---|---|---|
| Zeilenanzahl | row_count |
Die Anzahl der Zeilen in der Tabelle Weitere Informationen finden Sie unter Zeilenanzahl. |
| Durchschnittliche Anzahl der Spalten pro Zeile | average_columns_per_row |
Die durchschnittliche Anzahl der Spalten in jeder Zeile für die gesamte Tabelle. Weitere Informationen und ein Beispiel finden Sie unter Durchschnittliche Anzahl von Spalten pro Zeile . |
| Durchschnittliche Anzahl der Zellen pro Spalte | average_cells_per_column |
Die durchschnittliche Anzahl der Zellen, die in allen Spalten in allen Zeilen gespeichert sind. Weitere Informationen finden Sie unter Durchschnittliche Anzahl von Zellen pro Spalte. |
| Logische Daten in Byte | logical_data_bytes |
Der von der Tabelle belegte Speicherplatz. Weitere Informationen finden Sie unter Logische Daten in Byte. |
Die Tabellenstatistiken enthalten außerdem die folgenden Felder für jede Spaltenfamilie in der Tabelle.
| Feld „Statistik der Spaltenfamilie“ | API-Name | Beschreibung |
|---|---|---|
| Durchschnittliche Anzahl der Spalten pro Zeile | average_columns_per_row |
Die durchschnittliche Anzahl von Spalten pro Zeile in der Spaltenfamilie. Weitere Informationen und ein Beispiel finden Sie unter Durchschnittliche Anzahl von Spalten pro Zeile. |
| Durchschnittliche Anzahl der Zellen pro Spalte | average_cells_per_column |
Die Anzahl der Zellen in jeder Spalte, gemittelt über alle Zeilen mit Spalten in der Spaltenfamilie. Weitere Informationen und ein Beispiel finden Sie unter Durchschnittliche Anzahl von Zellen pro Spalte. |
| Logische Daten in Byte | logical_data_bytes |
Der Speicherplatz, den die Spaltenfamilie belegt. Weitere Informationen finden Sie unter Logische Daten in Byte. |
Details zum Feld „Tabellenstatistiken“
Zeilenanzahl
Die Zeilenanzahl ist die Anzahl der Zeilen in der Tabelle. Jede Zeile wird durch einen Zeilenschlüssel identifiziert.
Durchschnittliche Anzahl der Spalten pro Zeile
Um die durchschnittliche Anzahl von Spalten pro Zeile für eine Tabelle zu ermitteln, zählt Bigtable die Anzahl der Spalten in der gesamten Tabelle und teilt diesen Wert durch die Anzahl der Zeilen in der Tabelle.
Betrachten Sie als Beispiel die folgende Tabelle. Die erste Zeile hat drei Spalten und die zweite Zeile zwei Spalten.
| Zeilenschlüssel | Spaltenfamilie Familie-A | Spaltenfamilie Familie-B | ||
|---|---|---|---|---|
| Zeilenschlüssel 1 | family-A:qualifier-W | family-A:qualifier-X | Familie-B:Qualifier-Y | |
| Zeilenschlüssel 2 | family-A:qualifier-W | Familie-B:Qualifier-Z | ||
Die Tabelle hat fünf Spalten und zwei Zeilen, sodass die durchschnittliche Anzahl der Spalten pro Zeile 2.5 beträgt.
Anhand dieses Tabellenwerts können Sie sich einen allgemeinen Überblick darüber verschaffen, ob Ihre Tabelle hoch und schmal (wenige Spalten pro Zeile) oder niedrig und breit (viele Spalten pro Zeile) ist.
Durchschnittliche Anzahl der Zellen pro Spalte
Um die durchschnittliche Anzahl von Zellen pro Spalte für eine Tabelle zu ermitteln, nimmt Bigtable die Gesamtzahl der in der Tabelle gespeicherten Zellen und teilt sie durch die Anzahl der Spalten in der Tabelle.
Je nach Schemadesign und Richtlinien für die automatische Speicherbereinigung kann eine Spalte in Ihrer Tabelle mehrere Zellen oder nur eine Zelle enthalten. Die Anzahl der Zellen, die Sie speichern können, hängt von den Größenbeschränkungen auf der Seite „Kontingente und Limits“ unter Größe von Daten in Tabellen ab.
Wenn diese Zahl höher ist als erwartet, prüfen Sie Ihre Regeln für die automatische Speicherbereinigung, um festzustellen, ob Sie mehr Zellen als nötig aufbewahren. Sie können sich auch fragen, ob Ihr Schema und Ihre Schreibmuster angepasst werden sollten.
Logische Daten in Byte (Tabelle)
Dieser Wert stellt die ungefähre Anzahl unkomprimierter Byte dar, die zum Lesen der gesamten Tabelle erforderlich wären. Dieser Tabellenwert gibt Ihnen eine Vorstellung von der Rohdatenmenge, die in der Tabelle gespeichert ist.
Logische Größe mit Speicherauslastung vergleichen
Bigtable komprimiert Daten automatisch, wenn sie auf ein Laufwerk geschrieben werden. Daher spiegelt die Tabellengröße, die in Cloud Monitoring und auf der Clusterübersichtsseite als Speichernutzung (Byte) gemeldet wird, den physischen komprimierten Speicher auf dem Laufwerk wider und nicht die unkomprimierte logische Datengröße. Die Abrechnung für den Speicher basiert ebenfalls auf dieser physischen komprimierten Größe.
Wenn Sie beide Werte kennen, können Sie das effektive Komprimierungsverhältnis berechnen:
Einsparungen durch Komprimierung: Wenn Sie Ihre logischen Daten in Byte durch Ihre Speichernutzung in Byte teilen, erhalten Sie eine Schätzung Ihres Komprimierungsverhältnisses. Wenn Ihre Tabelle beispielsweise 10 TB logische Daten enthält und 2,5 TB Speicherplatz auf dem Laufwerk belegt, beträgt das Komprimierungsverhältnis etwa 4:1.
Unkomprimierte oder vorkomprimierte Daten: Wenn die Speicherauslastung in Cloud Monitoring gleich oder größer als die logischen Daten in Byte ist, werden Ihre Daten möglicherweise in einem Format gespeichert, das sich nicht einfach komprimieren lässt (z. B. Daten, die vor dem Schreiben in Bigtable verschlüsselt oder komprimiert wurden), oder Ihre Tabelle enthält möglicherweise Zellenwerte, die größer als 1 MiB sind und von Bigtable nicht automatisch komprimiert werden. Weitere Informationen dazu, wie Bigtable Daten komprimiert, finden Sie unter Datenkomprimierung.
Überschriebene oder gelöschte Daten, die auf die Komprimierung warten: Neue Mutationen werden komprimiert, sobald sie auf das Laufwerk geschrieben werden, nicht während der Komprimierung. Wenn Sie jedoch Daten überschreiben oder löschen, bleiben die älteren Zellenversionen und Löschmarkierungen (Tombstones) auf dem Laufwerk und werden auf die Speichernutzung angerechnet, bis sie bei der nächsten Verdichtung endgültig entfernt werden. Außerdem spiegeln die Tabellenstatistiken die Tabelle zum Zeitpunkt der letzten Verdichtung wider, während die Speicherauslastung in Cloud Monitoring kontinuierlich aktualisiert wird, wenn neue Daten geschrieben werden.
Details zum Feld „Statistik der Spaltenfamilie“
Die Tabellenstatistiken für eine Tabelle enthalten die folgenden Felder für jede Spaltenfamilie in der Tabelle.
Durchschnittliche Anzahl der Spalten pro Zeile
Dieser Wert wird berechnet, indem die Anzahl der Spalten in der Spaltenfamilie durch die Anzahl der Zeilen in der Tabelle geteilt wird.
Betrachten Sie als Beispiel die folgende Tabelle. Die Tabelle hat drei Zeilen mit Spalten in den Spaltenfamilien family-A und family-B.
| Zeilenschlüssel | Spaltenfamilie Familie-A | Spaltenfamilie Familie-B | ||
|---|---|---|---|---|
| Zeilenschlüssel 1 | family-A:qualifier-W | family-A:qualifier-X | Familie-B:Qualifier-Y | |
| Zeilenschlüssel 2 | family-A:qualifier-W | |||
| Zeilenschlüssel 3 | family-A:qualifier-W | family-A:qualifier-X | Familie-B:Qualifier-Y | Familie-B:Qualifier-Z |
Die Spaltenfamilie family-A hat insgesamt fünf Spalten in der Tabelle. Geteilt durch drei Zeilen bedeutet das, dass die durchschnittliche Anzahl von Zellen pro Spalte für family-A 1.67 beträgt (hier auf zwei Dezimalstellen gerundet).
Die Spaltenfamilie family-B hat insgesamt drei Spalten in der Tabelle. Geteilt durch drei Zeilen beträgt die durchschnittliche Anzahl der Spalten pro Zeile für family-A 1.
Durchschnittliche Anzahl der Zellen pro Spalte
Um die durchschnittliche Anzahl von Zellen pro Spalte einer Spaltenfamilie zu ermitteln, nimmt Bigtable die Anzahl aller Zellen in der Spaltenfamilie in allen Zeilen der Tabelle und teilt sie durch die Anzahl der Zeilen in der Tabelle.
Betrachten Sie beispielsweise die folgenden Zeilen in der Spaltenfamilie family-D.
| Zeilenschlüssel | Spaltenfamilie Familie-D | ||
|---|---|---|---|
| Zeilenschlüssel 1 | Familie-D:Qualifier-W (3 Zellen) | Familie-D:Qualifier-X (1 Zelle) | |
| Zeilenschlüssel 2 | Familie-D:Qualifier-X (10 Zellen) | ||
| Zeilenschlüssel 3 | Familie-D:Qualifier-W (7 Zellen) | Familie-D:Qualifier-Y (6 Zellen) | |
Die Anzahl der Zellen in der Spaltenfamilie beträgt 3 + 1 + 10 + 7 + 6 = 27. Dieser Wert geteilt durch 3 (die Anzahl der Zeilen) bedeutet, dass die Spaltenfamilie family-D einen Durchschnitt von 9 Zellen pro Spalte hat.
Logische Daten in Byte (Spaltenfamilie)
Die logischen Daten in Byte spiegeln den unkomprimierten Speicherplatz wider, den die Spaltenfamilie belegt. Dieser Wert entspricht ungefähr der Anzahl der unkomprimierten Byte, die zum Lesen aller Daten in der Spaltenfamilie zum Zeitpunkt der Rückgabe der Tabellenstatistiken erforderlich sind. Wie logische Byte auf Tabellenebene spiegelt dieser Wert nicht die Speichereinsparungen durch die Datenkomprimierung auf dem Laufwerk wider.
Beispiel mit der gcloud CLI
Verwenden Sie den Befehl bigtable instances table describe, um Tabellenstatistiken für eine Tabelle mit dem Namen sample-table abzurufen:
gcloud bigtable instances tables describe TABLE_ID \
--instance=INSTANCE_ID --view stats
Dabei gilt:
TABLE_ID: Die permanente Kennzeichnung der TabelleINSTANCE_ID: Die permanente Kennzeichnung der Instanz
Die Ausgabe sieht in etwa so aus:
columnFamilies:
my-family:
stats:
averageCellsPerColumn: 12.34
averageColumnsPerRow: 56.78
logicalDataBytes: 314159
name: projects/my-project/instances/INSTANCE_ID/tables/TABLE_ID
stats:
averageCellsPerColumn: 12.34
averageColumnsPerRow: 56.78
logicalDataBytes: 314159
rowCount: 271828