1

我可以使用 Java Google Data Catalog 库搜索标签模板,并对标签名称进行子搜索以找到使用标签的大查询表,但我不知道如何找到哪些列正在使用标签。以下是一些示例 Java 代码:

TagTemplate template = dataCatalogClient.getTagTemplate(result.getRelativeResourceName());
SearchCatalogRequest innerSearch = SearchCatalogRequest.newBuilder().setScope(scope).setQuery("tag=" + template.getDisplayName()).build();
              SearchCatalogPagedResponse innerResponse = dataCatalogClient.searchCatalog( innerSearch );
for (SearchCatalogResult innerResult : innerResponse.iterateAll()) {
 LookupEntryRequest request = 
 LookupEntryRequest.newBuilder().setLinkedResource(linkedResource).build();               
                                  
  com.google.cloud.datacatalog.v1.Entry entry = dataCatalogClient.lookupEntry(request);
                  Schema schema = entry.getSchema();
                  java.util.List<com.google.cloud.datacatalog.v1.ColumnSchema> columnSchemas = 
   schema.getColumnsList();
}

上面的代码返回所有标签模板以及使用标签的大查询表在哪里,但我不知道如何找到哪些列正在使用标签。提前致谢。

4

1 回答 1

1

我能够自己解决这个问题。要获取列级别的标签,您必须列出表级别的所有标签,并检查是否使用此 Google Data Catalog API 调用分配给列:

              ListTagsPagedResponse tagsResponse = dataCatalogClient.listTags(entry.getName());
              for(Tag tag : tagsResponse.iterateAll()) {
                  System.out.println(tag);
              }
于 2020-10-14T04:29:48.780 回答