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