0

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

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

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

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>

还有什么我在这里想念的吗?

4

2 回答 2

1

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

使用 Apache Beam 的 ZetaSQL 示例

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

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

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

于 2019-12-05T03:30:54.100 回答
0

这在最新版本的 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>
于 2020-04-07T22:00:35.463 回答