代码之家  ›  专栏  ›  技术社区  ›  Kewei Shang

使用Java客户机库获取BigQuery中按标签筛选的表的列表

  •  0
  • Kewei Shang  · 技术社区  · 7 年前

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

    link

    1 回复  |  直到 7 年前
        1
  •  0
  •   dsesto    7 年前

    从今天起,如 working with BigQuery lab ,此选项不可能:

    当前,不能基于筛选器列出表或视图 规范。

    无论如何,BigQuery团队已经意识到这对于某些用例来说是一个有趣的特性,因为 a public Feature Request 其中请求此选项。为了接收更新,您可以随意添加一条评论,以解释您的用例并强调此选项的可用性。

    作为另一种选择(可能对你不起作用),你仍然可以 list all tables in a dataset 然后根据客户机端的标签进行筛选,尽管在这种情况下,客户机显然将检索所有表。


    更新:

    而且,我已经找到了 this other public Feature Request 其中 信息架构 功能已发布,还可以请求访问此功能的Alpha版本。

    您的项目需要白名单才能使用。但是,一旦您获得了访问权限(或者public启动到public 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 因此,未来可能会发生变化。