Mengoptimalkan performa analisis

Last reviewed 2023-08-04 UTC

Dokumen di Framework Arsitektur Google Cloud ini memberikan rekomendasi untuk membantu Anda mengoptimalkan performa workload analisis di Google Cloud.

BigQuery

Bagian ini memberikan rekomendasi untuk membantu Anda mengoptimalkan performa kueri di BigQuery.

Mengoptimalkan desain kueri

Performa kueri bergantung pada beberapa faktor seperti jumlah byte yang dibaca dan ditulis oleh kueri Anda, dan volume data yang diteruskan di antara slot. Untuk mengoptimalkan performa kueri Anda di BigQuery, terapkan praktik terbaik yang dijelaskan dalam dokumentasi berikut:

Menentukan dan menggunakan tampilan terwujud secara efisien

Untuk meningkatkan performa workload yang menggunakan kueri umum dan berulang, Anda dapat menggunakan tampilan terwujud. Terdapat batasan jumlah tampilan terwujud yang dapat Anda buat. Jangan membuat tampilan terwujud terpisah untuk setiap permutasi kueri. Sebagai gantinya, tentukan tampilan terwujud yang dapat Anda gunakan untuk beberapa pola kueri.

Meningkatkan performa JOIN

Anda dapat menggunakan tampilan terwujud untuk mengurangi biaya dan latensi kueri yang melakukan agregasi pada bagian atas JOIN. Pertimbangkan suatu kasus saat Anda menggabungkan tabel fakta besar dengan beberapa tabel dimensi kecil, lalu melakukan sebuah agregasi di atas gabungan tersebut. Mungkin akan lebih praktis jika Anda menulis ulang kueri untuk melakukan agregasi terlebih dahulu di atas tabel fakta dengan kunci asing sebagai kunci pengelompokan. Kemudian, gabungkan hasilnya dengan tabel dimensi. Terakhir, lakukan post-aggregation.

Dataflow

Bagian ini memberikan rekomendasi untuk membantu Anda mengoptimalkan performa kueri di pipeline Dataflow.

Saat membuat dan men-deploy pipeline, Anda dapat mengonfigurasi parameter eksekusi, seperti jenis mesin Compute Engine yang harus digunakan untuk worker VM Dataflow. Untuk informasi lebih lanjut, lihat Opsi pipeline.

Setelah Anda men-deploy pipeline, Dataflow akan mengelola resource Compute Engine dan Cloud Storage yang diperlukan untuk menjalankan tugas Anda. Selain itu, fitur Dataflow berikut membantu mengoptimalkan performa pipeline:

Anda dapat memantau performa pipeline Dataflow menggunakan antarmuka pemantauan berbasis web atau gcloud CLI Dataflow.

Dataproc

Bagian ini menjelaskan praktik terbaik untuk mengoptimalkan performa dari cluster Dataproc Anda.

Melakukan penskalaan otomatis cluster

Untuk memastikan cluster Dataproc Anda memberikan performa yang dapat diprediksi, Anda dapat mengaktifkan penskalaan otomatis. Dataproc menggunakan metrik memori Hadoop YARN dan kebijakan penskalaan otomatis yang Anda tentukan untuk menyesuaikan otomatis jumlah worker VM dalam cluster. Untuk mengetahui informasi selengkapnya tentang cara menggunakan dan mengonfigurasi penskalaan otomatis, lihat Cluster penskalaan otomatis.

Penyediaan penyimpanan yang sesuai

Pilih opsi penyimpanan yang sesuai untuk cluster Dataproc Anda berdasarkan performa dan persyaratan biaya Anda:

  • Jika Anda memerlukan sistem file (HCFS) yang kompatibel dengan Hadoop murah dan dapat dibaca serta ditulis oleh tugas Hadoop dan Spark dengan sedikit perubahan, gunakan Cloud Storage. Data yang disimpan di Cloud Storage bersifat persisten, dan dapat diakses oleh cluster Dataproc lain serta produk lainnya seperti BigQuery.
  • Jika Anda memerlukan Hadoop Distributed File System (HDFS) berlatensi rendah untuk cluster Dataproc, gunakan persistent disk Compute Engine yang terpasang ke node pekerja. Data yang disimpan dalam penyimpanan HDFS bersifat sementara, dan biaya penyimpanannya lebih tinggi daripada opsi Cloud Storage.
  • Untuk mendapatkan keunggulan performa dari persistent disk Compute Engine serta manfaat biaya dan ketahanan Cloud Storage, Anda dapat menggabungkan kedua opsi penyimpanan. Misalnya, Anda dapat menyimpan set data sumber dan akhir di Cloud Storage, serta menyediakan kapasitas HDFS terbatas untuk set data perantara. Saat Anda menentukan ukuran dan jenis disk untuk penyimpanan HDFS, pertimbangkan rekomendasi di bagian Persistent disk dan SSD lokal.

Mengurangi latensi saat menggunakan Cloud Storage

Untuk mengurangi latensi saat Anda mengakses data yang disimpan di Cloud Storage, sebaiknya lakukan hal berikut:

  • Buat bucket Cloud Storage di region yang sama dengan cluster Dataproc.
  • Nonaktifkan auto.purge untuk tabel yang dikelola Apache Hive yang disimpan di Cloud Storage.
  • Saat menggunakan Spark SQL, pertimbangkan untuk membuat cluster Dataproc dengan versi terbaru dari image yang tersedia. Dengan menggunakan versi terbaru, Anda dapat menghindari masalah performa yang mungkin masih ada di versi lama, seperti performa INSERT OVERWRITE lambat di Spark 2.x.
  • Untuk meminimalkan kemungkinan penulisan pada banyak file dengan ukuran yang bervariasi atau kecil ke Cloud Storage, Anda dapat mengonfigurasi parameter Spark SQL spark.sql.shuffle.partitions dan spark.default.parallelism, atau mapreduce.job.reduces parameter Hadoop.

Memantau dan menyesuaikan beban dan kapasitas penyimpanan

Persistent disk yang dipasang ke node pekerja di cluster Dataproc menyimpan data shuffle. Agar dapat berperforma optimal, worker node memerlukan kapasitas disk yang memadai. Jika node tidak memiliki ruang disk yang memadai, node akan ditandai sebagai UNHEALTHY di log YARN NodeManager. Jika masalah ini muncul, tingkatkan ukuran disk untuk node yang terpengaruh, atau jalankan lebih sedikit tugas secara bersamaan.

Aktifkan EFM

Jika worker node dihapus dari cluster Dataproc yang sedang berjalan, misalnya karena downscaling atau preemption, data acak kemungkinan akan hilang. Untuk meminimalkan penundaan tugas dalam skenario tersebut, sebaiknya aktifkan Mode Fleksibilitas yang Ditingkatkan (EFM) untuk cluster yang menggunakan preemptible VM atau hanya melakukan penskalaan otomatis grup pekerja sekunder.

Langkah selanjutnya

Tinjau praktik terbaik untuk mengoptimalkan performa resource compute, penyimpanan, jaringan, dan database Anda: