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.
STL_QUERYTEXT
Menangkap teks kueri untuk perintah SQL.
Kueri tampilan STL_QUERYTEXT untuk menangkap SQL yang dicatat untuk pernyataan berikut:
-
PILIH, PILIH KE
-
MASUKKAN, PERBARUI, HAPUS
-
MENYALIN
-
MEMBONGKAR
-
Kueri yang dihasilkan dengan menjalankan VACUUM dan ANALYZE
-
BUAT TABEL SEBAGAI (CTAS)
Untuk menanyakan aktivitas untuk pernyataan ini selama periode waktu tertentu, gabungkan tampilan STL_QUERYTEXT dan STL_QUERY.
catatan
Tampilan STL_QUERY dan STL_QUERYTEXT hanya berisi informasi tentang kueri, bukan perintah utilitas dan DDL lainnya. Untuk daftar dan informasi tentang semua pernyataan yang dijalankan oleh Amazon Redshift, Anda juga dapat menanyakan tampilan STL_DDLTEXT dan STL_UTILITYTEXT. Untuk daftar lengkap semua pernyataan yang dijalankan oleh Amazon Redshift, Anda dapat menanyakan tampilan SVL_STATEMENTTEXT.
Lihat jugaSTL_DDLTEXT,STL_UTILITYTEXT, danSVL_STATEMENTTEXT.
STL_QUERYTEXT terlihat oleh semua pengguna. Pengguna super dapat melihat semua baris; pengguna biasa hanya dapat melihat data mereka sendiri. Untuk informasi selengkapnya, lihat Visibilitas data dalam tabel dan tampilan sistem.
Beberapa atau semua data dalam tabel ini juga dapat ditemukan di tampilan pemantauan SYSSYS_QUERY_TEKS. Data dalam tampilan pemantauan SYS diformat agar lebih mudah digunakan dan dipahami. Kami menyarankan Anda menggunakan tampilan pemantauan SYS untuk kueri Anda.
Perhatikan bahwa ketika panjang teks kueri Anda lebih dari 4000 karakter, STL_QUERYTEXT hanya menampilkan data terpotong. Untuk mendapatkan teks kueri lengkap, Anda dapat menggunakan UNION pada teks kueri di seluruh baris.
Kolom tabel
| Nama kolom | Jenis data | Deskripsi |
|---|---|---|
| Userid | integer | ID pengguna yang membuat entri. |
| xid | bigint | ID Transaksi. |
| pid | integer | ID proses. Biasanya, semua kueri dalam sesi dijalankan dalam proses yang sama, jadi nilai ini biasanya tetap konstan jika Anda menjalankan serangkaian kueri dalam sesi yang sama. Setelah kejadian internal tertentu, Amazon Redshift mungkin memulai ulang sesi aktif dan menetapkan PID baru. Untuk informasi selengkapnya, lihat STL_RESTARTED_SESSIONS. Anda dapat menggunakan kolom ini untuk bergabung dengan STL_ERROR tampilan. |
| kueri | integer | ID kueri. Kolom query dapat digunakan untuk bergabung dengan tabel dan tampilan sistem lainnya. |
| urutan | integer | Ketika pernyataan tunggal berisi lebih dari 200 karakter, baris tambahan dicatat untuk pernyataan itu. Urutan 0 adalah baris pertama, 1 adalah yang kedua, dan seterusnya. |
| text | karakter (200) | Teks SQL, dalam penambahan 200 karakter. Bidang ini mungkin berisi karakter khusus seperti backslash (\\) dan newline (). \n |
| user_query_id | bigint | Pengidentifikasi kueri dari kueri yang dikirimkan pengguna, seperti yang direkam di kolom query_id dari. SYS_QUERY_TEKS |
| urutan kueri anak | integer | Nomor urutan kueri anak yang ditulis ulang di bawah kueri pengguna, dimulai dengan 1. |
| Query_uuid | karakter (36) | Pengidentifikasi unik global (UUID) dari kueri. |
Kueri Sampel
Anda dapat menggunakan fungsi PG_BACKEND_PID () untuk mengambil informasi untuk sesi saat ini. Misalnya, kueri berikut mengembalikan ID kueri dan sebagian teks kueri untuk kueri yang diselesaikan dalam sesi saat ini.
select query, substring(text,1,60) from stl_querytext where pid = pg_backend_pid() order by query desc; query | substring -------+-------------------------------------------------------------- 28262 | select query, substring(text,1,80) from stl_querytext where 28252 | select query, substring(path,0,80) as path from stl_unload_l 28248 | copy category from 's3://dw-tickit/manifest/category/1030_ma 28247 | Count rows in target table 28245 | unload ('select * from category') to 's3://dw-tickit/manifes 28240 | select query, substring(text,1,40) from stl_querytext where (6 rows)
Merekonstruksi SQL yang disimpan
Untuk merekonstruksi SQL yang disimpan di text kolom STL_QUERYTEXT, jalankan pernyataan SELECT untuk membuat SQL dari 1 atau lebih bagian di kolom. text Sebelum menjalankan SQL yang direkonstruksi, ganti karakter khusus (\n) dengan baris baru. Hasil dari pernyataan SELECT berikut adalah baris SQL yang direkonstruksi di query_statement lapangan.
SELECT query, LISTAGG(CASE WHEN LEN(RTRIM(text)) = 0 THEN text ELSE RTRIM(text) END) WITHIN GROUP (ORDER BY sequence) as query_statement, COUNT(*) as row_count FROM stl_querytext GROUP BY query ORDER BY query desc;
Misalnya, kueri berikut memilih 3 kolom. Kueri itu sendiri lebih panjang dari 200 karakter dan disimpan dalam beberapa bagian di STL_QUERYTEXT.
select 1 AS a0123456789012345678901234567890123456789012345678901234567890, 2 AS b0123456789012345678901234567890123456789012345678901234567890, 3 AS b012345678901234567890123456789012345678901234 FROM stl_querytext;
Dalam contoh ini, query disimpan dalam 2 bagian (baris) di text kolom STL_QUERYTEXT.
select query, sequence, text from stl_querytext where query=pg_last_query_id() order by query desc, sequence limit 10;
query | sequence | text -------+----------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 45 | 0 | select\n1 AS a0123456789012345678901234567890123456789012345678901234567890,\n2 AS b0123456789012345678901234567890123456789012345678901234567890,\n3 AS b012345678901234567890123456789012345678901234 45 | 1 | \nFROM stl_querytext;
Untuk merekonstruksi SQL yang disimpan di STL_QUERYTEXT, jalankan SQL berikut.
select LISTAGG(CASE WHEN LEN(RTRIM(text)) = 0 THEN text ELSE RTRIM(text) END, '') within group (order by sequence) AS text from stl_querytext where query=pg_last_query_id();
Untuk menggunakan SQL yang direkonstruksi yang dihasilkan di klien Anda, ganti karakter khusus (\n) dengan baris baru.
text ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ select\n1 AS a0123456789012345678901234567890123456789012345678901234567890,\n2 AS b0123456789012345678901234567890123456789012345678901234567890,\n3 AS b012345678901234567890123456789012345678901234\nFROM stl_querytext;