Google Dataplex查询Entry仅返回自定义Aspect名称,如何获取其属性值?
Google Dataplex查询Entry仅返回自定义Aspect名称,如何获取其属性值?
我之前也碰到过一模一样的问题!默认调用get_entry的时候,自定义Aspect的属性值不会被返回,这是因为Dataplex API默认使用基础视图(BASIC),只会返回Aspect的元数据(比如名称、关联关系),不会包含你自定义的具体属性内容。
解决方法其实很简单,你只需要在请求里显式指定返回视图为INCLUDE_ASPECT_DATA,就能加载所有关联Aspect的完整数据了,包括你自定义的属性值。
修改后的代码示例
from google.cloud import dataplex_v1 def sample_get_entry(name): client = dataplex_v1.CatalogServiceClient() # 关键修改:添加view参数,指定加载包含Aspect数据的视图 request = dataplex_v1.GetEntryRequest( name=name, view=dataplex_v1.CatalogServiceClient.EntryView.INCLUDE_ASPECT_DATA ) response = client.get_entry(request=request) print(response) # 你的Entry名称 sample_entry_name = "projects/<MYPROJECT>/locations/us-east1/entryGroups/@bigquery/entries/bigquery.googleapis.com/projects/<MYPROJECT>/datasets/<MYDATASET>/tables/<MYTABLE>" sample_get_entry(sample_entry_name)
额外优化:只加载特定自定义Aspect
如果你只需要获取某几个特定的自定义Aspect数据,不想加载所有Aspect(可以减少响应大小,提升效率),可以再加上aspect_types参数,指定你需要的Aspect类型的完整名称,比如:
request = dataplex_v1.GetEntryRequest( name=name, view=dataplex_v1.CatalogServiceClient.EntryView.INCLUDE_ASPECT_DATA, aspect_types=[ "projects/<MYPROJECT>/locations/us-east1/aspectTypes/MYCUSTOM-aspect1", "projects/<MYPROJECT>/locations/global/aspectTypes/MYCUSTOM-aspect2" ] )
这样修改后,你就能在response里看到自定义Aspect的data字段,里面包含了你之前设置的所有属性值啦。
备注:内容来源于stack exchange,提问作者magnawhale
相关产品推荐
相关产品推荐

