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

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

功能差异:Amazon Keyspaces 与 Apache Cassandra

下面是 Amazon Keyspaces 与 Apache Cassandra 之间的功能差异。

Apache Cassandra API、操作和数据类型

Amazon Keyspaces 支持所有常用的 Cassandra 数据层面操作,例如创建键空间和表、读取数据和写入数据。要查看当前支持的项,请参阅Amazon Keyspaces 中支持的 Cassandra API、操作和数据类型

异步创建和删除 Keyspaces 和表

Amazon Keyspaces 异步执行数据定义语言 (DDL) 操作,例如创建和删除键空间和表。要了解如何监控资源的创建状态,请参阅在亚马逊 Keyspaces 中创建 Keyspaces在亚马逊 Keyspaces 中创建表。有关 CQL 语言参考中的 DDL 语句列表,请参阅Amazon Keyspaces 中的 DDL 语句(数据定义语言)

身份验证和授权

Amazon Keyspaces(针对 Apache Cassandra)使用Amazon Identity and Access Management(IAM),并支持与 Apache Cassandra 等效的授权策略。因此,Amazon Keyspaces 不支持 Apache Cassandra 的安全配置命令。

Batch

Amazon Keyspaces 支持未记录的批处理命令,批处理中最多包含 30 条命令。批处理中仅允许无条件的 INSERTUPDATEDELETE 命令。不支持记录的批处理。

群集配置

Amazon Keyspaces 是无服务器的,因此没有要配置的集群、主机或 Java 虚拟机 (JVM)。Cassandra 的压缩、缓存、垃圾回收和 bloom 筛选设置不适用于 Amazon Keyspaces,这些设置在指定后将被忽略。

CQL 查询吞吐量调整

Amazon Keyspaces 支持每秒每个 TCP 连接 3000 个 CQL 查询,但驱动程序可建立的连接数不受限。大多数开源 Cassandra 驱动程序建立到 Cassandra 的连接池,并通过该连接池对查询实施负载平衡。Amazon Keyspaces 向驱动程序公开 9 个对等 IP 地址,大多数驱动程序的默认行为是建立到每个对等 IP 地址的单个连接。因此,使用默认设置的驱动程序的最大 CQL 查询吞吐量将是每秒 27000 次 CQL 查询。要增大此数字,我们建议增加驱动程序在其连接池中维护的每个 IP 地址的连接数。例如,如果将每个 IP 地址的最大连接数设置为 2,则将使驱动程序的最大吞吐量增加一倍,达到每秒 54000 次 CQL 查询。

空字符串

Amazon Keyspaces 支持空字符串和 blob 值。但是,不支持空字符串和 blob 作为聚类列值。

轻量级事务

Amazon Keyspaces(针对 Apache Cassandra)完全支持比较和设置功能INSERTUPDATE命令,称为轻量级事务(LWT) 在阿帕奇卡桑德拉. 作为无服务器产品,Amazon Keyspaces(针对 Apache Cassandra)提供任何规模(包括轻量级事务)的一致性能。使用 Amazon Keyspaces,使用轻量级事务不会造成性能损失。

负载均衡

这些区域有:system.peers表条目对应于 Amazon Keyspaces 负载均衡器。要获得最佳结果,我们建议使用轮询负载平衡策略并调整每个 IP 的连接数以满足应用程序需求。

Pagination

Amazon Keyspaces 根据 KKeyspaces 为处理请求而读取的行数(而不是结果集中返回的行数)对结果进行分页。因此,某些页面包含的行可能少于您在 PAGE SIZE 中为筛选查询指定的行。此外,Amazon Keyspaces 在读取 1MB 数据后自动对结果进行分页,从而为客户提供一致的单位数毫秒读取性能。有关更多信息,请参阅 亚马逊 Keyspaces 中的分页结果

准备的语句

Amazon Keyspaces 支持将预准备好的语句用于数据操作语言 (DML) 操作,如读取和写入数据。Amazon Keyspaces 目前不支持使用预准备的语句执行数据定义语言 (DDL) 操作,例如创建表和键空间。DDL 操作必须在预准备语句之外执行。

范围删除

Amazon Keyspaces 支持删除范围内的行。范围是分区内一组连续的行。您可以使用 WHERE 子句在 DELETE 操作中指定范围。您可以将范围指定为整个分区。此外,您可以通过使用关系运算符(例如 “>”、“<”)或通过包含分区键并省略一个或多个聚类列,将范围指定为分区内连续行的子集。借助 Amazon Keyspaces,您可以在单个操作中删除范围内最多 1,000 行。此外,范围删除是原子的,但不是隔离的。

系统表

Amazon Keyspaces 填充 Apache 2.0 开源 Cassandra 驱动程序所需的系统表。对客户端可见的系统表包含经过身份验证的用户所特有的信息。系统表完全由 Amazon Keyspaces 控制,并且是只读的。