Я не могу получить TimeUUIDType с phpcassa

Нуб здесь.

У меня есть семейство супер столбцов, отсортированных по timeuuidtype, в котором есть несколько записей. Я пытаюсь выполнить простую функцию get с phpcassa, которая не будет работать. Я пытаюсь вернуть определенное значение из отсортированного по UTF8 столбца в SC с сортировкой по TimeUUID. Точный код работает с похожим семейством SC, отсортированным по BytesType.

Вот информация о scf, которую я пытаюсь получить, из которой я ранее вошел через -cli.

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];

?>

Также если я не укажу СЦ как то так.

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

Возвращает:

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

Я знаю, что часть проблемы могла возникнуть в разделе Как вставить строку со столбцом TimeUUIDType в Cassandra? Но это не очень помогло мне, так как я предположительно принял типы timeuuid.

Спасибо за любую помощь, ребята.

1 ответ

Решение

Предположим, я не слишком старался для начала. Ответ на самом деле был все, что связано со ссылкой.

Похоже, что -cli принял то, что jbellis в ссылке описывает как 32-байтовое представление timeUUID (141a69b0-5c6e-11e0-bcce-343960c1b6b8), когда я его вставил. Это смутило меня.

Он отлично работает, когда вы получаете get() с "необработанной" 16-байтовой формой (HÝ0[ÖàÅ49`Á¶¸).

Приветствия.

Другие вопросы по тегам