【发布时间】:2012-02-01 04:49:39
【问题描述】:
我正在尝试找到一种好方法来组织我的行键以对其执行范围扫描,而无需创建我自己的索引列表。
我有一个 MySQL 数据库,目前大约有 15.000 个数据库,每个 ~50 个表 = 75.000 个表。因为 99% 的数据始终使用唯一标识符读取,因此计划将数据移动到 Cassandra 集群中。
对于某些维护(列出完整表的内容、删除完整表或删除数据库)的情况,我需要获取完整表甚至数据库的内容。 Range-Scans 似乎非常适合。
目前我正计划为旧结构的每个部分生成 UUID,并将它们放在一起,用 | 分隔(DB + Table + Id = UUID1|UUID2|UUID2)。
例子:
07424eaa-4761-11e1-ac67-12313c033ac4|0619a6ec-4525-11e1-906e-12313c033ac4|0619a6ec-4795-12e9-906e-78313c033ac4
带有数据的CF应该用org.apache.cassandra.db.marshal.AsciiType排序。
作为客户端,我使用的是 phpcassa。
对于范围扫描,我想使用UUID| 作为开始键和范围的结束,相同的键但附加了chr(255) 或z。这两个字符的 ascii 值比该键后面的任何其他 UUID 字符都大。
这是一种可靠的方法,可以让我实现范围扫描的说明目标吗?
【问题讨论】:
标签: database-design cassandra phpcassa