Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Schätzen Sie die Zeilengröße in Amazon Keyspaces
Amazon Keyspaces bietet vollständig verwalteten Speicher, der eine Lese- und Schreibleistung im einstelligen Millisekundenbereich bietet und Daten dauerhaft in mehreren Availability Zones speichert. AWS Amazon Keyspaces fügt Metadaten an alle Zeilen und Primärschlüsselspalten an, um einen effizienten Datenzugriff und hohe Verfügbarkeit zu unterstützen.
Dieses Thema enthält Einzelheiten zur Schätzung der codierten Zeilengröße in Amazon Keyspaces. Die kodierte Zeilengröße wird bei der Berechnung Ihrer Rechnung und der Kontingentnutzung verwendet. Sie können die kodierte Zeilengröße auch verwenden, um die Anforderungen an die bereitgestellte Durchsatzkapazität für Tabellen zu schätzen.
Um die kodierte Größe von Zeilen in Amazon Keyspaces zu berechnen, können Sie die folgenden Richtlinien verwenden.
Themen
- Schätzen Sie die kodierte Größe von Spalten
- Schätzen Sie die kodierte Größe von Datenwerten auf der Grundlage des Datentyps
- Berücksichtigen Sie die Auswirkungen der Funktionen von Amazon Keyspaces auf die Zeilengröße
- Wählen Sie die richtige Formel, um die kodierte Größe einer Zeile zu berechnen
- Beispiel für die Berechnung der Zeilengröße
Schätzen Sie die kodierte Größe von Spalten
In diesem Abschnitt wird gezeigt, wie die kodierte Größe von Spalten in Amazon Keyspaces geschätzt wird.
Reguläre Spalten — Verwenden Sie für reguläre Spalten, bei denen es sich nicht um Primärschlüssel, Clusterspalten oder
STATIC
Spalten handelt, die Rohgröße der Zellendaten basierend auf dem Datentyp und fügen Sie die erforderlichen Metadaten hinzu. Die Datentypen und einige wichtige Unterschiede in der Art und Weise, wie Amazon Keyspaces Datentypwerte und Metadaten speichert, sind im nächsten Abschnitt aufgeführt.Spalten mit Partitionsschlüsseln — Partitionsschlüssel können bis zu 2048 Byte an Daten enthalten. Jede Schlüsselspalte im Partitionsschlüssel benötigt bis zu 3 Byte an Metadaten. Bei der Berechnung der Größe Ihrer Zeile sollten Sie davon ausgehen, dass jede Partitionsschlüsselspalte die vollen 3 Byte an Metadaten verwendet.
Clusterspalten — In Clusterspalten können bis zu 850 Byte an Daten gespeichert werden. Zusätzlich zur Größe des Datenwerts benötigt jede Clusterspalte bis zu 20% der Datenwertgröße für Metadaten. Bei der Berechnung der Größe Ihrer Zeile sollten Sie 1 Byte Metadaten für jeweils 5 Byte des Datenwerts der Clusterspalte hinzufügen.
Anmerkung
Um effiziente Abfragen und integrierte Indizierung zu unterstützen, speichert Amazon Keyspaces den Datenwert jeder Partitionsschlüssel- und Clusterschlüsselspalte zweimal.
Spaltennamen — Der für jeden Spaltennamen benötigte Speicherplatz wird unter Verwendung einer Spalten-ID gespeichert und zu jedem in der Spalte gespeicherten Datenwert hinzugefügt. Der Speicherwert der Spalten-ID hängt von der Gesamtzahl der Spalten in Ihrer Tabelle ab:
1—62 Spalten: 1 Byte
63—124 Spalten: 2 Byte
125—186 Spalten: 3 Byte
Fügen Sie für jede weitere 62 Spalten 1 Byte hinzu. Beachten Sie, dass in Amazon Keyspaces bis zu 225 reguläre Spalten mit einer einzigen
INSERT
UPDATE
OR-Anweisung geändert werden können. Weitere Informationen finden Sie unter Amazon Keyspaces-Servicekontingente.
Schätzen Sie die kodierte Größe von Datenwerten auf der Grundlage des Datentyps
In diesem Abschnitt wird gezeigt, wie die kodierte Größe verschiedener Datentypen in Amazon Keyspaces geschätzt wird.
String-Typen — Cassandra-
ASCII
TEXT
, undVARCHAR
String-Datentypen werden alle in Amazon Keyspaces unter Verwendung von Unicode mit UTF -8-Binärkodierung gespeichert. Die Größe einer Zeichenfolge in Amazon Keyspaces entspricht der Anzahl von UTF -8 codierten Byte.Numerische Typen — Cassandra
INT
BIGINT
,SMALLINT
, undTINYINT
Datentypen werden in Amazon Keyspaces als Datenwerte mit variabler Länge mit bis zu 38 signifikanten Ziffern gespeichert. Nullen am Anfang und am Ende werden abgeschnitten. Die Größe jedes dieser Datentypen beträgt ungefähr 1 Byte pro zwei signifikanten Ziffern + 1 Byte.Blob-Typ — A
BLOB
in Amazon Keyspaces wird mit der Roh-Bytelänge des Werts gespeichert.Boolescher Typ — Die Größe eines
Boolean
Werts oder Werts beträgt 1 ByteNull
.Sammlungstypen — Eine Spalte, in der Sammlungsdatentypen wie Metadaten von 3 Byte gespeichert werden
LIST
oder dieseMAP
erfordern, unabhängig von ihrem Inhalt. Die Größe einesLIST
oderMAP
ist (Spalten-ID) + Summe (Größe der verschachtelten Elemente) + (3 Byte). Die Größe eines leerenLIST
OrMAP
ist (Spalten-ID) + (3 Byte). Jedes IndividuumLIST
oderMAP
Element benötigt außerdem 1 Byte an Metadaten.Benutzerdefinierte Typen — Ein benutzerdefinierter Typ (UDT) benötigt unabhängig von seinem Inhalt 3 Byte für Metadaten. Für jedes UDT Element benötigt Amazon Keyspaces zusätzlich 1 Byte an Metadaten.
Um die kodierte Größe von a zu berechnenUDT, beginnen Sie mit dem
field name
und demfield value
für die Felder von a: UDTFeldname — Jeder Feldname der obersten Ebene UDT wird unter Verwendung einer Kennung gespeichert. Der Speicherwert des Bezeichners hängt von der Gesamtzahl der Felder auf Ihrer obersten Ebene UDT ab und kann zwischen 1 und 3 Byte variieren:
1—62 Felder: 1 Byte
63—124 Felder: 2 Byte
125 — maximale Anzahl an Feldern: 3 Byte
Feldwert — Die zum Speichern der Feldwerte der obersten Ebene erforderlichen Byte UDT hängen vom gespeicherten Datentyp ab:
Skalarer Datentyp — Die für die Speicherung erforderlichen Byte sind dieselben wie für denselben Datentyp, der in einer regulären Spalte gespeichert ist.
Gefroren UDT — Für jedes eingefrorene UDT verschachtelte Objekt UDT hat das verschachtelte Objekt dieselbe Größe wie im CQL Binärprotokoll. Bei einem verschachtelten UDT Feld werden 4 Byte für jedes Feld (einschließlich leerer Felder) gespeichert, und der Wert des gespeicherten Felds entspricht dem CQL Binärprotokoll-Serialisierungsformat des Feldwerts.
Gefrorene Sammlungen:
LISTund SET— Bei verschachtelten Objekten
SET
, dieLIST
eingefroren sind, werden 4 Byte für jedes Element der Sammlung sowie das CQL Binärprotokoll-Serialisierungsformat des Sammlungswerts gespeichert.MAP— Bei einem verschachtelten
MAP
, eingefrorenen Objekt gelten für jedes Schlüssel-Wert-Paar die folgenden Speicheranforderungen:Ordnen Sie jedem Schlüssel 4 Byte zu und fügen Sie dann das CQL Binärprotokoll-Serialisierungsformat des Schlüssels hinzu.
Ordnen Sie jedem Wert 4 Byte zu und fügen Sie dann das CQL Binärprotokoll-Serialisierungsformat des Werts hinzu.
FROZENSchlüsselwort — Für eingefrorene Sammlungen, die in eingefrorenen Sammlungen verschachtelt sind, benötigt Amazon Keyspaces keine zusätzlichen Byte für Metadaten.
STATICSchlüsselwort —
STATIC
Spaltendaten werden nicht auf die maximale Zeilengröße von 1 MB angerechnet. Informationen zur Berechnung der Datengröße statischer Spalten finden Sie unterBerechnen Sie die statische Spaltengröße pro logischer Partition in Amazon Keyspaces.
Berücksichtigen Sie die Auswirkungen der Funktionen von Amazon Keyspaces auf die Zeilengröße
In diesem Abschnitt wird gezeigt, wie sich Funktionen in Amazon Keyspaces auf die kodierte Größe einer Zeile auswirken.
Clientseitige Zeitstempel — Clientseitige Zeitstempel werden für jede Spalte in jeder Zeile gespeichert, wenn die Funktion aktiviert ist. Diese Zeitstempel nehmen ungefähr 20—40 Byte ein (abhängig von Ihren Daten) und tragen zu den Speicher- und Durchsatzkosten für die Zeile bei. Weitere Informationen zu clientseitigen Zeitstempeln finden Sie unter. Clientseitige Zeitstempel in Amazon Keyspaces
Wählen Sie die richtige Formel, um die kodierte Größe einer Zeile zu berechnen
Dieser Abschnitt zeigt die verschiedenen Formeln, mit denen Sie entweder den Speicher- oder den Kapazitätsdurchsatzbedarf für eine Datenzeile in Amazon Keyspaces schätzen können.
Die kodierte Gesamtgröße einer Datenzeile kann auf der Grundlage einer der folgenden Formeln geschätzt werden, basierend auf Ihrem Ziel:
Durchsatzkapazität — Zur Schätzung der codierten Größe einer Zeile (um den erforderlichen read/write request units (RRUs/WRUs) or read/write capacity units (RCUs/WCUs Wert zu ermitteln):
total encoded size of row = partition key columns + clustering columns + regular columns
Speichergröße — Um die kodierte Größe einer Zeile zu schätzen und das vorherzusagen
BillableTableSizeInBytes
, fügen Sie die erforderlichen Metadaten für die Speicherung der Zeile hinzu:total encoded size of row = partition key columns + clustering columns + regular columns + row metadata (100 bytes)
Wichtig
Alle Spaltenmetadaten, zum Beispiel Spalten-IDs, Partitionsschlüssel-Metadaten, Cluster-Spaltenmetadaten sowie clientseitige Zeitstempel und Zeilenmetadaten werden auf die maximale Zeilengröße von 1 MB angerechnet.
Beispiel für die Berechnung der Zeilengröße
Betrachten Sie das folgende Beispiel für eine Tabelle, in der alle Spalten vom Typ Integer sind. Die Tabelle hat zwei Partitionsschlüsselspalten, zwei Clusterspalten und eine reguläre Spalte. Da diese Tabelle fünf Spalten hat, beträgt der für den Spaltennamen benötigte Speicherplatz 1 Byte.
CREATE TABLE mykeyspace.mytable(pk_col1 int, pk_col2 int, ck_col1 int, ck_col2 int, reg_col1 int, primary key((pk_col1, pk_col2),ck_col1, ck_col2));
In diesem Beispiel berechnen wir die Datengröße, wenn wir eine Zeile in die Tabelle schreiben, wie in der folgenden Anweisung dargestellt:
INSERT INTO mykeyspace.mytable (pk_col1, pk_col2, ck_col1, ck_col2, reg_col1) values(1,2,3,4,5);
Um die Gesamtanzahl der für diesen Schreibvorgang benötigten Byte zu schätzen, können Sie die folgenden Schritte verwenden.
Berechnen Sie die Größe einer Partitionsschlüsselspalte, indem Sie die Byte für den in der Spalte gespeicherten Datentyp und die Metadaten-Bytes addieren. Wiederholen Sie diesen Vorgang für alle Partitionsschlüsselspalten.
Berechnet die Größe der ersten Spalte des Partitionsschlüssels (pk_col1):
(2 bytes for the integer data type) x 2 + 1 byte for the column id + 3 bytes for partition key metadata = 8 bytes
Berechnet die Größe der zweiten Spalte des Partitionsschlüssels (pk_col2):
(2 bytes for the integer data type) x 2 + 1 byte for the column id + 3 bytes for partition key metadata = 8 bytes
Fügen Sie beide Spalten hinzu, um die geschätzte Gesamtgröße der Partitionsschlüsselspalten zu erhalten:
8 bytes + 8 bytes = 16 bytes for the partition key columns
Berechnen Sie die Größe der Clusterspalte, indem Sie die Byte für den in der Spalte gespeicherten Datentyp und die Metadaten-Bytes hinzufügen. Wiederholen Sie diesen Vorgang für alle Clusterspalten.
Berechnet die Größe der ersten Spalte der Cluster-Spalte (ck_col1):
(2 bytes for the integer data type) x 2 + 20% of the data value (2 bytes) for clustering column metadata + 1 byte for the column id = 6 bytes
Berechnet die Größe der zweiten Spalte der Cluster-Spalte (ck_col2):
(2 bytes for the integer data type) x 2 + 20% of the data value (2 bytes) for clustering column metadata + 1 byte for the column id = 6 bytes
Fügen Sie beide Spalten hinzu, um die geschätzte Gesamtgröße der Cluster-Spalten zu erhalten:
6 bytes + 6 bytes = 12 bytes for the clustering columns
Fügen Sie die Größe der regulären Spalten hinzu. In diesem Beispiel haben wir nur eine Spalte, die eine einstellige Ganzzahl speichert, was 2 Byte mit 1 Byte für die Spalten-ID erfordert.
Um schließlich die gesamte codierte Zeilengröße zu erhalten, addieren Sie die Byte für alle Spalten. Um die abrechnungsfähige Speichergröße zu schätzen, fügen Sie die zusätzlichen 100 Byte für Zeilenmetadaten hinzu:
16 bytes for the partition key columns + 12 bytes for clustering columns + 3 bytes for the regular column + 100 bytes for row metadata = 131 bytes.
Informationen zur Überwachung serverloser Ressourcen mit Amazon finden Sie CloudWatch unterÜberwachung von Amazon Keyspaces mit Amazon CloudWatch.