Praktik terbaik untuk menggunakan Amazon Redshift Spectrum - AWS Bimbingan Preskriptif

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

Praktik terbaik untuk menggunakan Amazon Redshift Spectrum

Bagian ini memberikan ikhtisar praktik terbaik untuk menggunakan Amazon Redshift Spectrum. Kami menyarankan Anda mengikuti praktik terbaik ini untuk mencapai kinerja optimal saat Anda menggunakan Redshift Spectrum:

  • Pertimbangkan bahwa jenis file memiliki pengaruh signifikan pada kinerja kueri Redshift Spectrum. Untuk meningkatkan kinerja, gunakan file yang dikodekan kolumnar seperti ORC atau Parket, dan gunakan format CSV hanya untuk tabel dimensi yang sangat kecil.

  • Gunakan partisi berbasis awalan untuk memanfaatkan pemangkasan partisi. Ini berarti menggunakan filter yang dikunci ke partisi di danau data Anda.

  • Redshift Spectrum menskalakan secara otomatis untuk memproses permintaan besar, jadi lakukan sebanyak mungkin di Redshift Spectrum (misalnya, predikat pushdown).

  • Perhatikan file partisi pada kolom yang sering difilter. Jika data dipartisi oleh satu atau lebih kolom yang difilter, Redshift Spectrum dapat memanfaatkan pemangkasan partisi dan melewati pemindaian partisi dan file yang tidak dibutuhkan. Praktik yang umum adalah mempartisi data berdasarkan waktu.

  • Anda dapat memeriksa efektivitas partisi dan efisiensi kueri Redshift Spectrum Anda dengan menggunakan kueri berikut.

    Select query, segment, max(assigned_partitions) as total_partitions, max(qualified_partitions) as qualified_partitions From svl_s3partition Where query=pg_last_query_id() Group by 1,2;

    Kueri sebelumnya menunjukkan hal berikut:

    • total_partitions — Jumlah partisi yang diakui oleh AWS Glue Data Catalog

    • qualified_partitions - Jumlah awalan di Amazon Simple Storage Service (Amazon S3) Simple Storage Service (Amazon S3) yang diakses untuk kueri Redshift Spectrum

  • Anda juga dapat memeriksa tabel SVL_S3QUERY_SUMMARY sistem untuk mempelajari tentang efektivitas partisi dan efisiensi kueri Redshift Spectrum Anda. Untuk melakukannya, gunakan pernyataan berikut.

    Select * From svl_s3query_summary Where query=pg_last_query_id();

    Kueri sebelumnya mengembalikan lebih banyak informasi, termasuk, is_partitioneds3_scanned_rows/bytes, dan s3_returned_rows/bytes nilai selain file yang menunjukkan efisiensi pemangkasan partisi.

Predikat pushdown di Redshift Spectrum

Menggunakan predikat pushdown menghindari konsumsi sumber daya di cluster Amazon Redshift. Anda dapat mendorong banyak operasi SQL ke lapisan Redshift Spectrum. Kami merekomendasikan untuk memanfaatkan ini sedapat mungkin.

Ingatlah hal berikut:

  • Anda dapat mengevaluasi beberapa jenis operasi SQL sepenuhnya dalam lapisan Redshift Spectrum, termasuk yang berikut ini:

    • GROUP BYklausa

    • Perbandingan dan kondisi pencocokan pola (misalnya,) LIKE

    • Fungsi agregat (misalnya,,COUNT,SUM, AVGMIN, danMAX)

    • regex_replace,to_upper,date_trunc, dan fungsi lainnya

  • Anda tidak dapat mendorong beberapa operasi ke lapisan Redshift Spectrum, termasuk DISTINCT dan. ORDER BY Lakukan ORDER BY hanya di tingkat atas kueri jika memungkinkan, karena penyortiran dilakukan di node pemimpin.

  • Periksa EXPLAIN rencana kueri Anda untuk memverifikasi apakah predikat pushdown efektif. Untuk menemukan bagian Redshift Spectrum dalam sebuah EXPLAIN perintah, cari langkah-langkah berikut:

    • Pemindaian Seq S3

    • S3 HashAggregate

    • Pemindaian Kueri S3

    • Pemindaian Seq PartitionInfo

    • Partisi Loop

  • Gunakan jumlah kolom paling sedikit dalam kueri Anda. Redshift Spectrum dapat menghilangkan kolom untuk pemindaian jika data dalam format Parket atau ORC.

  • Gunakan partisi secara ekstensif untuk pemrosesan paralel dan eliminasi partisi, dan pertahankan ukuran file setidaknya 64 MB jika memungkinkan.

  • Atur TABLE PROPERTIES 'numRows'='nnn' jika Anda menggunakan CREATE EXTERNAL TABLE atauALTER TABLE. Amazon Redshift tidak menganalisis tabel eksternal untuk menghasilkan statistik tabel yang digunakan pengoptimal kueri untuk menghasilkan paket kueri. Jika statistik tidak ditetapkan, maka Amazon Redshift mengasumsikan bahwa tabel eksternal adalah tabel yang lebih besar dan tabel lokal adalah tabel yang lebih kecil.

Kiat penyetelan kueri untuk Redshift Spectrum

Kami menyarankan Anda untuk mengingat hal-hal berikut ketika Anda menyetel kueri Anda:

  • Jumlah node Redshift Spectrum yang dapat digunakan oleh cluster Amazon Redshift Anda untuk kueri terkait dengan jumlah irisan di cluster Anda.

  • Mengubah ukuran cluster Anda dapat menguntungkan profil komputasi lokal klaster Anda, profil penyimpanan, dan kemampuan kueri kueri data lake Amazon S3.

  • Perencana kueri Amazon Redshift mendorong predikat dan agregasi ke lapisan kueri Redshift Spectrum bila memungkinkan.

  • Ketika sejumlah besar data dikembalikan dari Amazon S3, pemrosesan dibatasi oleh sumber daya klaster Anda.

  • Karena Redshift Spectrum menskalakan secara otomatis untuk memproses permintaan besar, kinerja keseluruhan Anda meningkat kapan pun Anda dapat mendorong pemrosesan ke lapisan Redshift Spectrum.