View a markdown version of this page

Membuat kolom skalar Amazon Redshift dari data yang diparut - Amazon Redshift

Amazon Redshift tidak akan lagi mendukung penggunaan Python UDF setelah 30 Juni 2026. Kami akan mulai menegakkannya secara bertahap. Untuk informasi lebih lanjut tentang detail opsi akhir masa pakai dan migrasi Python, lihat posting blog yang diterbitkan pada 30 Juni 2025.

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Membuat kolom skalar Amazon Redshift dari data yang diparut

Data tanpa skema yang disimpan di SUPER dapat memengaruhi kinerja Amazon Redshift. Misalnya, filter predikat atau gabungkan kondisi karena pemindaian terbatas jangkauan tidak dapat menggunakan peta zona secara efektif. Pengguna dan alat BI dapat menggunakan tampilan terwujud sebagai presentasi konvensional data dan meningkatkan kinerja kueri analitis.

Kueri berikut memindai tampilan terwujud super_mv dan memfilter. 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';

Periksa stl_scan untuk memverifikasi bahwa Amazon Redshift tidak dapat menggunakan peta zona secara efektif pada pemindaian terbatas jangkauan. 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)

Contoh berikut menyesuaikan tampilan terwujud super_mv untuk membuat kolom skalar dari data yang diparut. Dalam hal ini, Amazon Redshift melakukan pemindahan o_orderstatus dari SUPER ke VARCHAR. Selain itu, tent o_orderstatus ukan sebagai kunci pengurutan untuksuper_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 );

Setelah menjalankan kembali kueri, verifikasi bahwa Amazon Redshift sekarang dapat menggunakan peta zona.

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

Anda dapat memverifikasi bahwa pemindaian terbatas jangkauan sekarang menggunakan peta zona sebagai berikut.

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)