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

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

使用亚马逊 Keyspaces 中的行

本节提供有关处理 Amazon Keyspaces (a 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.