

 Amazon Redshift unterstützt UDFs ab Patch 198 nicht mehr die Erstellung von neuem Python. Das bestehende Python UDFs wird bis zum 30. Juni 2026 weiterhin funktionieren. Weitere Informationen finden Sie im [Blog-Posting](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Erstellen von skalaren Amazon-Redshift-Spalten aus aufgeteilten Daten
<a name="r_create_scalar"></a>

Schemalose Daten, die in SUPER gespeichert sind, können die Leistung von Amazon Redshift beeinflussen. Beispiel: Filterprädikate oder Join-Bedingungen als Scans mit eingeschränkter Reichweite können Zonenzuordnungen nicht effektiv verwenden. Benutzer und BI-Tools können materialisierte Ansichten als konventionelle Darstellung der Daten verwenden und die Leistung analytischer Abfragen steigern.

Die folgende Abfrage scannt die materialisierte Ansicht `super_mv` und filtert nach `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';
```

Untersuchen Sie `stl_scan`, um zu überprüfen, ob Amazon Redshift Zonenzuordnungen beim Scannen von `o_orderstatus` mit eingeschränkter Reichweite nicht effektiv verwenden kann.

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

Im folgenden Beispiel wird die materialisierte Ansicht `super_mv` angepasst, um skalare Spalten aus den aufgeteilten Daten zu erstellen. In diesem Fall wandelt Amazon Redshift `o_orderstatus` von SUPER zu VARCHAR um. Geben Sie außerdem `o_orderstatus` als Sortierschlüssel für `super_mv` aus.

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

Stellen Sie nach dem erneuten Ausführen der Abfrage sicher, dass Amazon Redshift jetzt Zonenzuordnungen verwenden kann.

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

Sie können überprüfen, ob der Scan mit eingeschränkter Reichweite jetzt Zonenzuordnungen wie folgt verwendet.

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