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 に答える