我正在使用BigQuery的Java客户端库。请问在获取BigQuery表列表时是否有一种方法可以指定标签,以便我获取的表已经被我指定的标签过滤了?以下示例无法指定标签。
答案 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状态,因此将来可能会发生变化。