View a markdown version of this page

MENGANALISIS KOMPRESI - Amazon Redshift

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 yang diterbitkan pada 30 Juni 2025.

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

MENGANALISIS KOMPRESI

Melakukan analisis kompresi dan menghasilkan laporan dengan pengkodean kompresi yang disarankan untuk tabel yang dianalisis. Untuk setiap kolom, laporan mencakup perkiraan potensi pengurangan ruang disk dibandingkan dengan pengkodean RAW.

Sintaksis

ANALYZE COMPRESSION [ [ table_name ] [ ( column_name [, ...] ) ] ] [COMPROWS numrows]

Parameter

table_name

Anda dapat menganalisis kompresi untuk tabel tertentu, termasuk tabel sementara. Anda dapat memenuhi syarat tabel dengan nama skemanya. Anda dapat secara opsional menentukan table_name untuk menganalisis satu tabel. Jika Anda tidak menentukan table_name, semua tabel dalam database yang terhubung saat ini akan dianalisis. Anda tidak dapat menentukan lebih dari satu table_name dengan pernyataan COMPRESSION ANALYZE tunggal.

nama_kolom

Jika Anda menentukan table_name, Anda juga dapat menentukan satu atau lebih kolom dalam tabel (sebagai daftar yang dipisahkan kolom dalam tanda kurung).

KERUSUHAN

Jumlah baris yang akan digunakan sebagai ukuran sampel untuk analisis kompresi. Analisis dijalankan pada baris dari setiap irisan data. Misalnya, jika Anda menentukan COMPROWS 1000000 (1.000.000) dan sistem berisi 4 irisan total, tidak lebih dari 250.000 baris per irisan dibaca dan dianalisis. Jika COMPROWS tidak ditentukan, ukuran sampel default menjadi 100.000 per irisan. Nilai COMPROWS yang lebih rendah dari default 100.000 baris per irisan secara otomatis ditingkatkan ke nilai default. Namun, analisis kompresi tidak menghasilkan rekomendasi jika jumlah data dalam tabel tidak mencukupi untuk menghasilkan sampel yang bermakna. Jika angka COMPROWS lebih besar dari jumlah baris dalam tabel, perintah ANALYZE COMPRESSION masih melanjutkan dan menjalankan analisis kompresi terhadap semua baris yang tersedia. Menggunakan COMPROWS menghasilkan kesalahan jika tabel tidak ditentukan.

mati rasa

Jumlah baris yang akan digunakan sebagai ukuran sampel untuk analisis kompresi. Rentang yang diterima untuk angka adalah angka antara 1000 dan 1000000000 (1.000.000.000).

Catatan penggunaan

ANALYZE COMPRESSION memperoleh kunci tabel eksklusif, yang mencegah pembacaan dan penulisan bersamaan terhadap tabel. Hanya jalankan perintah ANALYZE COMPRESSION saat tabel tidak aktif.

Jalankan ANALYZE COMPRESSION untuk mendapatkan rekomendasi untuk skema pengkodean kolom, berdasarkan sampel isi tabel. ANALYZE COMPRESSION adalah alat penasihat dan tidak mengubah pengkodean kolom tabel. Anda dapat menerapkan pengkodean yang disarankan dengan membuat ulang tabel atau dengan membuat tabel baru dengan skema yang sama. Membuat ulang tabel yang tidak terkompresi dengan skema pengkodean yang sesuai dapat secara signifikan mengurangi jejak pada disk. Pendekatan ini menghemat ruang disk dan meningkatkan kinerja kueri untuk I/O-bound beban kerja.

ANALISIS COMPRESSION melewatkan fase analisis aktual dan langsung mengembalikan jenis pengkodean asli pada kolom apa pun yang ditetapkan sebagai SORTKEY. Ini dilakukan karena pemindaian terbatas rentang mungkin berkinerja buruk ketika kolom SORTKEY dikompresi jauh lebih tinggi daripada kolom lainnya.

Contoh

Contoh berikut menunjukkan pengkodean dan perkiraan pengurangan persen untuk kolom dalam tabel LISTING saja:

analyze compression listing; Table | Column | Encoding | Est_reduction_pct ---------+----------------+----------+------------------- listing | listid | az64 | 40.96 listing | sellerid | az64 | 46.92 listing | eventid | az64 | 53.37 listing | dateid | raw | 0.00 listing | numtickets | az64 | 65.66 listing | priceperticket | az64 | 72.94 listing | totalprice | az64 | 68.05 listing | listtime | az64 | 49.74

Contoh berikut menganalisis kolom QTYSOLD, COMMISSION, dan SALETIME dalam tabel PENJUALAN.

analyze compression sales(qtysold, commission, saletime); Table | Column | Encoding | Est_reduction_pct -------+------------+----------+------------------- sales | salesid | N/A | 0.00 sales | listid | N/A | 0.00 sales | sellerid | N/A | 0.00 sales | buyerid | N/A | 0.00 sales | eventid | N/A | 0.00 sales | dateid | N/A | 0.00 sales | qtysold | az64 | 83.06 sales | pricepaid | N/A | 0.00 sales | commission | az64 | 71.85 sales | saletime | az64 | 49.63