我正在为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。
答案 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