Bagikan melalui


Mengonfigurasi cache

Catatan

Kami akan menghentikan Azure HDInsight di AKS pada 31 Januari 2025. Sebelum 31 Januari 2025, Anda harus memigrasikan beban kerja anda ke Microsoft Fabric atau produk Azure yang setara untuk menghindari penghentian tiba-tiba beban kerja Anda. Kluster yang tersisa pada langganan Anda akan dihentikan dan dihapus dari host.

Hanya dukungan dasar yang akan tersedia hingga tanggal penghentian.

Penting

Fitur ini masih dalam mode pratinjau. Ketentuan Penggunaan Tambahan untuk Pratinjau Microsoft Azure mencakup lebih banyak persyaratan hukum yang berlaku untuk fitur Azure yang dalam versi beta, dalam pratinjau, atau belum dirilis ke ketersediaan umum. Untuk informasi tentang pratinjau khusus ini, lihat Azure HDInsight pada informasi pratinjau AKS. Untuk pertanyaan atau saran fitur, kirimkan permintaan di AskHDInsight dengan detail dan ikuti kami untuk pembaruan lebih lanjut di Komunitas Azure HDInsight.

Mengkueri penyimpanan objek menggunakan konektor Apache Hive adalah kasus penggunaan umum untuk Trino. Proses ini sering melibatkan pengiriman data dalam jumlah besar. Objek diambil dari HDFS atau penyimpanan objek lain yang didukung oleh beberapa pekerja dan diproses oleh pekerja tersebut. Kueri berulang dengan parameter yang berbeda, atau bahkan kueri yang berbeda dari pengguna yang berbeda, sering mengakses dan mentransfer objek yang sama.

HDInsight pada AKS menambahkan kemampuan penembolokan hasil akhir untuk Trino, yang memberikan manfaat berikut:

  • Kurangi beban pada penyimpanan objek.
  • Meningkatkan performa kueri.
  • Kurangi biaya kueri.

Opsi penembolokan

Opsi berbeda untuk penembolokan:

  • Penembolokan hasil akhir: Saat diaktifkan (di bagian konfigurasi komponen koordinator), hasil untuk kueri apa pun untuk cache katalog apa pun pada VM koordinator.
  • Penembolokan katalog Apache Hive/Iceberg/Delta Lake: Saat diaktifkan (untuk katalog tertentu dari jenis yang sesuai), data terpisah untuk setiap cache kueri dalam kluster pada VM pekerja.

Penembolokan hasil akhir

Penembolokan hasil akhir dapat dikonfigurasi dengan dua cara:

Parameter konfigurasi yang tersedia adalah:

Properti Default Deskripsi
query.cache.enabled salah Mengaktifkan penembolokan hasil akhir jika benar.
query.cache.ttl - Menentukan waktu sampai data cache disimpan sebelum pengeluaran. Misalnya: "10m","1h"
query.cache.disk-usage-percentage 80 Persentase ruang disk yang digunakan untuk data cache.
query.cache.max-result-data-size 0 Ukuran data maksimum untuk hasilnya. Jika nilai ini terlampaui, hasilnya tidak akan di-cache.

Catatan

Penembolokan hasil akhir menggunakan rencana kueri dan ttl sebagai kunci cache.

Penembolokan hasil akhir juga dapat dikontrol melalui parameter sesi berikut:

Parameter sesi Default Deskripsi
query_cache_enabled Nilai konfigurasi asli Mengaktifkan/menonaktifkan penembolokan hasil akhir untuk kueri/sesi.
query_cache_ttl Nilai konfigurasi asli Menentukan waktu sampai data cache disimpan sebelum pengeluaran.
query_cache_max_result_data_size Nilai konfigurasi asli Ukuran data maksimum untuk hasilnya. Jika nilai ini terlampaui, hasilnya tidak akan di-cache.
query_cache_forced_refresh salah Ketika diatur ke true, memaksa hasil eksekusi kueri untuk di-cache yaitu, hasilnya menggantikan data cache yang ada jika ada).

Catatan

Parameter sesi dapat diatur untuk sesi (misalnya, jika Trino CLI digunakan) atau dapat diatur dalam multi-pernyataan sebelum teks kueri. Contohnya,

set session query_cache_enabled=true;
select cust.name, *
from tpch.tiny.orders 
join tpch.tiny.customer as cust on cust.custkey = orders.custkey
order by cust.name
limit 10;

Penembolokan hasil akhir menghasilkan metrik JMX yang dapat dilihat menggunakan Prometheus Terkelola dan Grafana. Metrik berikut tersedia:

