0

菜鸟在这里。

我有一个按 timeuuidtype 排序的超级列族,其中包含许多条目。我正在尝试使用 phpcassa 执行一个简单的 get 函数,但它不起作用。我正在尝试从 TimeUUID 排序的 SC 中的 UTF8 排序列返回特定值。确切的代码适用于按 BytesType 排序的类似 SC 系列。

这是我之前通过 -cli 输入的 scf 的信息。

ColumnFamily: testSCF (Super)
Columns sorted by: org.apache.cassandra.db.marshal.TimeUUIDType/org.apache.cassandra.db.marshal.UTF8Type

RowKey: TestKey
=> (super_column=48dd0330-5bd6-11e0-adc5-343960c1b6b8,
 (column=test, value=74657374, timestamp=1301603831288000))
=> (super_column=141a69b0-5c6e-11e0-bcce-343960c1b6b8,
 (column=new test, value=6e657774657374, timestamp=1301669004440000))

这是我用来检索数据的 phpcassa 脚本。

<?php

require_once('.../connection.php');
require_once('.../columnfamily.php');

$conn = new Connection('siteRoot');

$scf = 'testSCF';
$key = 'testKey';
$super = '141a69b0-5c6e-11e0-bcce-343960c1b6b8';
$col = 'new test';

$entry = new ColumnFamily($conn, $scf);

$q = ($entry->get($key, $columns=array($super)));

echo $q[$super][$col];

?>

另外,如果我没有像这样指定 SC。

$q = ($entry->get($key));
print_r($q);

它返回:

Array ( [HÝ0[Öà­Å49`Á¶¸] => Array ( [test] => test ) [i°\nà¼Î49`Á¶¸] => Array ( [new test] => newtest ) )

我知道部分问题可能已在如何在 Cassandra 中插入带有 TimeUUIDType 列的行中提出? 但这并没有真正帮助我,因为我大概已经接受了 timeuuidtypes。

感谢您的帮助。

4

1 回答 1

0

假设我一开始还不够努力。事实上,答案与链接有关。

当我插入它时,似乎 -cli 接受了链接中 jbellis 描述为 timeUUID (141a69b0-5c6e-11e0-bcce-343960c1b6b8) 的 32 字节表示形式。这让我很困惑。

当您使用“原始”16 字节形式 (HÝ0[ÖàÅ49`Á¶¸) 'get()' 时,它可以正常工作。

干杯。

于 2011-04-01T20:05:47.963 回答