Dokumen di Framework Arsitektur Google Cloud ini memberikan rekomendasi untuk membantu Anda mengoptimalkan performa workload analisis Anda 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:
- Pengantar untuk mengoptimalkan performa kueri
- Mengelola input data dan sumber data
- Mengoptimalkan komunikasi antar-slot
- Mengoptimalkan komputasi kueri
- Mengelola output kueri
- Menghindari anti-pola SQL
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:
- Paralelisasi: Dataflow secara otomatis membagi data Anda dan mendistribusikan kode worker ke instance Compute Engine untuk pemrosesan paralel. Untuk informasi selengkapnya, lihat paralelisasi dan distribusi.
- Pengoptimalan: Dataflow menggunakan kode pipeline untuk membuat grafik eksekusi yang mewakili PCollection objek dan transforms dalam proses pengembangan. Kemudian, versi ini akan mengoptimalkan grafik untuk mendapatkan performa dan penggunaan resource yang paling efisien. Dataflow juga secara otomatis mengoptimalkan operasi yang berpotensi mahal, seperti agregasi data. Untuk informasi selengkapnya, lihat Pengoptimalan Fusion dan Kombinasi pengoptimalan.
- Penyesuaian otomatis: Dataflow mengoptimalkan tugas secara dinamis saat tugas berjalan dengan menggunakan Penskalaan Otomatis Horizontal, Penskalaan Otomatis Vertikal, dan Penyeimbangan Ulang Pekerjaan Dinamis.
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 worker node. 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
danspark.default.parallelism
, ataumapreduce.job.reduces
parameter Hadoop.
Memantau dan menyesuaikan beban dan kapasitas penyimpanan
Persistent disk yang dipasang ke worker node 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 skala otomatis grup worker sekunder.
Langkah selanjutnya
Tinjau praktik terbaik untuk mengoptimalkan performa resource compute, penyimpanan, jaringan, dan database Anda:
- Optimalkan performa compute.
- Mengoptimalkan performa penyimpanan.
- Mengoptimalkan performa jaringan.
- Optimalkan Performa Database