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
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
SET
Menetapkan nilai parameter konfigurasi server. Gunakan perintah SET untuk mengganti setelan selama sesi atau transaksi saat ini saja.
Gunakan MENGATUR ULANG perintah untuk mengembalikan parameter ke nilai defaultnya.
Anda dapat mengubah parameter konfigurasi server dengan beberapa cara. Untuk informasi selengkapnya, lihat Memodifikasi konfigurasi server.
Sintaks
SET { [ SESSION | LOCAL ] { SEED | parameter_name } { TO | = } { value | 'value' | DEFAULT } | SEED TO value }
Pernyataan berikut menetapkan nilai variabel konteks sesi.
SET { [ SESSION | LOCAL ] variable_name { TO | = } { value | 'value' }
Parameter
- SESI
-
Menentukan bahwa pengaturan ini valid untuk sesi saat ini. Nilai default.
- nama_variabel
-
Menentukan nama variabel konteks yang ditetapkan untuk sesi.
Konvensi penamaan adalah nama dua bagian yang dipisahkan oleh titik, misalnya identifi er.identifier. Hanya satu pemisah titik yang diperbolehkan. Gunakan pengi dentifikasi yang mengikuti aturan pengidentifikasi standar untuk Amazon Redshift Untuk informasi selengkapnya, lihatNama dan pengenal. Pengidentifikasi yang dibatasi tidak diizinkan.
- LOKAL
-
Menentukan bahwa pengaturan tersebut valid untuk transaksi saat ini.
- Nilai SEED TO
-
Menetapkan benih internal yang akan digunakan oleh fungsi RANDOM untuk pembuatan angka acak.
SET SEED mengambil nilai numerik antara 0 dan 1, dan mengalikan angka ini dengan (2 31 -1) untuk digunakan dengan fungsi RANDOM fungsi. Jika Anda menggunakan SET SEED sebelum melakukan beberapa panggilan ACAK, RANDOM menghasilkan angka dalam urutan yang dapat diprediksi.
- nama_parameter
-
Nama parameter yang akan diatur. Lihat Memodifikasi konfigurasi server untuk informasi tentang parameter.
- nilai
-
Nilai parameter baru. Gunakan tanda kutip tunggal untuk mengatur nilai ke string tertentu. Jika menggunakan SET SEED, parameter ini berisi nilai SEED.
- DEFAULT
-
Menetapkan parameter ke nilai default.
Contoh
Mengubah parameter untuk sesi saat ini
Contoh berikut menetapkan gaya tanggal:
set datestyle to 'SQL,DMY';
Menyetel grup kueri untuk manajemen beban kerja
Jika grup kueri terdaftar dalam definisi antrian sebagai bagian dari konfigurasi WLM cluster, Anda dapat mengatur parameter QUERY_GROUP ke nama grup kueri yang terdaftar. Kueri berikutnya ditetapkan ke antrian kueri terkait. Pengaturan QUERY_GROUP tetap berlaku selama durasi sesi atau sampai perintah RESET QUERY_GROUP ditemui.
Contoh ini menjalankan dua kueri sebagai bagian dari grup kueri 'prioritas', lalu mengatur ulang grup kueri.
set query_group to 'priority'; select tbl, count(*)from stv_blocklist; select query, elapsed, substring from svl_qlog order by query desc limit 5; reset query_group;
Untuk informasi selengkapnya, lihat Manajemen beban kerja.
Mengubah namespace identitas default untuk sesi
Pengguna database dapat mengaturdefault_identity_namespace. Contoh ini menunjukkan cara menggunakan SET SESSION untuk mengganti pengaturan selama sesi saat ini dan kemudian menampilkan nilai penyedia identitas baru. Ini paling umum digunakan ketika Anda menggunakan penyedia identitas dengan Redshift dan IAM Identity Center. Untuk informasi selengkapnya tentang menggunakan penyedia identitas dengan Redshift, lihat Menghubun gkan Redshift dengan Pusat Identitas IAM untuk memberi pengguna pengalaman masuk tunggal.
SET SESSION default_identity_namespace = 'MYCO'; SHOW default_identity_namespace;
Setelah menjalankan perintah, Anda dapat menjalankan pernyataan GRANT atau pernyataan CREATE seperti berikut:
GRANT SELECT ON TABLE mytable TO alice; GRANT UPDATE ON TABLE mytable TO salesrole; CREATE USER bob password 'md50c983d1a624280812631c5389e60d48c';
Dalam contoh ini, efek pengaturan namespace identitas default setara dengan mengawali setiap identitas dengan namespace. Dalam contoh alice ini, diganti denganMYCO:alice. Untuk informasi selengkapnya tentang pengaturan yang berkaitan dengan konfigurasi Redshift dengan Pusat Identitas IAM, lihat dan. MENGUBAH SISTEM UBAH PENYEDIA IDENTITAS
Menetapkan label untuk sekelompok kueri
Parameter QUERY_GROUP mendefinisikan label untuk satu atau lebih kueri yang dijalankan dalam sesi yang sama setelah perintah SET. Pada gilirannya, label ini dicatat saat kueri dijalankan dan dapat digunakan untuk membatasi hasil yang dikembalikan dari tabel sistem STL_QUERY dan STV_INFLIGHT dan tampilan SVL_QLOG.
show query_group; query_group ------------- unset (1 row) set query_group to '6 p.m.'; show query_group; query_group ------------- 6 p.m. (1 row) select * from sales where salesid=500; salesid | listid | sellerid | buyerid | eventid | dateid | ... ---------+--------+----------+---------+---------+--------+----- 500 | 504 | 3858 | 2123 | 5871 | 2052 | ... (1 row) reset query_group; select query, trim(label) querygroup, pid, trim(querytxt) sql from stl_query where label ='6 p.m.'; query | querygroup | pid | sql -------+------------+-------+---------------------------------------- 57 | 6 p.m. | 30711 | select * from sales where salesid=500; (1 row)
Label grup kueri adalah mekanisme yang berguna untuk mengisolasi kueri individu atau kelompok kueri yang dijalankan sebagai bagian dari skrip. Anda tidak perlu mengidentifikasi dan melacak kueri berdasarkan ID mereka; Anda dapat melacaknya dengan label mereka.
Menetapkan nilai benih untuk pembuatan angka acak
Contoh berikut menggunakan opsi SEED dengan SET untuk menyebabkan fungsi RANDOM menghasilkan angka dalam urutan yang dapat diprediksi.
Pertama, kembalikan tiga bilangan bulat ACAK tanpa menetapkan nilai SEED terlebih dahulu:
select cast (random() * 100 as int); int4 ------ 6 (1 row) select cast (random() * 100 as int); int4 ------ 68 (1 row) select cast (random() * 100 as int); int4 ------ 56 (1 row)
Sekarang, atur nilai SEED ke.25, dan kembalikan tiga angka RANDOM lagi:
set seed to .25; select cast (random() * 100 as int); int4 ------ 21 (1 row) select cast (random() * 100 as int); int4 ------ 79 (1 row) select cast (random() * 100 as int); int4 ------ 12 (1 row)
Terakhir, atur ulang nilai SEED ke.25, dan verifikasi bahwa RANDOM mengembalikan hasil yang sama dengan tiga panggilan sebelumnya:
set seed to .25; select cast (random() * 100 as int); int4 ------ 21 (1 row) select cast (random() * 100 as int); int4 ------ 79 (1 row) select cast (random() * 100 as int); int4 ------ 12 (1 row)
Contoh berikut menetapkan variabel konteks yang disesuaikan.
SET app_context.user_id TO 123; SET app_context.user_id TO 'sample_variable_value';