问题标签 [phpcassa]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
50 浏览

php - phpcassa 返回更少的列记录

我正在使用 PHPCASSA 对 cassandra 进行多重调用。除其中一种情况外,其功能正常。当我用列名查询 Cassandra 时,它返回的列数较少。例如对于 row1 => { col1=>1,col2=>2,col3=>3,col4=>4} 我用 (col1,col2,col3) 调用 multiget 然后它返回 col1 的值。col2,col3 不返回。

我不知道这是 Cassandra 方面还是 PHPCASSA 方面的问题。

将不胜感激任何帮助。

在此先感谢 Manish

0 投票
2 回答
767 浏览

php - 解压 Cassandra 地图类型

我使用 Cassandra DB 2.0.1 (CQL 3) 创建了一些数据

它工作正常。

现在我正在尝试使用 PHP (thobbs/phpcassa v1.1.0) 获取数据。

它也工作得很好。

问题是如何解包表示为地图的值?我可以看到

我知道它应该是

是否有任何内部函数可以将编码字符串反序列化或解压缩到映射或数组中?

我编写了一个读取不可打印符号的函数:

当我尝试使用该值时,我看到以下结果:

据我了解,0(零)是一个拆分器,在 0 之后是一个长度,例如,第一个 03 表示地图中的 3 个项目。然后 04 表示 4 是单词“band”的长度,然后 07 表示单词“Beatles”的长度为 7 的新单词,依此类推。

但是是否有任何内部内置方法或函数来提取地图、列表或集合?

0 投票
1 回答
279 浏览

php - 超时直到重新启动

我建立了一个有 2 个节点的 cassandra 集群。经过几千次写入后,它开始抛出 TimeOut 异常,这些异常直到我重新启动 cassandra 服务后才会消失。我正在使用 phpcassa(撰写本文时最新)。

Cassandra.yaml 两者

  • cluster_name: '测试集群'
  • 种子提供者:
    • 类名:org.apache.cassandra.locator.SimpleSeedProvider
  • 参数:
    • 种子:“192.168.2.101”
  • rpc_address:0.0.0.0
  • rpc_port:8080

卡桑德拉.yaml 1

  • 初始令牌:0
  • 监听地址:192.168.2.101

卡桑德拉.yaml 2

  • 初始令牌:85070591730234615865843651857942052864
  • 监听地址:192.168.2.102

假设这个配置是正确的,那么我的代码肯定有问题。这是我为重现错误而制作的测试脚本:

使用该配置,我得到一个'cassandra\TimedOutException'(Stacktrace 1)

使用该配置,我得到一个“Thrift\Exception\TTransportException”(Stacktrace 2)

我尝试了各种 ConsistencyLevels;一个,法定人数和任何。他们所有人都有同样的问题。

正如我所说,异常不会发生,直到几千次写入之后。但是,如果我在发生异常后重新启动脚本,它将立即抛出异常。我必须重新启动 cassandra 服务,然后可能需要几千次。这似乎只发生在写入中。如果我不使用计数器列也会发生这种情况,所以这不是问题。

堆栈跟踪 1

堆栈跟踪 2

cassandra 日志并没有真正显示出任何有趣的东西。除了这种情况发生了很多,但即使没有发生异常也会发生这种情况,所以我认为这不是问题;

使用“SIMPLE_STRATEGY”和“replication_factor = 2”设置密钥空间根据两台机器上的“nodetool ring”命令,即使在触发异常后节点也“正常”运行。老实说,我不知道下一步该尝试什么,有人能发现问题吗?

0 投票
1 回答
843 浏览

php - 如何使用 phpcassa 在 PHP 中执行 cassandra 查询?

我正在尝试使用此脚本在 php 中执行 cassandra 查询,但它抛出了一个错误。任何人都可以帮我解决代码中的问题吗?

这是我收到的警告:-

0 投票
1 回答
46 浏览

