【问题标题】:I cannot get TimeUUIDType with phpcassa我无法使用 phpcassa 获取 TimeUUIDType
【发布时间】:2011-07-27 22:26:10
【问题描述】:

这里是菜鸟。

我有一个按 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 ) )

我知道部分问题可能已在 How do I insert a row with a TimeUUIDType column in Cassandra? 中提出 但这并没有真正帮助我,因为我大概已经接受了 timeuuidtypes。

感谢大家的帮助。

【问题讨论】:

标签: uuid cassandra-0.7 phpcassa


【解决方案1】:

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

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

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

干杯。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-03
    • 1970-01-01
    • 1970-01-01
    • 2011-06-06
    • 1970-01-01
    • 2012-09-04
    • 1970-01-01
    相关资源
    最近更新 更多