Metrik Deskripsi
trino_cache_cachestats_requestcount Jumlah total kueri yang melewati lapisan cache. Angka ini tidak menyertakan kueri yang dijalankan dengan cache nonaktif.
trino_cache_cachestats_hitcount Jumlah hit cache yaitu jumlah kueri saat data tersedia dan dikembalikan dari cache.
trino_cache_cachestats_misscount Jumlah cache yang terlewatkan yaitu jumlah kueri saat data tidak tersedia dan harus di-cache.
trino_cache_cachestats_hitrate Persentase representasi hit cache terhadap jumlah total kueri.
trino_cache_cachestats_totalevictedcount Jumlah kueri cache yang dikeluarkan dari cache.
trino_cache_cachestats_totalbytesfromsource Jumlah byte yang dibaca dari sumber.
trino_cache_cachestats_totalbytesfromcache Jumlah byte yang dibaca dari cache.
trino_cache_cachestats_totalcachedbytes Jumlah total byte yang di-cache.
trino_cache_cachestats_totalevictedbytes Jumlah total byte yang dikeluarkan.
trino_cache_cachestats_spaceused Ukuran cache saat ini.
trino_cache_cachestats_cachereadfailures Berapa kali data tidak dapat dibaca dari cache karena kesalahan apa pun.
trino_cache_cachestats_cachewritefailures Berapa kali data tidak dapat ditulis ke dalam cache karena kesalahan apa pun.

Menggunakan portal Azure

  1. Masuk ke portal Microsoft Azure.

  2. Di bilah pencarian portal Azure, ketik "HDInsight di kluster AKS" dan pilih "Azure HDInsight pada kluster AKS" dari daftar drop-down.

    Cuplikan layar memperlihatkan opsi pencarian untuk memulai HDInsight di Kluster AKS.

  3. Pilih nama kluster Anda dari halaman daftar.

    Cuplikan layar memperlihatkan memilih HDInsight pada Kluster AKS yang Anda butuhkan dari daftar.

  4. Navigasikan ke bilah Manajemen Konfigurasi.

    Cuplikan layar memperlihatkan manajemen konfigurasi portal Azure.

  5. Buka config.properties -> Konfigurasi kustom lalu klik Tambahkan.

    Cuplikan layar memperlihatkan konfigurasi kustom.

  6. Atur properti yang diperlukan, dan klik OK.

    Cuplikan layar memperlihatkan properti konfigurasi.

  7. Simpan konfigurasi.

    Cuplikan layar memperlihatkan cara menyimpan konfigurasi.

Menggunakan templat ARM

Prasyarat

Anda perlu menentukan properti dalam komponen koordinator di properties.clusterProfile.serviceConfigsProfiles bagian dalam templat ARM. Contoh berikut menunjukkan tempat untuk menambahkan properti.

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {},
    "resources": [
        {
            "type": "microsoft.hdinsight/clusterpools/clusters",
            "apiVersion": "<api-version>",
            "name": "<cluster-pool-name>/<cluster-name>",
            "location": "<region, e.g. westeurope>",
            "tags": {},
            "properties": {
                "clusterType": "Trino",

                "clusterProfile": {

                    "serviceConfigsProfiles": [
                        {
                            "serviceName": "trino",
                            "configs": [
                                {
                                    "component": "coordinator",
                                    "files": [
                                        {
                                            "fileName": "config.properties",
                                            "values": {
                                                "query.cache.enabled": "true",
                                                "query.cache.ttl": "10m"
                                            }
                                        }
                                    ]
                                }
                            ]
                        }
                    ]
                }

            }
        }
    ]
}

Penembolokan Apache Hive/Iceberg/Delta Lake

Ketiga konektor berbagi sekumpulan parameter yang sama seperti yang dijelaskan dalam penembolokan Apache Hive .

Catatan

Parameter tertentu tidak dapat dikonfigurasi dan selalu diatur ke nilai defaultnya:
hive.cache.data-transfer-port=8898,
hive.cache.bookkeeper-port=8899,
hive.cache.location=/etc/trino/cache,
hive.cache.disk-usage-percentage=80

Contoh berikut menunjukkan tempat menambahkan properti untuk mengaktifkan penembolokan Apache Hive menggunakan templat ARM.

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {},
    "resources": [
        {
            "type": "microsoft.hdinsight/clusterpools/clusters",
            "apiVersion": "<api-version>",
            "name": "<cluster-pool-name>/<cluster-name>",
            "location": "<region, e.g. westeurope>",
            "tags": {},
            "properties": {
                "clusterType": "Trino",

                "clusterProfile": {

                    "serviceConfigsProfiles": [
                        {
                            "serviceName": "trino",
                            "configs": [
                                {
                                    "component": "catalogs",
                                    "files": [
                                        {
                                            "fileName": "hive1.properties",
                                            "values": {
                                                "connector.name": "hive"
                                                "hive.cache.enabled": "true",
                                                "hive.cache.ttl": "5d"
                                            }
                                        }
                                    ]
                                }
                            ]
                        }
                    ]
                }

            }
        }
    ]
}

Sebarkan templat ARM yang diperbarui untuk mencerminkan perubahan di kluster Anda. Pelajari cara menyebarkan templat ARM.