【问题标题】:Errors trying to start ZetaSQL planner尝试启动 ZetaSQL 计划程序时出错
【发布时间】:2020-03-28 15:37:40
【问题描述】:

我正在尝试运行带有 SQL 转换的 Beam 管道,并使用 ZetaSQL 进行解析。我从设置选项开始

options.setPlannerName("org.apache.beam.sdk.extensions.sql.zetasql.ZetaSQLQueryPlanner");

当我尝试使用任何给定查询创建我的 SqlTransform 时,我得到 ​​p>

java.util.ServiceConfigurationError: org.apache.beam.repackaged.sql.com.google.zetasql.ClientChannelProvider: Provider org.apache.beam.repackaged.sql.com.google.zetasql.JniChannelProvider could not be instantiated
    at java.util.ServiceLoader.fail (ServiceLoader.java:232)
    at java.util.ServiceLoader.access$100 (ServiceLoader.java:185)
    at java.util.ServiceLoader$LazyIterator.nextService (ServiceLoader.java:384)
    at java.util.ServiceLoader$LazyIterator.next (ServiceLoader.java:404)
    at java.util.ServiceLoader$1.next (ServiceLoader.java:480)
    at org.apache.beam.repackaged.sql.com.google.zetasql.ClientChannelProvider.loadChannel (ClientChannelProvider.java:31)
...
    at org.apache.beam.sdk.extensions.sql.SqlTransform.expand (SqlTransform.java:82)
    at org.apache.beam.sdk.Pipeline.applyInternal (Pipeline.java:539)
    at org.apache.beam.sdk.Pipeline.applyTransform (Pipeline.java:473)
    at org.apache.beam.sdk.values.PCollection.apply (PCollection.java:357)
...

我在 maven 中的 POM 中添加了以下相关依赖项:

        <dependency>
            <groupId>org.apache.beam</groupId>
            <artifactId>beam-runners-google-cloud-dataflow-java</artifactId>
            <version>2.15.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.beam</groupId>
            <artifactId>beam-sdks-java-extensions-sql</artifactId>
            <version>2.16.0</version>
        </dependency>

我这里还有什么遗漏的吗?

【问题讨论】:

    标签: java google-cloud-platform apache-beam beam-sql


    【解决方案1】:

    不幸的是,ZetaSQL 规划器今天不能在 MAC 或旧版本的 Linux 上工作。请看 Rui 的评论:

    ZetaSQL Sample Using Apache beam

    看起来这个 PR 在这里可能有用(我没有深入研究确认):

    https://github.com/google/zetasql/pull/3

    作为一种解决方法,您可以尝试更新版本的 linux 吗?也许在容器中?

    【讨论】:

      【解决方案2】:

      最新版本的 ZetaSQL 已解决此问题,该版本将与 Beam 2.21 一起使用。您也可以尝试下载更新版本的 ZetaSQL(至少 2020.03.2):

          <dependency>
              <groupId>com.google.zetasql</groupId>
              <artifactId>zetasql-jni-channel</artifactId>
              <version>2020.03.2</version>
          </dependency>
      

      【讨论】:

        猜你喜欢
        • 2017-06-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-07-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多