Столбцы и ключи могут быть любого типа, поскольку ключ строки - это только первый столбец.Фактически, кластер представляет собой кольцевое кольцо хеш-ключей, и разделители хэшируют ключи для распределения по кластеру.
Однако остерегайтесь использования дат в качестве ключей строк, поскольку даже рандомизация случайного распределителя по умолчанию ограничена, и вы можете в конечном итоге загромождать свои данные.
Более того, если эта дата меняется, вам придется удалить предыдущую строку, поскольку вы можете делать вставки только в C *.
Вот что мы знаем:
- Диапазон срезов - это диапазон столбцов в строке с начальным и конечным значением, который используется в основном для широких строк при упорядочении столбцов.Известные имена столбцов, определенные в CF, индексируются, поэтому их можно получить, указав имена.
- Срез ключа - это ключ, связанный с диапазоном столбцов с нарезкой, который возвращает Cassandra
- ЭквивалентВ предложении where используются вторичные индексы, вы можете использовать там операторы неравенства, однако в вашем утверждении должно быть хотя бы ОДНО предложение равных (см. также https://issues.apache.org/jira/browse/CASSANDRA-1599).
- Использование диапазона ключей неэффективно, если в качестве случайного разделителя используетсяMD5-хэш вашего ключа не сохраняет лексическое упорядочение.
То, что вы хотите использовать, это индекс на основе семейства столбцов, использующий Wide Row: CompositeType (TimeUUID | UserID), чтобы это не сталогорячий, добавьте первый значащий ключ («ключ шарда»), который разделит данные по узлам, таким как тип пользователя или регион.
Наличие большего количества данных, чем необходимо в Cassandra, не проблема, это то, кактак что вы должны спросить себя: «что мне нужно сделать запрос», а затем спроектировать семейство столбцов для него?а не пытаться уместить все в одном CF, как вы бы сделали в RDBMS.