

 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/). 

# Creación de columnas escalares de Amazon Redshift a partir de datos fragmentados
<a name="r_create_scalar"></a>

Los datos sin esquemas almacenados en SUPER pueden afectar el rendimiento de Amazon Redshift. Por ejemplo, los predicados de filtro o las condiciones de unión como análisis de rango restringido no pueden utilizar eficazmente los mapas de zona. Los usuarios y las herramientas de BI pueden utilizar las vistas materializadas como la presentación convencional de los datos y aumentar el rendimiento de las consultas analíticas.

La siguiente consulta analiza la vista materializada `super_mv` y filtra en `o_orderstatus`.

```
SELECT c.c_name, v.o_totalprice
FROM customer_orders_lineitem c
JOIN super_mv v ON c.c_custkey = v.c_custkey
WHERE v.o_orderstatus = 'F';
```

Inspeccione `stl_scan` para comprobar que Amazon Redshift no puede utilizar eficazmente los mapas de zona en el análisis de rango restringido a través de `o_orderstatus`.

```
SELECT slice, is_rrscan FROM stl_scan
WHERE query = pg_last_query_id() AND perm_table_name LIKE '%super_mv%';

 slice | is_rrscan 
-------+-----------
     0 | f
     1 | f
     5 | f
     4 | f
     2 | f
     3 | f
(6 rows)
```

En el siguiente ejemplo, se adapta la vista materializada `super_mv` para crear columnas escalares a partir de los datos fragmentados. En este caso, Amazon Redshift convierte `o_orderstatus` de SUPER en VARCHAR. Además, especifique `o_orderstatus` como la clave de ordenación para `super_mv`.

```
CREATE MATERIALIZED VIEW super_mv distkey(c_custkey) sortkey(c_custkey, o_orderstatus) AS (
  SELECT c_custkey, o.o_orderstatus::VARCHAR AS o_orderstatus, o.o_totalprice, o_idx
  FROM customer_orders_lineitem c, c.c_orders o AT o_idx
);
```

Después de volver a ejecutar la consulta, compruebe que Amazon Redshift ahora pueda utilizar mapas de zona.

```
SELECT v.o_totalprice
FROM super_mv v
WHERE v.o_orderstatus = 'F';
```

Puede comprobar que el análisis de rango restringido ahora utiliza mapas de zona de la siguiente manera.

```
SELECT slice, is_rrscan FROM stl_scan
WHERE query = pg_last_query_id() AND perm_table_name LIKE '%super_mv%';

 slice | is_rrscan 
-------+-----------
     0 | t
     1 | t
     2 | t
     3 | t
     4 | t
     5 | t
(6 rows)
```