【问题标题】:How to handle IN clause with many elements in Calcite SQL within Apache BEAM如何在 Apache BEAM 中使用 Calcite SQL 中的许多元素处理 IN 子句
【发布时间】:2021-08-07 01:45:48
【问题描述】:

我正在使用 Apache Beam 2.29 版并进行 sql 转换。我的 sql 中有一个 IN 子句,其中包含 (50+) 内的许多元素。运行时出现以下错误:

线程“主”java.lang.UnsupportedOperationException 中的异常: 不支持 CROSS JOIN,JOIN ON FALSE!

经过一些故障排除后,我发现这是因为IN 最多仅支持 19 个元素(错误或功能?)。我用OR 将我的IN 分成更小的块,但现在我收到了这个错误:

引起:org.codehaus.janino.InternalCompilerException:代码 方法 "eval0(Lorg/apache/beam/sdk/schemas/Schema;Lorg/apache/beam/sdk/transforms/DoFn$ProcessContext;Lorg/apache/beam/vendor/calcite/v1_20_0/org/apache/calcite/DataContext;)五" “SC”类的大小超过 64 KB

知道该怎么做吗?

【问题讨论】:

标签: sql apache-beam apache-calcite


【解决方案1】:

尝试搜索IN_SUB_QUERY_THRESHOLD,超出IN_SUB_QUERY_THRESHOLD,in会被翻译成join

【讨论】:

    猜你喜欢
    • 2021-05-12
    • 1970-01-01
    • 2021-08-28
    • 2010-12-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-05
    • 1970-01-01
    相关资源
    最近更新 更多