php - phpcassa 1.0.6 中的 get_indexed_slices 问题

我正在使用由 CassandraUtil::UUID4() 组成的行键存储数据。现在我已经将phpcassa的版本升级到了1.0.6。当我对列族进行“get_indexed_slices”调用时,它会返回迭代器对象。迭代器的键非常磨损。

我不知道如何从上面的字符串中获取键的值。看起来 PHPCASSA 正在序列化某个对象并将其用作键。如果是这样,您能告诉我将在未序列化对象中可用的 we 函数吗?

有人有想法吗?

0 投票
1 回答
724 浏览

cassandra - phpcassa:实例化 ColumnFamily 类时出现 cassandra\NotFoundException

我正在尝试使用 phpcassa libraray 查询 Cassandra 2.0.2 服务器。

我执行以下操作:

当我这样做时,我得到一个未捕获的 'cassandra\NotFoundException' 异常。

在阅读源代码后,我发现这是因为列族“对话”没有被加载到 ConnectionPool::describe_keyspace() 方法创建的 cloumn 族数组中。

当我使用以下代码打印“describe_keyspace”的结果时,我可以看到只有一个名为 user_profiles 的列族被加载到我的列族数组中。

该键空间中定义了 6 个列族,但 phpcassa 仅列出“user_profiles”;“user_profiles”和其他 CF 之间的唯一区别是“user_profiles”使用的是“WITH COMPACT STORAGE”属性。

关于如何解决这个问题或为什么会发生这种情况的任何想法?

谢谢!

PS:我通过 cqlsh 使用 CQL3 创建了列族,当我使用 cassandra-cli 进行“描述”时,我看不到我的列族,只有我提到的“user_profiles”一个,这可能有关联吗?

0 投票
1 回答
1384 浏览

php - 使用 PHP 连接到 Cassandra 数据库

我正在尝试开发一个 Android 应用程序和一个 Web 前端,这将允许我连接并查询在我的本地主机上运行的 Cassandra 数据库。

我目前有 Cassandra 2.0.5、Thrift 1.0.0、JRE 7u51、PHP 5.3.10、Apache 2.2.22

我已经在互联网上搜索了如何设置这一切的一个很好的解释,但未能真正理解这一切应该如何工作。我的理解是,我服务器上的 PHP 文件将通过 thrift 接口与 Cassandra 数据库通信,为了方便这一点,大多数人使用更高级别的 PHP 库。我想这可能是我的脱节所在。我不明白如何在我的项目中安装或合并这些库。我看过 YaCassandraPDO 和 PHPCassa。

在尝试其中一些库时,Apache 中的错误似乎表明这些库安装不正确或可能缺少组件。

我将不胜感激任何人都可以提供的指导。谢谢!

0 投票
1 回答
39 浏览

php - phpcassa - 只存储一个字符值

我正在尝试通过 phpcassa 使用 cassandra,下面是代码:

但输出是:

我想知道

  1. 为什么它不存储所有 4 列
  2. 为什么存储的列只有一个字符的值
  3. 是否有使用 solr 搜索 cassandra 的 php 客户端

提前致谢

0 投票
2 回答
122 浏览

php - cassandra 2.0 中是否支持地图集合类型

当我使用 phpcassa 在 cassandra 2.0 中创建表时,出现如下错误

我的代码如下

如果它不支持,是否有人可以为我提供一对多关系的替代解决方案?

0 投票
1 回答
57 浏览

cassandra - 添加其他键空间时,cassandra 速度变慢

我们有一个 cassandra 开发环境,有 3 个节点集群,每个节点都有 i3 处理器和 8G 内存。随着我们不断增加键空间的数量(即我们的应用程序的性质),cassandra 的性能在某一时刻变慢了(它在 < 30 个键空间的情况下运行良好)。

这背后的确切问题是什么?


Cassandra 版本 - 2.0.6,phpcassa