Могу ли я создать индексы с подключением к хранилищу для значений карты в Cassandra 4.x?

Можно ли создать в Cassandra прикрепленный к хранилищу индекс для значений карты? В моем случае у меня есть столбец с именем координаты, который имеет тип данных map<text,float>и содержит широту и долготу расположения датчиков. Поэтому я хотел бы создать SAI для значений карты, чтобы иметь возможность запрашивать таблицу на основе этих значений.

Это антипаттерн? Было бы лучше иметь два отдельных столбца для широты и долготы?

1 ответ

Нет, создание индекса SASI на карте (или других «сложных» типах) пока не поддерживается.

Это антипаттерн?

К сожалению, да. Даже если бы это сработало, фильтрация в WHEREоговорка по coordinatesсам по себе не будет запросом на основе разделов и будет немного медленным. Не уверен, как здесь моделируется/был смоделирован ключ, но необходимо проделать некоторую работу, чтобы гарантировать, что запрос может быть обслужен одним узлом. И индексные запросы на основе SAI/SASI не могут этого гарантировать.

Другие вопросы по тегам