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.
Batasan
Dengan Amazon Redshift, Anda dapat bekerja dengan tipe data SUPER untuk menyimpan dan menanyakan data semi-terstruktur seperti JSON, Avro, atau Ion. Batasan tipe data SUPER mengacu pada batasan dan batasan saat menggunakan tipe data ini di Amazon Redshift. Bagian berikut memberikan rincian tentang batasan spesifik tipe data SUPER, seperti ukuran maksimum, tingkat bersarang, dan tipe data yang didukung dalam data semi-terstruktur.
Anda tidak dapat mendefinisikan kolom SUPER sebagai kunci distribusi atau sortir.
Objek SUPER individu dapat menampung hingga 16 MB data.
Kedalaman bersarang maksimum untuk array dan struktur tipe data SUPER adalah 1.000.
Nilai individual dalam objek SUPER terbatas pada panjang maksimum jenis Amazon Redshift yang sesuai. Misalnya, nilai string tunggal yang dimuat ke SUPER terbatas pada panjang VARCHAR maksimum 65535 byte.
Anda tidak dapat melakukan pembaruan sebagian atau operasi transformasi pada kolom SUPER.
Anda tidak dapat menggunakan tipe data SUPER dan aliasnya dalam gabungan kanan atau gabungan luar penuh.
Tipe data SUPER tidak mendukung XMLsebagai format serialisasi masuk atau keluar.
Dalam klausa FROM dari subquery (yang berkorelasi atau tidak) yang mereferensikan variabel tabel untuk unnesting, kueri hanya dapat merujuk ke tabel induknya dan bukan tabel lainnya.
Anda tidak dapat melakukan unnesting atau unpivoting objek pada kolom SUPER yang dihasilkan oleh ekspresi tabel umum rekursif ().
WITH RECURSIVE
Untuk informasi lebih lanjut tentang rekursif CTEs, lihatEkspresi tabel umum rekursif.Batasan pengecoran
Nilai SUPER dapat dilemparkan ke dan dari tipe data lain, dengan pengecualian berikut:
Amazon Redshift tidak membedakan bilangan bulat dan desimal skala 0.
Jika skala tidak nol, tipe data SUPER memiliki perilaku yang sama dengan tipe data Amazon Redshift lainnya, kecuali Amazon Redshift mengonversi kesalahan Super-related menjadi null, seperti yang ditunjukkan pada contoh berikut.
SELECT 5::bool; bool ------- True (1 row) SELECT 5::decimal::bool; ERROR: cannot cast type numeric to boolean SELECT 5::super::bool; bool ------- True (1 row) SELECT 5.0::bool; ERROR: cannot cast type numeric to boolean SELECT 5.0::super::bool; bool ------- (1 row)
Amazon Redshift tidak mentransmisikan tipe tanggal dan waktu ke tipe data SUPER. Amazon Redshift hanya dapat mentransmisikan tipe data tanggal dan waktu dari tipe data SUPER, seperti yang ditunjukkan pada contoh berikut.
SELECT o.o_orderdate FROM customer_orders_lineitem c,c.c_orders o; order_date ------------------ "2001-09-08" (1 row) SELECT JSON_TYPEOF(o.o_orderdate) FROM customer_orders_lineitem c,c.c_orders o; json_typeof ----------------- string (1 row) SELECT o.o_orderdate::date FROM customer_orders_lineitem c,c.c_orders o; order_date ---------------- 2001-09-08 (1 row) --date/time cannot be cast to super SELECT '2019-09-09'::date::super; ERROR: cannot cast type date to super
Cast dari nilai-nilai non-skalar (objek dan array) ke string mengembalikan NULL. Untuk membuat serial nilai non-skalar ini dengan benar, jangan dilemparkan. Sebagai gantinya, gunakan
json_serialize
untuk melemparkan nilai non-skalar.json_serialize
Fungsi mengembalikan varchar. Biasanya, Anda tidak perlu mentransmisikan nilai non-skalar ke varchar karena Amazon Redshift secara implisit membuat serial seperti yang ditunjukkan pada contoh pertama berikut.SELECT r_nations FROM region_nations WHERE r_regionkey=300; r_nations ---------------- [1,"abc",null] (1 row) SELECT r_nations::varchar FROM region_nations WHERE r_regionkey=300; r_nations ------------- (1 row) SELECT JSON_SERIALIZE(r_nations) FROM region_nations WHERE r_regionkey=300; json_serialize ----------------- [1,"abc",null] (1 row)
Untuk database case-insensitive, Amazon Redshift tidak mendukung tipe data SUPER. Untuk kolom yang tidak peka huruf besar/kecil, Amazon Redshift tidak mentransmisikannya ke tipe SUPER. Dengan demikian, Amazon Redshift tidak mendukung kolom SUPER yang berinteraksi dengan kolom case-insensitive yang memicu casting.
Amazon Redshift tidak mendukung fungsi volatil, seperti RANDOM () atau TIMEOFDAY (), dalam subkueri yang menghapus tabel luar atau sisi kiri (LHS) fungsi IN dengan subkueri tersebut.