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

哪个Cassandra PHP客户端支持CompositeTypes和Comparators?,php,cassandra,Php,Cassandra,我正在寻找一个用于Cassandra的PHP客户端,它支持CompositeType以及ColumnFamilies/Keyspace(模式)的创建和修改。未找到任何支持CompositeType的 请帮忙。有什么办法可以绕过这个问题吗 多谢各位 更新: 根据泰米尔语的建议,我使用以下语句在cassandra cli中创建列族 CREATE COLUMN FAMILY User with comparator = 'CompositeType(UTF8Type,UTF8Type,UTF8Type

我正在寻找一个用于Cassandra的PHP客户端,它支持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语句插入行

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

非常感谢Tamil的这项工作,直到CQL支持Cassandra 1.1中的CompositeType。

@Praveen,您可以使用phpcassa和CQL来处理复合类型。尽管phpcassa或cql都不支持复合类型,但它对我来说是有效的

例:

但是,您必须清理返回的内容,因为这可能是一个字符串

如果您在使用phpcassa cql时遇到问题,请查看


以上答案是过时的PHPCassa 1.0。a.1完全支持复合材料查看此

你好,泰米尔人,非常感谢您的提示。如果您可以使用compositeType为CRUD操作指定示例,那就太好了。我完全不知道如何使用CQl将数据插入/更新到带有CompositeType的CF中。我目前正在研究pdo_cassandra作为客户端库。我的CF模式是-create column family User,comparator='CompositeType(UTF8Type,UTF8Type,UTF8Type)'、key_validation_class='UTF8Type'和default_validation_class='UTF8Type'$原始->客户端->执行_cql_查询(“更新TestColumnFamily集合'a:b'='a:b'+1,'c:d'='c:d'+1其中key='test',cassandra_Compression::NONE”);这就是我用复合类型作为比较器更新计数器的方法。希望对普通的列系列也能起到同样的作用如何使用复合列进行范围切片?你能举个例子吗?我正在尝试使用原始的Thrift PHP API。经过所有这些斗争,基本API看起来更容易!除非检查范围切片是否按预期工作,否则实际上无法确保使用的是串联字符串或复合列。你用CQLSH验证了吗?@Praveen我觉得一切都很好。我通过在插入后列出一行的所有列来测试它,发现完整性和排序仍然如预期的那样。我通过从TestColumnFamily中选择'a'..'z'对列进行切片查询,其中key='test'。这对我有用。还有一件事cql不支持复合类型。所以我不能使用cqlsh来验证点查询,但是列切片可以工作。谢谢泰米尔语。你太棒了。:-)
$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);