问题标签 [amazon-keyspaces]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
amazon-keyspaces - DML 语句(选择、插入等)的错误是否记录在 AWS Keyspaces (Cassandra) 的某处
我从试图排除故障的 AWS Keyspaces 收到一个模糊的错误,但看起来 AWS 只在 Cloudtrail 中存储 Keyspaces 的 DDL 语句日志,而不是 DML。我可以在 AWS Console for Keyspaces 的仪表板中看到“错误计数”,但没有关于错误本身的详细信息。 这不是关于我的插入语句可能有什么问题的问题,或者其他问题,而只是关于这些错误是否记录在 AWS 某处的问题。
我知道从故障排除的角度来看还有其他方法可以解决这个问题,但我想首先确定 AWS 是否在某处记录了与 DML 相关的服务器端错误,或者如果可以的话,是否可以通过额外的配置进行记录。
如果有人遇到类似的事情,这里是我从错误本身得到的所有细节:
spring - Amazon Keyspace NoHostAvailableException
我正在运行一个 Spring Boot 应用程序并使用 Spring Boot cassandra 连接到键空间。以下是正在使用的属性:
spring.data.cassandra.contact-points=cassandra.us-east-2.amazonaws.com
spring.data.cassandra.port=9142
spring.data.cassandra.ssl=真
我将 cassandra 信任库密钥作为 vm 参数传递。在我的本地开发环境中,它运行良好,没有任何问题。
当我创建一个具有完全相同 cassandra 配置的 docker 映像并将其部署在 AWS 云中(使用 ECS)时,它每次都会失败,并出现以下异常 Invocation of init 方法失败;嵌套异常是 com.datastax.driver.core.exceptions.NoHostAvailableException:所有主机尝试查询失败(尝试:cassandra.us-east-2.amazonaws.com/3.12.23.159:9142(com.datastax.driver .core.exceptions.TransportException:cassandra.us-east-2.amazonaws.com/3.12.23.159:9142 无法连接)-
在这里,我还通过启用日志将 trustore 密钥作为 vm 参数和验证证书传递。有人可以帮我解决这个问题。
amazon-web-services - 如何在 AWS Amazon Keyspace 中替换记录的批处理
我正在将我的产品从自托管的 cassandra 节点转移到 Amazon Keyspace。一个问题是 Amazon Keyspace 不支持记录批处理,因为在某些情况下它可能会使用太多资源。
在我的代码中,我有多种情况需要使用已记录的批次,但我找不到任何合理的解决方案来替代它。
用例:我们有 X 个表,我们正在对这些表进行行传播,以便为查询目的使用不同的主键。我们在这里执行记录批处理,因此我们在所有这些表中都具有数据一致性。
我想到的唯一解决方案是将同一行异步插入X表中,如果有任何失败,请再次执行,直到没有错误为止。
python - 是否可以在成功创建记录的 INSERT 操作后从 Cassandra 获得回调?
我遇到了非常奇怪的行为,并试图了解在哪些情况下可能会发生这种情况。在我的Python应用程序中,我通过驱动程序访问Cassandra数据库。
正如你在下面看到的,首先,我做了一个INSERT
操作,它在表中创建了一条记录。接下来,我执行一个SELECT
操作,该操作应返回之前创建的最后一条消息。有时选择操作会向我返回空值。我假设 Cassandra 有一个内部调度程序来执行 INSERT 任务。但是,当我尝试通过 SELECT 操作获取最后一条记录时,该记录尚未创建。这可能吗?
问题:
是否可以在成功创建记录的 INSERT 操作后从 Cassandra 获得回调?
片段:
amazon-web-services - EC2 实例 (Elastic Beanstalk) 上的 Amazon Cassandra 连接超时
我无法从我的 EC2 实例连接到 Amazon 托管 Cassandra (Keyspaces)。EC2 实例位于具有密钥空间的 VPC 终端节点的 VPC 的私有子网中。
EC2 出站规则:
VPC Endpoint 入站规则:
VPC Endpoint 出站规则:
这些规则实际上可能过于宽松。
C# 驱动程序错误:
我可以通过 SSH 连接到 EC2。
DNS似乎正确:
我无法卷曲端点(超时):
和远程登录:
VPC 终端节点的安全组允许往来9142
于任何地方的流量。EC2 实例的安全组允许出口到任何地方。
如何连接到 Cassandra?
更新
我现在可以将 VPC 终端节点添加到公共子网:
更新
如果禁用证书吊销检查,我可以连接。
这让我认为问题在于从 EC2 到 CRL 所在位置的连接。但是,我不想将我的 EC2 移动到公共 VPC,那么这里有什么好的策略呢?
amazon-web-services - 如何在 Amazon Keyspaces 中添加权限?
当我尝试从 AWS Lambda 查询 AWS Keyspaces(托管 Cassandra)时,我收到此错误:
但是在密钥空间的 AWS 控制台中,我看不到任何地方可以添加权限。
用户策略user-for-keyspaces
已经附加了这个:
如何在 AWS Keyspaces 中添加权限?
cassandra - 卡桑德拉 | AttributeError - 'NoneType' 对象没有属性 'is_up'
我在 Cassandra 数据库中有两个结构相同的表。它们都在同一个键空间中。我需要将数据从一个表移动到另一个表。我创建了一个标准的CSV文件COPY/TO
,现在我想COPY/FROM
在另一个 Cassandra 表中上传内容。但是,我收到以下错误:
我用了什么?
- cqlsh 5.0.1
- 卡桑德拉 3.11.2
- CQL 规范 3.4.4
- 本机协议 v4
我使用这样的命令在我的本地机器上创建 CSV 文件:
上面的命令创建 CSV 文件没有任何问题。我没有很多数据。第一个表只有 1926 个条目。用于导入的 CSV 文件的前 5 行示例:
之后,我运行第二个命令,该命令必须将内容上传到第二个表:
这个问题的原因是什么以及如何解决?
我使用下面的 CQL 查询创建了第一个表。第二个表具有相同的结构。
编辑 1:
我在终端中使用了这样的命令:
错误消息:
python - 为什么使用 python 的 cassandra-driver 连接到 AWS 键空间如此缓慢?
我有一个 API,是一个在 AWS EC2 上部署了 python 的烧瓶应用程序。一些端点需要连接 AWS Keyspace 才能进行查询。但是该方法cluster.connect()
太慢了,需要 5 秒连接然后运行查询。
我解决这个问题的方法是在应用程序启动时启动连接(当在主分支上完成提交时,我正在使用 CodePipeline),然后连接一直打开。
我在 python cassandra 驱动程序文档中没有找到任何针对此的内容,我发现的这个解决方案有任何潜在问题吗?
database - 如何检查 AWS Keyspaces 中的键空间和表大小
我们最近从 Cassandra 迁移到 AWS Keyspaces,我只是想知道如何检查 AWS 密钥空间中的表和密钥空间总大小。非常感谢任何帮助或建议。
node.js - Cassandra Node.js 驱动程序 - 可以切换允许过滤吗?
我们的团队最近从自托管 Cassandra 切换到 AWS Keyspaces。尽管“小册子”提到了 Cassandra 的兼容性,但我们实际上正在失去一些 Cassandra 最关键的功能(包括重要的功能 - UDT、物化视图和二级索引)。
然而,这种转换对我们来说仍然是值得的,因为对于一个小团队来说,自我维护的 Cassandra 开销太大。
作为迁移计划的一部分,我们决定在绝对需要的地方用自我维护的表替换物化视图,其余部分用ALLOW FILTERING
我们认为在接下来的 6-12 个月内对性能的影响很小的地方,希望 Keyspaces 能够添加支持 MV 或通过使用 Spark、Elassandra 或类似工具实现搜索端点。
我们正在使用带有对象映射的 Node.js Datastax Cassandra 驱动程序。因此,我们希望保持这种方式,而不是使用原始 CQL 查询。但是,当尝试使用映射器运行查询时,我们似乎无法使该ALLOW FILTERING
功能正常工作。
我们在 Node.js 和 express 中使用以下设置。
到目前为止,一切都很好。
问题是映射器方法似乎不支持“允许过滤”。
所以,这行得通 -
但是,在使用映射器时,似乎没有办法切换允许过滤选项
理想情况下,会有一个运行选项
搜索文档不会显示任何相关选项。
任何帮助将不胜感激。