休息 API Cassandra 允许过滤

Rest API Cassandra ALLOW FILTERING

我有一个 DataStax Astra 数据库,我有一个关于如何获取具有特定用户名的用户的示例:

curl --request GET \
    --url https://${ASTRA_DB_ID}-${ASTRA_DB_REGION}.apps.astra.datastax.com/api/rest/v2/keyspaces/${ASTRA_DB_KEYSPACE}/user?where=\{"user_username":\{"$eq":"'+*username_value_here*+'"\}\}' \
    --header "x-cassandra-token: ${ASTRA_DB_APPLICATION_TOKEN}"

而且由于 Cassandra,我没有允许过滤的选项:

{"description":"Bad request: org.apache.cassandra.stargate.exceptions.InvalidRequestException: Cannot execute this query as it might involve data filtering and thus may have unpredictable performance. If you want to execute this query despite the performance unpredictability, use ALLOW FILTERING","code":400}

我在任何地方都找不到如何在 curl 命令中启用此选项,所以问题是我该如何编写它(如果可能的话)或者有更好的选择。欢迎任何帮助。

REST API 目前不支持 ALLOW FILTERING 但您还有一些其他选择。

  • 如果用户名在您的系统中是唯一的,并且您可以更改数据模型,您可以将 user_username 设为分区键。这将允许您按该列进行查询而无需过滤。
  • 如果您无法更改数据模型,另一种选择是在 user_username 上添加索引。该索引将使您能够维护现有的访问模式,同时还允许您通过用户名进行查询。