哪个Cassandra PHP客户端支持CompositeTypes和Comparators?

时间:2012-01-21 13:32:28

标签: php cassandra

我正在为Cassandra寻找支持CompositeType以及ColumnFamilies / Keyspace(架构)的创建和修改的PHP客户端。没有找到任何支持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在Cassandra 1.1中支持CompositeType。

1 个答案:

答案 0 :(得分:1)

@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);

但是你必须清理返回的内容,因为这可能是hexstring。

如果您在使用phpcassa cql

时遇到问题,请查看this

以上答案已过时PHPCassa 1.0.a.1完全支持复合材料查看此blog post