Mil*_*hev 5 cassandra datastax
我有一个Cassandra Customers表,它将保留一份客户列表.每个客户都有一个地址,这是一个标准字段列表:
{
CustomerName: "",
etc...,
Address: {
street: "",
city: "",
province: "",
etc...
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,如果我在此表中有一百万客户,并且我使用用户定义的数据类型Address来保存Customers表中每个客户的地址信息,这种模型的含义是什么,特别是在磁盘空间方面.这会非常昂贵吗?我应该使用Address用户定义的数据类型还是flattent地址信息甚至使用单独的表?
基本上,在这种情况下发生的情况是 Cassandra 会将地址实例序列化为 Blob,该 Blob 存储为单列,作为客户表的一部分。我手头没有任何关于序列化将在磁盘或 CPU 使用率上增加多少的数字,但它可能不会对您的用例产生太大影响。您应该测试这两种情况以确定。
编辑:我还应该提到的另一个方面:将 UDT 作为单个 blob 处理意味着要替换任何更新的完整 UDT。这比更新单个列的效率要低,并且是导致不一致的潜在原因。在并发更新的情况下,两个写入可能会覆盖彼此的更改。请参阅CASSANDRA-7423。
归档时间: |
|
查看次数: |
1087 次 |
最近记录: |