Arbeiten mit Zeilen in Amazon Keyspaces - Amazon Keyspaces (für Apache Cassandra)

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.

Arbeiten mit Zeilen in Amazon Keyspaces

Dieser Abschnitt enthält Einzelheiten zur Arbeit mit Zeilen in Amazon Keyspaces (für Apache Cassandra). Tabellen sind die primären Datenstrukturen in Amazon Keyspaces, und Daten in Tabellen sind in Spalten und Zeilen organisiert.

Berechnung der 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.

Dieser Abschnitt 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 sollten auch die kodierte Zeilengröße verwenden, wenn Sie die Anforderungen an die bereitgestellte Durchsatzkapazität für Tabellen berechnen. Um die kodierte Größe von Zeilen in Amazon Keyspaces zu berechnen, können Sie die folgenden Richtlinien verwenden.

  • 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. Weitere Informationen zu den in Amazon Keyspaces unterstützten Datentypen finden Sie unterDatentypen. Einige wichtige Unterschiede in der Art und Weise, wie Amazon Keyspaces Datentypwerte und Metadaten speichert, sind unten aufgeführt.

  • 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 Service Quotas für Amazon Keyspaces.

  • 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.

  • 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.

  • Amazon Keyspaces speichert den Datenwert jeder Partitionsschlüssel- und Clusterschlüsselspalte zweimal. Der zusätzliche Overhead wird für effizientes Abfragen und integrierte Indizierung verwendet.

  • Cassandra- ASCIITEXT, und VARCHAR String-Datentypen werden alle in Amazon Keyspaces unter Verwendung von Unicode mit UTF-8-Binärcodierung gespeichert. Die Größe einer Zeichenfolge in Amazon Keyspaces entspricht der Anzahl der UTF-8-kodierten Byte.

  • CassandraINT, BIGINTSMALLINT, und TINYINT 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.

  • A BLOB in Amazon Keyspaces wird mit der Roh-Bytelänge des Werts gespeichert.

  • Die Größe eines Null Werts oder Boolean Werts beträgt 1 Byte.

  • Eine Spalte, die unabhängig von ihrem Inhalt Sammlungsdatentypen wie Metadaten speichert LIST oder 3 Byte an Metadaten MAP benötigt. Die Größe eines LIST oder MAP ist (Spalten-ID) + Summe (Größe der verschachtelten Elemente) + (3 Byte). Die Größe eines leeren LIST Or MAP ist (Spalten-ID) + (3 Byte). Jedes Individuum LIST oder MAP Element benötigt außerdem 1 Byte an Metadaten.

  • STATICSpaltendaten werden nicht auf die maximale Zeilengröße von 1 MB angerechnet. Informationen zur Berechnung der Datengröße statischer Spalten finden Sie unterBerechnen der statischen Spaltengröße pro logischer Partition in Amazon Keyspaces.

  • Wenn die Funktion aktiviert ist, werden clientseitige Zeitstempel für jede Spalte in jeder Zeile gespeichert. Diese Zeitstempel nehmen ungefähr 20—40 Byte in Anspruch (abhängig von Ihren Daten) und tragen zu den Speicher- und Durchsatzkosten für die Zeile bei. Weitere Informationen finden Sie unter So funktionieren clientseitige Zeitstempel in Amazon Keyspaces.

  • Fügen Sie der Größe jeder Zeile für Zeilenmetadaten 100 Byte hinzu.

Die Gesamtgröße einer codierten Datenzeile basiert auf der folgenden Formel:

partition key columns + clustering columns + regular columns + row metadata = total encoded size of row
Wichtig

Alle Spaltenmetadaten, z. B. Spalten-IDs, Partitionsschlüssel-Metadaten, Cluster-Spaltenmetadaten sowie clientseitige Zeitstempel und Zeilenmetadaten werden auf die maximale Zeilengröße von 1 MB angerechnet.

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.

  1. 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.

    1. 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
    2. 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
    3. 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
  2. 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.

    1. 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
    2. 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
    3. 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
  3. 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.

  4. Um schließlich die gesamte kodierte Zeilengröße zu ermitteln, addieren Sie die Byte für alle Spalten und fügen Sie die zusätzlichen 100 Byte für die 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.