如何增加 Bigtable 查询中的过滤器限制?

How to increase filter limit in Bigtable query?

我创建了包含多个子过滤器的复杂过滤器 (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.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.next(BigtableResultScannerAdapter.java:43)
        at org.apache.hadoop.hbase.client.AbstractClientScanner.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.onClose(BigtableDataGrpcClient.java:308)
        at com.google.bigtable.repackaged.io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl.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

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

您需要找到一种方法来缩短过滤器、设计查询或研究 post 客户端过滤。