【发布时间】:2015-05-12 17:22:39
【问题描述】:
目前我们正在使用 HBase 来存储我们的数据。因此,我们创建了一个包含 Map 的抽象类,然后通过 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) 时,它有点出乎我们的意料。
是否还有一种简单的方法可以通过基本的 put 操作或类似操作来存储键值对(对于 ColumnFamily)?我想避免必须提前定义列名。
【问题讨论】:
标签: java cassandra datastax-java-driver