View a markdown version of this page

Consulta de tablas de sistemas - Amazon Redshift

Amazon Redshift dejará de admitir la creación de nuevas UDF de Python a partir del parche 198. Las UDF de Python existentes seguirán funcionando hasta el 30 de junio de 2026. Para obtener más información, consulte la publicación del blog.

Consulta de tablas de sistemas

Si ni la API de metadatos del controlador ni los comandos SHOW satisfacen sus necesidades, puede consultar las tablas del catálogo de PostgreSQL (pg_*), el esquema de información (information_schema) o las vistas del sistema de Amazon Redshift, por ejemplo, directamente SVV_TABLE_INFO.

Este enfoque resulta útil para tareas ad hoc de exploración, depuración o administración que se ejecutan a partir de consultas SQL interactivas, por ejemplo, en el editor de consultas V2 de Amazon Redshift o psql. Sin embargo, las estructuras del catálogo del sistema pueden cambiar en las distintas versiones de Amazon Redshift. No se recomienda utilizar consultas directas de las tablas del sistema como interfaz de metadatos para las integraciones de aplicaciones de producción.

Cuando consulte las tablas del sistema, siga estas prácticas:

  • Especifique la base de datos, el esquema y la tabla. Para obtener el mejor rendimiento, incluya el nombre de la base de datos, el nombre del esquema y el nombre de la tabla en los filtros de consulta. Al reducir el ámbito, se reduce la cantidad de metadatos que Amazon Redshift necesita analizar y devolver.

  • Utilice filtros de igualdad o LIKE. Use igualdad (=) o predicados LIKE en la cláusula WHERE para reducir los resultados. Evite las consultas sin filtrar en vistas de catálogos de gran tamaño. Pueden ser lentas en clústeres con muchos objetos.

  • Evite las funciones en los predicados de los filtros. No utilice funciones como LOWER() o la concatenación de cadenas en la cláusula WHERE cuando filtre las consultas de las tablas del sistema. Estas impiden realizar búsquedas de metadatos eficaces y pueden reducir considerablemente el rendimiento de las consultas.

Ejemplo de consultas antipatrón frente a consultas recomendadas

-- Avoid: SELECT * FROM svv_all_columns; -- Recommended: SELECT * FROM svv_all_columns WHERE database_name = 'dev' and schema_name = 'public' AND table_name = 'sales';
-- Avoid: SELECT * FROM svv_all_columns WHERE LOWER(schema_name) = 'public'; -- Recommended: SELECT * FROM svv_all_columns WHERE schema_name = 'public' AND table_name LIKE 'sales%';
-- Avoid: SELECT * FROM svv_all_columns WHERE database_name || '.' || schema_name || '.' || table_name = 'dev.public.sales'; -- Recommended: SELECT * FROM svv_all_columns WHERE database_name = 'dev' and schema_name = 'public' AND table_name = 'sales';
-- Avoid: SELECT * FROM svv_all_columns WHERE CONCAT(database_name, '.', schema_name) = 'dev.public'; -- Recommended: SELECT * FROM svv_all_columns WHERE database_name = 'dev' and schema_name = 'public';