2016-05-16 8 views
1

Ich habe einen komplexen Filter (FilterList) erstellt, der mehrere Subfilter enthält. Abfrage mit dem Filter konnte wegenWie Filter Limit in Bigtable Abfrage erhöhen?

ausgeführt worden
StatusRuntimeException INVALID_ARGUMENT: Row filter exceeds maximum size of 4096 bytes. 

Ich habe Quoten und Service Einschränkung für Cloud Bigtable:

Es gibt kein Dokument, das definiert, erwähnte Grenze. Ich überprüfte auch BigtableOptionsFactory, aber sah keine Möglichkeit, dieses Limit zu ändern. Wie kann ich dieses Limit vermeiden?

Stapelüberwachung:

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 

Antwort

2

Sie können nicht. Ich habe gerade nachgesehen; 4096 Byte ist eine Systemgrenze für Filterlängen.

Sie müssen einen Weg finden, um Ihren Filter zu kürzen, Ihre Abfrage zu entwerfen oder Postfilterung auf der Clientseite zu betrachten.

+1

Danke für den Kommentar. Planen Sie, Seiten mit Kontingenten oder Begrenzungsgröße in BigTable-Dokumenten zu aktualisieren? –

+0

@KrzysztofGardo wir werden die Dokumente aktualisieren, um dies zu erwähnen. –

Verwandte Themen