我正在尝试找到一种好方法来组织我的行键以对它们执行范围扫描,而无需创建自己的索引列表。
我有一个 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 字符。
这是一种可靠的方法,可以让我实现范围扫描的解释目标吗?