使用 Java 客户端库在 BigQuery 中获取按标签过滤的表列表
Posted
技术标签:
【中文标题】使用 Java 客户端库在 BigQuery 中获取按标签过滤的表列表【英文标题】:Get a list of tables filtered by labels in BigQuery using Java client library 【发布时间】:2018-11-01 12:20:20 【问题描述】:我正在使用 BigQuery 的 Java 客户端库。请问有没有办法在获取BigQuery表列表的时候指定标签,这样我得到的表就已经被我指定的标签过滤了?以下示例无法指定标签。
link
【问题讨论】:
【参考方案1】:截至今天,如working with BigQuery lab 的文档中所述,此选项是不可能的:
目前,您无法根据过滤器列出表或视图 规范。
无论如何,BigQuery 团队已经意识到这对于某些用例来说是一个有趣的功能,因为在 a public Feature Request 中请求了此选项。随意加注星标以接收更新,并添加您自己的评论以解释您的用例并突出此选项的可用性。
作为替代方案(这可能不适合您),您仍然可以list all tables in a dataset 然后在客户端按标签过滤,尽管在这种情况下,客户端显然会检索所有表。
更新:
此外,我还找到了this other public Feature Request,其中宣布了 INFORMATION_SCHEMA 功能,还可以请求访问此功能的 Alpha 版本。
您的项目需要被列入白名单才能使用。但是,一旦您获得访问权限(或公众进入公共测试版/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 中,因此将来可能会发生变化。
【讨论】:
以上是关于使用 Java 客户端库在 BigQuery 中获取按标签过滤的表列表的主要内容,如果未能解决你的问题,请参考以下文章
使用 Python,将 google.cloud.bigquery.job.query.QueryJob 输出保存到本地 JSON 文件
BigQuery - 使用 Java 客户端库上传 GZIP 压缩文件
使用 POST 请求和 Java 客户端库加载到 BigQuery 的任何示例?
如何在 BigQuery java 客户端加载作业中将“ignoreUnknownValues”选项设置为“true”