

 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](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# Consulta de las tablas y las vistas del sistema
<a name="t_querying_redshift_system_tables"></a>

Además de las tablas que crea, su almacenamiento de datos contiene una serie de tablas y vistas del sistema. Estas tablas y vistas de sistema tienen información relacionada con la instalación y con las diferentes consultas y procesos que se están ejecutando en el sistema. Puede consultar estas tablas y vistas de sistema para recopilar información relacionada con su base de datos. Para obtener más información, consulte [Referencia de las tablas y vistas de sistema](https://docs.aws.amazon.com/redshift/latest/dg/cm_chap_system-tables.html) en la *Guía para desarrolladores de bases de datos de Amazon Redshift*. La descripción de cada tabla o vista indica si una tabla es visible para todos los usuarios o si es visible solo para los superusuarios. Inicie sesión como superusuario para consultar las tablas que son visibles solo para los superusuarios. 

## Vista de una lista de los nombres de las tablas
<a name="t_querying_redshift_system_tables-view-a-list-of-table-names"></a>

Para ver una lista de todas las tablas de un esquema, puede consultar la tabla de catálogo del sistema PG\$1TABLE\$1DEF. En primer lugar, puede examinar la configuración de `search_path`.

```
SHOW search_path;
```

El resultado debería ser similar al siguiente.

```
  search_path
---------------
 $user, public
```

En el siguiente ejemplo, se agrega el esquema `SALES` en la ruta de búsqueda y muestra todas las tablas en el esquema `SALES`.

```
set search_path to '$user', 'public', 'sales';
                
SHOW search_path;

      search_path       
------------------------
 "$user", public, sales


select * from pg_table_def where schemaname = 'sales';

 schemaname | tablename |  column  |          type          | encoding | distkey | sortkey | notnull 
------------+-----------+----------+------------------------+----------+---------+---------+---------
 sales      | demo      | personid | integer                | az64     | f       |       0 | f
 sales      | demo      | city     | character varying(255) | lzo      | f       |       0 | f
```

En el siguiente ejemplo, se muestra una lista de todas las tablas llamadas `DEMO` en todos los esquemas de la base de datos actual.

```
set search_path to '$user', 'public', 'sales';
select * from pg_table_def where tablename = 'demo';

 schemaname | tablename |  column  |          type          | encoding | distkey | sortkey | notnull 
------------+-----------+----------+------------------------+----------+---------+---------+---------
 public     | demo      | personid | integer                | az64     | f       |       0 | f
 public     | demo      | city     | character varying(255) | lzo      | f       |       0 | f
 sales      | demo      | personid | integer                | az64     | f       |       0 | f
 sales      | demo      | city     | character varying(255) | lzo      | f       |       0 | f
```

Para obtener más información, consulte [PG\$1TABLE\$1DEF](https://docs.aws.amazon.com/redshift/latest/dg/r_PG_TABLE_DEF.html).

También puede utilizar el editor de consultas de Amazon Redshift v2 para ver todas las tablas de un esquema especificado si elige primero una base de datos a la que desea conectarse.

## Ver usuarios
<a name="t_querying_redshift_system_tables-view-database-users"></a>

Puede consultar el catálogo PG\$1USER para ver una lista de todos los usuarios, junto con el ID de usuario (USESYSID) y los privilegios de usuario. 

```
SELECT * FROM pg_user;

  usename   | usesysid | usecreatedb | usesuper | usecatupd |  passwd  | valuntil | useconfig
------------+----------+-------------+----------+-----------+----------+----------+-----------
 rdsdb      |        1 | true        | true     | true      | ******** | infinity |
 awsuser    |      100 | true        | true     | false     | ******** |          |
 guest      |      104 | true        | false    | false     | ******** |          |
```

Amazon Redshift utiliza internamente el nombre de usuario `rdsdb` para realizar tareas administrativas y de mantenimiento de rutina. Puede filtrar su consulta para que solo se vean los nombres de usuario definidos por el usuario si agrega `where usesysid > 1` a la instrucción SELECT.

```
SELECT * FROM pg_user WHERE usesysid > 1;

  usename   | usesysid | usecreatedb | usesuper | usecatupd |  passwd  | valuntil | useconfig
------------+----------+-------------+----------+-----------+----------+----------+-----------
 awsuser    |      100 | true        | true     | false     | ******** |          |
 guest      |      104 | true        | false    | false     | ******** |          |
```

## Vista de consultas recientes
<a name="t_querying_redshift_system_tables-view-recent-queries"></a>

En el ejemplo anterior, el ID de usuario (user\$1id) para `adminuser` es 100. Para encontrar las cuatro consultas más recientes que ejecutó `adminuser`, puede consultar la vista SYS\$1QUERY\$1HISTORY. 

Puede utilizar esta vista para encontrar el ID de consulta (query\$1id) o el ID de proceso (session\$1id) para una consulta ejecutada recientemente. También puede utilizar esta vista para verificar cuánto demora en completarse una consulta. SYS\$1QUERY\$1HISTORY incluye los primeros 4000 caracteres de la cadena de consulta (query\$1text) para ayudarle a localizar una consulta específica. Utilice la cláusula LIMIT con la instrucción SELECT para limitar los resultados. 

```
SELECT query_id, session_id, elapsed_time, query_text 
FROM sys_query_history
WHERE user_id = 100
ORDER BY start_time desc
LIMIT 4;
```

El resultado es similar al siguiente: 

```
 query_id |  session_id  |  elapsed_time |   query_text
----------+--------------+---------------+----------------------------------------------------------------
 892      |    21046     |       55868   | SELECT query, pid, elapsed, substring from ...
 620      |    17635     |     1296265   | SELECT query, pid, elapsed, substring from ...
 610      |    17607     |       82555   | SELECT * from DEMO; 
 596      |    16762     |      226372   | INSERT INTO DEMO VALUES (100);
```

## Determinación del ID de sesión de una consulta en ejecución
<a name="determine_pid"></a>

Es posible que tenga que especificar el ID de sesión (ID de proceso) asociado a la consulta para recuperar información de las tablas del sistema sobre una consulta. También es posible que necesite encontrar el ID de sesión para una consulta que sigue en ejecución. Por ejemplo, necesita el ID de sesión si debe cancelar una consulta que está tardando mucho en ejecutarse en un clúster aprovisionado. Puede consultar la tabla del sistema STV\$1RECENTS para obtener una lista de los ID de sesión de las consultas en ejecución, junto con la cadena de consulta correspondiente. Si su consulta devuelve múltiples sesiones, puede analizar el texto de la consulta para determinar cuál es el ID de sesión que necesita.

Para determinar el ID de sesión de una consulta en ejecución, ejecute la siguiente instrucción SELECT.

```
SELECT session_id, user_id, start_time, query_text
FROM sys_query_history
WHERE status='running';
```