Какие типы данных лучше всего переводят между Java и Кассандрой? - PullRequest
1 голос
/ 10 января 2020

Я использую Spring Data Cassandra. Меня интересует самый безболезненный способ быстро начать работу над проектом. Я пытаюсь выбрать подходящие типы данных, поэтому мне не нужно думать о них в будущем.

У меня есть следующие данные, которые я создаю в Кассандре.

  1. широта / долгота для местоположения - является ли BigDecimal лучшим Java 8 типом для этого?
  2. миниатюры - 32-64 КБ двоичных данных. sh Я хочу сохранить его непосредственно в записи из-за его небольшого размера. Какой самый лучший тип Java 8 для этого?
  3. отметка времени - Какой лучший Java 8 класс для отметок времени на Кассандре?

1 Ответ

1 голос
/ 04 февраля 2020

В данный момент Spring использует драйвер Java 3.x, совместимый с Java 6, так что есть некоторые ограничения в работе «из коробки». В руководстве по драйверу есть таблица с отображением между Java и типами данных CQL . Отвечая на ваши вопросы:

  1. Это зависит от вашего требования - я думаю, что для этого будет более чем достаточно двойных;
  2. капли по умолчанию отображаются в java.nio.ByteBuffer - если вы необходимо, вы можете добавить код c для byte[], но это потребует кодирования на вашей стороне (см. do c для пользовательских кодеков );
  3. Для отображения между отметками времени & Java 8 временных типов, есть отдельный jar с так называемым дополнительным кодом c s, который вы можете зарегистрировать и получить прямое отображение в Instant, et c.

PS Более новый драйвер 4.x поддерживает Java 8 и выше, поэтому вы получите временную метку, отображающую нашу коробку. Но пока нет версии Spring Data с поддержкой этой версии.

...