Amazon Redshift tidak akan lagi mendukung pembuatan Python UDFs baru mulai 1 November 2025. Jika Anda ingin menggunakan Python UDFs, buat UDFs sebelum tanggal tersebut. Python yang ada UDFs akan terus berfungsi seperti biasa. Untuk informasi lebih lanjut, lihat posting blog
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 bergabung dengan kondisi karena pemindaian terbatas rentang tidak dapat menggunakan peta zona secara efektif. Pengguna dan alat BI dapat menggunakan pandangan terwujud sebagai presentasi data konvensional dan meningkatkan kinerja kueri analitis.
Kueri berikut memindai tampilan super_mv
dan filter yang terwujud. 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 rentang. 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 beralih o_orderstatus
dari SUPER ke VARCHAR. Selain itu, tentukan o_orderstatus
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 rentang 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)