View a markdown version of this page

针对 AWS Glue Data Catalog 的语义搜索 - AWS Glue

针对 AWS Glue Data Catalog 的语义搜索

注意

业务上下文和语义搜索目前为预览 AWS Glue 状态,可能会发生更改。

除了精确的关键字匹配之外,语义搜索还使您能够通过含义来发现数据资产。根据与查询的语义相似度对结果进行排名。您可以使用对资产类型、元数据字段和术语表条目进行筛选来缩小结果范围。

使用 SearchAssets API

SearchAssets API 接受 SearchTextFilterClause,或两者皆可。如果两者均未提供,则返回所有资产。可选参数:SortMaxResultsNextToken

文本搜索

aws glue search-assets \ --search-text "customer purchases"

输出示例:

{ "Items": [ {"Id": "c9vq7sh2fk4t2h", "AssetName": "Customer Sales Transactions", "AssetTypeId": "Table"} ] }

使用 --max-results 限制结果:

aws glue search-assets \ --search-text "quarterly revenue" \ --max-results 5

筛选搜索结果

使用 FilterClause 缩小结果范围。支持的筛选条件

  • AttributeFilter–运算符:equalsgreaterThangreaterThanOrEqualslessThanlessThanOrEqualsnotExists

  • AndAllFilters–所有筛选器都必须匹配(逻辑与)。

  • OrAnyFilters–必须至少有一个匹配(逻辑或)。

按单个属性进行筛选

仅筛选到表格资产:

aws glue search-assets \ --search-text "revenue" \ --filter-clause '{ "AttributeFilter": { "Attribute": "type", "Operator": "equals", "Value": {"StringValue": "Table"} } }'
将筛选器和与逻辑结合使用

查找在某个时间戳之后更新的表格资产:

aws glue search-assets \ --search-text "customer data" \ --filter-clause '{ "AndAllFilters": [ {"AttributeFilter": {"Attribute": "type", "Operator": "equals", "Value": {"StringValue": "Table"}}}, {"AttributeFilter": {"Attribute": "updatedAt", "Operator": "greaterThan", "Value": {"LongValue": 1718400000}}} ] }'
将筛选器与或逻辑相结合

搜索表格或技能资产:

aws glue search-assets \ --search-text "customer data" \ --filter-clause '{ "OrAnyFilters": [ {"AttributeFilter": {"Attribute": "type", "Operator": "equals", "Value": {"StringValue": "Table"}}}, {"AttributeFilter": {"Attribute": "type", "Operator": "equals", "Value": {"StringValue": "Skill"}}} ] }'
按术语表条目进行筛选

筛选到标有特定术语表条目的资产(按条目ID):

aws glue search-assets \ --search-text "financial data" \ --filter-clause '{ "AttributeFilter": { "Attribute": "glossaryTerms", "Operator": "equals", "Value": {"StringValue": "glossary-term-id"} } }'
使用嵌套的与和或筛选器

查找带有特定术语表条目的表格或技能资产:

aws glue search-assets \ --search-text "customer" \ --filter-clause '{ "AndAllFilters": [ {"OrAnyFilters": [ {"AttributeFilter": {"Attribute": "type", "Operator": "equals", "Value": {"StringValue": "Table"}}}, {"AttributeFilter": {"Attribute": "type", "Operator": "equals", "Value": {"StringValue": "Skill"}}} ]}, {"AttributeFilter": {"Attribute": "glossaryTerms", "Operator": "equals", "Value": {"StringValue": "glossary-term-id"}}} ] }'

排序搜索结果

默认情况下,结果按语义相关性排序。要按属性排序,请执行以下操作:

aws glue search-assets \ --search-text "customer purchases" \ --sort '{"Attribute": "assetName", "Order": "ASCENDING"}'
aws glue search-assets \ --search-text "customer purchases" \ --sort '{"Attribute": "updatedAt", "Order": "DESCENDING"}'
注意

指定排序属性时,结果按该属性排序,而不是按语义相关性排序。

对搜索结果进行分页

当结果超过时 MaxResults,响应将包含 NextToken。使用它来检索其他页面。

aws glue search-assets \ --search-text "customer data" \ --max-results 10 \ --next-token "eyJsYXN0RXZhbHVhdGVkS2V5Ijp7ImlkIjp7InMiOiJhMWIyYzNkNCJ9fX0="

继续操作,直到响应不再包含 NextToken

运行仅限筛选器的查询

仅使用 FilterClause 而不使用 SearchText,可列出未经过语义排名的资产。

aws glue search-assets \ --filter-clause '{"AttributeFilter": {"Attribute": "type", "Operator": "equals", "Value": {"StringValue": "Table"}}}' \ --max-results 20
注意

同时省略 SearchTextFilterClause 时,API 会返回所有资产。

示例

发现域的技能资产

查找与销售数据相关的技能资产:

aws glue search-assets \ --search-text "sales domain usage rules" \ --filter-clause '{"AttributeFilter": {"Attribute": "type", "Operator": "equals", "Value": {"StringValue": "Skill"}}}'
注意

此查询仅返回自定义技能资产。SearchAssets API 不会返回托管技能。

将文本搜索和排序结合起来

全面了解匹配的资产:

aws glue search-assets \ --search-text "customer" \ --sort '{"Attribute": "updatedAt", "Order": "DESCENDING"}' \ --max-results 10