Cassandra 问题 v3.11.3 ... 从表 1 中选择计数 (*)

标签 cassandra

我在一个表中导入了 1 条以上的核心记录,当我执行 Select query count(*) 时,出现错误。我知道这是一个代价高昂的查询,但任何人都可以帮助我获得相同的解决方案。

SELECT COUNT(*) FROM TABLE1;

错误:OperationTimedOut:错误={'10.20.30.10':'客户端请求超时。参见 Session.execute_async'}, last_host=10.20.30.10

最佳答案

经过多次研发,我找到了 count(*) 问题的解决方案。

步骤:

  1. 在 Cassandra 集群上设置 presto(我使用的是 presto-server-0.215 版本(presto-server-0.215.tar.gz 并使用了 jdk:jdk-8u151-linux-x64.tar.gz)) 1.1. presto-server-0.215.tar.gz:https://repo1.maven.org/maven2/com/facebook/presto/presto-server/0.215/ 1.2. jdk-8u151-linux-x64.tar.gz: https://www.oracle.com/technetwork/java/javase/downloads/java-archive-javase8-2177648.html
  2. 在一台 cassandra 服务器上安装 presto,这将使它成为协调器,集群中的其余节点将成为工作节点,请引用下面的 URL 来设置 presto。 引用网址:https://github.com/prestodb/presto/issues/3382
  3. 您需要为您在 config.properties 文件中提到的 Presto 端口添加防火墙规则(我使用的是 RHEL 7.x 操作系统)
  4. 在 launcher.py 中做更改 ---> 行号 '214' 安装的 jdk 路径 "command = ['/opt/jdk1.8.0_151/bin/java', '-cp', classpath]"<
  5. 开始 presto ---> ./launcher start
  6. 打开 presto 控制台 http://localhost:8081您应该会在控制台中看到协调器和工作节点。

  7. 下载“presto-cli-0.215-executable.jar”(URL:https://prestodb.io/docs/current/installation/cli.html)并将其重命名为 prestocli(授予 755 权限),然后使用“prestocli”测试大表的计数 (*)一个有 750 万条记录的表,当我们在 cqlsh 中运行时出现错误。 7.1. CQLSH 错误:来自服务器的错误:代码 = 1200 [协调器节点等待副本节点响应超时] 消息 =“操作超时 - 仅收到 0 个响应。” info={'received_responses': 0, 'required_responses': 1, 'consistency': 'ONE'}

  8. 下面是count(*)...的解决方案

[root@casdb01 bin]# ./prestocli --server localhost:8081 presto> SELECT count(*) FROM cassandra.datamart.big_table;

_col0

7587418 (1 行)

查询20190118_070908_00005_38tiw,完成,1个节点 劈叉:总计 1,298 次,完成 1,298 次 (100.00%) 0:53 [7.59M 行,7.24MB] [142K 行/s,139KB/s]

  1. 对于任何应用程序查询,您都可以预存为执行计数 (*) 的接口(interface)。

特别感谢我的团队遇到了帮助我获得这个结果的人 (Venkatesh Bhat)。

关于Cassandra 问题 v3.11.3 ... 从表 1 中选择计数 (*),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53744868/

相关文章:

mongodb - 用于过滤 XML 文档的数据库

spring-boot - @Column (Cassandra) 注释被 Spring Boot 2.5.0 忽略(适用于 2.4.6)

database - Cassandra 列族的行数

c++ - 我应该担心 Cassandra C++ 驱动程序的负载平衡选择吗?

java - Node.js API 通过 SQS 将数据发送给 Java Worker,并通过 SQS 将 Worker 的结果返回给 API

cassandra - cassandra 是行列数据库吗?

mongodb - mongodb 和 cassandra 的 Docker 健康检查总是失败

Cassandra 批处理语句 - 执行顺序

Cassandra:插入较旧的时间戳

cassandra cql shell 窗口在 Windows 中安装后消失