

 Amazon Redshift ne prendra plus en charge la création de nouveaux Python à UDFs partir du patch 198. UDFs Le Python existant continuera de fonctionner jusqu'au 30 juin 2026. Pour plus d’informations, consultez le [ billet de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Création de colonnes scalaires Amazon Redshift à partir de données fragmentées
<a name="r_create_scalar"></a>

Les données sans schéma stockées dans SUPER peuvent affecter les performances d’Amazon Redshift. Par exemple, les prédicats de filtrage ou les conditions de jointure en tant qu’analyse à plage restreinte ne peuvent pas utiliser efficacement les cartes de zone. Les utilisateurs et les outils BI peuvent utiliser des vues matérialisées comme présentation conventionnelle des données et augmenter les performances des requêtes analytiques.

La requête suivante analyse la vue matérialisée `super_mv` et les filtres sur `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';
```

Inspectez `stl_scan` pour vérifier que Amazon Redshift ne peut effectivement pas utiliser les cartes de zone sur le scan à plage restreinte sur `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)
```

L’exemple suivant adapte la vue matérialisée `super_mv` pour créer des colonnes scalaires à partir des données fragmentées. Dans ce cas, Amazon Redshift convertit `o_orderstatus` de SUPER à VARCHAR. En outre, spécifiez `o_orderstatus` comme clé de tri pour `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
);
```

Après avoir réexécuté la requête, vérifiez qu’Amazon Redshift peut désormais utiliser des cartes de zones.

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

Vous pouvez vérifier que l’analyse à plage restreinte utilise désormais les cartes de zones comme suit.

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