View a markdown version of this page

Búsqueda semántica en AWS Glue Data Catalog - AWS Glue

Búsqueda semántica en AWS Glue Data Catalog

nota

El contexto empresarial y la búsqueda semántica se encuentran en una versión preliminar para AWS Glue, y están sujetos a cambios.

La búsqueda semántica permite detectar activos de datos por significado, además de por la coincidencia exacta de palabras clave. Los resultados se clasifican según la similitud semántica con la consulta. Puede acotar los resultados mediante filtros por tipo de activo, campos de metadatos y términos de glosario.

Uso de la API SearchAssets

La API SearchAssets acepta SearchText, FilterClause, o ambas. Si no se proporciona ninguna de las dos, devuelve todos los activos. Parámetros opcionales: Sort, MaxResults, NextToken.

Búsqueda de texto

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

Ejemplo de código de salida:

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

Acote los resultados con --max-results:

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

Filtro de los resultados de búsqueda

Utilice FilterClause para acotar los resultados. Tipos de filtros compatibles:

  • AttributeFilter: operadores: equals, greaterThan, greaterThanOrEquals, lessThan, lessThanOrEquals, notExists.

  • AndAllFilters: todos los filtros deben coincidir (lógica AND).

  • OrAnyFilters: como mínimo uno debe coincidir (lógica OR).

Cómo filtrar por un único atributo

Filtre solo los activos de la tabla:

aws glue search-assets \ --search-text "revenue" \ --filter-clause '{ "AttributeFilter": { "Attribute": "type", "Operator": "equals", "Value": {"StringValue": "Table"} } }'
Cómo combinar filtros con la lógica AND

Busque los activos de la tabla actualizados después de una marca de tiempo:

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}}} ] }'
Cómo combinar filtros con la lógica OR

Busque tablas o activos de habilidades:

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"}}} ] }'
Cómo filtrar por término del glosario

Filtre los activos etiquetados con un término específico del glosario (por ID de término):

aws glue search-assets \ --search-text "financial data" \ --filter-clause '{ "AttributeFilter": { "Attribute": "glossaryTerms", "Operator": "equals", "Value": {"StringValue": "glossary-term-id"} } }'
Cómo utilizar filtros AND y OR anidados

Busque activos de habilidades o tablas con un término específico del glosario:

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"}}} ] }'

Clasificación de los resultados de búsqueda

Por defecto, los resultados se clasifican por relevancia semántica. Cómo clasificar por atributo:

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"}'
nota

Al especificar un atributo de clasificación, los resultados se ordenan según ese atributo y no por relevancia semántica.

Paginar los resultados de búsqueda

Cuando los resultados superan MaxResults, la respuesta incluye un NextToken. Úselo para recuperar páginas adicionales.

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

Continúe hasta que la respuesta deje de incluir un NextToken.

Ejecución de consultas solo con filtros

Utilice solo FilterClause sin SearchText para consultar los activos sin una clasificación semántica.

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

Si omite ambos SearchText y FilterClause, la API devuelve todos los activos.

Ejemplos

Cómo detectar los activos de habilidades de un dominio

Busque activos de habilidades relacionados con los datos de ventas:

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

Esta consulta devuelve solo activos de habilidades personalizados. La API SearchAssets no devuelve las habilidades administradas.

Cómo combinar la búsqueda y la clasificación de texto

Obtenga una visión completa de los activos coincidentes:

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