1

我在 cassandra 中有下表;

CREATE TABLE reports (
  c_date text,
  c_n int,
  c_id timeuuid,
  report_id bigint,
  report text,
  PRIMARY KEY ((c_date, c_n), c_id)
)

c_date用于按日期查询报表。

c_n是防止热点的节点数(平均分布数据的节点数)。

c_id是插入的timeuuid。

我的选择查询(cql 3)如下;

select report, dateOf(c_id), report_id 
from keyspace.reports 
where c_date = '2013-08-02' and 
      c_n = 1 and 
      c_id > minTimeuuid('2013-08-02 02:52:10-0400');

我已成功获得结果集;但是,当我使用cql_get_rows()在另一个示例(此处)上实现的功能时,

时间戳 (dateOf(id)) 无法正确解析,bigint 字段产生以下警告;

PHP Warning:  unpack(): Type N: not enough input, need 4, have 0 
in /home/arascan/my-project/tools/vendor/phpcassa/lib/phpcassa/Schema/DataType/LongType.php on line 47

从返回的数据cql_get_rows()如下;

  [0] => Array
        (
            [reportid] => 281474976712782
            [report]   => some_report
            [dateOf(c_id)] => d:1375426331.32100009918212890625;
        )

如何防止此函数抛出警告并获取日期格式的时间戳?(请不要建议@用法)

4

0 回答 0