Используйте карту или ТЕКСТОВЫЙ тип столбца Cassandra

#python #cassandra

#python #cassandra

Вопрос:

Я хочу хранить dict объекты python (ту же структуру) в Cassandra. Я хочу хранить их только в одном столбце. Я могу создать столбец Cassandra:

  1. как MAP
  2. TEXT затем я могу сериализовать dict в строку json и сохранить ее.

Но не все элементы в моем python dict сопоставляются с одним и тем же типом, например

 dict = {"key_1": "abc", "key_2": 10, "key_3": True}
  

В этом случае, я думаю, действителен только вариант 2? В моем реальном проекте мне нужно создать много столбцов. Некоторые сопоставляются с тем же типом, а некоторые нет. Для удобства я хочу просто сериализовать их все и сохранить как TEXT . Но это кажется мне немного неортодоксальным. Какова наилучшая практика?

Ответ №1:

Если вы не заботитесь о сопоставлении каждого dict ключа со столбцом CQL dict text , то я обычно рекомендую сохранить все в столбце CQL.

Если тип данных значений одинаков (это либо все текстовые, либо целые числа), вы можете сохранить пары ключ-значение в map коллекции CQL, чтобы было проще извлекать значения на основе ключа, хотя вы уже указали, что значения относятся к разным типам данных. Приветствия!