в настоящее время мы используем HBase для хранения наших данных. Поэтому мы создали абстрактный класс, который содержит карту, и эта карта затем сохраняется через Java API. примерный класс будет
class User extends AHBase {
public static String columnName = "nam".getBytes();
//...
public void setName(String name) {
values.put(columnName, name.getBytes());
}
public String getName() {
return new String(values.get(columnName));
}
public byte[] getColumnFamily() {...}
public byte[] getTable() {...}
}
и магазин так же прост, как (упрощенно)
public void store(AHbase a) {
List<Put> puts = new ArrayList<>();
for (Entry<byte[], byte[] item : a.getValues().entrySet()) {
Put p = new Put(a.getColumnFamily, item.getKey(), item.getValue());
puts.add(p);
}
//...
}
сейчас мы оцениваем Cassandra, так как говорят, что это также хранилище ключей и значений, и должно быть легко просто переключиться и выполнить базовую оценку (по крайней мере, мы так думали).
Но теперь, когда мы проверяем последнюю версию Cassandra (2.1.2), это немного не то, что мы ожидали.
Есть ли еще простой способ хранения пар ключ-значение (для ColumnFamily) с базовыми операциями ввода или подобными? Я хочу избежать необходимости заранее определять имена столбцов.