【问题标题】:Can you get column names from a Select statement in the big query SDK without running it您可以从大查询 SDK 中的 Select 语句中获取列名而不运行它吗
【发布时间】:2019-02-19 07:44:43
【问题描述】:

鉴于 Big Query 和 Java SDK 中的 SELECT 语句,我有哪些选项可以在不获取数据的情况下获取实际列名?我知道我可以执行语句,然后通过 TableResult 获取 Schema。但是有没有办法在不获取数据的情况下获取名称?我们有一个工具,我们可以在其中运行预先未知的任意查询,在我的代码中,我想按名称访问结果列。

更新:有人将此标记为与 7 年前的条目重复。然而,我正在寻找一种方法来单独使用 Java SDK 来获取列名,而不是对查询本身做一些魔术或查询一些元表。

【问题讨论】:

标签: google-bigquery


【解决方案1】:

选项很少,但最简单的方法是将limit 0 添加到您的查询中,例如:

SELECT * FROM projectId.datasetId.tableId limit 0

【讨论】:

  • 或保留查询原样并使用dryRun 设置。
  • 我将首先测试dryRun,因为这样我就不必修改查询了。但是,我隐约记得在执行dryRun 时,Java SDK 中没有TableResult - 因此无法访问Schema。我可能是错的。将重新测试。
猜你喜欢
  • 2023-01-16
  • 2013-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-13
  • 2021-06-23
  • 2017-04-29
相关资源
最近更新 更多