休息 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
上添加索引。该索引将使您能够维护现有的访问模式,同时还允许您通过用户名进行查询。
我有一个 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
上添加索引。该索引将使您能够维护现有的访问模式,同时还允许您通过用户名进行查询。