Какой клиент Cassandra PHP поддерживает CompositeTypes и компараторы? - PullRequest
0 голосов
/ 21 января 2012

Я ищу PHP-клиент для Cassandra, который поддерживает CompositeType, а также создание и модификацию ColumnFamilies / Keyspace (схема).Не найдено ни одного, поддерживающего CompositeType.

Пожалуйста, помогите.Любой обходной путь, чтобы обойти эту проблему?

Спасибо.

Обновление:

Как предложено Тамил Я используюследующий оператор для создания семейства столбцов в cassandra-cli .

CREATE COLUMN FAMILY User
with comparator = 'CompositeType(UTF8Type,UTF8Type,UTF8Type)'
and key_validation_class = 'UTF8Type'
and default_validation_class = 'UTF8Type';    

Теперь, используя pycassa, я использую следующий оператор обновления для вставки строки.

UPDATE User set
'meta:fullname:none' = 'Praveen Baratam'
where
KEY = 'praveen';

UPDATE User set
'meta:using:none' = 'cassandra'
where
KEY = 'praveen';

UPDATE User set
'meta:location:none' = 'India'
where
KEY = 'praveen';

Впоследствии я делаю запрос диапазона-среза, используя следующие операторы:

SELECT 'meta'..'zeta' from User where KEY = 'praveen';

SELECT 'meta:a'..'meta:z' from User where KEY = 'praveen';

Большое спасибо тамильскому за этот обходной путь, пока CQL не поддерживает CompositeType в Cassandra 1.1.

1 Ответ

1 голос
/ 22 января 2012

@ Praveen, вы можете использовать phpcassa & cql для работы с составными типами.Хотя phpcassa или cql не поддерживают составные типы, они работают для меня.

Пример:

$servers = array('127.0.0.1:9160');
$pool = new ConnectionPool("Stats",$servers);
$raw = $pool->get();
$rows = $raw->client->execute_cql_query("SELECT 'a:b' from TestColumnFamily WHERE KEY='xxx:1'", cassandra_Compression::NONE);

Но вы должны очистить возвращаемый контент, потому что это может привести к шестнадцатеричной строке.

Проверьте this , если у вас возникли проблемы с использованием phpcassa cql

Приведенный выше ответ устарел PHPCassa 1.0.a.1 имеет полную поддержку композитов, проверьте этот сообщение в блоге

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...