Сериализованный в JSON против последствия определяемого пользователем типа данных и миграций схемы в Афинах
Короче говоря, реальный ответ на то, каковы различные последствия хранения сериализованного json типа против использования UDT в Cassandra. Теперь я обращаюсь к кому-то с опытом, чтобы уточнить.
Чем отличаются изменения производительности, данных и схемы (добавление, изменение, удаление столбцов)?
Каковы некоторые плюсы и минусы каждого подхода?
В какой еще примечательно, так же они отличаются?
1 ответ:
Есть большая разница, и я попытаюсь ее объяснить.
UDT-это круто, если вы не хотите "строго типизированных" полей в схеме CQL. Вы можете использовать UDT как часть первичного ключа (столбец кластеризации), а также добавлять и переименовывать поля. Недостатком является то, что при выполнении выбора вы всегда выбираете весь UDT, и вы не можете удалить поле. Не сходите с ума от использования, потому что они являются адом для поддержания, особенно если одни и те же используются в нескольких таблицах.
Используя a сериализованная строка JSON хороша для некоторых случаев. Я даже слышал, как люди сохраняют сжатые данные в поля (protobuff), чтобы решить свои проблемы (я думаю, что кто-то из Soundcloud говорил об этом). Проблема с JSON заключается в том, что они не типизированы и что вам нужна дополнительная логика в приложении для обработки сериализации и изменений данных. Это также означает, что вы можете иметь переменную структуру и вставлять только те поля, которые вам нужны.
В конце его о ваших предпочтениях пока вы понимаете плюсы и минусы обоих подходов.