使用亚马逊 Keyspaces 中的行 - Amazon Keyspaces (for Apache Cassandra)
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用亚马逊 Keyspaces 中的行

本节提供有关处理 Amazon Keyspaces(适用于 Apache Cassandra)中行的详细信息。表是 Amazon Keyspaces 中的主要数据结构,表中的数据按列和行组织。

计算亚马逊 Keyspaces 中的行大小

Amazon Keyspaces(适用于 Apache Cassandra)提供完全托管的存储,提供了一位数毫秒的读写性能,并且可以跨多个持久存储数据Amazon可用区。Amazon Keyspaces 将元数据附加到所有行和主键列,以支持高效的数据访问和高可用性。

本节提供有关如何估计 Amazon Keyspaces 中行的编码大小的详细信息。计算账单和配额使用时使用编码的行大小。在计算表的预配置吞吐量容量要求时,还应使用编码的行大小。要计算 Amazon Keyspaces 中的编码行大小,您可以使用以下准则。

  • 分区键可包含最多 2048 字节的数据。分区键中的每个键列最多需要 3 个字节的元数据。这些元数据字节计入您的 1 MB 行大小配额中。计算行的大小时,应假设每个分区键列都使用完整的 3 个字节的元数据。

  • 每行最多可以有 850 字节的聚类列数据,每个聚类列最多需要 4 个字节的元数据。这些元数据字节计入您的 1 MB 行大小配额中。计算行的大小时,应假设每个聚类列都使用完整的 4 个字节的元数据。

  • 对于常规、非静态、非主键列,请根据数据类型使用单元格数据的原始大小。有关数据类型的更多信息,请参阅 数据类型

  • 静态列数据不计入 1 MB 的最大行大小。要计算静态列的数据大小,请参阅计算 Amazon Keyspaces 中每个逻辑分区的静态列大小.

  • 为行元数据的每行大小添加 100 个字节。

编码数据行的总大小根据以下公式计算:

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

考虑以下表示例,其中所有列均为整型。该表有两个分区键列、两个聚类列和一个常规列。

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));

在此示例中,我们计算向表中写入一行时的数据大小,如以下语句所示:

INSERT INTO mykeyspace.mytable (pk_col1, pk_col2, ck_col1, ck_col2, reg_col1) values(1,2,3,4,5);

要估计此写入操作所需的总字节数,可以使用以下步骤。

  1. 通过添加存储在列中的数据类型的字节和元数据字节来计算分区键列的大小。对所有分区键列重复此操作。

    1. 计算分区键的第一列 (pk_col1) 的大小:

      4 bytes for the integer data type + 3 bytes for partition key metadata = 7 bytes
    2. 计算分区键 (pk_col2) 的第二列的大小:

      4 bytes for the integer data type + 3 bytes for partition key metadata = 7 bytes
    3. 添加两列以获取分区键列的总估计大小:

      7 bytes + 7 bytes = 14 bytes for the partition key columns
  2. 通过添加存储在列中的数据类型的字节和元数据字节来计算聚类列的大小。对所有聚类列重复此操作。

    1. 计算聚类列的第一列 (ck_col1) 的大小:

      4 bytes for the integer data type + 4 bytes for clustering column metadata = 8 bytes
    2. 计算聚类列的第二列 (ck_col2) 的大小:

      4 bytes for the integer data type + 4 bytes for clustering column metadata = 8 bytes
    3. 添加两列以获取聚类列的总估计大小:

      8 bytes + 8 bytes = 16 bytes for the clustering columns
  3. 添加常规列的大小。在这个例子中,我们只有一个存储整数的列,它需要 4 个字节。

  4. 最后,要获得编码行的总大小,请将所有列的字节加起来,然后为行元数据添加额外的 100 个字节:

    14 bytes for the partition key columns + 16 bytes for clustering columns + 4 bytes for the regular column + 100 bytes for row metadata = 134 bytes.

要了解如何使用 Amazon CloudWatch 监控无服务器资源,请参阅使用 Amazon CloudWatch 监控 Amazon Keyspaces.