lsee9 opened a new issue #11544:
URL: https://github.com/apache/druid/issues/11544


   ### Affected Version
   - 0.21.1
   - 2 overlords, 2 coordinators
   - 2 routers, 2 brokers
   - 3 historicals, 11 middle managers
   
   ### Description
   Hello, I am trying to calculate quantiles using "APPROX_QUANTILE_DS()".
   but java.lang.NullPointerException occurs in my query
   Exception occurs in 
"org.apache.datasketches.quantiles.DirectUpdateDoublesSketch.growCombinedMemBuffer"
   
   my query:
   ```sql
   SELECT COALESCE("mytable".country, '_') AS country,
     (APPROX_QUANTILE_DS("mytable".quantile_duration, 0.9)) AS quantile
   FROM "mytable"
   WHERE ("mytable".service_code = 'top')
   AND __time >= '2021-06-01' AND __time <= '2021-06-01'
   GROUP BY COALESCE("mytable".country, '_')
   ```
   
   datasource configuration:
   - __time : 2021-06-01/2021-06-13
   - dimension: country (cardinality 239), service_code(cardinality 129) etc.
   - metric: quantile_duration (Apply quantilesDoublesSketch, k=128(default)) 
etc.
   - 7 segments (total 1.42 GB)
   
   
   full log: 
   ```shell
   at  
org.apache.datasketches.quantiles.DirectUpdateDoublesSketch.growCombinedMemBuffer(DirectUpdateDoublesSketch.java:254)
   at  
org.apache.datasketches.quantiles.DirectUpdateDoublesSketch.growCombinedBuffer(DirectUpdateDoublesSketch.java:238)
   at  
org.apache.datasketches.quantiles.DoublesMergeImpl.mergeInto(DoublesMergeImpl.java:84)
   at  
org.apache.datasketches.quantiles.DoublesUnionImpl.updateLogic(DoublesUnionImpl.java:200)
   at  
org.apache.datasketches.quantiles.DoublesUnionImpl.update(DoublesUnionImpl.java:118)
   at  
org.apache.druid.query.aggregation.datasketches.quantiles.DoublesSketchMergeAggregator.updateUnion(DoublesSketchMergeAggregator.java:80)
   at  
org.apache.druid.query.aggregation.datasketches.quantiles.DoublesSketchMergeBufferAggregator.aggregate(DoublesSketchMergeBufferAggregator.java:66)
   at  
org.apache.druid.query.aggregation.AggregatorAdapters.aggregateBuffered(AggregatorAdapters.java:164)
   at  
org.apache.druid.query.groupby.epinephelinae.AbstractBufferHashGrouper.aggregate(AbstractBufferHashGrouper.java:161)
   at  
org.apache.druid.query.groupby.epinephelinae.SpillingGrouper.aggregate(SpillingGrouper.java:172)
   at  
org.apache.druid.query.groupby.epinephelinae.ConcurrentGrouper.aggregate(ConcurrentGrouper.java:269)
   at  
org.apache.druid.query.groupby.epinephelinae.Grouper.aggregate(Grouper.java:85)
   at  
org.apache.druid.query.groupby.epinephelinae.RowBasedGrouperHelper.lambda$createGrouperAccumulatorPair$2(RowBasedGrouperHelper.java:332)
   at  
org.apache.druid.java.util.common.guava.MappingAccumulator.accumulate(MappingAccumulator.java:40)
   at  
org.apache.druid.java.util.common.guava.BaseSequence.accumulate(BaseSequence.java:44)
   at  
org.apache.druid.java.util.common.guava.ConcatSequence.lambda$accumulate$0(ConcatSequence.java:41)
   at  
org.apache.druid.java.util.common.guava.MappingAccumulator.accumulate(MappingAccumulator.java:40)
   at  
org.apache.druid.java.util.common.guava.FilteringAccumulator.accumulate(FilteringAccumulator.java:41)
   at  
org.apache.druid.java.util.common.guava.MappingAccumulator.accumulate(MappingAccumulator.java:40)
   at  
org.apache.druid.java.util.common.guava.BaseSequence.accumulate(BaseSequence.java:44)
   at  
org.apache.druid.java.util.common.guava.MappedSequence.accumulate(MappedSequence.java:43)
   at  
org.apache.druid.java.util.common.guava.WrappingSequence$1.get(WrappingSequence.java:50)
   at  
org.apache.druid.java.util.common.guava.SequenceWrapper.wrap(SequenceWrapper.java:55)
   at  
org.apache.druid.java.util.common.guava.WrappingSequence.accumulate(WrappingSequence.java:45)
   at  
org.apache.druid.java.util.common.guava.FilteredSequence.accumulate(FilteredSequence.java:45)
   at  
org.apache.druid.java.util.common.guava.MappedSequence.accumulate(MappedSequence.java:43)
   at  
org.apache.druid.java.util.common.guava.ConcatSequence.accumulate(ConcatSequence.java:41)
   at  
org.apache.druid.java.util.common.guava.WrappingSequence$1.get(WrappingSequence.java:50)
   at  
org.apache.druid.java.util.common.guava.SequenceWrapper.wrap(SequenceWrapper.java:55)
   at  
org.apache.druid.java.util.common.guava.WrappingSequence.accumulate(WrappingSequence.java:45)
   at  
org.apache.druid.java.util.common.guava.WrappingSequence$1.get(WrappingSequence.java:50)
   at  
org.apache.druid.java.util.common.guava.SequenceWrapper.wrap(SequenceWrapper.java:55)
   at  
org.apache.druid.java.util.common.guava.WrappingSequence.accumulate(WrappingSequence.java:45)
   at  
org.apache.druid.java.util.common.guava.LazySequence.accumulate(LazySequence.java:40)
   at  
org.apache.druid.java.util.common.guava.WrappingSequence$1.get(WrappingSequence.java:50)
   at  
org.apache.druid.java.util.common.guava.SequenceWrapper.wrap(SequenceWrapper.java:55)
   at  
org.apache.druid.java.util.common.guava.WrappingSequence.accumulate(WrappingSequence.java:45)
   at  
org.apache.druid.java.util.common.guava.MappedSequence.accumulate(MappedSequence.java:43)
   at  
org.apache.druid.java.util.common.guava.WrappingSequence$1.get(WrappingSequence.java:50)
   at  
org.apache.druid.java.util.common.guava.SequenceWrapper.wrap(SequenceWrapper.java:55)
   at  
org.apache.druid.java.util.common.guava.WrappingSequence.accumulate(WrappingSequence.java:45)
   at  
org.apache.druid.java.util.common.guava.LazySequence.accumulate(LazySequence.java:40)
   at  
org.apache.druid.java.util.common.guava.WrappingSequence$1.get(WrappingSequence.java:50)
   at  
org.apache.druid.java.util.common.guava.SequenceWrapper.wrap(SequenceWrapper.java:55)
   at  
org.apache.druid.java.util.common.guava.WrappingSequence.accumulate(WrappingSequence.java:45)
   at  
org.apache.druid.query.spec.SpecificSegmentQueryRunner$1.accumulate(SpecificSegmentQueryRunner.java:87)
   at  
org.apache.druid.java.util.common.guava.WrappingSequence$1.get(WrappingSequence.java:50)
   at  
org.apache.druid.query.spec.SpecificSegmentQueryRunner.doNamed(SpecificSegmentQueryRunner.java:171)
   at  
org.apache.druid.query.spec.SpecificSegmentQueryRunner.access$100(SpecificSegmentQueryRunner.java:44)
   at  
org.apache.druid.query.spec.SpecificSegmentQueryRunner$2.wrap(SpecificSegmentQueryRunner.java:153)
   at  
org.apache.druid.java.util.common.guava.WrappingSequence.accumulate(WrappingSequence.java:45)
   at  
org.apache.druid.java.util.common.guava.WrappingSequence$1.get(WrappingSequence.java:50)
   at  
org.apache.druid.query.CPUTimeMetricQueryRunner$1.wrap(CPUTimeMetricQueryRunner.java:78)
   at  
org.apache.druid.java.util.common.guava.WrappingSequence.accumulate(WrappingSequence.java:45)
   at  
org.apache.druid.query.groupby.epinephelinae.GroupByMergingQueryRunnerV2$1$1$1.call(GroupByMergingQueryRunnerV2.java:247)
   at  
org.apache.druid.query.groupby.epinephelinae.GroupByMergingQueryRunnerV2$1$1$1.call(GroupByMergingQueryRunnerV2.java:234)
   at  java.util.concurrent.FutureTask.run(FutureTask.java:266)
   at  
org.apache.druid.query.PrioritizedListenableFutureTask.run(PrioritizedExecutorService.java:247)
   at  
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
   at  
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
   at  java.lang.Thread.run(Thread.java:748)
   ```
   
   Any help would be greatly appreciated.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to