如何增加 Bigtable 查询中的过滤器限制?
How to increase filter limit in Bigtable query?
我创建了包含多个子过滤器的复杂过滤器 (FilterList)。由于
,无法执行使用该过滤器的查询
StatusRuntimeException INVALID_ARGUMENT: Row filter exceeds maximum size of 4096 bytes.
我检查了 Cloud Bigtable 的配额和服务限制:
- https://cloud.google.com/bigtable/docs/schema-design#size-limits
- https://cloud.google.com/bigtable/quota
没有定义上述限制的文档。我还检查了 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 客户端过滤。
我创建了包含多个子过滤器的复杂过滤器 (FilterList)。由于
,无法执行使用该过滤器的查询StatusRuntimeException INVALID_ARGUMENT: Row filter exceeds maximum size of 4096 bytes.
我检查了 Cloud Bigtable 的配额和服务限制:
- https://cloud.google.com/bigtable/docs/schema-design#size-limits
- https://cloud.google.com/bigtable/quota
没有定义上述限制的文档。我还检查了 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 客户端过滤。