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

时间:2018-11-01 12:20:20

标签: java google-bigquery label

我正在使用BigQuery的Java客户端库。请问在获取BigQuery表列表时是否有一种方法可以指定标签,以便我获取的表已经被我指定的标签过滤了?以下示例无法指定标签。

link

1 个答案:

答案 0 :(得分:0)

从今天开始,如working with BigQuery lab的文档中所述,该选项是不可能的:

  

当前,您无法基于过滤器列出表或视图   规范。

无论如何,BigQuery团队已经意识到,对于某些用例来说,这是一个有趣的功能,因为其中有a public Feature Request要求使用此选项。随时为它加注星标以接收更新,并添加您自己的评论以解释您的用例并突出显示此选项的可用性。

作为替代方法(可能不适合您),您仍然可以list all tables in a dataset然后在客户端按标签过滤,尽管在这种情况下,客户端将检索所有表,显然


更新:

此外,我已经找到this other public Feature Request,其中宣布了 INFORMATION_SCHEMA 功能,并且还可以请求访问此功能的Alpha版本。

您的项目需要白名单才能使用。但是,一旦获得访问权限(或将公众发布到公共Beta / GA中),您应该能够使用类似以下的查询来列出表格:

CREATE TABLE
  [DATASET].[TABLE]
OPTIONS (labels = [('key1', 'value1'), ('key2', 'value2')])
AS SELECT 1 AS x, 'foo' AS y;

SELECT
  table_name
FROM
  [DATASET].INFORMATION_SCHEMA.TABLE_OPTIONS
WHERE
  option_name = 'labels'
  AND option_value LIKE '%key2%'

请注意,此功能仍处于Alpha release状态,因此将来可能会发生变化。