我在选择查询中遇到以下错误。{“错误”:{“名称”:“响应错误”,“信息”:“表示来自服务器的错误消息”,“消息”:“批处理太大”,“代码”:8704,“协调器”:“10.29.96.106:9042”}}
7d7tgy0s1#
啊,我明白了;您正在使用开发人员中心。如果结果大于1000,则显示此错误是的,这是开发人员中心阻止您运行可能会损害您的集群的查询。
select * from user_request_by_country_by_processworkflow WHERE created_on <= '2022-01-08T16:19:07+05:30' ALLOW FILTERING;
ALLOW FILTERING是一种强制Cassandra在一个查询中读取多个分区的方法,尽管它是为了警告您不要这样做而设计的。如果您真的需要运行这样的查询,那么您将需要构建一个带有PRIMARY KEY的表,该表专门用于支持这种操作。在这种情况下,我建议根据时间组件将表数据“分段”,以使分区保持在合理的大小范围内。例如,如果一天使每个分区的行数低于50 k,则主键定义如下所示:
ALLOW FILTERING
PRIMARY KEY (day,created_on) WITH CLUSTERING ORDER BY (created_on DESC);
然后,一个有效且被允许的查询将如下所示:
SELECT * FROM user_request_by_country_by_processworkflow WHERE day=20220108 AND created_on <= '2022-01-08T16:19:07+05:30';
总而言之:
1条答案
按热度按时间7d7tgy0s1#
啊,我明白了;您正在使用开发人员中心。
如果结果大于1000,则显示此错误
是的,这是开发人员中心阻止您运行可能会损害您的集群的查询。
ALLOW FILTERING
是一种强制Cassandra在一个查询中读取多个分区的方法,尽管它是为了警告您不要这样做而设计的。如果您真的需要运行这样的查询,那么您将需要构建一个带有PRIMARY KEY的表,该表专门用于支持这种操作。在这种情况下,我建议根据时间组件将表数据“分段”,以使分区保持在合理的大小范围内。例如,如果一天使每个分区的行数低于50 k,则主键定义如下所示:
然后,一个有效且被允许的查询将如下所示:
总而言之:
ALLOW FILTERING
。