SET - Amazon Redshift

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 SET perintah untuk mengganti pengaturan selama durasi sesi atau transaksi saat ini saja.

Gunakan RESET 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

SESSION

Menentukan bahwa pengaturan ini valid untuk sesi saat ini. Nilai default.

variable_name

Menentukan nama variabel konteks yang ditetapkan untuk sesi.

Konvensi penamaan adalah nama dua bagian yang dipisahkan oleh titik, misalnya identifier.identifier. Hanya satu pemisah titik yang diizinkan. Gunakan pengenal yang mengikuti aturan pengenal standar untuk Amazon Redshift Untuk informasi selengkapnya, lihat. Nama dan pengenal Pengidentifikasi yang dibatasi tidak diizinkan.

LOCAL

Menentukan bahwa pengaturan ini berlaku untuk transaksi saat ini.

SEEDUntuk nilai

Menetapkan benih internal yang akan digunakan oleh RANDOM fungsi untuk pembuatan bilangan acak.

SETSEEDmengambil 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 RANDOM panggilan, RANDOM menghasilkan nomor dalam urutan yang dapat diprediksi.

parameter_name

Nama parameter yang akan ditetapkan. Lihat Memodifikasi konfigurasi server untuk informasi tentang parameter.

nilai

Nilai parameter baru. Gunakan tanda kutip tunggal untuk mengatur nilai ke string tertentu. Jika menggunakan SETSEED, parameter ini berisi SEED nilai.

DEFAULT

Menetapkan parameter ke nilai default.

Contoh

Mengubah parameter untuk sesi saat ini

Contoh berikut menetapkan datestyle:

set datestyle to 'SQL,DMY';

Menyetel grup kueri untuk manajemen beban kerja

Jika grup kueri tercantum dalam definisi antrian sebagai bagian dari WLM konfigurasi cluster, Anda dapat mengatur GROUP parameter QUERY _ ke nama grup kueri yang terdaftar. Kueri berikutnya ditetapkan ke antrian kueri terkait. GROUPPengaturan QUERY _ tetap berlaku selama durasi sesi atau sampai GROUP perintah RESET QUERY _ 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

Seorang pengguna database dapat mengaturdefault_identity_namespace. Contoh ini menunjukkan cara menggunakan SET SESSION untuk mengganti setelan selama durasi sesi saat ini dan kemudian menampilkan nilai penyedia identitas baru. Ini paling sering digunakan saat Anda menggunakan penyedia identitas dengan Redshift dan IAM Identity Center. Untuk informasi selengkapnya tentang penggunaan penyedia identitas dengan Redshift, lihat Connect Redshift dengan IAM Identity Center untuk memberikan pengalaman masuk tunggal kepada pengguna.

SET SESSION default_identity_namespace = 'MYCO'; SHOW default_identity_namespace;

Setelah menjalankan perintah, Anda dapat menjalankan GRANT pernyataan atau CREATE pernyataan seperti berikut:

GRANT SELECT ON TABLE mytable TO alice; GRANT UPDATE ON TABLE mytable TO salesrole; CREATE USER bob password 'md50c983d1a624280812631c5389e60d48c';

Dalam hal ini, efek pengaturan namespace identitas default setara dengan awalan setiap identitas dengan namespace. Dalam contoh alice ini, diganti denganMYCO:alice. Untuk informasi selengkapnya tentang pengaturan yang berkaitan dengan konfigurasi Redshift IAM dengan Identity Center, ALTER SYSTEM lihat dan. ALTER IDENTITY PROVIDER

Menyetel label untuk sekelompok kueri

GROUPParameter QUERY _ mendefinisikan label untuk satu atau beberapa 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 INFLIGHT sistem STL _ QUERY dan STV _ serta 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 grup kueri yang dijalankan sebagai bagian dari skrip. Anda tidak perlu mengidentifikasi dan melacak kueri dengan merekaIDs; Anda dapat melacak mereka dengan label mereka.

Menetapkan nilai benih untuk pembuatan bilangan acak

Contoh berikut menggunakan SEED opsi dengan SET untuk menyebabkan RANDOM fungsi menghasilkan angka dalam urutan yang dapat diprediksi.

Pertama, kembalikan tiga RANDOM bilangan bulat tanpa mengatur SEED nilai 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 SEED nilainya.25, dan kembalikan tiga RANDOM angka 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, setel ulang SEED nilainya.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';