Есть ли польза от предоставления имени столбца в схеме семейства столбцов Cassandra вместо того, чтобы не предоставлять информацию о столбце в схеме? - PullRequest
3 голосов
/ 12 декабря 2011

Я имею в виду семейство столбцов Users, в котором я хочу хранить имена пользователей. Поэтому я буду вставлять пары "user-name" = "nameValue" в семейство столбцов Users. Ниже приведены два подхода

  1. Если я не укажу имя пользователя в качестве имени столбца в Users при создании columnFamily и вставлю такой миллион столбцов в Users CF и

  2. Если я создаю пользователей CF с метаданными столбца, включающими имя пользователя в качестве имени столбца в схеме, и вставляю такой миллион столбцов

Будет ли какая-либо разница в размере (размер sstables на диске) и времени (для вставки в кассандру) обоими этими подходами.

1 Ответ

2 голосов
/ 12 декабря 2011

Поле column_metadata действительно используется Кассандрой только для двух вещей.Вторичные индексы и проверка значений столбцов.Не похоже, что вы создаете вторичный индекс (который, очевидно, будет использовать больше места и будет влиять на время вставки)

Таким образом, вы получите выгоду от проверки того, что значения столбцов соответствуют определенному типу.Это не увеличит размер вашего CF вообще.Очевидно, что при вставке этого столбца делается один дополнительный шаг, но влияние на производительность должно быть минимальным.

Еще одно небольшое преимущество использования column_metadata заключается просто в эстетических целях / документации документации cf и для чего она используется,Если вы хотите использовать его для этого или для проверки значений столбцов, продолжайте.

...