从表中读取 BigQuery 数值数据类型
Posted
技术标签:
【中文标题】从表中读取 BigQuery 数值数据类型【英文标题】:Reading BigQuery Numeric Data Type From Table 【发布时间】:2018-05-30 17:30:23 【问题描述】:虽然从 BQ 表 NUMERIC 读取数据,但在 Apache Beam 中仍然不支持,但使用 API 我可以在 BQ 中使用 NUMERIC 数据类型。
因此,在使用以下 Snippet 从 BQ 读取数据时:
BigQueryIO.readTablerow().from(options.valueprovider);
我得到一个异常数值 尚不支持。
如果 NUMERIC 字段存在,除了 RestAPI 调用,我还有其他方法可以从 BQ 读取数据吗?
【问题讨论】:
我认为现在不可能。不过你可以follow the relevant feature request for Beam。 嗨,@ElliottBrossard 我已经看到了这个请求,但到目前为止,Apache 方面没有任何响应。任何替代方法因此,我可以在 Dataflow 中测试 Numeric Datatype 的行为,而不是 RestAPI 调用。如果它可能有帮助或任何替代/建议,我也尝试使用用户定义的编码器。 github.com/apache/beam/pull/5755 @ElliottBrossard 谢谢 感谢您的提醒。我会考虑解决这个问题。 【参考方案1】:Dataflow 现在支持使用 Java 库的reading NUMERIC
from BigQuery。在撰写本文时,您需要download a snapshot release 或等到下一个official Beam release 才能使用此功能。
编辑:如果你想下载当前版本的 Beam,你可以这样做:
~$ git clone https://github.com/apache/beam.git
然后就可以使用 Gradle build
任务了,例如:
~$ cd beam
~/beam$ ./gradlew build
或者为 Eclipse 生成文件,如果您使用它作为您的开发环境:
~/beam$ ./gradlew -p sdks/java/build-tools/ eclipse
您可以找到有关使用 Gradle 的更多信息in the Gradle user documentation。
【讨论】:
感谢您提供信息,但是您能否分享构建 gradle 的命令,因为我面临问题,现在由于缺少 pom.xml,无法使用 master 分支进行 maven 构建。 我更新了答案以显示几个您可以执行的 Gradle 任务。以上是关于从表中读取 BigQuery 数值数据类型的主要内容,如果未能解决你的问题,请参考以下文章