1

我创建了包含多个子过滤器的复杂过滤器 (FilterList)。无法执行带有该过滤器的查询,因为

StatusRuntimeException INVALID_ARGUMENT: Row filter exceeds maximum size of 4096 bytes.

我检查了 Cloud Bigtable 的配额和服务限制:

没有定义上述限制的文件。我也检查了BigtableOptionsFactory,但没有看到更改该限制的选项。我怎样才能避免这个限制?

堆栈跟踪:

java.lang.RuntimeException: com.google.cloud.bigtable.grpc.io.IOExceptionWithStatus: Error in response stream
    at org.apache.hadoop.hbase.client.AbstractClientScanner$1.hasNext(AbstractClientScanner.java:97)
    at com.purato.common.dao.hbase.HbaseQuery.execute(HbaseQuery.java:82)

Caused by: com.google.cloud.bigtable.grpc.io.IOExceptionWithStatus: Error in response stream
        at com.google.cloud.bigtable.grpc.scanner.ResultQueueEntry.getResponseOrThrow(ResultQueueEntry.java:67)
        at com.google.cloud.bigtable.grpc.scanner.ResponseQueueReader.getNextMergedRow(ResponseQueueReader.java:71)
        at com.google.cloud.bigtable.grpc.scanner.StreamingBigtableResultScanner.next(StreamingBigtableResultScanner.java:64)
        at com.google.cloud.bigtable.grpc.scanner.StreamingBigtableResultScanner.next(StreamingBigtableResultScanner.java:28)
        at com.google.cloud.bigtable.grpc.scanner.ResumingStreamingResultScanner.next(ResumingStreamingResultScanner.java:93)
        at com.google.cloud.bigtable.grpc.scanner.ResumingStreamingResultScanner.next(ResumingStreamingResultScanner.java:40)
        at com.google.cloud.bigtable.hbase.adapters.BigtableResultScannerAdapter$1.next(BigtableResultScannerAdapter.java:43)
        at org.apache.hadoop.hbase.client.AbstractClientScanner$1.hasNext(AbstractClientScanner.java:94)
        ... 39 more
Caused by: com.google.bigtable.repackaged.io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Row filter exceeds maximum size of 4096 bytes
        at com.google.bigtable.repackaged.io.grpc.Status.asRuntimeException(Status.java:431)
        at com.google.cloud.bigtable.grpc.BigtableDataGrpcClient$5.onClose(BigtableDataGrpcClient.java:308)
        at com.google.bigtable.repackaged.io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$3.runInContext(ClientCallImpl.java:453)
        at com.google.bigtable.repackaged.io.grpc.internal.ContextRunnable.run(ContextRunnable.java:54)
        at com.google.bigtable.repackaged.io.grpc.internal.SerializingExecutor$TaskRunner.run(SerializingExecutor.java:154)
        ... 3 more
4

1 回答 1

2

你不能。我刚刚检查过;4096 字节是过滤器长度的系统限制。

您需要找到一种方法来缩短您的过滤器,设计您的查询或查看客户端的后过滤。

于 2016-05-16T15:08:34.477 回答