Google bigquery 不运行大查询SDK中的Select语句是否可以获取列名

Google bigquery 不运行大查询SDK中的Select语句是否可以获取列名,google-bigquery,Google Bigquery,在Big Query和Java SDK中给定一条SELECT语句,在不获取数据的情况下获取实际列名的选项是什么?我知道我可以执行语句,然后通过TableResult获得模式。但是,有没有一种方法可以在不获取数据的情况下获取名称?我们有一个工具,可以运行预先未知的任意查询,在我的代码中,我希望按名称访问结果列 更新:有人将此标记为7年前条目的副本。但是,我正在寻找一种单独使用Java SDK获取列名的方法,而不是对查询本身进行一些处理或查询某些元表。选项很少,但最简单的方法是将限制0添加到查询中,

在Big Query和Java SDK中给定一条SELECT语句,在不获取数据的情况下获取实际列名的选项是什么?我知道我可以执行语句,然后通过TableResult获得模式。但是,有没有一种方法可以在不获取数据的情况下获取名称?我们有一个工具,可以运行预先未知的任意查询,在我的代码中,我希望按名称访问结果列


更新:有人将此标记为7年前条目的副本。但是,我正在寻找一种单独使用Java SDK获取列名的方法,而不是对查询本身进行一些处理或查询某些元表。

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

SELECT * FROM projectId.datasetId.tableId limit 0

可能重复或保留查询,并使用
dryRun
设置。我将首先测试
dryRun
,因为这样我就不必修改查询。但是,我模糊地记得,在执行
dryRun
时,Java SDK中没有
TableResult
——因此无法访问
模式。我可能错了。将重新测试。