Skip to content

Find exception when use thetaSketch INTERSECT topN Query type with Broker result level Cache #7940

@JackyYangPassion

Description

@JackyYangPassion

Affected Version

0.14.2.

Description

Query
`{
"queryType":"topN",
"dataSource":{
"type":"table",
"name":"table1"
},
"virtualColumns":[

],
"dimension":{
    "type":"listFiltered",
    "delegate":{
        "type":"default",
        "dimension":"id",
        "outputName":"id",
        "outputType":"STRING"
    },
    "values":[
        "top_sports-5",
        "top_sports-2",
        "top_sports-1"
    ],
    "isWhitelist":true
},
"metric":{
    "type":"numeric",
    "metric":"final_0_1"
},
"threshold":10,
"intervals":{
    "type":"LegacySegmentSpec",
    "intervals":[
        "2019-06-11T16:00:00.000Z/2019-06-12T15:59:59.000Z",
        "2019-06-12T16:00:00.000Z/2019-06-13T15:59:59.000Z"
    ]
},
"filter":{
    "type":"and",
    "fields":[
        {
            "type":"and",
            "fields":[
                {
                    "type":"selector",
                    "dimension":"type",
                    "value":"Recommend",
                    "extractionFn":null
                },
                {
                    "type":"selector",
                    "dimension":"is_valid_sub_session",
                    "value":"true",
                    "extractionFn":null
                }
            ]
        }
    ]
},
"granularity":{
    "type":"all"
},
"aggregations":[
    {
        "type":"filtered",
        "aggregator":{
            "type":"thetaSketch",
            "name":"source_0_0",
            "fieldName":"id_member_hash_id",
            "size":1048576,
            "shouldFinalize":true,
            "isInputThetaSketch":true,
            "errorBoundsStdDev":null
        },
        "filter":{
            "type":"interval",
            "dimension":"__time",
            "intervals":[
                "2019-06-11T16:00:00.000Z/2019-06-12T15:59:59.000Z"
            ],
            "extractionFn":null
        },
        "name":"source_0_0"
    },
    {
        "type":"filtered",
        "aggregator":{
            "type":"thetaSketch",
            "name":"target_0_1",
            "fieldName":"id_member_hash_id",
            "size":1048576,
            "shouldFinalize":true,
            "isInputThetaSketch":true,
            "errorBoundsStdDev":null
        },
        "filter":{
            "type":"interval",
            "dimension":"__time",
            "intervals":[
                "2019-06-12T16:00:00.000Z/2019-06-13T15:59:59.000Z"
            ],
            "extractionFn":null
        },
        "name":"target_0_1"
    }
],
"postAggregations":[
    {
        "type":"thetaSketchEstimate",
        "name":"final_0_1",
        "field":{
            "type":"thetaSketchSetOp",
            "name":"temp_0_1",
            "func":"INTERSECT",
            "size":1048576,
            "fields":[
                {
                    "type":"fieldAccess",
                    "name":"source_0_0",
                    "fieldName":"source_0_0"
                },
                {
                    "type":"fieldAccess",
                    "name":"target_0_1",
                    "fieldName":"target_0_1"
                }
            ]
        },
        "errorBoundsStdDev":null
    }
],
"context":{
    "minTopNThreshold":190,
    "timeout":60000
},
"descending":false

}`

Error Log

