Rest API Cassandra РАЗРЕШИТЬ ФИЛЬТРАЦИЯ

У меня есть база данных 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}"

И из-за Кассандры у меня нет опции РАЗРЕШИТЬ ФИЛЬТРИРОВАНИЕ:

      {"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, поэтому вопрос в том, как я могу это написать (если это возможно) или есть лучшие альтернативы. Любая помощь приветствуется.

1 ответ

REST API в настоящее время не поддерживает ALLOW FILTERINGно у вас есть другие варианты.

  • Если имена пользователей в вашей системе уникальны и вы можете изменить модель данных, вы можете создать ключ раздела. Это позволит вам выполнять запросы по этому столбцу без необходимости фильтрации.
  • Другой вариант, если вы не можете изменить модель данных, — добавить индекс на user_username. Индекс позволит вам сохранить существующие шаблоны доступа, а также позволит выполнять запросы по имени пользователя.
Другие вопросы по тегам