Могу ли я создать индексы с подключением к хранилищу для значений карты в Cassandra 4.x?
Можно ли создать в Cassandra прикрепленный к хранилищу индекс для значений карты? В моем случае у меня есть столбец с именем координаты, который имеет тип данных
map<text,float>
и содержит широту и долготу расположения датчиков. Поэтому я хотел бы создать SAI для значений карты, чтобы иметь возможность запрашивать таблицу на основе этих значений.
Это антипаттерн? Было бы лучше иметь два отдельных столбца для широты и долготы?
1 ответ
Нет, создание индекса SASI на карте (или других «сложных» типах) пока не поддерживается.
Это антипаттерн?
К сожалению, да. Даже если бы это сработало, фильтрация в
WHERE
оговорка по
coordinates
сам по себе не будет запросом на основе разделов и будет немного медленным. Не уверен, как здесь моделируется/был смоделирован ключ, но необходимо проделать некоторую работу, чтобы гарантировать, что запрос может быть обслужен одним узлом. И индексные запросы на основе SAI/SASI не могут этого гарантировать.