java.lang.ClassCastException: java.lang.Double cannot be cast to io.druid.query.aggregation.datasketches.theta.SketchHolder at io.druid.query.aggregation.datasketches.theta.SketchHolder.sketchSetOperation(SketchHolder.java:265) ~[?:?] at io.druid.query.aggregation.datasketches.theta.SketchSetPostAggregator.compute(SketchSetPostAggregator.java:87) ~[?:?] at io.druid.query.aggregation.datasketches.theta.SketchEstimatePostAggregator.compute(SketchEstimatePostAggregator.java:86) ~[?:?] at io.druid.query.topn.TopNQueryQueryToolChest$7$2.apply(TopNQueryQueryToolChest.java:411) ~[druid-processing-0.12.1.jar:0.12.1] at io.druid.query.topn.TopNQueryQueryToolChest$7$2.apply(TopNQueryQueryToolChest.java:379) ~[druid-processing-0.12.1.jar:0.12.1] at io.druid.java.util.common.guava.MappingYieldingAccumulator.accumulate(MappingYieldingAccumulator.java:61) ~[java-util-0.12.1.jar:0.12.1] at io.druid.java.util.common.guava.BaseSequence.makeYielder(BaseSequence.java:89) ~[java-util-0.12.1.jar:0.12.1] at io.druid.java.util.common.guava.BaseSequence.toYielder(BaseSequence.java:68) ~[java-util-0.12.1.jar:0.12.1] at io.druid.java.util.common.guava.MappedSequence.toYielder(MappedSequence.java:49) ~[java-util-0.12.1.jar:0.12.1] at io.druid.java.util.common.guava.Yielders.each(Yielders.java:32) ~[java-util-0.12.1.jar:0.12.1] at io.druid.server.QueryResource.doPost(QueryResource.java:193) [druid-server-0.12.1.jar:0.12.1] at sun.reflect.GeneratedMethodAccessor78.invoke(Unknown Source) ~[?:?] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_171] at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_171] at com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60) [jersey-server-1.19.3.jar:1.19.3] at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:205) [jersey-server-1.19.3.jar:1.19.3] at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75) [jersey-server-1.19.3.jar:1.19.3] at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:302) [jersey-server-1.19.3.jar:1.19.3] at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108) [jersey-server-1.19.3.jar:1.19.3] at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147) [jersey-server-1.19.3.jar:1.19.3] at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84) [jersey-server-1.19.3.jar:1.19.3] at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1542) [jersey-server-1.19.3.jar:1.19.3] at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1473) [jersey-server-1.19.3.jar:1.19.3] at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1419) [jersey-server-1.19.3.jar:1.19.3] at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1409) [jersey-server-1.19.3.jar:1.19.3] at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:409) [jersey-servlet-1.19.3.jar:1.19.3] at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:558) [jersey-servlet-1.19.3.jar:1.19.3] at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:733) [jersey-servlet-1.19.3.jar:1.19.3] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api-3.1.0.jar:3.1.0] at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:286) [guice-servlet-4.1.0.jar:?] at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:276) [guice-servlet-4.1.0.jar:?] at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:181) [guice-servlet-4.1.0.jar:?] at com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:91) [guice-servlet-4.1.0.jar:?] at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) [guice-servlet-4.1.0.jar:?] at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120) [guice-servlet-4.1.0.jar:?] at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:135) [guice-servlet-4.1.0.jar:?] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1759) [jetty-servlet-9.3.19.v20170502.jar:9.3.19.v20170502] at io.druid.server.security.PreResponseAuthorizationCheckFilter.doFilter(PreResponseAuthorizationCheckFilter.java:84) [druid-server-0.12.1.jar:0.12.1] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1759) [jetty-servlet-9.3.19.v20170502.jar:9.3.19.v20170502] at io.druid.server.security.AllowOptionsResourceFilter.doFilter(AllowOptionsResourceFilter.java:76) [druid-server-0.12.1.jar:0.12.1] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1759) [jetty-servlet-9.3.19.v20170502.jar:9.3.19.v20170502] at io.druid.server.security.AllowAllAuthenticator$1.doFilter(AllowAllAuthenticator.java:85) [druid-server-0.12.1.jar:0.12.1] at io.druid.server.security.AuthenticationWrappingFilter.doFilter(AuthenticationWrappingFilter.java:60) [druid-server-0.12.1.jar:0.12.1] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1759) [jetty-servlet-9.3.19.v20170502.jar:9.3.19.v20170502] at io.druid.server.security.SecuritySanityCheckFilter.doFilter(SecuritySanityCheckFilter.java:86) [druid-server-0.12.1.jar:0.12.1] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1759) [jetty-servlet-9.3.19.v20170502.jar:9.3.19.v20170502] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:582) [jetty-servlet-9.3.19.v20170502.jar:9.3.19.v20170502]

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions