- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个具有以下结构的 Cassandra CQL3 列系列
CREATE TABLE mytable(
A text,
B text,
C text,
mymap map<text,text>,
D text,
PRIMARY KEY (A,B,C)
);
我正在尝试使用 Astyanax 向其中插入一堆数据。
我正在使用的Cassandra版本是1.2,所以我无法使用BATCH插入。
我知道我可以使用准备好的语句在 for 循环中运行 CQL3 命令。
我想知道是否可以使用 Astyanax 突变批处理将数据插入到上述列族中?我意识到这将利用 Astyanax Thrift 接口(interface)插入 CQL3 列族,但为了高性能写入,这是一个可行的选择吗?
我查看了 cassandra-cli 中列族的结构,它看起来像这样
ColumnFamily: mytable
Key Validation Class: org.apache.cassandra.db.marshal.UTF8Type
Default column value validator: org.apache.cassandra.db.marshal.BytesType
Cells sorted by: org.apache.cassandra.db.marshal.CompositeType(org.apache.cassandra.db.marshal.UTF8Type,org.apache.cassandra.db.marshal.UTF8Type,org.apache.cassandra.db.marshal.UTF8Type,org.apache.cassandra.db.marshal.ColumnToCollectionType(6974656d73:org.apache.cassandra.db.marshal.MapType(org.apache.cassandra.db.marshal.UTF8Type,org.apache.cassandra.db.marshal.UTF8Type)))
虽然我可以通过在各个字段上使用 @Component 创建 POJO 将数据插入到其他列(即 A、B、C、D)中,但我不确定如何处理 map 插入,即插入到 mymap 列中。
我创建的示例 POJO 是
public class TestColumn {
@Component(ordinal = 0)
String bComponent;
@Component(ordinal = 1)
String cComponent;
@Component(ordinal = 2)
String columnName;
public TestColumn() {
}
}
插入代码如下
AnnotatedCompositeSerializer columnSerializer = new AnnotatedCompositeSerializer(TestColumn.class);
ColumnFamily columnFamily = new ColumnFamily("mytable", StringSerializer.get(), columnSerializer);
final MutationBatch m = keyspace.prepareMutationBatch();
ColumnListMutation columnListMutation = m.withRow(columnFamily, "AVal");
columnListMutation.putColumn(new TestColumn("BVal", "CVal", null), ByteBufferUtil.EMPTY_BYTE_BUFFER,
timeToLive);
columnListMutation.putColumn(new ApiAvColumn("BVal", "CVal", "D"), "DVal",
timeToLive);
m.execute;
我到底应该如何修改上面的代码,以便我也可以插入 map 值?
最佳答案
我们通过使用 DataStax Java 驱动程序而不是 Astyanax 解决了这个问题。
关于java - 使用 Astyanax 突变批处理将 Map 插入 Cassandra CQL3 列族,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21704289/
在C中,protocol family被提及为第一个参数。 例如: ipv4 的套接字(AF_INET,,) socket(AF_PACKET,,) 用于数据包嗅探 Python 支持三个地址族:AF
根据 vfork() 手册页,如果 vfork() 在调用 _exit 或 exec 之前修改除 pid_t 之外的任何数据,则行为未定义系统调用系列。 由此我了解到,如果vfork()创建的子进程调
我是一名优秀的程序员,十分优秀!