如何通过 Java 程序获取 Bigquery 表的架构?

Posted

技术标签:

【中文标题】如何通过 Java 程序获取 Bigquery 表的架构?【英文标题】:How to get the schema of a Bigquery table via a Java program? 【发布时间】:2017-09-04 22:46:01 【问题描述】:

我使用 DataFlow 2.0/Apache Beam 作为框架从 BigQuery 读取数据并写入 SQL 数据库。想从 BigQuery 中读取架构定义,然后在 SQL 定义中创建一个等效表。

获取 BigQuery 架构定义的 Java API 是什么?

文档只讨论读取数据而不是元数据。

谢谢 -ravi

【问题讨论】:

【参考方案1】:

您可以使用BigQuery Java client library。可以通过bigQuery.getTable(datasetId, tableId).getDefinition().getSchema() 访问表的架构。

【讨论】:

BigQuery Java 客户端库似乎与 DataFlow 有问题,github.com/GoogleCloudPlatform/DataflowJavaSDK/issues/… 有一个解决方法,也许使用 BigqueryIO 库? 显然这不是提到该问题的唯一评论github.com/spotify/scio/issues/951#issuecomment-348017824

以上是关于如何通过 Java 程序获取 Bigquery 表的架构?的主要内容,如果未能解决你的问题,请参考以下文章

如何获取 ValueProvider 的值并将其写入 BigQuery 表?

如何通过 BigQuery 中的 WebUI 导出现有表的架构?

用于读取 JSON 格式数据的 BigQuery 表 URL

使用 Java 客户端库在 BigQuery 中获取按标签过滤的表列表

如何从另一个 bigquery 响应将值插入 mysql 表

Apache Beam 数据流 BigQuery