

 O Amazon Redshift não permitirá mais a criação de UDFs do Python a partir do Patch 198. As UDFs do Python existentes continuarão a funcionar normalmente até 30 de junho de 2026. Para ter mais informações, consulte a [publicação de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# Criar colunas escalares do Amazon Redshift a partir de dados fragmentados
<a name="r_create_scalar"></a>

Dados sem esquema armazenados no SUPER podem afetar a performance do Amazon Redshift. Por exemplo, filtrar predicados ou condições de junção como varreduras restritas de intervalo não podem usar efetivamente mapas de zona. Usuários e ferramentas de BI podem usar exibições materializadas como a apresentação convencional dos dados e aumentar a performance das consultas analíticas.

A consulta a seguir verifica a visão materializada `super_mv` e filtros no `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';
```

Inspecione `stl_scan` para verificar se o Amazon Redshift não pode usar efetivamente mapas de zona na varredura restrita por intervalo em `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)
```

O exemplo a seguir adapta a visão materializada `super_mv` para criar colunas escalares fora dos dados fragmentados. Nesse caso, o Amazon Redshift converte `o_orderstatus` de SUPER para VARCHAR. Além disso, especifica `o_orderstatus` como a chave de classificação para o `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
);
```

Depois de executar novamente a consulta, verifique se o Amazon Redshift agora pode usar mapas de zona.

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

Você pode verificar se a varredura com restrição de intervalo agora usa mapas de zona da seguinte maneira.

```
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)
```