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

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

使用 cqlsh 连接到 Amazon Keyspaces

下面几节介绍如何使用cqlsh连接到 Amazon Keyspaces(针对 Apache Cassandra)。首先,必须获得数字证书才能使用传输层安全性 (TLS) 协议对连接进行加密。您可以使用星场数字证书连接到亚马逊 Keyspaces。

注意

您还可以使用亚马逊数字证书连接到 Amazon Keyspaces,如果您的客户端成功连接到 Amazon Keyspaces,您可以继续这样做。Starfield 证书为使用旧证书颁发机构的客户端提供了额外的向后兼容性。

有关 cqlsh 的信息,请参阅 cqlsh:CQL shell

安装和使用 cqlsh Connect 到 Amazon Keyspaces(针对 Apache Cassandra)

要安装和使用 cqlsh,必须执行以下操作:

注意

要与 Amazon Keyspaces 建立 cqlsh 连接以进行功能测试、轻型操作和迁移,您可以使用预配置的码头容器,该容器包含针对 Amazon Keyspace 进行优化的所有先决条件和配置设置,并可从https://github.com/aws-samples/amazon-keyspaces-toolkit

安装 Python 2.7

要确定计算机上是否安装了 Python 以及安装了哪个版本,请运行以下操作。

python --version

如果您安装了 Python 2.7,则输出类似于以下内容。

Python 2.7.16

如果您需要安装 Python 2.7,请按照 Python 下载中的说明进行操作。

安装和配置 CQL 客户端

Cqlsh 与 Apache Cassandra 捆绑在一起。要得到它,请按照下载和安装 Apache Cassandra 中的说明安装 Apache Cassandra。亚马逊 Keyspaces 支持与 Apache 卡珊德拉 3.11.2 兼容的驱动程序和客户端。当前推荐的 cqlsh 版本可以从Apache

安装 Cassandra 后,运行以下命令验证是否已安装 cqlsh。

cqlsh --version

输出应该类似于以下内容。

cqlsh 5.0.1

如果您使用的是 Windows,请将cqlsh替换为cqlsh.bat。例如,要检查 Windows 中的 cqlsh 版本,请运行以下命令。

cqlsh.bat --version

下载配置文件cqlshrc针对亚马逊 Keyspaces 进行了优化Github。保存下载的cqlshrc文件添加到 Cassandra 目录。

${HOME}/cassandra/cqlshrc

使用 TLS 对 cqlsh 连接加密

Amazon Keyspaces 仅接受使用传输层安全性 (TLS) 的安全连接。

必须先执行以下操作才能使用 SSL/TLS 进行连接:

  1. 使用以下命令下载 Starfield 数字证书并将其保存到path_to_file/目录。

    注意

    您还可以使用亚马逊数字证书连接到 Amazon Keyspaces,如果您的客户端成功连接到 Amazon Keyspaces,您可以继续这样做。Starfield 证书为使用旧证书颁发机构的客户端提供了额外的向后兼容性。

    curl https://certs.secureserver.net/repository/sf-class2-root.crt -O
  2. 使用以下命令 Connect 到 Amazon Keyspaces。

    重要

    ServiceUserNameServicePassword 应与您按照生成服务特定凭证中的步骤生成服务特定凭证时获得的用户名和密码相匹配。

    您还可以通过管理亚马逊 Keyspaces cqlsh 访问权限AmazonIAM 用户和角色通过使用Amazon身份验证插件扩展为 cqlsh。要了解更多信息,请参阅Amazon Keyspaces(针对 Apache Cassandra)开发人员工具包在 Github 上

    cqlsh host 9142 -u ServiceUserName -p ServicePassword --ssl

    请注意,9142 是安全端口。

    以下是示例。

    cqlsh cassandra.us-east-2.amazonaws.com 9142 -u "alice-at-111122223333" -p "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" --ssl

    连接后,输出将类似于以下内容。目前支持的阿帕奇卡桑德拉版本为 3.11.2。

    Connected to Amazon Keyspaces at cassandra.us-east-2.amazonaws.com:9142. [cqlsh 5.0.1 | Cassandra 3.11.2 | CQL spec 3.4.4 | Native protocol v4] Use HELP for help. alice-at-111122223333@cqlsh>

更新现有配置文件cqlsh连接

如果要编辑现有配置文件以支持 TLS 连接,请在 Cassandra 主目录中打开配置文件,例如${HOME}/cassandra/cqlshrc并添加以下行。

[connection] port = 9142 factory = cqlshlib.ssl.ssl_transport_factory [ssl] validate = true certfile = path_to_file/sf-class2-root.crt

您可以配置 cqlshCOPY设置以确保cqlsh保留在亚马逊 Keyspaces 内CQL 查询吞吐量调整准则。

修改配置文件 ${HOME}/cassandra/cqlshrc 中 COPY FROM 选项的默认值,并添加以下行。

[copy-from] CHUNKSIZE=50

CHUNKSIZE 的此设置可以很好地开始使用新创建的表,并且应该进行更改以支持更大的工作负载。有关如何优化cqlsh COPY配置设置,请参阅第 4 步:配置cqlsh COPY FROM设置在数据迁移教程中。